異步復位 同步釋放
在進行時序分析的時候要保證傳輸的信號滿足建立時間和保持時間,避免採樣發生亞穩態(亞穩態會造成採樣不確定;亞穩態傳播)。同樣復位信號在復位和釋放的時候也要滿足建立時間和保持時間。一般採用異步復位同步釋放的方式,如下圖所示
左邊兩個寄存器是同步釋放寄存器,右邊是需要復位的design。
1. 當rst_async_n爲低,復位的時候,立馬異步復位design。
2. 當rst_async_n由低變高,復位釋放的時候,第一級寄存器採樣VCC可能出現亞穩態,第二級再同步一次,基本不會出現亞穩態。
always @ (posedge clk, negedge rst_async_n)
if (!rst_async_n)
{rst_s2,rst_s1} <= 0;
else
{rst_s2,rst_s1} <= {rst_s1,1'b1};
assign rst_sync_n = rst_s2;
endmodule
兩級同步基本可以消除亞穩態
同步釋放電路中,第一級寄存器一般會發生亞穩態,亞穩態傳播一段時間(小於一個週期)後,會恢復穩定,第二級寄存器對穩定後的信號採樣,不會發生亞穩態。但如果工藝很先進的時候,亞穩態持續了一個週期以上,那麼第二級寄存器採樣也會發生亞穩態,這樣就需要第三極寄存器同步。
參考
https://blog.csdn.net/u011729865/article/details/49281713#commentBox