天天看點

深入淺出玩轉fPGA-讀書筆記

筆記1 關于異步複位同步釋放的了解

先看代碼:

深入淺出玩轉fPGA-讀書筆記

其中有兩個always語句,把2個觸發器疊加,當按下複位信号rst_n是,兩個觸發器都複位(清零)。當rst_n釋放時,重點就來了,rst_n釋放的時刻可能在時鐘信号的上升沿之前,之中或之後,這裡,關鍵就是rst_n從0變到1時,若clk上升沿的建立時間,穩定時間,保持時間,可能抓到的rst_n是0,1或亞穩态,用兩級觸發器的好處,就是多一個時鐘周期的延時,這樣在第2級觸發器的輸出是個确定的複位信号。因為,若抓取異步複位信号是亞穩态,第二級首先一個時鐘周期的輸出還是前一級的觸發器輸出(0),等到下一個時鐘,抓取的複位信号釋放穩定了,依然輸出前一級的輸出(1)。這樣,用兩級觸發器,即利用了FPGA裡的異步複位端口,又可以得到确定的複位及服務釋放信号,無非是複位釋放時多了一個時鐘周期而已,而這一點延時,對于複位操作來說,一是可以忽略不計,二是可以産生穩定的複位信号。結論就是,這個異步複位,同步釋放的代碼,可以存儲起來,長期使用。

異步複位,同步釋放的RTL視圖

深入淺出玩轉fPGA-讀書筆記

異步複位,同步釋放的仿真結果

深入淺出玩轉fPGA-讀書筆記