问题: 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