题解 | #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

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 14:35
点赞 评论 收藏
分享
06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
测试糕手手:社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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