Re: Writing Hex values to file in VHDL?

M

Magne Munkejord

Pete said:
I'm trying to dump eight hex values per line
into a file, and can't work out how to do it.

for index in 0 to 127 loop
for sample_sel in 0 to 7 loop
sample_val := integer(scale * sin(phase(sample_sel)));
write ( sample_line, sample_val, RIGHT, 10);
phase(sample_sel) := phase(sample_sel) + phase_inc(sample_sel);
end loop;
writeline ( ip_dat, sample_line );
end loop;

does what I want, but with decimal values.

If I change to:
hwrite ( sample_line, sample_val, RIGHT, 10);
or:
write ( sample_line, to_hstring(sample_val), RIGHT, 10);
it doesn't compile.

Any thoughts?

Thanks

Pete

From my experiences from modelsim :
* hwrite works on std_logic_vector but requires the vector to be of
"even length", that is the length must be a multiple of 4.
* to_hstring doesn't work for std_logic_vector, you'll have to convert
it to a bit_vector first.

In your case I would try using
hwrite(sample_line, std_logic_vector(to_unsigned(sample_val, <length>)));

replace <length> with a valid length for your vector: 4,8,12,16... etc.

(remember to add : use ieee.numeric_std.all;)

Magne
 
M

Magne Munkejord

Pete said:
Probably my problem is that sample_val is an integer.
How to I print an integer as hex?

Thanks

Pete
It was in the original post, if you missed it:
std_logic_vector(to_unsigned(sample_val, <length>))

make sure <length> is multiple of 4 if you intend to use it with hwrite.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top