《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 信號跨時鐘域問題分析及驗證方法研究
信號跨時鐘域問題分析及驗證方法研究
2017年電子技術應用第1期
王 菲,張莎莎,王 茜
中國航天科技集團公司第九研究院第七七一研究所,陜西 西安710119
摘要: 航天用FPGA設計復雜度越來越高,其表現之一就是設計中存在多個時鐘域,當信號從一個時鐘域進入另一個時鐘域,即不同時鐘域之間發生數據交互時,就會帶來信號跨時鐘域產生的亞穩態問題(CDC問題)。亞穩態問題雖普遍存在,但依靠傳統的驗證手段即功能仿真或者時序仿真是很難定位的,提出一種分層次、多模式的跨時鐘域驗證方法,為跨時鐘域問題分析確認提供強有力的參考。
中圖分類號: TN710
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.01.011
中文引用格式: 王菲,張莎莎,王茜. 信號跨時鐘域問題分析及驗證方法研究[J].電子技術應用,2017,43(1):43-45,49.
英文引用格式: Wang Fei,Zhang Shasha,Wang Xi. Research of clock domain crossing problems and a verification method[J].Application of Electronic Technique,2017,43(1):43-45,49.
Research of clock domain crossing problems and a verification method
Wang Fei,Zhang Shasha,Wang Xi
771 Institute of China Aerospace,Xi′an 710119,China
Abstract: The FPGA design used in aerospace is becoming more and more complex, which includes the appearance of multi clock domain in design. The issue with metastability will arise when a signal traverses from one clock domain into another。Although the metastability exists widely, it is difficult to locate the issue based on traditional verification methods, including function simulation and timing simulation. This essay will propose a hierarchical and multi-mode verification method for clock domain crossing, which provides a strong reference for analyzing clock domain crossing issue.
Key words : FPGA;clock domain crossing;metastable;verification method

0 引言

    近些年,FPGA設計已由過去的譯碼、編碼等簡單電路升級為各種復雜接口電路、通訊協議甚至專用算法處理器的實現,因此,單時鐘設計遠不能滿足要求,多個時鐘域并存已非常普遍。這必然帶來信號跨時鐘域問題,如傳輸丟失、產生亞穩態導致功能錯誤等。然而在實際中,如何發現跨時鐘域問題是一個難點,本文提出一種跨時鐘域的驗證方法,對日常工作中發現及解決跨時鐘域問題有著重要意義。

1 信號跨時鐘域帶來的問題分析

    信號跨時鐘域是影響FPGA設計的可靠性、安全性的重要因素,究其根本原因都是由于亞穩態[1]造成。經過深入的分析歸納,信號跨時鐘域問題(CDC問題)主要分為亞穩態的傳播、數據丟失和跨時鐘域信號再聚合時引起功能出錯3類。

1.1 亞穩態的傳播

    如圖1所示,信號A違反了觸發器的建立-保持時間,導致輸出B產生振蕩,并持續一段時間,所以當clk_B的第二個有效沿到來時,B有可能穩定到一個中間電壓,也有可能繼續震蕩,因此就會給系統帶來以下的問題:

wdz8-t1.gif

    (1)不同的扇出會把不穩定的B判定為不同的值,這樣就使得系統進入了一個未知的狀態,導致某些功能失效。

    (2)造成至少一個周期的傳播延時,導致時序問題。

1.2 數據丟失

    觸發器的輸入A從clk_A時鐘域(較快時鐘域)進入clk_B時鐘域(較慢時鐘域)時,由于穩定的時間不夠長造成沒有被clk_B時鐘域采樣到,從而丟失正確的數據,如圖2所示。

wdz8-t2.gif

1.3 跨時鐘域信號再聚合(Re-convergence)時引起功能出錯

    當跨時鐘域信號再聚合時會引起電路功能錯誤。由于亞穩態的影響會造成接收到的CDC信號發生不可預測且可變的延遲,這些不同延遲的信號在重新聚合時就可能造成采樣失敗,從而導致功能錯誤。圖3為跨時鐘域信號再聚合的問題模型。這種設計路徑常見于多位控制總線信號的跨時鐘域傳播,跨時鐘域再聚合波形分析如圖4所示。

wdz8-t3.gif

wdz8-t4.gif

2 跨時鐘域驗證方法

    對于跨時鐘域驗證而言,目前業界并沒有統一的、成熟的驗證方法,這里主要結合多年FPGA設計驗證經驗,加入對業界領先技術的應用,提出一種多模式、互補型的跨時鐘域驗證方法。該方法從不同角度、多方位、分階段對FPGA進行檢查,是一種以靜態分析為主要技術手段,輔助以動態仿真驗證的驗證方法,跨時鐘域驗證的基本流程如圖5所示。

wdz8-t5.gif

2.1 結構驗證

    結構驗證是跨時鐘域驗證整個流程中的主要環節,它是一種以靜態分析為主要技術手段的形式驗證方法,通過對FPGA設計綜合后存在數據跨時鐘域傳播的路徑進行分析,檢查是否存在跨時鐘域問題。

    (1)檢查是否存在同步電路

    數據跨時鐘域傳播時(無論是從快時鐘域到慢時鐘域,或是從慢到快時鐘域),由于兩個時鐘域互不相關,均存在亞穩態的可能性。因此需插入同步電路模塊。沒有同步電路的設計結構如圖6所示。

wdz8-t6.gif

    (2)檢查同步電路的正確性

    目前對于單bit信號的同步,主要有電平同步器、邊沿同步器及脈沖同步器3種形式。但是無論哪種形式,同步電路的核心為兩級寄存器同步。下面列出幾種在FPGA設計中常見的無效同步電路形式,如圖7~圖11所示。

wdz8-t7.gif

