【问题标题】:How can I see real values of fixed-point numbers in waveform with ModelSim? (System Verilog)如何使用 ModelSim 查看波形中定点数的实数值? (系统 Verilog)
【发布时间】:2016-02-11 14:26:11
【问题描述】:

我在我的代码中使用有符号定点数。为了更容易验证这些值,我想看看它们在波形中代表的实数。 例如,让我们说:

    // 1bit signal, 4bits integer, 4bits fraction
    wire [8:0] my_number1 = 9'b1_1111_1000; // -0.5
    wire [8:0] my_number2 = 9'b0_0000_1000; //  0.5

我希望 my_number1 和 my_number2 分别为 -0.5 和 0.5。 当我使用 Cadence 工具时,我可以单击信号波形并选择“创建表达式”并简单地创建一个新信号:

    (my_number1*(2.0**-4))

ModelSim Altera Starter Edition 的 GUI 上没有这个选项,所以我想我可以在我的测试平台中创建一个与定点相关的真实信号,然后跟踪这个数字。

我试图在我的测试平台中创建一个真实的信号:

    real my_number1_real = (my_number1*(2.0**-4));

但是我只能看到-0。我也尝试过 $bitstoreal 但我必须将其转换为 64 位数字并考虑指数等 (see wikipedia),所以这绝对不是一个简单的方法。

知道我该怎么做吗?

【问题讨论】:

    标签: verilog system-verilog waveform modelsim


    【解决方案1】:
    real my_number1_real = (my_number1*(2.0**-4));
    

    是一个在时间 0 求值的常量表达式。像下面这样的东西会更好。

    real my_number1_real;
    always @* 
     my_number1_real = (my_number1*(2.0**-4));
    

    我相信always @* 在触发实数时会出现问题,所以如果您可以使用系统verilog,那么always_comb 会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多