1234567891011121314151617181920212223242526272829303132 |
- // 32 bit millisecond counter starting from reset
- module MillisCounter(
- input clk,
- input reset,
- output reg [31:0] millis = 32'd0
- );
- reg [15:0] delayCounter = 16'd0; // counter for timing 1 ms
- always @(posedge clk)
- begin
- if (reset)
- begin
- millis <= 32'd0;
- delayCounter <= 16'd0;
- end
- else
- begin
- if (delayCounter == 16'd49999)
- begin
- delayCounter <= 16'd0;
- millis <= millis + 1'b1;
- end
- else
- begin
- delayCounter <= delayCounter + 1'b1;
- end
- end
- end
- endmodule
|