Reading/Writing pure binary files

D

Daniel Gowans

Guest
I am looking for a way to read and write pure binary files in VHDL.
I have a device that takes real-time snapshots of data streams in
PCM (binary) format. I want to read this file, send it through a design
to process it, and have the testbench spit the results back into a
binary like the incoming. Any tips would be appreciated.

Thanks!
 
In article <Xns94F667078C658chlumpyahoocom@198.60.22.31>, Daniel Gowans wrote:
I am looking for a way to read and write pure binary files in VHDL.
I have a device that takes real-time snapshots of data streams in
PCM (binary) format. I want to read this file, send it through a design
to process it, and have the testbench spit the results back into a
binary like the incoming. Any tips would be appreciated.
I'm doing some image processing design but using a slightly
different approach: instead of VHDL code reading directly images
(.png), I wrote a small script in Perl to convert these into
files containing pixel values in ASCII, which are read into
memory in the beginning. After simulation, there's another
script to convert output ASCII values back into binary
(or in my case to a file suitable for being read by Matlab).

Maybe you could use similar approach, writing couple of
converters.
 
The following is a partial VHDL code that works for me (at least for
reading raw data file).

-- in the architecture declaration part
-- raw DV file
type intFileType is file of natural;
file fileRawDV: intFileType open read_mode is "D:\video\DV\test.DV" ;

-- in the procedure declaration part
variable rawDV: natural; -- 32-bit raw DV from the file
variable leData: std_logic_vector(31 downto 0); -- data from the file
is little-endian

-- in the procedure

read(fileRawDV, rawDV);
leData := conv_std_logic_vector(rawDV,32);

Hope this helps.
 

Welcome to EDABoard.com

Sponsor

Back
Top