问题: x, y, z 位宽为 8bit, c位宽为 4bit, a=1'b1; b=8'h12; 如果 c=~a; x=b+{~a}; y=b+~a; z=b+c; 则x, y, z用二进制数表示分别是多少?

c = ~a = ~4'b0001 = 4'b1110

b = 8'h12 = 8'd18 = 8'b 00000001

x = b + {~a} = 8'b00010010 + 1'b0 = 8'b00010010      //由于{~a},所以先对a进行取反,再补充到8位相加

y = b + ~ a = 8'b00010010 + 8'b 11111110 = 8'b00010000  //先把 a 补充到8位再进行取反,再相加

z = b + c = 8'b00010010 + 8'b00001110 = 8'b00100000

 

不同位宽赋值方法

相关文章: