论文部分内容阅读
全球FPGA整体市场最近几年迅速扩大,其中与嵌入式FPGA处理器相关的DesignWin(设计中标)数量正在迅速增长,潜力巨大。就像打开潘多拉的盒子,有了可以运行操作系统或实时操作系统的处理器内核,相信FPGA正在真正意义上大规模进入嵌入式设计领域。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzcp/dzcp200621/dzcp20062118-1-l.jpg)
从Xilinx、Altera到Actel、Lattice,FPGA提供商都已经有可在FPGA逻辑模块旁实现的“硬”核,或者可以直接在FPGA结构中运行的“软”核处理器。硬核的好处是能够提供更快的数据处理能力,所谓软核需要FPGAV商提供的PLD软件进行配置,然后固化到FPGA中。与硬核相比,软核具有更好的灵活性,在目标器件中可以进行任意配置,根据具体设计需要灵活选择IP模块和外设。
Xilinx除了32位的嵌入式PowerPC硬核之外,还支持8位的PicoBlaze和32位的MicroBlaze两个软内核。Xilinx亚太区高端产品市场经理梁晓明先生表示,高端和低端FPGA嵌入式市场都在迅速成长,所以Xilinx会持续兼顾发展这三种嵌入式处理器,Altera只提供软核,其32位NiosII软核处理器与Xilinx的MicroBlaze旗鼓相当,同样都是目前市场上最通用的嵌入式FPGA处理器。
最近NiosⅡ和MicroBlaze都增加了对新的IEEE754兼容浮点单元的支持。Altera公司亚太区产品和渠道营销工程师王冬刚先生解释说,IEEE754标准定义了在计算机中表示浮点的一套格式。这一特性的优点在于能够更精确地表达数字,只要是需要高精度计算的场合都可以考虑用浮点处理单元改善计算精度。就像浮点表示在Intel的Pentium系列CPU中成为标准一样,越来越多的嵌入式应用需要这一特性,比如进程控制,图像处理,汽车中电机转速的精确表示等等。
另一家FPGA供应商Actel期望在不同市场层面上与Altera和Xilinx展开竞争。Actel在其FPGA中嵌入了32位的ARM7微处理器内核CoreMP7。传统的嵌入式处理器,例如ARM和MIPS,其处理器IP在基于软核的设计流程中很难得到保护,所以ARM或MIPS内核一直无法以软IP的形式提供给FPGA厂商,但是不同于主流的基于SRAM的FPGA,Actel基于Flash技术的FPGA可以保证商用IP在器件中安全的运行。
Actel公司IP市场经理Mike Thompson表示,较之于所有其它同类处理器使用的总和,ARM处理器在设计中获采纳的比例为5比1。CoreMP7与ARM7TDMI-s完全兼容,大多数客户以往用过ARM处理器核。进一步说都拥有现成的ARM代码,以及所熟悉的开发工具。对ARM架构的熟悉,可以节省Actel客户的开发时间。
与Actel选择不同结构的产品进而转战其它市场不同,Lattice希望可以与Altera和Xilinx展开直接竞争,在不断扩充产品的同时寻求差异化。在嵌入式处理器方面,Lattice也在延续这种竞争的策略,与MicroBlaze和Nios Ⅱ一样,Lattice的LatticeMico32软核处理器也很容易嵌入到FPGA中,Lattice IP及应用设计经理谢征帆先生强调,与前两者有所不同的是,Lattice开放了LatticeMico32以及外围元件的HDL源代码,用户能更好地理解微处理器核的结构和工作的内部细节,同时可以自行修改代码,增加设计的移植性。软件的开发工具,包括基于GNU的编译器、汇编器、连接器和调试器也都是开放源码的。甚至LatticeMico32软核处理器可以用在Lattice公司以外的产品中,包括ASIC、结构化ASIC以及其他厂商的FPGA中。
绝大多数的嵌入式系统只需一个内核,比如消费类产品、网络通讯以及工业系统。多处理器常用于高端数据处理的情况,比如对于一些视频处理比较复杂的算法或者有大量复杂协议处理的应用,可能需要两个以上的嵌入式处理器。在一个FPGA中可以实现多个处理器,比如说两个MicroBlaze或Nios Ⅱ,或者更多数目。这之中没有定式,完全取决于客户期望的目标来灵活实现不同的应用模式,例如一个MicroBlaze作为主控制器,另一个做特殊任务处理器;或者两个MicroBlaze相互独立的执行各自的任务。正因为如此,这个优势是一般已经固化了外设和定制功能的ASSP和ASIC无法比拟的。为此,针对多核应用的调试工具也已经应运而生,Altera和Xilinx都获得了德国知名的微处理器开发工具的供应商Lauterbach的支持,Lauterbach的TRACE32ICD-Debugger和TRACE32 PowerTools调试工具支持多核的PowerPC、MicroBlaze以及Nios Ⅱ系统的开发。
软核处理器的主要限制在于处理器的性能,但是在FPGA中嵌入式处理器的性能并不是很大的问题,原因在于关键的功能,比如各种复杂的DSP算法,可以通过硬件加速来实现,如今许多FPGA中都有大量的硬连线乘法器或乘累加单元,可用来定制硬件加速器。对于需要提高嵌入式软件性能的软件工程师而言,硬件加速器是非常重要的工具,与运行在软核中的代码相比,FPGA加速的代码的运行速度可以快几个数量级,消耗的功率则大大降低。
挑战在于硬件加速器的设计属于FPGA硬件设计范畴,需要开发人员熟练的掌握HDL,逻辑综合以及复杂的时序设计,同时要花费大量的时间,因此硬件加速器的设计就成为了瓶颈。
Altera最近开发了C2H(C语言至硬件加速)编译器,能够自动生成硬件加速器,将关键的,特别是包含复杂的数学逻辑算法的C代码转换成硬件加速器并在FPGA中运行,简单的说,C2H编译器所需要做的工作就是:
·分析软件代码,确定出现性能瓶颈的函数
·在Nios Ⅱ IDE中高亮显示所需的函数,右键单击加速
·查看Nios Ⅱ C2H编译器结果,根据需要修改C代码,进行优化
C2H编译器属于ESL工具,按照Synopsys对ESL工具的定义,ESL工具提供了C语言到硬件描述语言的转换。ESL有两个主要的设计流程:高级语言综合和系统建模,高级语言综合中包括模块生成和硬件加速,模块生成的方法可以将C代码直接综合成RTL代码,在FPGA中直接实现DSP模块,这种方法可以在很大程度上提高设计效率,但需要对C综合工具有透彻的理解;如果选用嵌入式处理器,可以利用FPGA资源为其创建一个硬件加速器,这种方式只是将关键的操作以硬件加速器的形式放置到FPGA逻辑中去执行,相比生成DSP模块的方式更加简单,C2H编译器即属于硬件加速工具。系统建模是指用C++来编写仿真模型,从而加速系统的仿真速度。
Altera和Xilinx最近都启动了相关的ESL计划,与主要的ESL厂商合作开发设计工具,这些工具对嵌入式处理器内核的支持也包含在其中。通过使用ESLI具,以往并不擅长FPGA硬件设计的软件或系统工程师也可以进入FPGA领域,与FPGA相关的嵌入式设计的数量还会进一步增加。
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dzcp/dzcp200621/dzcp20062118-1-l.jpg)
从Xilinx、Altera到Actel、Lattice,FPGA提供商都已经有可在FPGA逻辑模块旁实现的“硬”核,或者可以直接在FPGA结构中运行的“软”核处理器。硬核的好处是能够提供更快的数据处理能力,所谓软核需要FPGAV商提供的PLD软件进行配置,然后固化到FPGA中。与硬核相比,软核具有更好的灵活性,在目标器件中可以进行任意配置,根据具体设计需要灵活选择IP模块和外设。
Xilinx除了32位的嵌入式PowerPC硬核之外,还支持8位的PicoBlaze和32位的MicroBlaze两个软内核。Xilinx亚太区高端产品市场经理梁晓明先生表示,高端和低端FPGA嵌入式市场都在迅速成长,所以Xilinx会持续兼顾发展这三种嵌入式处理器,Altera只提供软核,其32位NiosII软核处理器与Xilinx的MicroBlaze旗鼓相当,同样都是目前市场上最通用的嵌入式FPGA处理器。
最近NiosⅡ和MicroBlaze都增加了对新的IEEE754兼容浮点单元的支持。Altera公司亚太区产品和渠道营销工程师王冬刚先生解释说,IEEE754标准定义了在计算机中表示浮点的一套格式。这一特性的优点在于能够更精确地表达数字,只要是需要高精度计算的场合都可以考虑用浮点处理单元改善计算精度。就像浮点表示在Intel的Pentium系列CPU中成为标准一样,越来越多的嵌入式应用需要这一特性,比如进程控制,图像处理,汽车中电机转速的精确表示等等。
另一家FPGA供应商Actel期望在不同市场层面上与Altera和Xilinx展开竞争。Actel在其FPGA中嵌入了32位的ARM7微处理器内核CoreMP7。传统的嵌入式处理器,例如ARM和MIPS,其处理器IP在基于软核的设计流程中很难得到保护,所以ARM或MIPS内核一直无法以软IP的形式提供给FPGA厂商,但是不同于主流的基于SRAM的FPGA,Actel基于Flash技术的FPGA可以保证商用IP在器件中安全的运行。
Actel公司IP市场经理Mike Thompson表示,较之于所有其它同类处理器使用的总和,ARM处理器在设计中获采纳的比例为5比1。CoreMP7与ARM7TDMI-s完全兼容,大多数客户以往用过ARM处理器核。进一步说都拥有现成的ARM代码,以及所熟悉的开发工具。对ARM架构的熟悉,可以节省Actel客户的开发时间。
与Actel选择不同结构的产品进而转战其它市场不同,Lattice希望可以与Altera和Xilinx展开直接竞争,在不断扩充产品的同时寻求差异化。在嵌入式处理器方面,Lattice也在延续这种竞争的策略,与MicroBlaze和Nios Ⅱ一样,Lattice的LatticeMico32软核处理器也很容易嵌入到FPGA中,Lattice IP及应用设计经理谢征帆先生强调,与前两者有所不同的是,Lattice开放了LatticeMico32以及外围元件的HDL源代码,用户能更好地理解微处理器核的结构和工作的内部细节,同时可以自行修改代码,增加设计的移植性。软件的开发工具,包括基于GNU的编译器、汇编器、连接器和调试器也都是开放源码的。甚至LatticeMico32软核处理器可以用在Lattice公司以外的产品中,包括ASIC、结构化ASIC以及其他厂商的FPGA中。
绝大多数的嵌入式系统只需一个内核,比如消费类产品、网络通讯以及工业系统。多处理器常用于高端数据处理的情况,比如对于一些视频处理比较复杂的算法或者有大量复杂协议处理的应用,可能需要两个以上的嵌入式处理器。在一个FPGA中可以实现多个处理器,比如说两个MicroBlaze或Nios Ⅱ,或者更多数目。这之中没有定式,完全取决于客户期望的目标来灵活实现不同的应用模式,例如一个MicroBlaze作为主控制器,另一个做特殊任务处理器;或者两个MicroBlaze相互独立的执行各自的任务。正因为如此,这个优势是一般已经固化了外设和定制功能的ASSP和ASIC无法比拟的。为此,针对多核应用的调试工具也已经应运而生,Altera和Xilinx都获得了德国知名的微处理器开发工具的供应商Lauterbach的支持,Lauterbach的TRACE32ICD-Debugger和TRACE32 PowerTools调试工具支持多核的PowerPC、MicroBlaze以及Nios Ⅱ系统的开发。
软核处理器的主要限制在于处理器的性能,但是在FPGA中嵌入式处理器的性能并不是很大的问题,原因在于关键的功能,比如各种复杂的DSP算法,可以通过硬件加速来实现,如今许多FPGA中都有大量的硬连线乘法器或乘累加单元,可用来定制硬件加速器。对于需要提高嵌入式软件性能的软件工程师而言,硬件加速器是非常重要的工具,与运行在软核中的代码相比,FPGA加速的代码的运行速度可以快几个数量级,消耗的功率则大大降低。
挑战在于硬件加速器的设计属于FPGA硬件设计范畴,需要开发人员熟练的掌握HDL,逻辑综合以及复杂的时序设计,同时要花费大量的时间,因此硬件加速器的设计就成为了瓶颈。
Altera最近开发了C2H(C语言至硬件加速)编译器,能够自动生成硬件加速器,将关键的,特别是包含复杂的数学逻辑算法的C代码转换成硬件加速器并在FPGA中运行,简单的说,C2H编译器所需要做的工作就是:
·分析软件代码,确定出现性能瓶颈的函数
·在Nios Ⅱ IDE中高亮显示所需的函数,右键单击加速
·查看Nios Ⅱ C2H编译器结果,根据需要修改C代码,进行优化
C2H编译器属于ESL工具,按照Synopsys对ESL工具的定义,ESL工具提供了C语言到硬件描述语言的转换。ESL有两个主要的设计流程:高级语言综合和系统建模,高级语言综合中包括模块生成和硬件加速,模块生成的方法可以将C代码直接综合成RTL代码,在FPGA中直接实现DSP模块,这种方法可以在很大程度上提高设计效率,但需要对C综合工具有透彻的理解;如果选用嵌入式处理器,可以利用FPGA资源为其创建一个硬件加速器,这种方式只是将关键的操作以硬件加速器的形式放置到FPGA逻辑中去执行,相比生成DSP模块的方式更加简单,C2H编译器即属于硬件加速工具。系统建模是指用C++来编写仿真模型,从而加速系统的仿真速度。
Altera和Xilinx最近都启动了相关的ESL计划,与主要的ESL厂商合作开发设计工具,这些工具对嵌入式处理器内核的支持也包含在其中。通过使用ESLI具,以往并不擅长FPGA硬件设计的软件或系统工程师也可以进入FPGA领域,与FPGA相关的嵌入式设计的数量还会进一步增加。
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”