LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

FPGA Code size estimation

Hi everyone,

I am currently working with an NI 9111 Chassis which has an Virtex5 LX30 FPGA. Now, I wrote an application which is obviously too large for a LX30. The compiler says 300% too much of registers and LUTs are used.

Therefore I am wondering if it is possible to estimate which FPGA I would need to get my application working?

Do I need a LX50 or even a LX110?

 

Thanks,

Benjamin

 

 

 

Stay Hungry, Stay Foolish
0 Kudos
Message 1 of 6
(3,158 Views)

I'm sure your code can be optimized to a level that fits 🙂 There are some guidelines how to save resources on the FPGA but if you have a nice budget buy the biggest you can get.

 

First eliminate control communication and replace it by DMA fifos, because that eats up a lot. You can encode any information in a 32bit fifo data. Think about an ecoding sheme for the fifo data. That's what I suggest...

 

Hope it helps

Christian

0 Kudos
Message 2 of 6
(3,150 Views)

Thanks Christian,

your right, replacing the control communication AND Arrays with DMA FIFOs helped a lot but not enough.

 

Unfortunately my budget isn't that nice 😉

 

 

Stay Hungry, Stay Foolish
0 Kudos
Message 3 of 6
(3,141 Views)

Nice 🙂 Then go ahead.

- Reduce the data width to what is actually needed where ever you can.

- Use single cycle timed loops (SCTL).

- The use of global variables is recommended by NI for FPGA VI's.

- Switch to raw data instead of fixed point operations if possible, if not reduce the fixed point size.

 

To check your success you can compile each single VI and compare the results.

0 Kudos
Message 4 of 6
(3,137 Views)

Just wanted to point out that you don't need to own a target in order to compile for it, so the easiest way to know for sure is to just try it and see which one fits. The optimization route is a good one, but keep in mind future expansion needs; since you've already done a little bit of optimizing, I would recommend going with whatever target it fits on now. You can give yourself more room by optimizing further, and reserve that space for contingencies.

 

To compile for other targets, make sure you've installed target support with NI-RIO. In the New>>Targets and Devices... dialog, select "New target or device" and pick a larger one from the list of targets with NI-RIO support installed.

0 Kudos
Message 5 of 6
(3,127 Views)

Thanks JLewis,

sometimes you don't see the easiest way, I didn't know that I am able to add other targets.

Today, my learning curve rose very sharp 😉

 

General:

Replacing arrays with memory made a huge impact.

 

Many thanks to all

Stay Hungry, Stay Foolish
0 Kudos
Message 6 of 6
(3,125 Views)