999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

FPGA跨時鐘域信號同步設計方法研究

2018-09-07 02:31:50
單片機與嵌入式系統應用 2018年9期
關鍵詞:信號設計

(1.工業和信息化部電子第五研究所,廣州 510610;2.重慶賽寶工業技術研究院)

引 言

隨著電子自動化設計(EDA)技術的發展,現場可編程門陣列(FPGA)已經在許多方面得到廣泛應用[1],比如將FPGA應用于通信領域,實現數字調制解調、編碼解碼,FPGA還在實現通信系統中的各種接口中起著重要作用,如PCI總線、SPI總線、429總線等。在FPGA接口設計中,同步決定了系統的穩定性與接收數據的準確性。但是在實際的工程中,純粹單時鐘同步系統設計的情況很少,特別是在設計模塊與外圍芯片的通信中,跨時鐘域的情況經常不可避免。跨時鐘域信號處理不當就會產生亞穩態、采樣數據錯誤、采樣丟失和重聚合錯誤等一系列問題,從而使系統無法正常運行。本文就此討論了在FPGA設計中跨時鐘域設計中的常見問題,信號及數據同步的常見方法[2],在此基礎上說明了進行跨時鐘域分析時的方法和步驟。

1 跨時鐘域信號常見問題

1.1 亞穩態問題

在FPGA系統中,如果數據傳輸中觸發器的建立時間Tsu和保持時間Th不滿足,或者復位過程中復位信號的釋放相對于有效時鐘沿的恢復時間(recovery time)和撤離時間(removal time)不滿足,就可能產生亞穩態,此時觸發器輸出端Q在有效時鐘沿之后比較長的一段時間處于不確定的狀態。在這段時間里,Q端在0和1之間處于振蕩狀態,而不是等于數據輸入端D的值,這段時間稱為決斷時間(resolution time)。經過resolution time之后,Q端將穩定到0或1上,但是穩定到0還是1,是隨機的,與輸入沒有必然的關系[3-5]。亞穩態示意圖如圖1所示。

圖1 亞穩態示意圖

圖3 多信號聚合問題示意圖

亞穩態產生的原因是觸發器Tsu和Th時間不滿足。對于同時鐘域的信號,可以采用時序約束來保證滿足Tsu和Th時間的要求,采用靜態時序分析工具測試是否滿足要求。但對于異步信號,源時鐘和目的時鐘相位關系完全不可控,而且會隨時間發生變化,這就必然會存在亞穩態的問題。亞穩態的危害主要是破壞系統的穩定性、邏輯誤判和亞穩態傳播。由于輸出在穩定前可能有毛刺、振蕩、不固定的電壓值,因此亞穩態將導致邏輯誤判,嚴重的情況,輸出0~1之間的電壓值還會使下一級產生亞穩態,即亞穩態的傳播。邏輯誤判導致功能性錯誤,而亞穩態傳播則擴大了故障面[6]。

1.2 數據丟失

數據丟失現象經常發生在跨時鐘域信號進入快時鐘域的信號持續時間太短,如果異步信號的長度小于目的時鐘周期,作為采集方的慢時鐘域有可能采集不到該信號,造成數據丟失。為了安全起見,通常異步信號保持目的時鐘域兩個時鐘周期長度。

1.3 數據聚合錯誤

圖2 單信號重聚合問題示意圖

數據聚合是指信號在通過不同路徑傳輸后重新聚合到一起使用。通常有幾種情況:

① 單個信號多路扇出。如果信號從一個時鐘域分多路進入另外一個時鐘域,那么很有可能會導致功能上的錯誤。如圖2所示,由于Td的存在,DA1和DA2到達CLKB的時間不同,最終導致fsm1_en和fsm2_en這兩個本應該同時有效的信號實際上相差一個CLKB的周期。這很可能會影響到后繼的電路功能。

