在实际应用中,外部输入的异步信号需要经过系统时钟的同步化,且将输入的异步信号整形成宽度位一个时钟周期的脉冲信号。
1 module clk_syn( 2 clk, 3 reset, 4 s_in, 5 s_out 6 ); 7 8 input clk; 9 input reset; 10 input s_in; 11 output s_out; 12 13 reg s_t1,s_t2; 14 15 always @ ( posedge clk ) begin 16 if ( reset ) begin 17 s_t1 <= 1'b0; 18 s_t2 <= 1'b0; 19 end 20 else begin 21 s_t1 <= s_in; 22 s_t2 <= s_t1; 23 end 24 end 25 26 assign s_out = s_t1 & ( !s_t2 ); 27 28 endmodule
即使a_in在时钟周期内发生抖动,也不会影响输出结果,还是被整形成一个时钟宽度。