`timescale 1ns/1ns

module comparator_4(
	input		[3:0]       A   	,
	input	   [3:0]		B   	,
 
 	output	 		Y2    , //A>B
	output          Y1    , //A=B
    output          Y0      //A<B
);


    assign   Y2 = (A[3]&(!B[3])) | ( !(A[3]^ B[3]) & (A[2]& (!B[2])))| (!(A[3:2]^ B[3:2]) & (A[1]&(!B[1]))) | (!(A[3:1]^ B[3:1]) & (A[0]&(!B[0])));
	assign   Y1 = !(A ^ B);
	assign   Y0 = (!A[3]&B[3]) | ( !(A[3]^ B[3]) & (!A[2]& B[2]))| (!(A[3:2] ^ B[3:2]) & (!A[1] & B[1])) | (!(A[3:1]^ B[3:1]) & (!A[0] & B[0]));
/*
always@(*)begin
	if(A[3]> B[3]) begin
		Y2 = 1'b1;
		Y1 = 1'b0;
		Y0 = 1'b0;
	end
	else if(A[3]< B[3]) begin
		Y2 = 1'b0;
		Y1 = 1'b0;
		Y0 = 1'b1;
	end
	else begin
		if(A[2]> B[2]) begin
		    Y2 = 1'b1;
		    Y1 = 1'b0;
		    Y0 = 1'b0;
		end
		else if(A[2]< B[2]) begin
		    Y2 = 1'b0;
		    Y1 = 1'b0;
		    Y0 = 1'b1;
		end
		else begin
			if(A[1]> B[1]) begin
		        Y2 = 1'b1;
		        Y1 = 1'b0;
		        Y0 = 1'b0;
		    end
		    else if(A[1]< B[1]) begin
		        Y2 = 1'b0;
		        Y1 = 1'b0;
		        Y0 = 1'b1;
		    end
			else begin
				if(A[0]> B[0]) begin
		            Y2 = 1'b1;
		            Y1 = 1'b0;
		            Y0 = 1'b0;
		        end
		        else if(A[0]< B[0]) begin
		            Y2 = 1'b0;
		            Y1 = 1'b0;
		            Y0 = 1'b1;
		        end
			    else begin
					Y2 = 1'b0;
		            Y1 = 1'b1;
		            Y0 = 1'b0;
				end
			end

		end
	end
	    
end
*/
endmodule