利用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内核来执行浮点平方根运算

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

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

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

    图13: 生成IP内核。

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

    图14: 完成生成过程。

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

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

  7. 最后,为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块。