题解 | #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
查看16道真题和解析