wdz8-t8.gif

wdz8-t9.gif

wdz8-t10.gif

wdz8-t11.gif

    (3)檢查是否屬于多位信號的跨時鐘域問題

    對于多位信號,主要是以握手協議、異步fifo的交互方式來完成信號的跨時鐘域傳播。多bit信號在跨時鐘域傳播時不能簡單地采用同步每位信號來完成。這會帶來多位數據的一致性問題,造成目的時鐘域采樣錯誤。錯誤電路結構如圖12所示。

wdz8-t12.gif

    (4)檢查是否屬于跨時鐘域信號再聚合問題[4]

    跨時鐘域信號再聚合應與多位數據跨時鐘域的問題有所區分,問題電路結構如圖3所示,源時鐘域可以是一個或多個時鐘域,不同信號經過目的時鐘域同步后由組合邏輯再聚合,再聚合而成的信號在使用時會對后級電路造成威脅。其與多位時鐘跨時鐘域問題的解決辦法均為在源時鐘域的輸入端引入多位編碼方式,即格雷編碼。

    通過目前的驗證情況看,以上電路結構形式基本可以涵蓋90%以上的設計形式。

2.2 協議檢查

    協議檢查是對結構驗證的有力補充,可以發現通過電路結構檢查無法發現的跨時鐘域問題,這里的協議檢查仍然以靜態分析為主要技術手段。協議檢查的方法是通過對上級系統及任務需求等方面的深入分析,確認問題設計路徑上信號的輸入形式、變化快慢、保持時間等參數,從而確定是否存在跨時鐘域問題。

    典型的協議檢查例如數據由快時鐘域向慢時鐘域傳播的情況。如圖13的分析可知,當數據由快時鐘域向慢時鐘域傳播時,如果數據保持時間不夠則目的時鐘域無法采樣到數據,這種情況會造成數據丟失。這時就需要結合信號在實際電路中約定的協議來分析判斷跨時鐘域信號在源時鐘域是如何變化的,每次變化保持的時間是多長。

wdz8-t13.gif

    經協議分析檢查之后修改電路如圖14所示,使得源時鐘域的數據保持兩個時鐘周期從而使目的時鐘域能夠穩定采樣,避免數據丟失的問題,相比圖2波形發生的變化如圖15所示。當然,這種修改適用于目的時鐘域的時鐘頻率小于兩倍源時鐘域的情況。

wdz8-t14.gif

wdz8-t15.gif

2.3 CDC動態仿真

    前面的結構驗證和協議檢查的驗證方法都是靜態分析的方法,除此之外還可以采用動態仿真的方法對跨時鐘域問題進行驗證。這里的動態仿真與功能驗證中的仿真有很大區別,CDC動態仿真主要是引入斷言的方法針對數據跨時鐘域時可能存在問題的時序點進行仿真。CDC仿真要在前面靜態分析的基礎上,在已知電路結構存在跨時鐘域問題的前提下,有針對性地設計斷言,驗證時序的正確性。

    CDC動態仿真分為以下3個步驟:(1)提取屬性,(2)斷言設計,(3)斷言仿真。提取屬性和斷言設計這兩步可先由工具針對常見的CDC設計形式自動產生,這些自動產生的CDC協議檢測器在仿真環境下運行,最后通過調用仿真環境(testbench)檢查設計的功能是否正確。很多情況下,對于所需驗證的時序點,需要人工進行斷言的設計,這也是這個環節的難點。

3 總結

    本文主要對目前FPGA設計中存在的跨時鐘域問題進行了深入的分析總結,提出了一種多模式、互補型的跨時鐘域驗證方法。詳細講解了如何分層次、多方位地進行跨時鐘域驗證以確認設計中的亞穩態問題,為發現目前FPGA產品研制中的跨時鐘域問題提供了依據,后續會對方法中的斷言設計進行進一步的研究。

參考文獻

[1] 周偉.FPGA跨時鐘域亞穩態研究[J].電子世界,2012(3):87-89.

[2] Mike Stein,Paradigm Works.Crossing the abyss:asynchronous signals in a synchronous world[].EDN magazine,2003.

[3] San Jose.Real intent introduces CDC verification for altera customers.Real Intent Inc.2008.3.



作者信息:

王  菲,張莎莎,王  茜

(中國航天科技集團公司第九研究院第七七一研究所,陜西 西安710119)

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产成人一区在线播放 | 亚洲综合一区二区三区 | 欧美在线黄| 欧美成人免费tv在线播放 | 成人亚洲欧美日韩中文字幕 | 日韩一级片在线免费观看 | 亚洲天堂色网站 | 国产成人亚洲综合 | 成人免费ā片 | 黄色免费三级 | 欧美一线高本道高清在线 | 福利社在线 | 美女视频黄的免费看网站 | 午夜影院黄 | 日本在线 | 中文 | 日韩欧美在线精品 | 日韩在线免费 | 久久亚洲一级α片 | 国产精品亚洲精品影院 | www中文字幕在线观看 | 欧美综合亚洲 | 国产欧美亚洲精品一区 | 1024香蕉国产在线视频 | 狠狠色丁香久久婷婷综合_中 | 天天黄色片 | 91色老99久久九九爱精品 | 毛片免费观看的视频在线 | 99精品免费在线 | 国产一级一国产一级毛片 | 中国大陆一级毛片 | 亚洲免费在线视频播放 | 日韩一级片 韩国 | 99久久免费视频在线观看 | 日韩黄在线观看免费视频 | 国产亚洲精品激情一区二区三区 | 国产精品高清久久久久久久 | 一 级 黄 色 大片 | 欧美理论片在线观看一区二区 | 一级特级aaaa毛片免费观看 | 欧美一区精品二区三区 | 国产精品一区在线免费观看 |