补码加减运算和运算器
补码加减运算方法
补码的加法运算公式:
[X+Y]补 = [X]补 + [Y]补
补码的减法运算公式:
[X-Y]补 =[X+(-Y)]补 = [X]补 + [-Y]补
求补运算的法则:

补码加减运算的溢出表示
- 方法一: 当最高有效位产生的进位和符号位产生的进位不同时,加减运算发生了溢出

- 方法二: 利用变形补码,但是对硬件的要求比较高,所以不常用

可以看到分别为正溢出,负溢出,负数未溢出
计左起第一个符号位和第二个符号位分别为 和
溢出标志位为OF
则逻辑表达式为:
一位二进制全加器的Verilog实现
根据真值表和卡诺图化简,我们可以得到相应的计算表达式.

用verilog表示就是:
module full_adder (
input A,
input B,
input Cin, // 前一个的低位进位
output Sum, // 运算低位和
output Cout // 运算进位
);
assign Sum = A ^ B ^ Cin;
assign Cout = (A & B) | (Cin & (A ^ B));
/*
也可以用这种方式来表示
assign {Cout, Sum} = A + B + Cin
*/
endmodule