如上圖所示,當時鐘上公升沿來的時候,資料恰好改變,這個時候輸出的結果就無法確定是0/1,暫存器會經過一段時間的抖動然後輸出乙個結果(無法確定是正確還是錯誤)
通過三個暫存器,資料的抖動會消失,從而得到穩定的資料輸出(資料同樣不確定是否正確)
當暫存器抖動之後輸出為0時,如下圖所示,通過兩個暫存器,就可以消除抖動,並且,在幾個時間週期之後一定能檢測到邊沿
下圖為資料抖動之後輸出為1的情況:
上面只用到了兩個暫存器,如果時鐘頻率特別快,當下乙個時鐘沿到來的時候,暫存器0的q0還在抖動,那麼這個抖動就會傳到第二個暫存器(通過兩個暫存器,抖動基本為0),所以為了確保最後抖動被消除,一般用三個暫存器。
脈衝邊沿檢測的亞穩態處理
一 原理脈衝邊沿檢測是乙個非同步系統設計中常常會使用到的方法。假設有乙個系統,時鐘域a是 50mhz 的時鐘域,它有乙個待檢測的變化訊號 test 存在時鐘域 b,利用此時鐘來檢測時鐘域a中 test 訊號的上下沿。現在需要分兩種情況討論 1 假設時鐘域 a的變化訊號 test 變化得非常快,最大快...
FPGA亞穩態與同步設計
非同步復位 同步釋放採用如下 可能會更直觀一點 wire sys rst reg tmp rst1,tmp rst2 產生非同步復位 同步釋放訊號 always posedge clock,negedge reset n begin if reset n begin tmp rst1 1 b0 tm...
FPGA的邊沿檢測
以前我曾一度傻乎乎的使用 always posedge signal 這樣的 去檢測signal的上公升沿,鬧出了很多問題。當受實驗室的一同學指教後,再也不會傻乎乎的這樣幹了。當然,你看完下文也不會這樣幹了。檢測上公升沿的原理 使用高頻的時鐘對訊號進行取樣,因此要實現上公升沿檢測,時鐘頻率至少要在訊...