FPGA VI与主控VI固有不同步。如需要在FPGA VI和主控VI间同步操作或传输数据,可使用基于中断或轮询的方法。需要最小化主机处理器的使用量时可使用基于中断的同步,需要较小的延迟时可使用基于轮询的同步。DMA FIFO是一种可用于在FPGA和主机间传输数据的特殊的基于轮询的同步。下表总结了上述同步方法的特性。

同步方法 延迟 主CPU使用量 常用于
基于中断 下限 数据记录
基于轮询 下限 控制,仿真
DMA FIFO 下限 下限 数据记录

基于中断的同步

中断为FPGA终端插入至主机的物理硬件数据线。可以使用中断通知主控VI事件,如数据变为可用、产生错误或任务完成。

使用基于中断的通信相对于使用轮询的通信的优势在于主控VI等待中断的同时可执行其他操作。但处理中断所需的系统开销也相应地增加了延时。

通过中断VI生成FPGA终端可用的32位逻辑中断。每个逻辑中断指出了产生中断的原因,并允许用户在软件中进行不同的处理。可将中断VI设置为等待直至主控VI通过连线等待前清零输入端确认FPGA终端的中断。在上述情况下,中断VI等待直至主控VI控制设备确认中断。

当FPGA终端的调用包含同步中断时请使用警告。当使用多于1个中断时,中断数据线用作共享资源,且将产生抖动。

基于轮询的同步

基于轮询的同步使用循环持续检查FPGA VI的状态,且当特定条件存在时执行动作。定时VI可用于确定轮询循环的频率。增加轮询循环的频率可降低同步的延时。降低轮询循环的频率可减少主机CPU的使用量。

直接内存访问(DMA)和同步

DMA FIFO是固有同步的。DMA引擎自动轮询DMA FIFO的状态,且当DMA FIFO包含指定数量的数据值时开始数据传输。但用户可指定设备从DMA FIFO获取数据的方式。具体来说,可以使用基于轮询的方法从DMA FIFO获取数据。