04-26-2006 02:19 AM
04-26-2006 10:26 AM
04-28-2006 03:39 AM
05-01-2006 09:41 AM
If you are passing data within the FPGA VI than you can use the Memory functions which do allow indexing. Another option for passing data around on the FPGA (other than FIFOs and memory) would be global variables. Globals are not as efficient as using block memory, but they are more efficient than local variables because extra logic is not needed to pass data to/from a Host VI because globals do not have front panel objects.
If you need to get the data to the Host than DMA is the best option.
Regards,
Joseph D.
National Instruments
05-08-2006 04:26 PM
05-09-2006 03:19 PM
1) I am not sure about the first error. Do you use an HDL node, and if so can you attach your code?
2) Each object that stores data on an FPGA uses 1 Flip-Flop (FF) per bit. For instance an I16 uses 16 FFs. If the largest object on the front panel is greater than 32 bits (like an array or cluster), tha largest object uses 2 FFs per bit.
Since you have 2 front panel arrays with 64 I16s than one of these arrays will use 2 FFs per bit and the other 1 FF per bit. These 2 arrays use 3072 FFs.
The 4 global variable arrays have 64 I32s for a total of 2048 bits per array. Since there is no front panel control these arrays take 1 FF per bit for a total of 4*2048=8192FFs.
Therefore to store the array data alone you need 8192+3072=11264 FFs. The array operations are generally cheap it is the storing the data that takes up space.
3) You should definately move to using block memory when the data in an array would be greater than 256 bits or about 16*I16s.
05-19-2006 04:36 PM