在vivado中显示一个定点值

Show a fixed point value in vivado

假设我的 VHDL 中有一个定点值 - 代码定义为 std_logic_vector。我知道我的最后 4 位是小数。

当我使用模拟器时当然不会看到最后4位是小数,有没有可能在模拟中改变它,让模拟知道第3位的值为0.5, 2nd 值 0.25 等等 ?

不幸的是,我怀疑这是否可行。 std_logic的具体类型如下:

'U': Uninitialized. This signal hasn't been set yet.

'X': Unknown Impossible to determine this value/result.

'0': Logic 0

'1': Logic 1

'Z': High Impedance

'W': Weak signal, can't tell if it should be 0 or 1.

'L': Weak signal that should probably go to 0 'H': Weak signal that should probably go to 1

'-': Don't care.

因此模拟器识别ONLY以上符号,任何其他都会导致错误,包括描述位的浮点数。这是我尝试显示浮点值的示例:

add_force {/test/a[27]} -radix unsigned {0.4 0ns}

ERROR: [Simtcl 6-179] Couldn't add force for the following reason: Illegal value '0.4': Could not convert value '0.4' to a decimal number.

我也观察到 Vivado 被标记了,所以我猜你使用的是集成模拟器。在我的示例中,最接近浮点数的是十进制数。 Vivado 没有内置变量来支持在仿真中显示浮点数。下面您会看到它支持的基数,因此您只能严格限制那些选择,除了 ASCII 之外,所有这些都会导致错误,但我认为这不是您想要的行为。

在 Vivado 中可以将结果显示在模拟器中作为定点表示。

当你在模拟器中右击你想要定点显示的信号时,点击radix --> real settings。那里你得到以下 window 并且你可以 select 固定点。

Real settings window