Newbie - VHDL Storage

C

Carlos

Guest
Hi,

As your guess from my question I'm quite new to VHDL.

I have an XILINX SPARTAN IIE FPGA (XC2S300E). For testing purposes I need
to store about 20,000,000 single bit values. In other words I'm sampling an
input at 4MHz for 5 seconds, and I want to store the value of the input
inside the FPGA. Apparently the FPGA has many MegaBytes of internal memory
so I would imagine the FPGA is capable of doing this.

I was hoping that I could just create a large signal like this:

signal store : bit_vector(20000000 downto 0);

And then just store the value of the input in the signal.

The problem is the synthesis seems to never finish.

Does anyone have any suggestions on how I can store all the values inside
the FPGA? Am I asking to much of the FPGA?

Thanks for any help,
 
This question is more suitable in fpga newsgroup. The reason is that your
VHDL synthax is correct but Spartan may not have so many FF registers. It
may embody a general purpose memory though. Each cell of typical FPGA has
only one configurable FF register in addition to configurable and
service(that performs configuration) logic. This makes FPGA cell a very
expensive resource. Therefore, a dedicated storage device is much more
robust to keep high volume infrequently issued data. Check out SpartanII
specs and examples to know how make use of it.
 
Think of what hardware you are describing. Here, a 20,000,000 way
decoder to select the bits (even if Spartan can hold them).
VHDL specifies that an impementation must support at least 256-wide
buses, but doesn't set a maximum. It won't be that big, however.

As another poster has said, use the Block RAMs. Even there, I doubt
you'll get 20,000,000 bits. The way to do it is to use a stock RAM
chip (dynamic?), and control that with your FPGA.

"Carlos" <Carlos@no_spam.com> wrote:

:Hi,
:
:As your guess from my question I'm quite new to VHDL.
:
:I have an XILINX SPARTAN IIE FPGA (XC2S300E). For testing purposes I need
:to store about 20,000,000 single bit values. In other words I'm sampling an
:input at 4MHz for 5 seconds, and I want to store the value of the input
:inside the FPGA. Apparently the FPGA has many MegaBytes of internal memory
:so I would imagine the FPGA is capable of doing this.
:
:I was hoping that I could just create a large signal like this:
:
:signal store : bit_vector(20000000 downto 0);
:
:And then just store the value of the input in the signal.
:
:The problem is the synthesis seems to never finish.
:
:Does anyone have any suggestions on how I can store all the values inside
:the FPGA? Am I asking to much of the FPGA?
:
:Thanks for any help,
:
:
:
 

Welcome to EDABoard.com

Sponsor

Back
Top