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