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

評論