Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Large array in VHDL , too much resouces required any other options?

Status
Not open for further replies.

TON2

Newbie level 2
Joined
Jan 6, 2014
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
18
Large array in VHDL , too much resources required

Hi,
In 1 clock cycle, my design output
output_real : out std_logic_VECTOR(15 downto 0);
I have to run my design for 2048x64 clk and store all the 2048x64 output_real to be used later.

Problem is I tried to store the whole output in a "Signal" format ( array of size [2048][64][16] )but it is too large, are there any alternative solutions?
I'm thinking of writing it into a table but not sure how to do it.

Below is how I declare my output array:
type N2048_16 is array( 0 to 2047) of std_logic_vector( 15 downto 0 );
type 64Channel_N2048_16 is array( 0 to 63) of N2048_16;




Thanks in advance for advice!
 

thats 256k of ram, IF (and a big if) you accessed the array correctly so that the synthesisor infered a RAM, and if you have a large enough part. If rams are not inferred, I bet it took a long time to compile (if rams were infered, it shouldnt take too long).

So, more detail needed:
Wheres the code the accesses the "RAM"?
What part are you using?

NOTE: This is not technically a 2D array - its 3x 1D arrays.

- - - Updated - - -

PS> 256Kb (2Mbits of ram) is rather large for a single application. you will need a medium to large part to have enough ram.
 

Re: Large array in VHDL , too much resources required

Hi,
In 1 clock cycle, my design output
output_real : out std_logic_VECTOR(15 downto 0);
I have to run my design for 2048x64 clk and store all the 2048x64 output_real to be used later.

Problem is I tried to store the whole output in a "Signal" format ( array of size [2048][64][16] )but it is too large, are there any alternative solutions?
I'm thinking of writing it into a table but not sure how to do it.

Below is how I declare my output array:
type N2048_16 is array( 0 to 2047) of std_logic_vector( 15 downto 0 );
type 64Channel_N2048_16 is array( 0 to 63) of N2048_16;




Thanks in advance for advice!

1. use a very big fpga.
2. use external memory.
 

Thanks for your replies, I am using Xilinx Vertex6 XC6VSX475T.

So guess I have to study about using external RAM right?
If any one have good references or manual please advise.

Thanks again
 

Thanks for your replies, I am using Xilinx Vertex6 XC6VSX475T.

So guess I have to study about using external RAM right?
If any one have good references or manual please advise.

Thanks again


Possibly - but you didnt post the code thats causing the device to run out of RAM. That part has 7 Mbits of ram, and you only need 256k. I suspect you're not using the array properly to infer the RAM.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top