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