题解 | #4位数值比较器电路#

4位数值比较器电路

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

`timescale 1ns/1ns

module comparator_4(
	input		[3:0]       A   	,
	input	   [3:0]		B   	,
 
 	output	 wire		Y2    , //A>B
	output   wire        Y1    , //A=B
    output   wire        Y0      //A<B
);
	
	wire [3:0] Y2_1;
	wire [3:0] Y1_1;
	wire [3:0] Y0_1;

	compare u_compare0(
		.A(A[0]),
		.B(B[0]),
		.Y2(Y2_1[0]),
		.Y1(Y1_1[0]),
		.Y0(Y0_1[0])
	);

	compare u_compare1(
		.A(A[1]),
		.B(B[1]),
		.Y2(Y2_1[1]),
		.Y1(Y1_1[1]),
		.Y0(Y0_1[1])
	);

	compare u_compare2(
		.A(A[2]),
		.B(B[2]),
		.Y2(Y2_1[2]),
		.Y1(Y1_1[2]),
		.Y0(Y0_1[2])
	);

	compare u_compare3(
		.A(A[3]),
		.B(B[3]),
		.Y2(Y2_1[3]),
		.Y1(Y1_1[3]),
		.Y0(Y0_1[3])
	);

	assign Y2 = Y2_1[3] | (Y1_1[3] & ((Y2_1[2]) | (Y1_1[2] & Y2_1[1]))) | (Y1_1[3] & (Y1_1[2]) & (Y1_1[1]) & Y2_1[0]);
	assign Y1 = (Y1_1[3] & (Y1_1[2]) & (Y1_1[1]) & Y1_1[0]);
	assign Y0 = Y0_1[3] | (Y1_1[3] & ((Y0_1[2]) | (Y1_1[2] & Y0_1[1]))) | (Y1_1[3] & (Y1_1[2]) & (Y1_1[1]) & Y0_1[0]);
	
	


endmodule

module compare(
	A,
	B,
	Y2,
	Y1,
	Y0
);
	input A;
	input B;
	input Y2;
	input Y1;
	input Y0;
	
	//门级描述方式——————and,or,xor,nand,nor,xnor
	assign Y2 = A & (~B);
	assign Y0 = (~A) & B;
	assign Y1 = ((~A) & (~B)) | (A & B);

endmodule

全部评论

相关推荐

03-12 15:34
已编辑
北京邮电大学 Java
呓语0613:老哥你这黑马点评改造是在哪里看的
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务