题解 | #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
);
// assign Y2 = (A[3] > B[3] ) ? 1:
// 			(A[3] < B[3] ) ? 0:
// 			(A[2] > B[2] ) ? 1:
// 			(A[2] < B[2] ) ? 0:
// 			(A[1] > B[1] ) ? 1:
// 			(A[1] < B[1] ) ? 0:
// 			(A[0] > B[0] ) ? 1:
// 			(A[0] < B[0] ) ? 0:0;

// assign Y0 = (A[3] < B[3] ) ? 1:
// 			(A[3] > B[3] ) ? 0:
// 			(A[2] < B[2] ) ? 1:
// 			(A[2] > B[2] ) ? 0:
// 			(A[1] < B[1] ) ? 1:
// 			(A[1] > B[1] ) ? 0:
// 			(A[0] < B[0] ) ? 1:
// 			(A[0] > B[0] ) ? 0:0;

// assign Y1 = (A[3]==B[3] && A[2]==B[2] && A[1]==B[1] && A[0]==B[0]) ? 1 : 0;
/*
---采用门级描述,不实用> <符号
---Y2有四种情况为1
---Y1只有一种情况为1
---Y0只用四种情况为1
*/

assign Y2 = (A[3] & !B[3]) | (~(A[3]^B[3]) && (A[2] & !B[2])) | ((!(A[3]^B[3])) && (!(A[2]^B[2])) && 
			(A[1] & !B[1])) | (~(A[3]^B[3]) && ~(A[2]^B[2]) && ~(A[1]^B[1]) && (A[0] & !B[0]));

assign Y1 = (!(A[3]^B[3]) & !(A[2]^B[2]) & !(A[1]^B[1]) & !(A[0]^B[0]));

assign Y0 = (B[3] & !A[3]) | (~(B[3]^A[3]) && (B[2] & !A[2])) | ((!(B[3]^A[3])) && (!(B[2]^A[2])) && 
			(B[1] & !A[1])) | (~(A[3]^B[3]) && ~(A[2]^B[2]) && ~(A[1]^B[1]) && (B[0] & !A[0]));

endmodule

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务