题解 | #4bit超前进位加法器电路#

4bit超前进位加法器电路

https://www.nowcoder.com/practice/4d5b6dc4bb2848039da2ee40f9738363

`timescale 1ns/1ns

module lca_4(
	input		[3:0]       A_in  ,
	input	    [3:0]		B_in  ,
    input                   C_1   ,
 
 	output	 wire			CO    ,
	output   wire [3:0]	    S
);
	wire [4:0]	g,p,c; //产生信号,传输信号,内部进位

	assign c[0] = C_1;
	assign p 	= A_in ^ B_in;
	assign g	= A_in & B_in;
	assign c[1] = g[0] | (p[0] & c[0]);
	assign c[2] = g[1] | (p[1] & g[0]) | (p[1] & p[0] & c[0]);
	assign c[3] = g[2] | (p[2] & g[1]) | (p[2] & p[1] & g[0]) | (p[2] & p[1] & p[0] & c[0]);
	assign c[4] = g[3] | (p[3] & g[2]) | (p[3] & p[2] & g[1]) | (p[3] & p[2] & p[1] & g[0]) | (p[3] & p[2] & p[1] & p[0] & c[0]);
	assign S = p^c[3:0];
	assign CO = c[4];
endmodule

首先对于一个全加器,其和信号s = A ^ B ^ C,进位信号为C = A&B | (A^B)&Ci。那么多位数Si = A ^ B ^ Ci-1,Ci = Ai&Bi | (Ai^Bi)&Ci-1。定义产生变量Gi=Ai&Bi。传输变量Pi=Ai^Bi。产生变量的意思是当A,B都为1是才会产生进位,传输信号是传输进位,这个解释有点抽象,但是带入式子中就很好理解了。如当Pi为1时,意味着Ai和Bi是相反的即Ai&Bi=0,Ai^Bi=1,那么,Ci = Ai&Bi | (Ai^Bi)&Ci-1就化简为Ci=Ci-1,即低位的进位被传输到高位了。然后要写几bit的超前进位加法器,就依次化简就能得到最后的进位计算式子。

全部评论

相关推荐

沟头学院:无关比赛不要写,这样会显着你主次不分,比赛不要撒谎,有哪些就写那些,创新创业建议删除。技能特长可以适当夸大。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务