在跨时钟域处理单bit信号时,快时钟域的信号由于频率较快,信号的脉宽如果不足时,不能被慢时钟采样到,因此需要将快时钟产生的信号进行展宽,然后再进行打两拍来处理亚稳态。
设脉冲信号为pulse;
假设在一个系统所有动作完成时,比如状态机跳转完成或者计数器计数到期望值时能够产生一个脉冲信号done
定义一个寄存器pulse_to_vol;
关键代码为:
always @ (posedge clk or negedge rstn) begin
if (!rstn)
pulse_to_vol <= 1'b0;
else if (pulse)
pulse_to_vol <= 1'b1;
else if (done)
pulse_to_vol <= 1'b0;
else
pulse_to_vol <= pulse_to_vol;
end