module TestBench(
output signed [9:0] result1,
output signed [9:0] result2,
output signed [9:0] result3,
output [9:0] result4,
output [9:0] result5,
output [9:0] result6,
output [5:0] result7,
output [5:0] result8,
output [5:0] result9,
output [5:0] result10
);
wire [7:0] dataA = 8'hFF;
wire signed [7:0] dataB = -1;
//1:数值计算只有两个操作数都是有符号数,才会把两个操作数都看作有符号数计算,否则无论是有符号数还是无符号数都会按照无符号数计算。
//2:B=A赋值的时候,B长度大于A的情况下。若A是有符号数,则B高位空余用A的最高位填充,若A是无符号数,B的高位用0填充。
assign result1 = dataA + dataA; //10'b0111_1111_1110
assign result2 = dataA + dataB; //10'b0111_1111_1110
assign result3 = dataB + dataB; //10'b1111_1111_1110
assign result4 = dataA + dataA; //10'b0111_1111_1110
assign result5 = dataA + dataB; //10'b0111_1111_1110
assign result6 = dataB + dataB; //10'b1111_1111_1110
//3:B=A赋值的时候,B长度小于A的情况下。数据A就会被截断,截断的规则就是从低位开始取,被截断的是高位
assign result7 = result2; //10'b11_1110
assign result8 = result3; //10'b11_1110
assign result9 = result4; //10'b11_1110
assign result10 = result5; //10'b11_1110
endmodule