LabVIEW FPGA开发板实验1-指示灯闪烁
长石测控
2025年08月08日 16:21
收录于文集
共5篇

B站的小伙伴们大家好,今天给大家分享我们LabVIEW FPGA开发板第一个实验——指示灯闪烁,有任何问题都可以在评论区留言哦。

软件环境:LabVIEW 2020中文版

硬件环境:ZYNQ7020开发板

1.打开labview,点击FPGA学习项目并打开,如果之前没创建过该项目可以点击创建项目按钮进行创建,如下图。

2.右键我的电脑->点击新建->点击终端和设备。

3.点击后弹出下图右侧窗口,窗口上方选择现有终端设备->搜索现有终端或设备,稍等一会后在下方点击FPGA终端前面的+,此时软件会弹出左侧窗口,选择和板卡同一网段的IP后,点击确定。如下图。

4.点击确定后,在FPGA终端文件夹下会产生一个新文件夹CSCK,里面能够看到程序自动识别的开发板,点击一下这个自动识别的板卡IP,然后点击确定按钮。如下图。

5.此时在我的电脑中成功新建FPGA终端(192.168.1.30)。我们第一个实验需要控制指示灯闪烁,所以需要添加一下指示灯对应的IO。选择终端单击鼠标右键,选择新建,点击FPGA I/O。如下图

6.点击后弹出新窗口,在左侧可用资源框选择按钮指示灯后,点击它右边的蓝色小箭头,右侧新建FPGA I/O框中添加成功。如下图所示。这样一次就把板卡所有的按钮指示灯相关IO都添加到项目里面了,方便后续做别的实验。

7.点击确定后,回到窗口之后展开文件,可以看到刚刚所添加成功FPGA I/O。如下图。需要注意的是LabVIEW FPGA的IO想要实现输入输出功能需要三个状态控制,分别是输入状态、输出状态、使能状态。使能状态为假时,当前IO为输入状态,当使能状态为真时,当前IO为输出状态。如果不设置使能状态,则IO默认为输入状态,也就是以OUT结尾的变量不起作用。

8.继续右键FPGA终端,光标移动到新建,点击VI。创建一个新的VI,如下图。

9.在新建VI的前面板上,空白处右键选择布尔控件,拖拽一个指示灯放在前面板上。接着继续右键,选择数值,拖拽一个滑动杆放在前面板上。如下图。

10.之后右键滑动杆控件,点击属性,弹出属性窗口,在上方菜单栏选择数据类型,将类型选择为无符号长整型(U32),再将滑动杆底部的数值修改,最左侧至最右侧为最小值-最大值,这里修改为100-2000,也就是0.1s- 2s。滑动杆的作用是控制指示灯闪烁的频率,U32类型是为了匹配后面的延时函数。如下图。

11.接着回到程序框图面板,在上方菜单栏中选择窗口,点击项目浏览器。弹出窗口,将CORE_LED1_ENA拖到程序框图面板上。同样将CORE_LED1_OUT拖出,如下图。

12.空白处右键,函数面板选择结构,拖拽一个while循环出来。将除CORE_LED1_ENA外的控件放在循环内部。然后右键CORE_LED1_ENA和CORE_LED1_OUT,将这两个都转换为写入。之后右键循环边框,选择添加移位寄存器,如图。

13.在空白处右键,函数面板选择布尔,拖拽非函数到循环中,然后将移位寄存器和非函数连线。

14.然后给移位寄存器创建一个常量,之后将灯和CORE_LED1_OUT与寄存器,非函数连线,这一步是通过循环、移位寄存器和非函数实现指示灯反复闪烁。

15.空白处右键,函数面板选择定时,拖拽一个等待函数。然后将函数的配置修改如图所示。这个等待函数有三种方式,一、滴答,就是时钟每走一次计数一次,目前板卡时钟是50mHz的,也就是每秒走50000000次,一般很少使用,如果需要实现类似功能会使用定时循环,那个才是LabVIEW FPGA里面的核心。二、uSec,就是实现微妙级延时。后续想要实现实时闭环主要靠这个函数。三、mSec,就是实现毫妙级延时。一般就是控制指示灯、按钮检测这种外设才会使用。

16.右键CORE_LED1_ENA,给它创建一个常量,这一步是打开核心板灯使能,,然后给循环中右下角的循环条件创建一个F常量,让循环永远运行下去。然后将CRE_LED1_ENA和循环连线,滑动杆和等待函数连线,如图。再次提醒一下,我们想控制指示灯亮灭,对于FPGA讲这是一个输出信号,所以需要将使能打开。

17.程序写完之后,点击运行,弹出窗口并保存。然后LabVIEW后台自动将vi代码转为vivado能识别的VHDL语言(不是verilog哦,VHDL相对来说语法更严谨一些,适合一些大型项目的开发),如图。

18.转换完毕后就调用vivado后台自动实现对代码的综合、布局、布线等操作,编译时可以点击下拉列表查看更多信息,如配置,估计设备使用,最后设备使用等。

通过最终逻辑片的使用可以看到仅仅是一个控制指示灯闪烁的程序就已经用了806个逻辑片了,但这个资源不是我们程序占用的,而是整个LabVIEW FPGA开发框架占用的,这个框架实现了在线前面板交互和Host节点交互,具体细节后面慢慢细说。

19.编译完成后,LabVIEW会自动将生成的bit文件打包成lvbit文件,然后更新我们开发板的FPGA,更新完成后就可以实现在线前面板交互了。此时可以看到板卡和前面板的指示灯同步闪烁,闪烁的频率也可以通过拖动滑动杆来控制。

20.最后问小伙伴一个问题,就是LabVIEW和开发板是通过什么互相通讯的?答案就在最后两张图片里面哦!