使用 A & !B可以在A=1 B=0的时候返回1,比较大小,然后用^~同或比较是否一致,那么四位就可以简单的写为下面代码
`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[2] & !B[2] & (A[3] ^~ B[3])) ||
(A[1] & !B[1] & (A[3] ^~ B[3]) & (A[2] ^~ B[2])) ||
(A[0] & !B[0] & (A[3] ^~ B[3]) & (A[2] ^~ B[2]) & (A[1] ^~ B[1]));
assign Y0 = (!A[3] & B[3]) ||
(!A[2] & B[2] & (A[3] ^~ B[3])) ||
(!A[1] & B[1] & (A[3] ^~ B[3]) & (A[2] ^~ B[2])) ||
(!A[0] & B[0] & (A[3] ^~ B[3]) & (A[2] ^~ B[2]) & (A[1] ^~ B[1]));
assign Y1 = (A[3] ^~ B[3]) & (A[2] ^~ B[2]) & (A[1] ^~ B[1]) & (A[0] ^~ B[0]);
endmodule



京公网安备 11010502036488号