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

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


genvar i;
generate
	for(i = 0; i < 4; i = i + 1)begin: ADD
		wire g = A_in[i] & B_in[i];
		wire p = A_in[i] ^ B_in[i];
		wire C;
		if (i == 0)begin
			assign S[i] = p ^ C_1;
			assign C = g + (p & C_1);
		end else begin
			assign S[i] = p ^ ADD[i-1].C;
			assign C = g + (p & ADD[i-1].C);
			if (i == 3)begin
				assign CO = C;
			end
		end
		
	end

endgenerate

endmodule

逻辑运算计算加括号QAQ,测试三遍才发现是assign C = g + (p & C_1);而不是assign C = g + p & C_1;

全部评论

相关推荐

咩咩子_:项目和图形引擎岗没啥关系,最好还是项目和岗位有相关度好点,不然真有面也不一定会问很多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务