利用Xilinx生成IP提高IP用率

概览

要提高软件开发效率,有效的代码复用至关重要。在现场可编程门阵列(FPGA)硬件中,可重复使用的代码块通常被称为IP块。NI LabVIEW FPGA模块提供了多种方法来访问产品中的IP块。虽然LabVIEW FPGA模块为数学和信号处理提供了许多内置功能,但使用其他来源的现成IP库也很常见。 LabVIEW 2011 FPGA模块及更高版本包括一套由Xilinx创建并针对Xilinx FPGA硬件精心调试的高性能库。要提高您的FPGA项目生产力,请详细了解Xilinx内核生成器IP选板的功能以及使用方式。

内容

Xilinx内核生成器选板概览

基本功能

基础IP选板包括高度优化的累加器、计数器和存储器发生器函数。您还可以使用DSP48宏函数,通过配置向导生成自定义IP。宏向导通过指定指令、流水线配置和端口来指导您对DSP48进行自定义,这样一来,您无需手动配置这些复杂设置,即可利用DSP48的强大功能。

图1.使用DSP48宏函数,您可以快速配置和生成用于LabVIEW FPGA的自定义IP块。

 

 IP产品页面IP

 

图2.BaseIP LabVIEW FPGA选板

乘法累加器

乘加器

 

 

图3.基础元素(Basic Element)LabVIEW FPGA选板

累加器

二进制计数器

块存储器生成器

分布式存储器生成器

基于RAM的移位寄存器

DSP48宏

 

数字信号处理(DSP)

DSP内核生成器选板包括滤波器和变换库,可加快信号处理应用的开发。尽管基于配置,但内核生成器向导显示了各种各样的参数,其中包括资源使用估算和IP符号,可清楚地显示当前的端口利用率。通过这种高度参数化的方法,您可以在生成自定义IP时实现较大的灵活性和高效率。

图4.Xilinx内核生成器对话框显示了许多IP参数和规格,可帮助您根据特定的应用需求自定义内核。

 

图5.数字信号处理(Digital Signal Processing)选板

IP产品页面

坐标旋转数字计算机(CORDIC)

级联积分梳状编译器

数字上变频器和下变频器(DUC/DDC)编译器

离散傅立叶变换

LTE快速傅里叶变换(FFT)1

1您需要获得Xilinx许可证,才能使用该内核生成器IP内核。有关更多信息,请参阅IP产品页面。

数学函数

内核生成器选板提供从基本到高级的各种数学函数。例如,该选板包括一个用于生成IP的模块,可在FPGA上转换为浮点数并对其执行基本操作。如图6所示,您可以使用IP配置向导来轻松选择您想为之生成代码的浮点运算。

图6.Xilinx内核生成器浮点运算符IP内核为LabVIEW FPGA提供了浮点函数库。

图7.数学函数选板

IP产品页面

 

加法器/减法器

CORDIC

除数生成器

浮点运算符

乘法器

存储数据存储元素

 

图8.存储器和存储元素选板

IP产品页面

先进先出(FIFO)发生器

块存储器生成器

分布式存储器生成器

 

高级行业特定选板

内核生成器IP选板包括两个通信和图像处理选板,可以重复使用,从而缩短FPGA设计时间。

通信网络

图9.通信和网络选板

IP产品页面

错误修正IP  

卷积编码器

3GPP Turbo解码器1

3GPP Turbo编码器1

3GPP2 Turbo解码器1
3GPP2 Turbo编码器1

3GPP LTE Turbo解码器1

3GPP LTE Turbo编码器1

IEEE 802.16e CTC解码器1

IEEE 802.16e CTC编码器1

DVB-S.2 FEC编码器1

交织器/解交织器1

IEEE 802.16e LDPC编码器1

Reed-Solomon解码器1

Reed-Solomon编码器1

Viterbi解码器1

电信IP

3GPP RACH序言检测器1

3GPP搜索器1
LTE DL通道编码器1

LTE RACH检测器1

LTE UL通道解码器1

LTE FFT 1

无线IP

3GPP LTE信道估计器1

3GPP LTE MIMO解码器1

3GPP LTE MIMO编码器1

DPD1

DUC/DDC

