Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

vhdl coding for fetching into memory

17 views
Skip to first unread message

shweta

unread,
Aug 28, 2008, 5:04:55 AM8/28/08
to
as there is readmemh in verilog to read a file and put it into
memory... is there any relevant thing in VHDL which can do this.

Mike Treseler

unread,
Aug 28, 2008, 1:12:19 PM8/28/08
to
shweta wrote:
> as there is readmemh in verilog to read a file and put it into
> memory... is there any relevant thing in VHDL which can do this.

Not exactly.
I would declare and use a constant array something like:

type small_rom is array (0 to 2**a_length -1)
of unsigned(d_length-1 downto 0);
constant this_rom : small_rom :=
(
0 => x"00",
1 => x"01",
2 => x"02",
3 => x"04",
4 => x"08",
5 => x"10",
6 => x"20",
7 => x"40",
98 => x"AA",
99 => x"BB",
others => x"42"
);

-- Mike Treseler

Kevin Neilson

unread,
Aug 28, 2008, 2:36:07 PM8/28/08
to
shweta wrote:
> as there is readmemh in verilog to read a file and put it into
> memory... is there any relevant thing in VHDL which can do this.

It depends on the synthesizer. Here is a snippet from an example in the
XST user's guide that initializes a ROM from a file. I haven't tried it
myself:

architecture syn of rams_20c is
type RamType is array(0 to 63) of bit_vector(31 downto 0);
impure function InitRamFromFile (RamFileName : in string) return
RamType is
FILE RamFile : text is in RamFileName;
variable RamFileLine : line;
variable RAM : RamType;
begin
for I in RamType'range loop
readline (RamFile, RamFileLine);
read (RamFileLine, RAM(I));
end loop;
return RAM;
end function;
signal RAM : RamType := InitRamFromFile("rams_20c.data");
begin...

-Kevin

gramador

unread,
Sep 2, 2008, 5:34:35 AM9/2/08
to
On 28 Aug., 11:04, shweta <shwetadeshmuk...@gmail.com> wrote:
> as there is readmemh in verilog to read a file and put it into
> memory... is there any relevant thing in VHDL which can do this.

The memory blocks you instantiate for Altera fpga have a generic
option where you can specify a init file (hex or mif format).
I'm pretty sure that I've seen this for Xilinx too.
Of course, this is not VHDL related. But perhaps what you want.

Regards
Torsten

0 new messages