在vivado中显示固定点值

时间:2016-10-29 21:25:55

标签: vhdl fixed-point vivado test-bench

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

当我使用模拟器时,它当然不会将最后4位视为小数,是否有可能在模拟中更改它,以便模拟知道第3位的值为0.5,第2位为值0.25等等?

2 个答案:

答案 0 :(得分:1)

我怀疑这是不可能的。特别是对于 std_logic ,类型如下:

  

'U':未初始化。此信号尚未设定。

     

'X':未知无法确定此值/结果。

     

'0':逻辑0

     

'1':逻辑1

     

'Z':高阻抗

     

'W':信号弱,无法判断它应该是0还是1。

     

'L':弱信号可能会变为0   'H':弱信号应该是1

     

' - ':不在乎。

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

  

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

     

错误:[Simtcl 6-179]由于以下原因无法增加力量:   非法值'0.4':无法将值'0.4'转换为小数   号。

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

1

答案 1 :(得分:1)

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

当您在模拟器中右键单击要在固定点显示的信号时,请单击基数 - >真实的设置。在那里,您将看到以下窗口,您可以选择固定点。

Handler vs Timer : fixed-period execution and fixed-rate execution android development

Real settings window