CDC处理
亞穩態問題及其解決方法
本文簡單介紹亞穩態問題的概念,著重介紹解決亞穩態問題的方法。
了解亞穩態
亞穩態問題是FPGA、數字IC設計中最基礎的一個概念,掌握這個概念需要理解觸發器的基本原理、跨時鐘域(Cross Clock Domain)概念。
亞穩態產生的原因?
亞穩態問題是由于違背了觸發器的建立時間和保持時間而產生的。
- 設計中任何一個觸發器都有特定的建立時間和保持時間,但是要求觸發器的時鐘邊沿到來前后的窗口期內觸發器D端的輸入保持穩定。 一旦在這個窗口期內輸入數據發生了變化,由于觸發器的結構特性會導致觸發器的Q端的輸出是未知的。這種未知的狀態會隨著電路傳播下去給電路造成危害,這種不確定狀態的傳播叫做亞穩態。
- 觸發器是否進入亞穩態和返回穩態所需的時間取決于工藝和環境,一般來說,觸發器會在一、二個時鐘周期內返回穩定的狀態。
亞穩態問題如何解決?
在多時鐘設計中,亞穩態問題是不可避免的,亞穩態問題無法從根本上消除、但可以通過特定的電路來降低亞穩態的發生的概率。
- 解決方法分類:(1)單/多bit信號(控制/數據)(2)快—>慢/慢—>快
- 邊沿檢測同步器:邊沿檢測同步器如圖所示,通過寄存器之間的與操作可以提取輸入信號的上升沿或者下降沿,電路圖和時序圖如下:
邊沿檢測同步器對輸入信號有要求,要求輸入信號寬度必須 > (采樣時鐘周期(CLKB)+A的Thold時間),最安全的就是輸入寬度為2個采樣周期(CLKB)的寬度。
單bit從快到慢:- 脈沖檢測同步器:脈沖檢測同步器如圖所示,通過提取快時鐘域下的一個脈沖并在慢時鐘域進行展寬,展寬采用異或門,電路圖和時序圖如下:
邊沿檢測同步器對輸入信號有要求,要求輸入信號寬度必須 > (采樣時鐘周期(CLKB)+A的Thold時間),最安全的就是輸入寬度為2個采樣周期(CLKB)的寬度。
握手信號
詳情參見3.2
多bit數據信號處理的時候主要看信號的變化特征,如果能夠滿足格雷碼的數據變換方式,由于每次只有1bit數據發生改變,那么能夠采用上述的同步方式,否則應當采用握手信號或者異步fifo的形式處理
參考:
[https://blog.csdn.net/CLL_caicai/article/details/104625791]
總結
- 上一篇: cad转图片,cad图纸该如何转换成sv
- 下一篇: python判断按键是否按下_pytho