LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PCIe7820R DMA FIFO

Hi, I am new to labview and have a question regarding reading and writing data to an DMA FIFO for an FPGA (PCIe-7820R). I am writing data into the FIFO in an array of U32 bit binaries. Say the last 3 bits are some voltages to be outputed by a DO channel and the rest in the beginning are the timestamp (101111 -> 101 timestamp 111 DO state). My understanding is that the FIFO pops the elements one by one (which I slow down explicitly with a wait icon). Taking the 1st item, if the time stamp matches the internal counter we just display it at this point. But if the timestamp doesnt match, we maintain that item until the timestamp matches. This final point is where I am struggling atm ie I am not sure how to capture this behaviour in my else case in the first switch.  Tldr; how do I keep checking the same item of a fifo until the timestamp matches? Any and all help would be greatly appreciated, and apologies in advance if I am not in line with posting etiquette.  Thank you 🙂 

0 Kudos
Message 1 of 3
(577 Views)

Not really sure what you are trying to implement here. Please note that we cannot debug an image so posting your code is preferred.

To answer your question on how to store previous values, use a shift register or feedback node.

-------------------------------------------------------
Applications Engineer | TME Systems
0 Kudos
Message 2 of 3
(535 Views)

Right-click the read node for the DMA FIFO in your  FPGA code and choose the "handshaking" interface. This allows you to input a "Ready for data" flag to pause reading from the FIFO.

You will need to cache the last read (IIRC the FIFO does this already, the output when "Ready for Data" F is the last read element, but check this first....) so that you can act on it later.

Message 3 of 3
(529 Views)