看了许多关于有符号数计算的文章,这里做一下总结。
首先看看有符号数是如何存储的,比如我们定义一个位宽为8位的 a=-10,通过仿真软件可以看到它的表示为1111 0110,最高位是1代表有符号数,大小是它的反码加1。接下来我们会分别做一下四个实验:有符号数与无符号数的乘加计算和全是有符号数的乘加计算。
1.有符号数+无符号数
module mult(
input [7:0] a ,
input signed [7:0] b,
output signed [15:0]c
);
assign c = a + b;
endmodule