Company Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Timed Loop (Single-Cycle)

LabVIEW 2011 FPGA Module Help

Edition Date: June 2011

Part Number: 371599G-01

»View Product Info

Owning Palette: Timed Structures

Requires: FPGA Module

The FPGA Module Timed Loop differs from the standard LabVIEW Timed Loop in that the timing of the FPGA Timed Loop corresponds exactly to the clock rate of the FPGA clock you specify. By configuring a single-cycle Timed Loop to use a clock other than the base clock of the FPGA target, you can implement multiple clock domains in an FPGA VI. You can specify the FPGA clock that controls the Timed Loop by wiring a value to the Source Name input on the Input Node of the Timed Loop or by using the Configure Timed Loop dialog box.

You can use most VIs and functions available when you target an FPGA target in a single-cycle Timed Loop. However, you cannot use the following VIs, functions, and structures in a single-cycle Timed Loop. LabVIEW reports a code generation or compile-time error for the single-cycle Timed Loop when you try to compile an FPGA VI with any of the following VIs, functions, or structures in a single-cycle Timed Loop.

  • Analog Period Measurement VI
  • Butterworth Filter VI
  • Discrete Delay VI
  • Divide function
  • FIFO Clear function
  • For Loop
  • FPGA I/O Method Node except with some FPGA targets
  • FPGA I/O Property Node except with some FPGA targets
  • Interrupt VI
  • Look-Up Table 1D VI with the Interpolate data checkbox selected
  • Loop Timer Express VI
  • Multiple FPGA I/O Nodes configured for the same I/O resource if at least one node is inside the loop and at least one node is outside the loop
  • Non-reentrant subVIs if you use multiple instances
  • Notch Filter VI
  • PID (FPGA) VI
  • Quotient & Remainder function
  • Reciprocal function
  • Rotate 1D Array function
  • Sine Wave Generator VI
  • Square Root function
  • Timed Loop
  • Wait Express VI
  • Wait on Occurrence function
  • While Loop

The FPGA target you use might not support additional VIs or functions. Also, some targets do not support specific I/O items both inside and outside a single-cycle Timed Loop. Refer to the specific FPGA target hardware documentation for more information.

The following tables described how Timed Loops interact with other components.

Timed Loops Open in VIs under My ComputerIf you place the Timed Loop in a VI open under My Computer, the Timed Loop displays some terminals that FPGA targets do not support. So, if you open the VI under an FPGA target, the unsupported terminals still appear. If you place the Timed Loop in a VI open under an FPGA target, the Timed Loop hides terminals that are not supported. So, if you open the VI under My Computer, the Timed Loop does not display all terminals that My Computer supports.
Timed Loops Open in VIs under an FPGA TargetWhen you place a Timed Loop in an FPGA VI, only the Source Name input appears visible by default. Other than Source Name and Error, the inputs available on the Input Node of the Timed Loop have no effect when you use the Timed Loop in an FPGA VI. Error is the only supported output of the Timed Loop in an FPGA VI.
Note  Do not add frames before or after the single-cycle Timed Loop frame to try to use the single-cycle Timed Loop as a Timed Sequence structure in an FPGA VI. The LabVIEW FPGA Module does not support Timed Sequence structures.
Indicators in Single-Cycle Timed LoopsYou can place indicators in the single-cycle Timed Loop only if you do not have any local variables writing to the indicators.
FPGA I/O Nodes and Timed LoopsYou can use the FPGA I/O Node in the single-cycle Timed Loop if the FPGA target allows it. If the FPGA target you use supports the single-cycle Timed Loop, you can use only the Arbitrate if Multiple Requestors Only and Never Arbitrate arbitration options. If you select Arbitrate if Multiple Requestors Only, you cannot use more than one instance of the FPGA I/O Node for a specific I/O item in the FPGA VI. If you select Never Arbitrate, you can use more than one instance of the FPGA I/O Node for a specific I/O item in the FPGA VI if each instance is in a single-cycle Timed Loop executing at the same rate.
Flat Sequences and Timed LoopsYou can use the Flat Sequence or Stacked Sequence structure in the single-cycle Timed Loop. However, all sequence frames execute in one clock cycle.
SubVIs and Timed LoopsYou cannot use more than one instance of a non-reentrant or shared subVI in a single-cycle Timed Loop. You can use multiple instances of a reentrant VI inside a single-cycle Timed Loop as long as the reentrant VI does not use shared resources.
Wait On Occurrence Function and Timed LoopsYou cannot use the Wait on Occurrence function in a single-cycle Timed Loop. However, you can use the Set Occurrence function. You then can use the Wait on Occurrence function outside the single-cycle Timed Loop in a While Loop or For Loop.

One Clock Cycle Functions, Internal Registers, and Timed Loops

You can use some functions in the single-cycle Timed Loop that take one clock cycle to execute, such as the Memory Method Node. If you use this function to read from a memory item that uses embedded block memory, the output of this function is not valid until the next iteration of the single-cycle Timed Loop. Therefore, you must wire the outputs of such functions directly to uninitialized shift registers.

Note  Functions such as the Memory Method Node, FFT Express VI, and FPGA I/O, have internal registers that can appear as paths in the Timing Violation Analysis window.

 

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
Add Comments 1 2 3 4 5 submit