② 多個信號的重聚合。如果多個信號從一個時鐘域進入另外一個時鐘域,然后這些信號在目的時鐘域中又聚合到一起,那么就有可能因為信號的重新聚合導致電路功能上的異常。如圖3所示,原本EN1和EN2轉換時鐘域后,期望得到的值是0b00和0b11,但由于EN1和EN2到達CLKB時鐘域的時間有差異,實際得到的值是0b00、0b10和0b11,最終導致后繼電路功能出現問題。

2 跨時鐘域信號同步方案

2.1 信號同步

2.1.1 單個信號

單個信號跨時鐘域同步常用電路是兩拍同步,見圖4。

圖4 兩拍DFF信號同步電路

理論上,采用這種方法可以有效地減少亞穩態繼續傳播的概率,但是并不能保證第2級輸出的穩態電平就是正確電平。兩拍同步是大部分同步處理措施的基礎,如下面介紹到多位相關信號處理是對多個信號之間相互關系進行分析后,采用合并、抽取特征信號、增加指示信號等形式變為一個信號或邏輯獨立再進行兩拍同步。同樣,數據同步的基礎也是兩拍同步,如握手協議的請求和應答信號、異步FIFO的地址信號。

2.1.2 多位相關信號

當跨時鐘域傳輸多個相互關聯信號時,不能采樣簡單的兩拍同步,因為數據傳輸時多位數據之間的傳輸延遲不同,有可能造成多位數據在目的時鐘域不同周期被采樣,這種多位數據傳輸時由于數據之間的skew所引起的不能被目的時鐘在同一個周期采樣的現象,稱為多位數據的跨時鐘域問題。為簡便起見,以兩個信號為例。

(1)傳輸兩個需要同時有效的信號

目的時鐘需要源時鐘的兩個同時有效的控制信號,這兩個控制信號來自于同一個源時鐘,有可能會出現時鐘之間的偏移,從而導致兩個控制信號在目的時鐘域的不同周期被采樣,在此情形下兩個本應該同時起控制作用的信號在目的時鐘域失去了作用。

此種問題產生的原因是,兩個來自于同一個時鐘的需同時有效的控制信號在目的時鐘發生作用時產生了多位信號傳輸。在邏輯設計中,通常可將這兩個信號在源時鐘中整合為一個信號,然后通過同步邏輯傳送到目的時鐘,從而消除多位信號的跨時鐘傳輸問題[7]。

(2)傳遞兩個順序控制的信號

此種問題產生的原因是,兩個來自于同一個時鐘的有順序關系的控制信號在目的時鐘發生作用時產生了多位信號傳輸。在邏輯設計中,可以對前序邏輯進行分析,觀察是否在一個信號有效后,其他信號一定會達到有效狀態,這時可將該信號作為特征信號而僅傳輸該信號,那么經過同步邏輯傳送到目的時鐘,從而消除多位信號的跨時鐘傳輸問題。

(3)傳遞兩個編碼控制信號

當具有編碼關系的多位數據在不同的時鐘之間進行傳遞時,不同編碼信號之間具有skew導致目的時鐘采樣數據的不一致性,從而導致解碼的錯誤。

考慮到目的時鐘在接收多位信號時,無非是個別的信號在接收時晚一個時鐘周期或者多位信號撤銷時晚撤銷一個時鐘周期。所以可以得出以下解決方案:傳輸數據時增加一位ready_flag的寄存器。源時鐘必須在產生需傳輸的多位數據一個周期之后產生該read_flag信號,同時在需要傳輸的多位信號撤銷之前一個周期撤銷ready_flag信號。該read_flag的使能信號需在目的時鐘至少保持兩個目的時鐘周期。

2.2 數據同步

2.2.1 握手協議

根據不同的設計需求和不同的設計標準,利用兩到三個握手信號可以實現數據在不同時鐘之間的傳遞,圖5給出了握手信號傳遞數據的機制。采用的握手信號越多,從一個時鐘到另外一個時鐘所需要的延遲也越多,同時數據傳遞也越準確。對于許多沒有限制的傳輸,兩個握手信號足以使數據在兩個時鐘之間準確地傳遞。

