题解 | #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]y0,y1,y2; comp1 u_comp1_0( .en(1), .a(A[3]), .b(B[3]), .y2(y2[3]), .y1(y1[3]), .y0(y0[3]) ); genvar i; generate for(i=0;i<3;i=i+1)begin comp1 u_comp1( .en(y1[i+1]), .a(A[i]), .b(B[i]), .y2(y2[i]), .y1(y1[i]), .y0(y0[i]) ); end endgenerate assign Y0=|y0; assign Y1=&y1; assign Y2=|y2; endmodule module comp1( input en, input a, input b, output y2, output y1, output y0 ); assign y2=en&a&(~b); assign y0=en&(~a)&b; assign y1=en&(~(y2|y0)); endmodule