From 11:00 PM CDT Friday, May 10 – 02:30 PM CDT Saturday, May 11 (04:00 AM UTC – 07:30 PM UTC), ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Block RAM usage in compile

I looked at the compilation report, and the block RAM is zero.  When when the block RAM be non-zero?  how do you use the block RAM?  I thought I am storing my waveform in memory, but maybe it is not block RAM?

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 1 of 8
(5,895 Views)

Block RAM, or block memory, is RAM that is embedded throughout the FPGA for storing data. In general, LabVIEW uses block RAM when synthesizing Memory & FIFO functions. You can specify how LabVIEW implements FIFOs and memory items using the FIFO Properties and Memory Properties dialog boxes, respectively. For example, you can choose either Block Memory (RAM) or Look-Up Table (LUT) implementation. How are you storing your waveform in your FPGA code? (array, memory block, fifo?)

Sev K.
Senior Systems R&D Engineer | Wireless | CLA
National Instruments
Message 2 of 8
(5,885 Views)

I am using memory block to store the waveform.  Howcome block ram usage is not showing up during compilation?  In what circumstances would it shwo up in the compilation report?

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 3 of 8
(5,872 Views)

Is your memory block implemented in Block RAM or a LUT? Which FPGA target are you using? If you can please attach your VI or a screenshot of you VI.

Sev K.
Senior Systems R&D Engineer | Wireless | CLA
National Instruments
Message 4 of 8
(5,870 Views)

@Sev_K wrote:

Is your memory block implemented in Block RAM or a LUT?  Block Memory. Which FPGA target are you using?  PCI-7833R.  If you can please attach your VI or a screenshot of you VI.


 

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 5 of 8
(5,862 Views)

I've created a simple VI that initializes a memory block with a sine wave of 1024 elements (I16). The amount of space that sine wave takes is 1024x16bits = 16kbits. Since the 7833R has 96 18kbit RAM blocks (See XC2V3000 spec sheet) we will need to use at least 1 18kbit memory block to store this waveform. This is exacly what we see in the compilation report:

 

screeenshot.jpg

Sev K.
Senior Systems R&D Engineer | Wireless | CLA
National Instruments
Message 6 of 8
(5,860 Views)

Thanks.  I am trying to compare the PCI-7833R and the 9146 FPGA.  I am trying to understand all the resources available.  Is it true that we have unique resources below?

 

1. Flip Flops

2. LUT

3. DSP 48s

4 Block RAM

5. DMA Channel

6. 18x18 multiplexer

 

For the LUT, the PCI card has 4 input and the 9146 has 6 input.  I guess the more input the better? One has DSP 48s and the other has 18x18 multplexer.  Can they be compared?  

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 7 of 8
(5,847 Views)

Have a look at this article: Differences Between Xilinx FPGA Families. Comparison between different FPGA families is not straightforward since newer FPGAs might have a smaller number of a given resource but a more efficient implementation of the FPGA code that translates to better performance. So compiling your code for 7833R and 9146 and then comparing the resource usage would give you a good idea of how much resources is consumed on each target

Sev K.
Senior Systems R&D Engineer | Wireless | CLA
National Instruments
Message 8 of 8
(5,844 Views)