本人用modelsim仿真一个图像压缩程序,压缩输出数据位宽为16bits,想将输出数据存储,以便之后能解码验证压缩结果。
这么textio就不能用了,它是ascII码的形式存放。
查阅资料:
二进制文件定义:
type integer_file is file of integer;
file my_results : integer_file;
file_open(my_results,"D:\compressed_data",write_mode);
-----------------------------------------------
每次输出的数据data_out为std_logic_vector(15 downto 0)即16bits
variable data:integer;
data:=conv_integer(data_out);
write(my_results,data);
------------------------------------------------
本来data_out输出的16bits数的十六进制为1A CF
结果存在D盘文件里的是CF 1A 00 00
查资料了解到VHDL的integer类型为32bits数据类型,那么1A CF----00 00 1A CF
疑问是write函数往文件里写时是先写低字节再写高字节吗 因此才会CF 1A 00 00?
本文想直接写16bits ,不想程序自己添加成32bits,而且最好先写高字节 再写低字节?
请问诸位有什么办法吗?
是不是文件定义没定义好?不用integer型的?还有别的写二进制数的文件类型吗?
盼望各位指导!