我正在尝试为 FPGA 综合生成一个 MIF 文件,我正在 Matlab 中进行编程来完成它。
我想要 IEEE 标准双精度浮点中从 -1 到 1 (-.9,-.8,-.7...1) 的数字,以便我可以将其写入 MIF 文件以在 Verilog 中使用。是否有任何 Matlab 函数可以轻松地做到这一点?感谢您提前提出任何建议。
尝试这个:
oldFormat = get(0,'Format');
format('hex'); display( -1:0.1:1 );
format(oldFormat);
只有中线很重要。另外两个只是将您的格式恢复为以前的格式(默认为“短”)。我不确定输出是否符合 IEEE,但我怀疑它会。根据文档,这将显示“二进制双精度数的十六进制表示”。
如果您想将它们保存为字符串,您可以稍后使用 sprintf 和 format 打印%bx
:
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));