打印

有谁能解释此程序的运行结果吗?

[复制链接]
1430|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stoneymumu|  楼主 | 2007-5-18 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
module exc2;
    reg[7:0] c;
    initial begin
        c=8`d250*8`d2;    //结果分析
    #1000 $stop;
    end
    endmodule

运行结果是c=64
这是为什么呀?我的分析是250*2=500=111110100B,取低八位c=11110100B=244。哪里分析错了,谁能解释一下吗?

相关帖子

沙发
yb840311| | 2007-5-18 11:15 | 只看该作者

    reg[7:0] c;把前的范围放大,如reg[15:0] c;再试一下,哪样计算结果已经溢出了。

使用特权

评论回复
板凳
stoneymumu|  楼主 | 2007-5-18 12:43 | 只看该作者

c定义8位的话指定会溢出
但溢出后应该是244吧,为什么会变成64呢,就是这点搞不明白……

使用特权

评论回复
地板
yb840311| | 2007-5-19 10:01 | 只看该作者

哪我也就不明白了

也许在Verilog中,值溢出后,c是随机给的,和C语言中不一样了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

1

粉丝