圖5 握手機制傳遞數據示意圖

與兩級同步器相比,異步握手同步器的信號切換過程很慢,需要很多個時鐘周期才能完成一組數據的傳遞,但這種通信方式能夠精確傳遞指定數目的數據。數據信號會有效持續一段時間,可以用于多比特數據的傳輸,適合于連續處理。當幾個電路不能預知相互的響應時間時,握手方法能讓數字電路間實現有效的通信。

2.2.2 異步FIFO

當主機端的數據連續放入總線時,握手寫方式則可能無法正確進行數據同步,可以采用異步FIFO解決這一問題。異步FIFO的讀寫可以工作在不同的時鐘域內,將需要同步的數據利用寫時鐘暫存在FIFO內部的一個雙口RAM里,然后利用讀時鐘讀取暫存在雙口RAM里的數據。FIFO的典型結構圖如圖6所示,它由FIFO讀控制邏輯、FIFO寫控制邏輯、空/滿狀態判斷模塊和一個雙端口RAM四部分組成[8]。空滿狀態的判斷由于存在讀寫地址跨時鐘域的問題,容易產生錯誤,所以FIFO設計的關鍵是空滿標志的產生,一般會將地址通過Gray碼編碼后傳給對方。

圖6 異步FIFO結構框圖

3 跨時鐘域信號驗證方法

由于跨時鐘域設計不當會引入較多的問題,除在設計階段由開發工程師對跨時鐘域信號進行同步設計外,在設計完成后應由驗證工程師對設計進行跨時鐘域的分析。跨時鐘域分析可借助工具或由人工將跨時鐘域信號提取出來,然后再進行分析和驗證,主要包含兩個階段:一是協議檢查,二是仿真測試。

3.1 協議檢查

在對跨時鐘域信號進行協議檢查時,應按照邏輯梳理各信號相互之間的關系,按照關系選擇是否應該進行同步化處理,判斷同步化處理措施采用的同步協議是否合理。下面給出兩拍同步器、握手協議、異步FIFO等同步協議的原理、應用場景和注意事項等[9-10]。

3.1.1 兩拍同步

在兩拍同步器中,觸發器到觸發器路徑上的時序裕量可以為潛在的亞穩態信號到達設計的其他部分提供一定的判決時間,以便達到穩定的值。在應用兩拍同步器時,為了確保跨時鐘域信號能夠安全傳輸至目的時鐘域,應注意以下幾點[11]:

① 跨時鐘域信號在源時鐘域盡量直接由寄存器驅動,直接輸入給同步器的第一級觸發器,不經過任何組合邏輯。因為數據傳輸很重要的一點就是進入接收時鐘域的第一級觸發器的輸入信號不能出現毛刺,而組合邏輯電平不穩定,極易使得同步器采樣到不穩定的信號。

② 兩拍同步器采樣到源時鐘域的信號,經過目的時鐘兩個周期后,才能輸出到目的時鐘域的邏輯電路中,因此,同步信號傳遞到新時鐘域時存在兩個目的時鐘周期的延時,這是需要注意的。

③ 兩拍同步器常應用于單個異步數據的同步,而在同步多位異步數據時,如果多位異步數據存在同時變化的情況,則應考慮過渡虛假數據的產生。

④ 不能對一個信號在多個地方進行同步,如果進入亞穩態,它們可能輸出不同的值,即使輸出同一個數值,時間上也會有差別,如此產生的競爭會對后續電路有影響。

3.1.2 握手協議

為了降低系統故障率就需要盡量減少跨時鐘域信號數目,使用握手協議可以僅僅對請求信號和應答信號進行同步,使得并行數據有足夠的時間滿足建立時間和保持時間的要求,所以握手協議能夠滿足并行數據安全傳輸的需要。握手協議常應用于解決并行總線信號的同步問題。

3.1.3 異步FIFO

