题解 | #超前进位加法器#(原理解析)

超前进位加法器

https://www.nowcoder.com/practice/c4c6afdab9ce45a3a2279a98391686ca

`timescale 1ns/1ns

module huawei8//四位超前进位加法器
(
	input wire [3:0]A,
	input wire [3:0]B,
	output wire [4:0]OUT
);

wire [3:0] P,G,F;
wire [4:1] Ci   ; 


//*************code***********//
CLA_4 CLA_4(
		.P(P),
		.G(G),
		.C_in(1'b0),
		.Ci(Ci),
		.Gm(),
		.Pm()
	);
Add1 Add_1_INST1
(
		 .a   (A[0])  ,
		 .b    (B[0]) ,
		 .C_in (1'b0) ,
		 .f   (F[0]) ,
		 .g   (G[0]) , 
		 .p   (P[0])
);	

Add1 Add_1_INST2
(
		 .a   (A[1])  ,
		 .b    (B[1]) ,
		 .C_in (Ci[1]) ,
		 .f   (F[1]) ,
		 .g   (G[1]) , 
		 .p   (P[1])
);	
Add1 Add_1_INST3
(
		 .a   (A[2])  ,
		 .b    (B[2]) ,
		 .C_in (Ci[2]) ,
		 .f   (F[2]) ,
		 .g   (G[2]) , 
		 .p   (P[2])
);	
Add1 Add_1_INST4
(
		 .a   (A[3])  ,
		 .b    (B[3]) ,
		 .C_in (Ci[3]) ,
		 .f   (F[3]) ,
		 .g   (G[3]) , 
		 .p   (P[3])
);	

assign OUT = {Ci[4],F} ;
//*************code***********//
endmodule



//////////////下面是两个子模块////////

module Add1
(
		input a,
		input b,
		input C_in,
		output f,
		output g, 
		output p
		);

assign f = a ^ b ^ C_in ;
assign g = a & b        ; //进位生成函数
assign p = a | b        ; //进位传送函数

endmodule




module CLA_4(
		input [3:0]P,
		input [3:0]G,
		input C_in,
		output [4:1]Ci,
		output Gm,
		output Pm
	);


assign	Ci[1] = G[0] | P[0] & C_in ;
assign  Ci[2] = G[1] | P[1] & G[0] | P[1] & P[0] & C_in ;
assign  Ci[3] = G[2] | P[2] & G[1] | P[2] & P[1] & G[0] | P[2]& P[1] & P[0] & C_in ;
assign  Ci[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_in ;
endmodule

原来的串行进位加法器需要每一位计算以后,进位端输出端CO 连接到下一位的进位输入端CI来进行计算。

这样做的话一个运算需要经过4个一位全加器的延迟时间。

而超前进位加法器与串行进位加法器的不同之处在于,超前进位加法器的进位是事先通过逻辑电路就可以的出每一位全加器的进位输入CI。

全加器的逻辑表达式为:

S = A ^ B ^ CI ;

CO = AB + (A+B)CI

令G=AB 作为进位生成函数G ,P=A+B 作为进位传送函数P 那么CO可以改写为:

CO = G +P CI ;

那么对于每一位的进位可以展开为:

其中C0 为第0位的进位

那么展开以后发现 每一位的进位端都可以由进位生成函数G以及进位传送函数P表示,代表可以事先通过逻辑表达式就可以表示出进位,而不需要经过全加器的计算。

所以结构如下:

通过CAL_4模块 事先处理 所有进位端。

全部评论

相关推荐

合适才能收到offe...:招聘上写这些态度傲慢的就别继续招呼了,你会发现hr和面试官挺神的,本来求职艰难就可能影响一些心态了,你去这种公司面试的话,整个心态会炸的。
点赞 评论 收藏
分享
02-18 13:28
门头沟学院 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
3498次浏览 43人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16869次浏览 137人参与
# MiniMax求职进展汇总 #
25046次浏览 321人参与
# 春招至今,你的战绩如何? #
15402次浏览 142人参与
# 你的实习产出是真实的还是包装的? #
2907次浏览 52人参与
# 沪漂/北漂你觉得哪个更苦? #
1413次浏览 40人参与
# 巨人网络春招 #
11511次浏览 224人参与
# HR最不可信的一句话是__ #
1066次浏览 32人参与
# AI面会问哪些问题? #
926次浏览 22人参与
# 你做过最难的笔试是哪家公司 #
1201次浏览 21人参与
# AI时代,哪个岗位还有“活路” #
2781次浏览 51人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152881次浏览 889人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7990次浏览 43人参与
# XX请雇我工作 #
51154次浏览 171人参与
# 简历第一个项目做什么 #
32120次浏览 359人参与
# 简历中的项目经历要怎么写? #
310994次浏览 4262人参与
# 投格力的你,拿到offer了吗? #
178311次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
76961次浏览 375人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187576次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64632次浏览 871人参与
# 如果重来一次你还会读研吗 #
230002次浏览 2011人参与
# 正在春招的你,也参与了去年秋招吗? #
364304次浏览 2641人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务