用的移位操作和拼接符,定义个无符号数,把输入通过移位和拼接转为无符号的数后再比较。
`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 [4:0]x,y;
reg r_Y2;
reg r_Y1;
reg r_Y0;
assign x = {A[3],3'b000} + {A[2],2'b00} + {A[1],1'b0} + A[0];
assign y = {B[3],3'b000} + {B[2],2'b00} + {B[1],1'b0} + A[0];
always@(*)begin
if(x>y)begin
r_Y2 = 1;
r_Y1 = 0;
r_Y0 = 0;
end
else if(x==y)begin
r_Y2 = 0;
r_Y1 = 1;
r_Y0 = 0;
end
else begin
r_Y2 = 0;
r_Y1 = 0;
r_Y0 = 1;
end
end
assign Y2=r_Y2;
assign Y1=r_Y1;
assign Y0=r_Y0;
endmodule

京公网安备 11010502036488号