我正在查看一些包含以下行的代码:
a <= to_sfixed (-3.125, 7, -6);
这a
条线运行后是什么?
我想我在 中找到了函数float_pkg_c.vhd
,这似乎是代码的关键部分:
result_big := to_sfixed (
arg => STD_LOGIC_VECTOR(rsigned),
left_index => left_index,
right_index => (right_index-3));
result := resize (arg => result_big,
left_index => left_index,
right_index => right_index,
round_style => round_style,
overflow_style => overflow_style);
To_sfixed——“浮动”到“固定”。输入:arg(浮点数)、left_index 和 right_index(自然)或 size_res(ufixed)。参数 round_style : Boolean (true), overflow_style : Boolean (true), check_error : Boolean (true) 和 denormalize : Boolean (true)。
但是,我仍然没有计算出预期的位数 - 我期望总共 13 位是正确的吗?
有没有一种简单的方法可以为自己回答这些问题(例如使用命令行界面)?