亞穩(wěn)態(tài)
在異步系統(tǒng)中,由于數(shù)據(jù)和時鐘的關(guān)系不是固定的,因此會出現(xiàn)違反建立和保持時間的現(xiàn)象。此時會出現(xiàn)輸出介于兩個有效態(tài)的中間電平并且無法確定停留在中間態(tài)的時間,在經(jīng)過一定的延遲后才能進(jìn)行正常轉(zhuǎn)換。這種處于中間的狀態(tài)稱為亞穩(wěn)態(tài)。
亞穩(wěn)態(tài)的產(chǎn)生
當(dāng)違背建立,保持時間時,亞穩(wěn)態(tài)就會出現(xiàn),在以下情況下,可能出現(xiàn)亞穩(wěn)態(tài)。
- 異步輸入信號
- 時序違例
- 信號在不同時鐘域下跨時鐘域工作
- 競爭冒險
本文主要講解信號在不同時鐘域下的工作,即異步時鐘的同步處理。
跨時鐘域的信號同步
- 兩級同步
- 握手操作
- 異步FIFO或異步雙口RAM
控制信號的傳輸
- 兩級同步
-
多級同步觸發(fā)器是單bit數(shù)據(jù)的常見同步方式。方法是在跨時鐘域的信號上加上兩級或多級同步觸發(fā)器。
-
兩級同步器可以極大概率避免亞穩(wěn)態(tài)的產(chǎn)生。有兩個明顯的缺點:
1) 輸入信號必須保證寬度大于或等于1個采樣時鐘周期(輸入信號加約束);
2) 不可避免的增加了電路的整體延時(兩級同步器為2個采樣時鐘周期)。
-
多級同步器
兩級同步器
兩級同步器Verilog表示為:
1always@(posedge dest_clk) begin
2 dest_data1_in <= src_data_out;
3 dest_data2_in <= dest_data1_in;
4end
數(shù)據(jù)信號的傳輸
-
握手信號方法
使用握手方式是最古老的和可靠的不同時鐘域的數(shù)據(jù)傳輸方式。
下圖是由兩個時鐘域分割成的兩個單獨的模塊。
跨時鐘域模塊
使用握手信號xack和yreq,模塊X將數(shù)據(jù)發(fā)送給模塊Y。下面是使用握手信號傳輸數(shù)據(jù)的例子。
1)模塊X將數(shù)據(jù)放到數(shù)據(jù)總線上并發(fā)出xreq(請求)信號,表示有效數(shù)據(jù)已經(jīng)放到數(shù)據(jù)總線上。
2)把xreq信號打兩級同步到y(tǒng)clk時鐘域。
3)模塊Y在接收到xreq同步后的信號后,接收數(shù)據(jù)總線上的信號。
4)模塊Y接收數(shù)據(jù)的同時發(fā)出yack(響應(yīng))信號,表示已經(jīng)接收到了數(shù)據(jù)。
5)模塊X接收到y(tǒng)ack后打兩級同步到xclk時鐘域。
6)模塊X在接收到y(tǒng)ack同步后的信號后,使xreq無效,表示此次數(shù)據(jù)傳輸結(jié)束。
7)模塊Y在發(fā)現(xiàn)xreq無效后,使yack無效。
8)模塊X發(fā)現(xiàn)yack無效后可以進(jìn)行下一筆數(shù)據(jù)傳輸。
優(yōu)點 :不論xclk和yclk的頻率如何,都可以進(jìn)行數(shù)據(jù)傳輸。缺點 :完成數(shù)據(jù)傳輸?shù)难舆t比使用異步FIFO傳輸大得多。
-
RAM
+關(guān)注
關(guān)注
8文章
1391瀏覽量
117223 -
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2038瀏覽量
62050 -
FIFO存儲
+關(guān)注
關(guān)注
0文章
103瀏覽量
6177 -
時鐘域
+關(guān)注
關(guān)注
0文章
53瀏覽量
9769 -
異步時鐘
+關(guān)注
關(guān)注
0文章
17瀏覽量
9504
發(fā)布評論請先 登錄
FPGA異步時鐘設(shè)計中的同步策略
異步時鐘同步疑惑
異步時鐘域的亞穩(wěn)態(tài)問題和同步器
同步傳輸/異步傳輸原理什么?
FPGA設(shè)計中的異步復(fù)位同步釋放問題
同步和異步時鐘之間是如何聯(lián)系_如何正確的約束時鐘
多時鐘域的同步時序設(shè)計和幾種處理異步時鐘域接口的方法

評論