为了提高软件开发效率,高效的代码重用至关重要。基于现场可编程门阵列(Field Programmable Gate Array, FPGA)硬件的可重复使用的代码模块通常被称为IP块。NI LabVIEW FPGA模块提供了许多方法访问IP模块,一些是在产品中,一些是ni.com/ipnet的网站上。尽管LabVIEW FPGA模块提供了许多内置的数学和信号处理函数,但通常情况下还是会使用现成的其它来源的IP库。 LabVIEW 2011版本的FPGA模块,包括了一系列由Xilinx建立的高性能的IP库,而且这个模块又针对Xilinx的FPGA硬件进行了优化。为了提高您开发FPGA项目的效率,请了解Xilinx CORE Generator IP面板更多的功能,以及如何使用它。
1. XilinxCORE Generator 面板总结
基本函数
基本的IP面板包括高度优化的累加器、计数器和内存生成器函数。您还可以使用DSP48宏功能,通过配置向导生成自定义的IP。这个宏向导步骤将通过具体的指令、管脚连线和接口配置,一步步教您对DSP48进行自定义。所以您无需手动配置这些复杂参数,就可以使用DSP48的强大功能。
图1. 使用DSP48宏功能,可以快速配置和生成一个针对LabVIEW FPGA自定义的IP模块。
数字信号处理(DSP)
DSP CORE Generator面板包括了滤波器和变换函数库,以加速信号处理应用的开发。CORE Generator向导虽然以配置为基础,但它能够展示各种参数,包括资源使用估计以及能够清楚地显示了当前端口的利用率的IP符号。有了这种高度参数化的方法,您可以灵活且高效地生成自定义IP。
图4. Xilinx的CORE Generator对话框列出了许多IP参数和规格,以帮助您为特定应用需求自定义IP 核。
您需要一个Xilinx的许可文件才能使用CORE Generator 的IP核。更多信息,请参考IP产品页面。
数学函数
CORE Generator面板的数学函数从初级到高级都有覆盖。例如,面板包含一个可以产生用于变换的IP以及一些关于FPGA上浮点数的基本运算。如图6所示,您可以使用IP配置向导轻松地为您想生成代码的地方选择浮点运算。
图6. Xilinx的CORE Generator浮点运算IP核提供了一个LabVIEW FPGA的浮点函数库。
内存和数据存储单元
高级工业专用面板
在CORE Generator IP面板上有两个通讯和图像处理面板,你可以重复使用它们,以减少您的FPGA设计时间。
通信与网络
您需要一个Xilinx的许可软件才能使用这一CORE Generator IP核。更多信息请参考IP 产品页面。
视觉和图像处理您需要一个Xilinx的许可软件才能使用这一CORE Generator IP核。更多信息请参考IP 产品页面。
2. Xilinx的CORE Generator IP模块的使用授权
如上所述,一些Xilinx 的IP模块需要许可证。要了解有关许可价格和流程,请点击上文列出的IP模块链接。
图11. Xilinx IP产品页面,提供了需要授权的CORE Generator模块的评价和订购信息。
3. COREGenerator IP开发注意事项
像使用其它高性能的LabVIEW FPGA IP模块一样,在实际应用CORE Generator库进行开发时,请注意一些事项。CORE Generator IP只能在单周期定时循环中执行。因为CORE Generator 的IP核往往是内部连线的,类似于高性能数学函数,输出数据并不是在每个时钟都有效。所以当数据有效时,您应该使用IP控制信号输出以示提醒。
此外,对Xilinx 的CORE Generator库的支持仅限于Xilinx Virtex- 5和Spartan- 3 FPGA,因此请确保您使用的NI可重配置I/ O硬件包括这些FPGA中的一种。更多更详细的注意事项,请查询产品页面上的IP块数据表。
4. 将一个CORE Generator IP模块整合到LabVIEW中
使用CORE Generator面板的浮点数运算IP核执行一个浮点平方根计算。
1. 创建一个新的LabVIEW FPGA项目(本例针对NIcRIO -9113底座的Virtex- 5 型FPGA)。
2. 创建一个新的FPGA VI。选择编程» Xilinx Coregen IP»数学函数»浮点,并将浮点IP核拖到FPGA框图中。
3. 保存VI,双击IP块打开Xilinx浮点V5.0节点属性窗口。要启动CORE Generator IP配置向导,单击启动Xilinx CORE Generator。
图12. 启动Xilinx CORE Generator
4. 在对话窗口中,选择一个浮点函数来执行(即求平方根)。在剩下的步骤中,其它设置保持默认,最后点击Generate按钮。 IP核生成可能需要几分钟才能完成。
图13. 生成一个IP核
5. 一旦IP生成完成后,将Xilinx浮点V5.0节点属性窗口剩下两个属性设为默认值。您可以通过选择一个时钟信号、配置一个复位行为, 来自定义您的模块。点击Finish完成生成过程。
图14. 完成生成过程
6. 将步骤二至步骤五重复两次,继续生成两个IP块,一个用于定点到浮点数据类型,另一用于浮点到定点数据类型。在浮点运算的CORE Generator配置向导第一步选择这个功能,如图15所示。
图15. 浮点运算的CORE Generator向导。
7. 最后,连接IP模块,将逻辑运算单元放置在一个单周期定时循环中,如图16所示。
图16. 连接IP模块,并将它们放置在一个单周期定时循环中
您现在已经实现了一个浮点平方根操作。您可以将它纳入新的或现有的LabVIEW FPGA应用中。
5. 导入第三方IP的其它方法
如果您没有在LabVIEW FPGA面板(包括CORE Generator面板)内找到一个想要的IP块,在ni. com/ipnet上有数百个免费的IP块可以下载。另外,如果您已获得或建立了其它VHDL或Verilog的IP,你可以使用组件级IP(Component-Level IP, CLIP)节点或IP集成节点导入它。
要了解更多信息,请阅读将外部IP导入LabVIEW FPGA。
6. 为FPGA提供的高级优化功能
在您的面板中IP越多,您完成自己LabVIEW FPGA应用的效率就越高。Xilinx的CORE Generato r IP面板提供的超过50款可用的IP核,更是给您提供了专为Xilinx FPGA优化设计的更先进的功能。使用自带的配置向导,您可以轻松地为您的特殊应用设置和定制IP块。
文章来源:NI官网