隨著實習面試的臨近、秋招的逐步靠近,愈發覺得知識需要成系統,讓它們串接起來。不然,太容易忘了
1、單比特信號
1.1電平同步
當我們需要在兩個時鐘域間傳輸一個電平信號,這里的電平信號表示信號能夠維持一定的時間(如在原時鐘域內至少維持兩個周期),可以采用兩個觸發器打拍。
類似下面這種,持續一定時間,能在亞穩態穩定后采樣到穩定的值,即第一個周期可能同步失敗,但第二個周期有機會采樣穩定的值,不發生亞穩態
1.2、脈沖同步
當信號在發送端時鐘域內只能持續一個周期時,可以稱為脈沖信號。要注意的是,發送的是脈沖,收到的也應該是脈沖。
為了讓脈沖能夠被接收端采樣,可以將脈沖信號在發送時鐘域內變成電平信號。即采樣到in_pulse為1,則翻轉Q,將脈沖變成邊沿。
只要脈沖有足夠的間隔,就能保證接收端能夠邊沿檢測,從而輸出一個接收時鐘周期的脈沖
1.3 握手
很顯然,上面兩種方式不存在接收方對發送方的反饋。
也可以使用握手協議,確保一筆一筆的完成傳輸,只有完成一筆傳輸,才會改變數據。
見:握手信號傳輸跨時鐘域數據
1.4 展寬
當信號寬度不夠,可以使用展寬的方法,如在發送域打拍,然后取或
2、多bit
2.1 異步FIFO
使用異步FIFO傳輸數據--格雷碼計數器實現
使用異步FIFO傳輸數據--對以前的強烈批判
2.2 多路復用
DMUX數據有效會搭配一個標志信號data_ready,對標志信號進行同步,將同步后的標志信號作為MUX的選通信號。
在發送時鐘域內,標志信號和數據是同步的,在同步器內,標志信號同步有延遲。這樣即使數據和標志信號在接收時鐘上升沿附近變化,data_ready可能發生亞穩態,亞穩態結束后,同步后的標志信號可以正常工作。而數據在這些延遲內,能夠達到穩定,即接收方采樣的data是不變的,當然不會違反建立保持時間
這要求當data_ready=1時,data要保持
換種方式,我們可以將標志信號作為于觸發器使能端。道理是類似的,en=0,并不會使能觸發器的采樣
2.3 握手
和單bit類似,協議讓數據維持足夠的時間
2.4 雙口RAM
雙口RAM可以同時讀寫
增加讀寫控制邏輯,很像異步FIFO,不多說
3、收斂
當出現信號的合流時,如下圖所示,dataa和datab將經過組合邏輯變成1bit。由于組合邏輯的延遲不同,可能出現毛刺,可能傳輸到錯誤的信號,
解決辦法就是發送方再打拍
還要注意的是,兩級同步后,也應該避免多比特使用組合邏輯,原因在于亞穩態恢復的數據不確定
4、發散
當信號要作用于接收方的不同邏輯時,即有多個扇出,由于傳播延時和不同的亞穩態解決時間meta-stable settling time,輸出也可能不同。
因此只能先同步然后使用,避免分別同步使用
審核編輯:湯梓紅
-
脈沖
+關注
關注
20文章
889瀏覽量
95622 -
fifo
+關注
關注
3文章
387瀏覽量
43655 -
信號
+關注
關注
11文章
2790瀏覽量
76736 -
Mux
+關注
關注
0文章
38瀏覽量
23375 -
時鐘域
+關注
關注
0文章
52瀏覽量
9535
原文標題:跨時鐘域梳理
文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論