LabVIEW自动优化单周期定时循环(SCTL)内的代码。与While循环内的相同代码相比,SCTL内的代码执行更快,占用FPGA终端资源更少。在FPGA终端上使用While循环时,While循环每执行一次需要占用多个时钟周期,While循环包含启用链寄存器。While循环每次执行需要占用的时钟周期的数量取决于循环内的代码。在FPGA终端上使用单周期定时循环时,单周期定时循环将在一个时钟周期内执行完循环内的所有代码。在FPGA目标上使用单周期定时循环减少了执行周期和资源占用,因为单周期定时循环不包括启用链寄存器。如果单周期定时循环包含已初始化的移位寄存器,循环第一次执行前占用一个时钟周期,以初始化移位寄存器的值。单周期定时循环类似于HDL中的定时进程。

下列图示展示了执行相同代码的While循环和单周期定时循环之间的区别。

下面列出了上述程序框图的要点。

执行While循环内的代码需要四个时钟周期,不包括While循环占用的两个时间周期作为额外开销时间。
红色垂直线表示每个时钟周期内While循环执行的结束位置。
如时钟周期对于代码而言足够长,同样的代码放在单周期定时循环内,可以在一个时钟周期内执行完毕。

您也可使用单周期定时循环减少FPGA VI中的执行周期,以优化代码。如下图所示。

如上图所示,如果在While循环中使用单周期定时循环,则将TRUE常量连接到条件接线端,使得定时循环内的代码在While循环的每个周期执行一次。