LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Multiple FPGA IO Node

Hi,

          I know if multiple FPGA IO nodes are used it involves using shared resources  and even all FPGA IO nodes in parallel loops they have to wait for the availability of the shared digital IO resource. I noticed if I only use one FPGA IO node to output multiple IO channels all channels are output simultaneously. I think the FPGA node only needs to get access to the shared resource once even for multiple channels. But since it is not written in the manual I wonder what is the limitation of using one FPGA node to input/output multiple channels without increasing the usage of the shared digital IO resource? I know for tradition DAQ system output can be updated by port which is either 8 channels or 16 channels. I wonder if it is also true for FGPA digital input/output? Can input/output be mixed? Do the input/output channels have to be in one module?

   Thanks for help!

    Regards,

    Tom

 

 

Message 1 of 7
(4,299 Views)

Hi Tom,

 

These specifications depend on the module you use but I believe most DIO modules you can output or input simultaneously if you create one I/O node that contains all the channels you want to I/O. Some modules have nodes that allow you to reference a set of 4 or 8 bits at one time.

Eli S.
National Instruments
Applications Engineer
Message 2 of 7
(4,265 Views)

Hi Eli,

 

    

Thanks for your reply. It explains very well. You said that the specifications depend on the module. But I can't find related information in the manual.

For example I checked the DIO module NI 9477 I currently use but there is no information about if I can output all 32 channels simultaneously  or 4/8 bits at one time? 

Regards,

 

Tom

 

Message Edited by Support on 08-26-2008 11:38 AM
0 Kudos
Message 3 of 7
(4,260 Views)

Tom,

 

The answer to your question depends on the hardware architecture and unfortunately isn't that easy to infer from the documentation.  In general, the digital I/O pins on the connector of your hardware are either directly connected to I/O pins on the FPGA, or they are connected to a smaller number of pins on the FPGA through some additional circuitry.  In the latter case, this connection effectively forms an I/O bus and data is communicated from the FPGA to the I/O through a bus transaction.  In the case of the 9477, there are 32 lines on the front I/O connector.  If you look at the connector on the back of the module connecting it to the FPGA backplane, you will notice there are fewer than 32 pins.  In this case, it is impossible for the FPGA to write I/O data to the module directly so it must communicate the data using a defined bus protocol.  This means each invocation of the I/O Node on the FPGA block diagram will result in a unique bus transaction where all of the channels included in the node will be updated at the same time.  To be explicit, if you're trying to update channels 1 and 2, they will get updated at the exact same instant in time if you have a single I/O Node which includes both channels.  However, if you instead use two I/O nodes (one with channel 1 and the other with channel 2) to write to the channels, channel 1 will get updated through one bus transaction, and channel 2 will get updated a little later in time through a second bus transaction. On the other hand, if the hardware architecture is such that the I/O is directly connected to the FPGA, there is no difference in behavior whether the channels are split across severall I/O Nodes or whether they are included in a single I/O Node. 

 

Perhaps the best way to determine whether the digital I/O is directly connected to the FPGA is to right click the digital I/O item in the project and look at its property page.  If you don't see an option in the property page for arbitration, then the digital I/O is most likely communicating to the FPGA through a bussed connection and is always arbitrating for use of the bus.  Hopefully this information helps clear up some of your questions.

Message 4 of 7
(4,256 Views)

Hi,      

 

Thanks for your explanation. It is very clear. I have one more question about multiple modules. Can FPGA get access to different modules same time? If I have two NI 9477 how does it work?       

 

Regards,      

 

Tom 

 

Message Edited by tom_z on 08-26-2008 10:39 AM
Message Edited by tom_z on 08-26-2008 10:39 AM
0 Kudos
Message 5 of 7
(4,233 Views)
Yes it can. This is in fact one of the most powerful features of the FPGA, and that is that it can execute code trully in parallel.
Eli S.
National Instruments
Applications Engineer
0 Kudos
Message 6 of 7
(4,218 Views)

Hi,

 

     Thanks all for help!

 

     Tom

0 Kudos
Message 7 of 7
(4,209 Views)