LabVIEWFPGA教程.docx
《LabVIEWFPGA教程.docx》由会员分享,可在线阅读,更多相关《LabVIEWFPGA教程.docx(8页珍藏版)》请在冰豆网上搜索。
![LabVIEWFPGA教程.docx](https://file1.bdocx.com/fileroot1/2023-1/14/ed43c17f-12d1-4ae7-9199-35819e6c3091/ed43c17f-12d1-4ae7-9199-35819e6c30911.gif)
LabVIEWFPGA教程
[LabVIEWFPGA教程]将外部IP导入LabVIEWFPGA
概览
通过将第三方IP集成到NILabVIEW软件,您能使用许多的针对Xilinx现场可编程门整列(Field-programmablegatearrays,FPGA)进行优化的算法,在实现高性能的同时提高代码重用度。
LabVIEWFPGA模块提供两种方法用来实现外部代码的导入:
组件级IP(Component-LevelIntellectualProperty,CLIP)节点和IP集成节点。
本白皮书将讨论这两种方法。
1.CLIP节点介绍
2.在FPGA应用中使用CLIP
3.IP集成节点介绍
4.CLIP和IP集成节点的区别
5.相关资源
1.CLIP节点介绍
CLIP节点是一种用于将已有的FPGAIP导入LabVIEWFPGA硬件的同时通过LabVIEWFPGA程序框图与它进行通讯的框架。
一旦导入成功,相对于LabVIEWFPGA,IP可以独立地、并行地运行。
IP既能以原始VHDL的形式也能以诸如电子设计交换格式(Electronicdesigninterchangeformat,EDIF)网表等中间文件的形式存在。
这一功能要求使用者具有一定数字电路设计经验和VHDL的基本知识,因为所导入的IP通常是一种底层的硬件描述语言(Hardwaredescriptionlanguage,HDL)。
对于不同的FPGA目标,其所支持的CLIP也不同。
请参考目标硬件的的定义文档获取关于CLIP支持的信息。
部分FPGA目标可支持以下一种或者两种类型的CLIP:
用户定义的CLIP—导入VHDL代码,直接与FPGAVI进行通讯。
套接字CLIP—导入VHDL代码,直接和不与LabVIEWFPGA模块关联的一个FPGAVI以及FPGA引脚进行通信。
一些FPGA目标在FPGA中定义了一个您可以插入套接字CLIP的固定式CLIP套接字。
图1. 在由使用者定义的CLIP节点中导入VHDL代码可以与一个FPGAVI进行通讯;反之,一个套接字CLIP节点允许IP同时连接到FPGAVI和可用FPGA引脚。
获取最新的信息,请参考标题为使用VHDL代码作为组件级IP(FPGA模块)的LabVIEWFPGA模块帮助。
2.在FPGA应用中使用CLIP
以下步骤概述了在一个FPGA应用中使用CLIP的过程:
1.创建或者获取IP。
2.在FPGA目标属性中声明CLIP以及定义IP接口。
3.将CLIP添加到项目中。
4.在一个FPGAVI中使用CLIP。
创建或者获取IP
要将CLIP添加到一个FPGA目标中,您必须提供VHDL代码形式的IP以编译成FPGA对象。
您能使用以下方式提供VHDL代码:
:
●创建VHDL代码。
●通过其它的硬件描述语言(HDL)创建您自己的可兼容IP核心,例如通过XilinxCOREGenerator利用Verilog进行创建。
●从Xilinx或合作伙伴那购买IP核心。
注意:
在LabVIEWFPGA的COREGeneratorIP选板中有超过50种XilinxIP模块,无需使用CLIP或IP集成节点导入IP模块您就能将其集成到您的LabVIEWFPGAVI的数据流中。
了解如何使用XilinxCOREGeneratorIP选板提高IP的重用度。
在使用CLIP节点时,需要特别注意的是LabVIEWFPGA所支持的数据类型以及如何将它们转换为VHDL数据类型。
如果您的IP使用的逻辑向量并不不是表一中所列的数据类型之一,您必须编写一个VHDL外层程序来对标准LabVIEW类型进行扩展、缩短或者分解,从而符合IP的数据宽度。
请参考LabVIEWFPGA模块帮助,获取更多关于您IP的注意事项,包括使用外部时钟 、交叉时钟域、使用同步寄存器、执行异步重置,以及使用约束和层次条件。
FPGA模块数据类型
VHDL数据类型
布尔
标准逻辑位
U8和I8
8位标准逻辑矢量
U16和I16
16位标准逻辑矢量
U32和I32
32位标准逻辑矢量
U64和I64
64位标准逻辑矢量
定点数(FXP)
x+1位标准逻辑矢量
x的区间为[0,63].
表1. CLIP接口支持使用的数据类型
在FPGA目标的属性中声明CLIP以及定义IP接口
注意:
以下示例使用附件中的simple_and.vhd文件演示如何将IP导入到一个由用户定义的CLIP节点。
为了将IP的输入和输出映射到LabVIEW的I/O,使用FPGA目标属性向导创建一个定义了IP必要属性的XML文件。
按照以下步骤完成这个任务。
1.创建一个带有FPGA硬件新LabVIEW项目。
右键点击FPGA目标,并选择属性。
属性对话框有一段标有“组件级IP(Component-LevelIP)”的部分。
点击创建文件按钮创建XML文件。
图2. 点击“CreateFile”开始定义XML声明文档。
1.点击AddSynthesisFile…按钮,并浏览代表顶层组件IP(即simple_and.vhd)的VHDL文档.再点击Next>
图3. 添加了您的IP的综合文件后,点击Next>。
2.配置向导的余下部分用来安装XML声明文档。
本例中,点击Next>按钮默认安装向导的余下部分,验证输入文件的语法,再点击剩下的Next>按钮。
图4. 配置向导中生成的XML声明文件必须为导入的IP模块而列出。
一旦您完成了CLIP配置向导,CLIP声明名称(在XML文档中已定义)将出现在文件的路径旁。
在本对话框中,您能够为需要导入的所有不同IP模块声明多个CLIP节点。
将一个CLIP项添加到一个LabVIEW项目中
在FPGA中声明CLIP实际上并没有将它添加到项目中去,因为你能够在同一个FPGA上完成一个CLIP的多个实例。
在下一步中,你将创建一个先前已经被声明的simpleANDCLIP项的实例。
1.右键点击FPGA目标,并选择NewComponent-LevelIP。
在CLIP对话框中会出现选择所需的CLIP,给这个实例一个唯一的标识名,以及通过“Clock”信号类型,选择时钟连接到CLIP中的任意线路。
在本例中,后面两个选项默认不选。
图5. 本对话框显示当你将一个CLIP的实例添加到项目中后,选择CLIP,定义一个名称,同时配置时钟。
2.一旦您点击本对话框中的OK按钮,本CLIP和出现在项目中的所有与之相关的输入和输出都被标有该实例的名称。
图6. 添加CLIP后的项目后,显示IP的所有I/O节点。
在CLIP和一个FPGAVI之间传递数据
此时,你已经准备好在CLIP和FPGAVI间进行通讯。
你要做的只是从项目中将所需的I/O节点拖放到FPGA框图中。
您的IP必须具有如何使用IP的文档。
比如,许多IP模块使用一些类型的握手线用于数据的输入和输出,它们通常被标记为“datavalid”或者“enable”。
使用LabVIEW的数据类型,在正确的时间发送正确的数值,即可运行IP。
您可将CLIPI/O放置在一个单周期定时循环(Single-cycleTimedLoop,SCTL)内部或者外部,但是请记住,在一个SCTL内部,你可能需要考虑时钟域交叉以及使用同步寄存器。
图7. 为了在LabVIEWFPGA中与CLIP进行通讯,将项目窗口中IP输入和输出拖放到FPGAVI的框图中。
图8. 使用CLIP,整个的LabVIEWFPGA方框图与所导入的IP进行通讯。
3.IP集成节点介绍
注意:
这个IP集成节点范例将导入附件中的demo_adder.vhdIP模块。
1.创建一个带有FPGA目标的LabVIEW项目,同时在FPGA目标下添加一个新的VI
2.在新建的VI的程序框图中,从编程选板中拖放一个IPIntegrationNode,保存FPGAVI,再双击节点打开配置向导对话框。
图9. 双击IP集成节点,使用属性配置向导开始导入步骤。
1.点击AddSynthesisFile,在弹出的窗口中选择demo_adder.vhd文档。
2.返回到配置向导对话框,两次点击Next>选择默认选项。
3.在文件生成步骤,首先确认导入的VHDL文档的语法,然后通过点击如下所示的各个按钮生成支持文件。
图10. 配置向导使帮助您在生成必须的LabVIEW支持文件之前检查您的VHDLIP的语法。
1.一旦IP生成成功,在后续的三步中选择Next>保持默认选项。
2.在配置向导的最后一步中,你能够为不同的终端选择数据类型。
对这一IP模块,默认的定点数据类型即可满足要求。
点击Finish按钮完成生成。
3.IP集成节点现已配置成功,同时您可以将其集成进您的其它的LabVIEWFPGA应用中。
图11. IP集成节点及其集成的IP
4.CLIP和IP集成节点的区别
CLIP和IP集成节点是将外部IP导入LabVIEWFPGA的两种方式,你必须根据以下的标准在二者之间进行选择。
CLIP节点能够与您在LabVIEWFPGA中开发的IP独立地并行运行。
此外,CLIP能够直接与FPGA时钟和I/O引脚进行联接。
与此相反,IP集成节点则被植入LabVIEWFPGA程序框图中,并按照LabVIEWVI数据流所定义的方式执行。
作为LabVIEW数据流的一部分,使用周期精准的仿真工具,IP集成节点使您可以验证整体的应用行为和时序。
表格2. 概述了两种节点之间的区别。
5.相关资源
按需提供的培训:
使用CLIP)将外部代码导入LabVIEWFPGA(需要SSP)
LabVIEW官方主页