|
发表于 2012-7-26 16:13:53
|
显示全部楼层
想计算5-2,第一次手动计算,第二次加$signed来计算,如下:
第一次:
wire[3:0] a,b,c;
assign a = 4'd5;
assign b = 4'b1110; //-2的补码
assign c = a + b;
仿真结果为4'b0011;
a=5,b=14 c=a+b=19,因为c只有4bit,数据溢出,因此c=3
第二次:
wire [3:0] a1,b1;
wire signed [3:0] c1;
assign a1 = 4'd5;
assign b1 = 4'b1010; //-2的原码
assign c1 = $signed(a1) + $signed(b1);
仿真结果为4'1111;
$signed(a1)=5, $signed(b1) =-6 ,c1=-1,因此c1=4'b1111 |
|
|