随着FPGA价格不断下降以及开发工具持续改进,那些不太熟悉FPGA开发工作的设计工程师也开始倾向采用FPGA。同样,FPGA软处理器内核可选种类的增多为原先只采用微控制器(MCU)的设计工程师提供了新的发展方向。
有多个原因促使设计工程师应该考虑将FPGA作为一种开发和部署平台。处理器不断地更新换代,而更多的为FPGA开发的IP可以移植到新的芯片,甚至可能用在不同供应商的芯片中,虽然开发人员经常利用对某一特定芯片独有的性能。许多公司为传统MCU提供引脚兼容的FPGA器件。
FPGA可以在标准处理器内核周围集成整套的标准外设。尽管多内核解决方案很容易创建,但它们倾向用作协处理内核,而不是对称多处理(SMP)系统。需要SMP的应用可以通过标准的多内核处理器芯片(比如AMD和Intel的芯片)更好地得到满足。
软件开发人员喜欢用标准内核,特别是匹配现有微控制器的那些内核。这种匹配允许使用通用的开发工具,这比定制处理器架构提供的最佳性能更加重要。
尽管如此,通过增加一些寄存器或指令来增强标准内核通常可以向定制IP提供一个接口,从而显著改善性能、降低功耗并使实现许多实际的应用。
利用标准器件外设来设计FPGA系统级芯片(SoC)相对比较简单。例如,ARM的Cortex-M1内核很容易集成到Actel的Libero集成开发环境(IDE)原理版图中(图1)。ARM的Cortex-M1专门针对FPGA而设计,支持完整的ARM Cortex指令集。
图1:诸如Actel的Libero IDE的原理图风格设计工具可以简化系统设计,即使是在使用像32位ARM Cortex-M1内核这样复杂的产品时。
FPGA供应商也提供自己的原理图设计工具。莱迪思半导体的ipsLever可以处理莱迪思的FPGA和复杂可编程逻辑器件(CPLD)。开发过程的第一步是全力创建原始系统设计。第二步是将设计移植到FPGA,然后编写软件。鉴于芯片选择的灵活性和范围,这是一项很重要的任务。不过可能要比你想象的简单。
开发套件
供选择硬或软处理器内核的开发人员使用的FPGA开发套件已非常普及。虽然大多数FPGA套件可以处理一个或一个以上的内核,但它们主要被设计用来进行编程,并在最少出错的情况下来运行。
大多数FPGA开发工具根据系统设计生成软件开发所需的相应头和源代码文件。一些开发工具还可进一步扩展任务,把向FPGA内存下载应用程序作为开发过程的一部分。
许多FPGA开发环境使用它们自己的IDE,软件开发则使用另外的IDE。这些独立IDE通常基于带C/C++开发工具(CDT)的开源Eclipse IDE,也有人开始将Eclipse用作其它FPGA开发工具的平台。
Altera公司的Nios II嵌入式评估套件Cyclone III Edition代表像为传统MCU设计提供套件一样提供开发套件的趋势(图2)。与Cyclone III FPGA一起提供的还有LCD屏和可移动闪存,以提供一种能方便利用Altera的Quartus II和SOPC Builder进行定制设计的软件平台Nios II IDE为32位Nios II软核提供软件开发支持。出于演示的目的,开发人员花一个