减法器
程序员文章站
2022-04-16 16:24:45
...
减法器可以由基础的半减器和全减器模块组成,或者基于加法器和控制信号搭建。
定义Nbit被减数x,减数Y,差为D(difference);
来自低bit的借位Bi,想高bit借位Bi+1,i为bit序号。
一、半减器
半减器用于计算两bitXi和Yi的减法,输出结果Di和向高位的借位Bo(Borrow output)。其真值表、逻辑表达式、verilog描述和门电路图如下:
module half_sub(
input xi,
input yi,
output di,
output bi
);
assign di = xi ^ yi;
assign bi = (~xi)&yi;
endmodule
二、全减器
全减器不同于半减器在于,全减器输入来自低位的借位Bi(Borrow input),另外两个输入xi、yi,输出为Di和向高位借位Bo。
逻辑表达式
module full_sub(
input xi,
input yi,
input bi,
output di,
output do
);
assign di = x1^yi^bi;
assign do = (~xi&bi) | (~xi&yi) | (yi&bi);
endmodule
三、减法器
全减器
根据全减器搭建16bit减法器,如下图:
除了使用半减器和全减器搭建减法器之外,减法器使用控制信号便可以与加法器共用相同的结构。X和Y均采用二进制补码表示
~Y是对Y按bit取反。
加减法器
以上是基于行波进位加法器修改的电路结构,使其同时具有加法和减法的功能。由加或者减的控制信号,决定该部件的功能,输入C0=0时表示加法,C0=1表示减法。为了溢出与符号位考虑,以上结构最后进位输出要与控制信号进位异或以满足减法器需求。
(1)基于全减器
(2)根据行波进位加法器,通过控制信号,使其同时具有加法和减法的功能。注意进位