题解 | #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]) + (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 = (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]);
endmodule
第一下完全没看懂这个怎么写,上一章的题大部分都是有时钟的,而这个就是一个真值表。
看了别人的解题思路大部分是用门级写的,但是门级的写着感觉冗余,不如这样直接根据真值表写出表达式即可。

