Advantages and Disadvantages of Using Reentrant SubVIs in LabVIEW FPGA Programming
Primary Software: LabVIEW Modules>>LabVIEW FPGA Module
Primary Software Version: 1.1
Primary Software Fixed Version: N/A
Secondary Software: N/A
Can I have a reentrant subVI in FPGA? How does it work? What are the trade-offs of using reentrant versus non-reentrant subVIs?
LabVIEW FPGA VIs are reentrant by default. If a reentrant VI is called multiple times, each instance occupies separate hardware resources of the FPGA device. If a non-reentrant VI is used, regardless of whether it is called multiple times in parallel or just once, only one hardware instance is created and used for that VI.
This default behavior is the opposite of VIs running on non-FPGA targets. In this case VIs are non-reentrant by default and there can be only one instance open in memory at one time. All callers must access this same instance. However, when a VI is reentrant, a new instance is opened in memory each time the VI is called.
Reasons to use non-reentrant subVI's:
LabVIEW FPGA 2013 Help: Determining When to Use Reentrant or Non-Reentrant SubVIs (FPGA Module)
LabVIEW FPGA 2013 Help: Using Parallel Operations (FPGA Module)
KnowledgeBase 3UF9NAXJ: Code Generation Error 61056: Sub VI is Non-Reentrant, is in a Single-Cycle Timed Loop, and Has More Than One Caller
Report Date: 11/08/2003
Last Updated: 03/07/2017
Document ID: 337FLKFL