在验证环境中,经常会用到bit、byte、int等数据类型,有的是无符号整数,如bit、int unsigened,有的是有符号整数,如byte、int.这些数据类型通过16进制打印时,和原来的赋值一样,但是通过10进制打印时,就会显示出符号位.
因此,我们在使用时需要特别注意,例如在项目中用int类型统计所有报文长度之和时,长度之和使得int类型的最高位为1时,便会导致长度之和为负数;如果用其来计算速率,且用十进制打印时,会显示出速率为负值,显然不是我们想要的,此时需要通过int unsigned来存储数据长度之和.
1.bit类型说明
bit [7:0] data0;
data0为无符号整数,它的取值范围是0~255;
2.byte类型说明
byte data1;
data1为有符号整数,它的取值范围是-128~+127.
其中:data1 = 8’h80,代表-128;
data1 = 8‘h7f,代表+127;
3.对比
从打印信息中可以看出,16进制打印无区别,10进制打印有符号位.
system verilog中带符号数据类型
最新推荐文章于 2023-02-23 21:48:45 发布