我正在尝试为FPGA合成生成一个MIF文件,我正在用Matlab编程来完成它。
我希望在IEEE标准双精度浮点数-1到-1(-.9, - 。8, - 。7 ... 1)的数字,以便我可以将它写入MIF文件,在Verilog中使用。是否有任何Matlab函数可以轻松完成此操作?感谢您提前提出任何建议。
答案 0 :(得分:3)
试试这个:
oldFormat = get(0,'Format');
format('hex'); display( -1:0.1:1 );
format(oldFormat);
只有中间线很重要。另外两个只是将你的格式恢复到之前的状态(默认情况下为“短”)。我不确定输出是否符合IEEE,但我怀疑它会。根据{{3}},这将显示“二进制双精度数的十六进制表示。”
如果您想将它们保存为以后可以打印的字符串,请使用格式为%bx
的sprintf:
x = -1:0.1:1;
for i = 1:length(x)
vals{i,1} = x(i);
vals{i,2} = sprintf('%bx',x(i));
vals{i,3} = dec2bin(hex2dec(sprintf('%bx',x(i))),64);
end
display(vals(:,[1 2]));
display(vals(:,3));