SV中$display有关数值的显示格式

这个问题来自群里的小伙伴,我觉得还不错,就自己操作了一下(通过linux操作系统下的vcs来查看结果)刚好老师也讲过一次。

 

百分号(%)与进制数之间通过阈宽(field width)来实现数据的对齐格式

15ff25fe6d8446aeb50bb836bc64f778.png

1.首先是不考虑域宽的情况,即一般情况。

运行代码:

e60ce20dd67c4345b43196a5dae2cc9b.png

由于a=8‘b1;表示a位宽为8为二进制。用十六进制表示是两位,十进制表示是2的8次方减1位。

仿真结果:

a358dbb438e3499585745ef1c73dde9d.png

 可以看出,由于没有声明阈宽,显示的结果是默认阈宽。十进制是补空格左对齐,其他进制是补0左对齐。

2.考虑域宽值

运行代码:

 924b2076ec7f4e528ad225375d4940f3.png

仿真结果:

38b5fad098604b889cbfeff76b73300d.png

 可以看出,设置了6位的域宽(大于实际位宽),即十进制左边对齐补空格,其他进制左对齐补0.

当设置域宽小于实际位宽,这里会按照实际位宽显示。这里就不进行操作了。

3.当域宽为负值时

运行代码

65520fa1c030489d9500171e7255edf7.png

 仿真结果:

01654c0129e34c0eb9b8dce087c980b5.png

可见十进制和十六进制是右对齐补0,但是8进制造成了显示错误。实际中IEEE1800中,约定阈值宽度只能为正数,所以赋值域宽可能在不同的仿真工具下处理情况不一致。因此,不建议使用赋值域宽。

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值