異步FIFO的工作原理是先由寫時鐘把異步數據存儲到RAM,穩定后再由讀時鐘讀取數據,從而抑制亞穩態。總線數據同步、高速數據傳輸、數據在跨越時鐘域時需要存儲容量大的緩沖時,則可以采用異步FIFO[12-14]。

需要著重指出的是,在實際設計中,有時設計人員不會對跨時鐘域信號進行同步處理。由于目的時鐘域對跨時鐘域進行捕獲時,除可能引起的亞穩態傳播外,帶來的影響無非是信號早一個時鐘出現或者晚一個時鐘出現,又或者早一個時鐘消失或者晚一個時鐘消失,對于很多持續時間比較長的信號,一般不會造成影響。對于亞穩態傳播的問題,由于芯片工藝的改進,決斷時間越來越短,如果采用同步設計,一般會產生亞穩態傳播的問題。這時應該具體分析不進行同步是否會對目的時鐘域邏輯產生影響。

3.2 仿真測試

對于復雜的信號關系,僅僅借助靜態的協議檢查不能確認是否沒有問題,這時需要使用時序仿真測試的手段針對跨時鐘域信號進行專門的測試,可使用隨機測試的形式測試信號再聚合時產生的問題[15]。

結 語

宋文強(工程師),主要從事軟件可靠性測試和FPGA驗證技術研究。

猜你喜歡
信號設計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
孩子停止長個的信號
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 亚洲色欲色欲www网| 欧美精品1区| 中文字幕有乳无码| 亚洲天堂2014| 国产色爱av资源综合区| 国产无人区一区二区三区| 成人在线观看一区| 国产小视频a在线观看| 国产微拍一区二区三区四区| 四虎国产精品永久一区| 天天摸天天操免费播放小视频| 国产乱码精品一区二区三区中文| 自拍偷拍欧美| 精品一区二区三区无码视频无码| 欧洲免费精品视频在线| 一本久道久久综合多人| 波多野结衣一区二区三区四区视频| 日本91在线| 久久无码高潮喷水| 国产日本视频91| 亚洲欧洲自拍拍偷午夜色无码| 亚洲娇小与黑人巨大交| 粉嫩国产白浆在线观看| 国产精品无码一区二区桃花视频| 中文字幕亚洲精品2页| 久久这里只有精品2| 99热这里只有免费国产精品| 精品久久久久无码| 自偷自拍三级全三级视频| 国产精品人成在线播放| 亚洲首页在线观看| 999精品在线视频| 色天堂无毒不卡| 国产香蕉在线视频| 欧美笫一页| 尤物国产在线| 国产成+人+综合+亚洲欧美| 久久精品最新免费国产成人| 成年人国产视频| 国产成人久视频免费| 欧美一级专区免费大片| 色哟哟国产精品一区二区| 在线精品视频成人网| 亚洲欧美自拍视频| 国产浮力第一页永久地址| 国产精品乱偷免费视频| 成人在线亚洲| 一本大道无码日韩精品影视| 这里只有精品在线播放| 夜夜操国产| 精品久久香蕉国产线看观看gif | 亚洲人成网站在线观看播放不卡| 国产一级在线观看www色 | 欧美精品v日韩精品v国产精品| 精品视频一区二区观看| 国产美女精品人人做人人爽| 国产精品自拍合集| 2018日日摸夜夜添狠狠躁| 久久福利片| 精品一区二区三区视频免费观看| 激情五月婷婷综合网| 久久无码高潮喷水| 国产区免费| 91久久国产综合精品女同我| www.youjizz.com久久| 国产精品太粉嫩高中在线观看| 欧美精品v| 亚洲色图欧美视频| 2022精品国偷自产免费观看| 欧美色视频日本| 露脸一二三区国语对白| 亚洲动漫h| 亚洲精品视频免费| 久久综合干| 久草热视频在线| 久久精品无码中文字幕| 91精品网站| 国产成人无码久久久久毛片| 国内丰满少妇猛烈精品播 | 综合人妻久久一区二区精品| 国产麻豆aⅴ精品无码| 亚洲欧美日韩另类|