波峰削减-波峰系数削减1

 

1您需要获得Xilinx许可证,才能使用该内核生成器IP内核。有关更多信息,请参阅IP产品页面。

视觉图像处理

图10.视频和图像处理(Video & Image Processing)选板

IP产品页面

RGB至YCrCb颜色-空间转换器

YCrCb至RGB颜色-空间转换器

颜色校正矩阵1

滤色阵列内插法1

Gamma校正1
图像边沿增强1
图像降噪1
运动自适应降噪1
视频屏幕显示1
视频缩放器1
视频定时控制器1

 

1您需要获得Xilinx许可证,才能使用该内核生成器IP内核。有关更多信息,请参阅IP产品页面。

 

获取Xilinx生成IP许可

如前所述,有些Xilinx IP块需要许可证。要了解有关许可费用和流程的更多信息,请单击上面的IP块链接。

图11.Xilinx IP产品页面包括需要许可的内核生成器块的评估和订购信息。

 

使用生成IP开发注意事项

与LabVIEW FPGA中的其他高性能IP块类似,在应用中使用内核生成器库时,有一些开发注意事项需要谨记。内核生成器IP只能在单周期定时循环中执行。因为内核生成器IP通常包含内部流水线,类似于高性能数学函数,输出数据不是在每个时钟上验证的,您需要使用IP控制信号输出在数据得到验证时发出信号。

此外,Xilinx内核生成器库支持仅限于Xilinx Virtex-5和Spartan-6 FPGA,因此,请确保您使用的NI可重配置I/O硬件包括这些FPGA终端之一。

请查阅产品页面上的IP块数据表,了解更多详细注意事项。

生成IP集成LabVIEW

使用内核生成器选板上的浮点运算符IP内核来执行浮点平方根运算

  • 创建一个新的LabVIEW FPGA项目(本例针对的是NI cRIO-9113机箱中的Virtex-5 FPGA)。
  • 创建一个新的FPGA VI。依次选择编程(Programming) » Xilinx Coregen IP »数学函数(Math Functions) »浮点(Floating-point),将浮点IP内核拖到FPGA程序框图中。
  • 保存VI并双击IP块,打开“Xilinx浮点v5.0节点属性”(Xilinx Floating-point v5.0 Node Properties)窗口。要启动内核生成器IP配置向导,请单击“启动Xilinx内核生成器”(Launch Xilinx CORE Generator.)。


    图12.启动Xilinx内核生成器。

  • 在对话窗口中,选择要执行的浮点函数(在本例中选择的是“平方根”(Square-root))。单击其余步骤,将其他向导设置保留默认状态,然后单击“生成”(Generate)按钮。IP内核的生成可能需要几分钟的时间才能完成。

    图13.生成IP内核。

  • IP生成完成后,将“Xilinx浮点v5.0节点属性”(Xilinx Floating-point v5.0 Node Properties)窗口的后续两个属性保留为默认设置。您可以通过选择时钟信号和配置重置行为,来自定义IP块。单击“完成”(Finish),结束生成过程。

    图14.完成生成过程。

  • 重复执行第二步至第五步,再生成两个IP块,一个用于定点转浮点数据类型,另一个用于浮点转定点数据类型。在浮点运算符内核生成器配置向导的第一步中选择该功能,如图15所示。

    图15.浮点运算符内核生成器向导

  • 最后,为IP块连线并将逻辑置于单周期定时循环内,如图16所示。
  • 图16.为IP块连线并将逻辑置于单周期定时循环内。

    现在,您已经实现了浮点平方根运算,可以将其纳入新的或现有的LabVIEW FPGA应用中。

    导入第三IP其他方法

    如果您已经获得或创建了其他VHDL或Verilog IP,可以使用组件级IP(CLIP)节点或IP集成节点将其导入。

    要了解更多信息,请参阅将外部IP导入LabVIEW FPGA

    适用FPGA先进、功能

    您拥有的IP越多,就能越有效地完成LabVIEW FPGA应用。Xilinx内核生成器IP选板拥有50多个IP内核,为您提供了更多针对Xilinx FPGA进行了优化的高级功能。利用其中包含的基于配置的向导,您可以为特定应用轻松设置和自定义IP块。