Skip to main content

Comparator 74 85

Comparator : 74 85 



`timescale 1ns / 1ps
module B4_COMP_74X85(A,B,AGBIN,ALBIN,AEQBIN,AGBOUT,ALBOUT,AEQBOUT); input [3:0]A,B;
input AGBIN,ALBIN,AEQBIN;
output reg AGBOUT,ALBOUT,AEQBOUT;
always@*
begin
if (A[3]>B[3])
begin
AGBOUT<=1'b1;
ALBOUT<=1'b0;
AEQBOUT<=1'b0;
end
else
if(A[3]<B[3])
begin
AGBOUT<=1'b0;
ALBOUT<=1'b1;
AEQBOUT<=1'b0;
end
else
if(A[3]==B[3] & A[2]>B[2])
begin
AGBOUT<=1'b1;
ALBOUT<=1'b0;
AEQBOUT<=1'b0;
end
else
if(A[3]==B[3] & A[2]<B[2])
begin
AGBOUT<=1'b0;
ALBOUT<=1'b1;
AEQBOUT<=1'b0;
end
else
if(A[3]==B[3] & A[2]==B[2] & A[1]>B[1])
begin
AGBOUT<=1'b1;

ALBOUT<=1'b0;
AEQBOUT<=1'b0;
end
else
if(A[3]==B[3] & A[2]==B[2] & A[1]<B[1])
begin
AGBOUT<=1'b0;
ALBOUT<=1'b1;
AEQBOUT<=1'b0;
end
else
if(A[3]==B[3] & A[2]==B[2] & A[1]==B[1] & A[0]>B[0])
begin
AGBOUT<=1'b1;
ALBOUT<=1'b0;
AEQBOUT<=1'b0;
end
else
if(A[3]==B[3] & A[2]==B[2] & A[1]==B[1] & A[0]<B[0])
begin
AGBOUT<=1'b0;
ALBOUT<=1'b1;
AEQBOUT<=1'b0;
end
else
if(A[3]==B[3] & A[2]==B[2] & A[1]==B[1] & A[0]==B[0])
begin
if(AGBIN==1'b1 & ALBIN==1'b0 & AEQBIN==1'b0)
begin
AGBOUT<=1'b1;
ALBOUT<=1'b0;
AEQBOUT<=1'b0;
end
else
if(AGBIN==1'b0 & ALBIN==1'b1 & AEQBIN==1'b0)
begin
AGBOUT<=1'b0;
ALBOUT<=1'b1;
AEQBOUT<=1'b0;
end
else
if(AGBIN==(1'b1|1'b0) & ALBIN==(1'b0|1'b1) & AEQBIN==1'b1)
begin
AGBOUT<=1'b0;
ALBOUT<=1'b0;
AEQBOUT<=1'b1;
end
else
if(AGBIN==1'b1 & ALBIN==1'b1 & AEQBIN==1'b0)
begin
AGBOUT<=1'b0;
ALBOUT<=1'b0;
AEQBOUT<=1'b0;
end
else
if(AGBIN==1'b0 & ALBIN==1'b0 & AEQBIN==1'b0)
begin

AGBOUT<=1'b1;
ALBOUT<=1'b1;
AEQBOUT<=1'b0;
end
end
end
endmodule

Comments

Popular posts from this blog

Full Adder Using Multiplexer

Full Adder can be implemented by using mux .... These are the possible ways to do that !

Multiplexer and Demultiplexer

Multiplexer :  74 151  `timescale 1ns / 1ps module mux_74x151(EN_L, S, D, Y); input EN_L; input [2:0]S; input [7:0]D; output reg Y; reg y1; always@* begin case(S) 3'b000: y1<=D[0]; 3'b001: y1<=D[1]; 3'b010: y1<=D[2]; 3'b011: y1<=D[3]; 3'b100: y1<=D[4]; 3'b101: y1<=D[5]; 3'b110: y1<=D[6]; 3'b111: y1<=D[7]; default: y1<=1'b0; endcase if(EN_L==1'b0) Y<=y1; else Y<=1'b0; end endmodule Demultiplexer : 74 155 `timescale 1ns / 1ps module demux_74x155(ea,eab,ebb1,ebb2,A,outa,outb); input ea,eab,ebb1,ebb2; input [1:0]A; output reg [3:0]outa,outb; reg [3:0] y1; always@* begin case(A) 2'b00: y1<=4'b0111; 2'b01: y1<=4'b1011; 2'b10: y1<=4'b1101; 2'b11: y1<=4'b1110; default: y1<=4'b1111; endcase if(ea==1'b1 & eab==1'b0) outa <=y1; else outa <=4'b1111; if(ebb1==1'b0 & ebb2==1'b0) outb <=y1; else out...

Counters

Decade Counter and 4 Bit Counters are discussed in this post ... `timescale 1ns / 1ps module dec_counter_74x90( input CLK, input [1:0] R0, input [1:0] R9, output reg [3:0] q); always@(negedge CLK) begin if(R0==2'b11) q <=4'b0000 ; else if(R9==2'b11) q<=4'b1001; else if(q!=4'b1001) q <= q+1'b1; else q <= 4'b0000; end endmodule 4 Bit Counter : `timescale 1ns / 1ps module counter_74x93( input CLK, input [1:0] R0, output reg [3:0] q ); always@(negedge CLK) begin if(R0==2'b11) q<=4'b0000; else q <= q+1'b1; end endmodule