为软件工程师揭开 FPGA 的神秘面纱
时间:10-18
来源:互联网
点击:
作者:赛灵思公司 Glenn Steiner Dan Isaacs
随着产品设计复杂性的增加,需要使用集成组件(如ASSP)来满足设计上的要求。几年前,工程师会针对处理器、存储器和外设选择单独的组件,然后通过分立逻辑器件将这些元素拼合到一起。后来,他们会搜索ASSP处理系统目录,试图找出最相称的组合,以满足系统要求。当他们需要其他逻辑或外设时,通常会将某个FPGA与某个ASSP配对来完成解决方案。的确,调查表明FPGA在目前全部嵌入式系统中的使用比例占50%〜70%。
在过去的几年中,FPGA的尺寸有了增加,在单个器件中提供了足够的空间来容纳完整的处理器和逻辑系统。现在,软件工程师需要为FPGA内部的处理器开发和调试代码。在有些情况下,他们害怕这么做。不过,通过掌握FPGA基础知识并了解如何创建和调试用于FPGA嵌入式处理器的代码可以让他们坦然面对。
FPGA是什么?
现场可编程门阵列(field-programmable gate array,FPGA)是一种集成电路,其中包含的逻辑可以在制造后进行配置和连接(即“现场模式”)。在这方面,过去工程师会从产品目录中购买各种逻辑器件,然后通过印刷电路板上的连接将它们组装成一个逻辑设计,而现在的硬件设计人员可以在单个器件中实施完整的设计。形式最简单的FGPA中包括:
● 由与、或、非及其他许多逻辑函数组成的可配置逻辑块
● 使逻辑块可以连接到一起的可配置互连功能
● I/O接口
利用这些元素,用户可以创建任意逻辑设计。
硬件工程师通常用HDL(一般是Verilog或VHDL)编写代码,然后将设计汇编到一个对象文件中,该文件可加载到器件中供执行。在表面上,HDL程序可能看起来很像C语言之类的高级语言。
FPGA的技术优势
由于不使用ASIC以及没有与其关联的高额模板费用,FPGA是实现数据处理元素最灵活且高性价比的方法。FPGA由于采用了灵活的架构,能够允许硬件设计人员实现同时包含并行和串行元素的处理系统。这样一来,设计人员可以针对性能和延迟对系统进行优化。通常,与使用通用处理器可获得的性能相比,这些数据处理系统获得的性能级别更高,但成本却更低。
您可以将外部微处理器耦合到FPGA中的某个数据处理系统上,然后用它进行控制。但是,在FPGA中嵌入一个处理器可以提供几项优势。一个内部处理器可以极大地减少处理器与数据处理系统之间的延迟,能够消除大量处理器周期。处理器与数据处理系统之间的通信信道可以是32位或更高,拥有更多的寻址和控制线缆。对于一个外部处理器,这些增加的线缆可能需要更大的封装来容纳处理器和FPGA,从而抬高了系统成本。或者,也可以使用PCI Express(PCIe)来减少引脚的数量。而不幸的是,由于这是相对较新的接口,并非所有处理器和FPGA都支持PCIe。虽然PCIe具有与生俱来的高性能,但它是串行接口,因此会增加处理器与数据处理系统之间的延迟。
在FPGA中同时实现处理器与数据处理元素可以减少元件数量,缩小电路板空间,有时还能降低功耗。这可能产生一个成本显著降低的解决方案。FPGA中可提供固化的处理器实现(如ARM Cortex-A9处理器)或软核实现(如Xilinx MicroBlaze处理器)。基于FPGA的处理器还可根据应用的要求进行配置。基于FPGA的系统支持系统级的调优:它可以灵活地选择将计算功能在处理器或FPGA逻辑中实现。
实现技术
FPGA嵌入式处理系统的实现方法有很多种,但一般可将其分成三类:从头组装系统,使用向导将其组合到一起,或者通过修改现有设计实现。
FPGA工具可支持您从头组装一个处理系统,方法是:从列表中选择一个必需的IP,然后通过总线和线缆连接该IP。这样的组装虽然有效,但可能会耗费时间。
为了加快速度,FPGA工具还允许通过向导快速组装微处理器系统。通过使用下拉列表或复选框,可以轻松指定目标部件以及所需的处理器和外设。图1展示了向导启动的介绍窗口以及向导生成的最终系统。类似地,也可以使用 MATLAB?软件之类的工具,快速地将数据处理系统与用于控制的处理器总线接口组装起来。然后,只需匹配总线接口,就可将处理器与数据处理系统连接起来。
嵌入式处理系统的第三种实现方法是修改现有的参考设计,或将其添加到现有的硬处理器系统上。FPGA参考设计和硬处理器系统会继续演变,其中许多会变得更加侧重于市场。在许多情况下,设计均非常全面,无须硬件设计人员增加任何额外的组件。软件设计人员通常会找到完整的驱动程序,以及为这些参考设计预置的操作系统。
前面提及的前两种方法都是创建处理器系统的有效方法。但是,第三种方法从现有的经过验证的参考设计入手,因此可以极大地减少硬件和软件工程师的开发时间。
随着产品设计复杂性的增加,需要使用集成组件(如ASSP)来满足设计上的要求。几年前,工程师会针对处理器、存储器和外设选择单独的组件,然后通过分立逻辑器件将这些元素拼合到一起。后来,他们会搜索ASSP处理系统目录,试图找出最相称的组合,以满足系统要求。当他们需要其他逻辑或外设时,通常会将某个FPGA与某个ASSP配对来完成解决方案。的确,调查表明FPGA在目前全部嵌入式系统中的使用比例占50%〜70%。
在过去的几年中,FPGA的尺寸有了增加,在单个器件中提供了足够的空间来容纳完整的处理器和逻辑系统。现在,软件工程师需要为FPGA内部的处理器开发和调试代码。在有些情况下,他们害怕这么做。不过,通过掌握FPGA基础知识并了解如何创建和调试用于FPGA嵌入式处理器的代码可以让他们坦然面对。
FPGA是什么?
现场可编程门阵列(field-programmable gate array,FPGA)是一种集成电路,其中包含的逻辑可以在制造后进行配置和连接(即“现场模式”)。在这方面,过去工程师会从产品目录中购买各种逻辑器件,然后通过印刷电路板上的连接将它们组装成一个逻辑设计,而现在的硬件设计人员可以在单个器件中实施完整的设计。形式最简单的FGPA中包括:
● 由与、或、非及其他许多逻辑函数组成的可配置逻辑块
● 使逻辑块可以连接到一起的可配置互连功能
● I/O接口
利用这些元素,用户可以创建任意逻辑设计。
硬件工程师通常用HDL(一般是Verilog或VHDL)编写代码,然后将设计汇编到一个对象文件中,该文件可加载到器件中供执行。在表面上,HDL程序可能看起来很像C语言之类的高级语言。
FPGA的技术优势
由于不使用ASIC以及没有与其关联的高额模板费用,FPGA是实现数据处理元素最灵活且高性价比的方法。FPGA由于采用了灵活的架构,能够允许硬件设计人员实现同时包含并行和串行元素的处理系统。这样一来,设计人员可以针对性能和延迟对系统进行优化。通常,与使用通用处理器可获得的性能相比,这些数据处理系统获得的性能级别更高,但成本却更低。
您可以将外部微处理器耦合到FPGA中的某个数据处理系统上,然后用它进行控制。但是,在FPGA中嵌入一个处理器可以提供几项优势。一个内部处理器可以极大地减少处理器与数据处理系统之间的延迟,能够消除大量处理器周期。处理器与数据处理系统之间的通信信道可以是32位或更高,拥有更多的寻址和控制线缆。对于一个外部处理器,这些增加的线缆可能需要更大的封装来容纳处理器和FPGA,从而抬高了系统成本。或者,也可以使用PCI Express(PCIe)来减少引脚的数量。而不幸的是,由于这是相对较新的接口,并非所有处理器和FPGA都支持PCIe。虽然PCIe具有与生俱来的高性能,但它是串行接口,因此会增加处理器与数据处理系统之间的延迟。
在FPGA中同时实现处理器与数据处理元素可以减少元件数量,缩小电路板空间,有时还能降低功耗。这可能产生一个成本显著降低的解决方案。FPGA中可提供固化的处理器实现(如ARM Cortex-A9处理器)或软核实现(如Xilinx MicroBlaze处理器)。基于FPGA的处理器还可根据应用的要求进行配置。基于FPGA的系统支持系统级的调优:它可以灵活地选择将计算功能在处理器或FPGA逻辑中实现。
实现技术
FPGA嵌入式处理系统的实现方法有很多种,但一般可将其分成三类:从头组装系统,使用向导将其组合到一起,或者通过修改现有设计实现。
FPGA工具可支持您从头组装一个处理系统,方法是:从列表中选择一个必需的IP,然后通过总线和线缆连接该IP。这样的组装虽然有效,但可能会耗费时间。
为了加快速度,FPGA工具还允许通过向导快速组装微处理器系统。通过使用下拉列表或复选框,可以轻松指定目标部件以及所需的处理器和外设。图1展示了向导启动的介绍窗口以及向导生成的最终系统。类似地,也可以使用 MATLAB?软件之类的工具,快速地将数据处理系统与用于控制的处理器总线接口组装起来。然后,只需匹配总线接口,就可将处理器与数据处理系统连接起来。
嵌入式处理系统的第三种实现方法是修改现有的参考设计,或将其添加到现有的硬处理器系统上。FPGA参考设计和硬处理器系统会继续演变,其中许多会变得更加侧重于市场。在许多情况下,设计均非常全面,无须硬件设计人员增加任何额外的组件。软件设计人员通常会找到完整的驱动程序,以及为这些参考设计预置的操作系统。
前面提及的前两种方法都是创建处理器系统的有效方法。但是,第三种方法从现有的经过验证的参考设计入手,因此可以极大地减少硬件和软件工程师的开发时间。
赛灵思 FPGA 嵌入式 集成电路 电路 硬件工程师 Verilog VHDL C语言 ARM Cortex Xilinx 总线 Linux 相关文章:
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)
- FPGA可帮助搜索引擎降低功耗和碳排放(09-12)
- 基于Spartan-3A DSP的安全视频分析(05-01)
- 赛灵思新版视频入门套件加快视频开发速度(05-29)
- 赛灵思“授之以渔”理论:危机中如何巧降成本(06-04)
- 赛灵思详解新近推出的FPGA领域设计平台(12-16)