您的位置:首页 > 其它

Verilog|数据类型中的有符号和无符…

2015-09-25 11:02 120 查看
最近被Verilog中的有符号和无符号迷惑了一下,终于有点眉目了,赶紧写下来。

首先记住,有符号数的运算全都是补码的方式。
下面看3个例子:

-------------------------------------------------------------

reg [7:0]   temp1,
temp2, temp3, temp4, temp5, temp6 ;  
temp1 = 8'd18;
   
    temp2 = -8'd18;
   
    temp3 = 8'sd18;
   
    temp4 = -12/3;
   
    temp5 =
-8'd12/3;
   
    temp6 =
-8'sd12/3;

-------------------------------------------------------------

以下是仿真的结果;





先看前3个
8'd18表示输入的是无符号的十进制数18
 
   
-8'd18表示输入的是-18,所以结果为11101110
 
   
8'sd18表示输入的是有符号的18
再看后3个
-12/3    
 的结果为-4的补码
-8'd12/3 的结果比较奇怪,因为-8'sd12可以分解为
-(8'd12)/3,就是11110100/3,结果为01010001
-8'sd12/3的结果为-4的补码

这里可以看出,加上了s后,在运算的时候编译器把数当作有符号数计算,不加s时,即使是补码的负数,也会直接当作无符号数处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: