FPGA模块包含执行基本I/O的函数。但是,用户可能有需要自定义I/O功能的应用。将FPGA I/O节点作为构件来创建自定义I/O应用(例如,触发器和计数器)。

创建触发器

在多数应用中,执行操作前均需要等待触发。使用FPGA I/O方法节点的等待上升沿方法,可在单个数字输入端等待触发。

注: 可用的I/O资源及相关方法随终端和配置变化。关于可用方法和I/O资源的信息,见具体的FPGA终端硬件文档。

“等待上升沿”方法等待直至数字输入端满足任一用户指定的条件。在顺序结构的第一个帧内放置FPGA I/O方法节点,在下一个帧内放置用于该任务的LabVIEW代码,如以下程序框图所示。

FPGA I/O节点可创建更高级的触发事件。例如,仅在多个数字线满足给定条件时执行触发的应用。如下列程序框图所示。

在单周期定时循环内可放置配置了数字输入资源的FPGA I/O节点,且仅当数字输入满足触发器模式时退出单周期定时循环。在顺序结构的第一个帧内放置单周期定时循环。这个操作与上个范例中对等待上升沿方法的等待操作类似。

使用While循环可以同样的方式执行模拟触发器。在While循环中放置一个配置了模拟输入I/O资源的FPGA I/O节点和比较函数,当模拟输入的值满足可编程条件时触发。

创建计数器

计数器可以是简单的事件计数器,也可以是带有多个输入和输出端的复杂信号测量计数器。在While循环中使用FPGA I/O方法节点函数可创建简单事件计数器。例如,可使用等待上升沿方法等待数字输入接线端出现上升沿,如以下程序框图所示。

FPGA I/O方法节点检测到边沿后,程序框图的计数器值加1,且将计数器的值存储在While循环的移位寄存器内。使用前面板显示控件或局部变量可查看计数器的值。

注: 可用的I/O资源及相关方法随终端和配置变化。关于可用方法和I/O资源的信息,见具体的FPGA终端硬件文档。

FPGA I/O函数可创建更高级的计数器。例如,应用可能需要带有独立向上计数、向下计数及门输入和输出的计数器,如以下程序框图所示。

在上述程序框图中,当向上计数产生上升沿时,计数器的值加1。当向下计数产生上升沿时,计数器的值减1。当为高电平时,将阻止向上计数和向下计数改变计数器的值。向上计数向下计数为FPGA终端的指定数字I/O资源名称。计数器的值为4的倍数时输出值无效。在LabVIEW代码中可使用简单布尔判定确定计数器为升值计数、减值计数或保持不变。或者使用算术判定确定输出值是否无效。

FPGA I/O方法节点可用于测量输入信号,如以下程序框图所示。例如,用户可能需要测量输入信号的周期。可以在顺序结构的第一个帧内放置FPGA I/O方法节点,第二个帧内放置时间计数器Express VI。然后放置该顺序结构至While循环内。连线时间计数器VI返回的当前值至移位寄存器,以用作下一次执行的While循环的输入值。然后从当前时间中减去之前的时间,确定输入信号的周期。

提示使用单周期定时循环可增加执行速率,减少计数器应用中的FPGA使用量和抖动。