1 module filter(input clock
,
3 output reg out
, // out a filtered version of in
4 output reg strobe
); // true for one cycle synchronous with a change
6 parameter freq
= 25_000_000; // 25MHz
7 parameter limit
= 50_000; // 50kHz
8 parameter dur
= freq
/ limit
;
10 parameter N
= 14; // INV: 2**N > dur;
14 // Filter out any meta stability
17 always @(posedge clock
) begin
23 // Note, we depend on countdown[N] being reset here.
24 else if (~countdown
[N
])
25 countdown
<= countdown
- 1;