首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用ModelSim在波形中看到定点数的实数?(Verilog系统)

如何用ModelSim在波形中看到定点数的实数?(Verilog系统)
EN

Stack Overflow用户
提问于 2016-02-11 14:26:11
回答 1查看 2.1K关注 0票数 3

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

代码语言:javascript
复制
    // 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工具时,我可以点击信号波形,选择“创建表达式”,然后简单地创建一个新信号:

代码语言:javascript
复制
    (my_number1*(2.0**-4))

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

我试着在我的测试平台上创建一个真正的信号:

代码语言:javascript
复制
    real my_number1_real = (my_number1*(2.0**-4));

但我只看到-0。我也尝试过$bitstoreal,但是我必须将它转换为64位数,并考虑指数等等(见维基百科),所以这绝对不是一种简单的方法。

知道我该怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 15:21:25

代码语言:javascript
复制
real my_number1_real = (my_number1*(2.0**-4));

是在时间0处计算的常量表达式。像下面这样的东西会更好。

代码语言:javascript
复制
real my_number1_real;
always @* 
 my_number1_real = (my_number1*(2.0**-4));

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35341963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档