Verilog code for 4 bit Binary Ripple Counter

Field-Programmable Gate Arrays
Post Reply
User avatar
Magneto
Major
Major
Posts: 430
Joined: Wed Jul 15, 2009 1:52 pm
Location: London

Verilog code for 4 bit Binary Ripple Counter

Post by Magneto » Sat Nov 14, 2009 10:23 pm

rr_1.JPG
rr_1.JPG (31.1 KiB) Viewed 12628 times
//Ripple counter
module ripplecounter (A0,A1,A2,A3,Count,Reset);
output A0,A1,A2,A3;
input Count,Reset;
//Instantiate complementing flip-flop
CF F0 (A0,Count,Reset);
CF F1 (A1,A0,Reset);
CF F2 (A2,A1,Reset);
CF F3 (A3,A2,Reset);
endmodule

//Complementing flip-flop with delay
//Input to D flip-flop = Q'
module CF (Q,CLK,Reset);
output Q;
input CLK,Reset;
reg Q;
always @ (negedge CLK or posedge Reset)
if (Reset) Q = 1'b0;
else Q = #2 (~Q); // Delay of 2 time units
endmodule


//Stimulus for testing ripple counter

module testcounter;
reg Count;
reg Reset;
wire A0,A1,A2,A3;
//Instantiate ripple counter
ripplecounter RC (A0,A1,A2,A3,Count,Reset);
always
#5 Count = ~Count;
initial
begin
Count = 1'b0;
Reset = 1'b1;
#4 Reset = 1'b0;
#165 $finish;
end
endmodule
Post Reply

Return to “FPGA”