Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

using fpga fifo

Hi,
 
I want to use fifo for transferring data from acquisition loop to host communication loop. I want the four fifos each of 1024(I32) size. It seems that i have to use block memory while creating fifo. Do i need to use memory extension utility if I am using block memory fifo only for transferring data between two parrallel loops.
 
Best Regards,
 
Bipin
0 Kudos
Message 1 of 4
(5,319 Views)

You will want to use the FPGA Fifos found under the advanced/synchronization/fpga fifo palett structures. 

 

Preston Johnson
Solutions Manager, Industrial IoT: Condition Monitoring and Predictive Analytics
cbt
512 431 2371
preston.johnson@cbtechinc
0 Kudos
Message 2 of 4
(5,317 Views)
Hi Johnson,
 
I know that i have to use FIFOs. My question was if I am using a FIFO of say 1024 Depth and Data type of I32 then I have to use Memory Type of block memory ( I got htis infromation from some old discussion as shown below.
------------------------------------------------------------------------------------------------------------------------------------------------------------

The limiting factor is the memory on the controller.  Here is information on lookup tables and flip flips in FIFOs...

  • Flip-Flops: Stores the data with standard flip-flops. This option stores the data using gates on the FPGA. Use this option for small FIFOs, up to 100 bytes.
  • Look-Up Table: Stores the data in a look-up table available on the FPGA. Use this option for FIFOs between 100 and 300 bytes in size.
  • Block Memory: Stores the data using embedded blocks of memory. Use this option for FIFOs larger than 300 bytes.
  • -------------------------------------------------------------------------------------------------------------------------------------------------------------

    If I have selected memory type as block memory do i have to use the memory extension utility ( Do I have to install the same), when i am not interested in writing or reading each element of the FIFO. I will write to FIFO till it is full and read all the elements till the FIFO is empty and transmitt to RT controller.

    I am using crio 9002 with 9101 FPGA backplane and crio 9233(24 bit) module. By sampling rate is 15360 per channel i have 4 channel module. I will not be transmitting 15360 point at a time but 256 points per channel at a time hence the depth is 1024(256 x 4). I am using interrupt method for transmitting as i have some processing in RT also

    Kindly infrom me if my procedure is correct if not suggest me the best method.

    Best Regards,

    Bipin

     

     

    0 Kudos
    Message 3 of 4
    (5,314 Views)

    The memory extension utility is not required for you to use the block memory option for the LabVIEW FPGA FIFOs.  It sounds like you are structuring your communication of data back to the host interface VI properly, as well.

    If you have more questions, please post a reply.

    Regards,

    Kristi H
    National Instruments

    0 Kudos
    Message 4 of 4
    (5,302 Views)