题解 | #超前进位加法器#

超前进位加法器

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
);

//*************code***********//
	wire [4:0] C;
	wire [3:0] G,P;

	genvar i;
	generate
		for(i=0;i<4;i=i+1) begin
			assign G[i] = A[i] & B[i];
			assign P[i] = A[i] | B[i];
			assign C[i+1] = G[i] | (P[i] & C[i]); 
			assign OUT[i] = A[i] ^ B[i] ^ C[i];
		end
	endgenerate 

	assign C[0] = 1'b0;
	assign OUT[4] = C[4];
//*************code***********//
endmodule



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

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

endmodule






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

没看明白ADD1中的f是什么意思(我估计是全加器中的sum),就没用子模块实现,直接用一个for循环实现

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务