module bcd_counter(ONES,TENS,HUNDREDS,THOUSANDS,CLOCK); input CLOCK; output ONES, TENS, HUNDREDS, THOUSANDS; // decimal digits reg [3:0] ONES, TENS, HUNDREDS, THOUSANDS; initial begin ONES <= 0; TENS <= 0; HUNDREDS <= 0; THOUSANDS <= 0; end always @ (posedge CLOCK) begin // generate digits and display them on 7-segment displays ONES <= ONES + 1; if (ONES==9) begin ONES <= 0; TENS <= TENS + 1; end if (TENS == 9 && ONES==9) begin TENS <= 0; HUNDREDS <= HUNDREDS + 1; end if (HUNDREDS == 9 && TENS==9 && ONES==9) begin HUNDREDS <= 0; THOUSANDS <= THOUSANDS + 1; end end endmodule