什么是同步复位和异步复位
- 异步复位
always@(posedge clk_fs or negedge rst_n)begin
if(!rst_n)
state<=idle;
else
state<=next_state;
end
- 同步复位
always@(posedge clk_fs)begin
if(!rst_n)
state<=idle;
else
state<=next_state;
end
- 总结:同步复位时,每次复位一定与clk的上升沿对齐,即复位是由clk上升沿触发的。异步复位时,复位可能是由rst_n的下降沿触发的。
复位信号
复位信号是多扇出信号,即复位信号控制着多个信号,如果扇出的信号过多,会导致时序问题。上BUFG可以解决这个问题。
一般用同步复位,因为异步复位会造成亚稳态