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

Read raw binary file

76 views
Skip to first unread message

Beanut

unread,
Sep 2, 2005, 12:25:54 PM9/2/05
to
I've been playing around with reading binary data into a testbench. I
noticed a lot of people asking questions on the user group over the
years, but didn't see a simple expample, so here's some code that might
help:

constant N : integer := 28671; --Number of bytes in file minus
one
subtype file_element is std_logic_vector(7 downto 0);
type mem_array is array(N downto 0) of file_element;

shared variable memory : mem_array;

begin
----------------------------------------------------------------------------

-- This code reads a raw binary file one byte at a time.
load_memory : process is
type bit_vector_file is file of bit_vector;
file vectors : bit_vector_file open read_mode is "calconst.bin";
variable next_vector : bit_vector (0 downto 0);
variable actual_len : natural;
variable index : integer := 0;
begin
while not endfile(vectors) loop
read(vectors, next_vector, actual_len);
if actual_len > next_vector'length then
report "vector too long";
else
memory(index) :=
conv_std_logic_vector(bit'pos(next_vector(0)),8);
index := index + 1;
end if;
end loop;
wait;
end process load_memory;
-----------------------------------------------------------------------------

Enjoy,
Beanut

0 new messages