文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.01.011
中文引用格式: 王菲,,張莎莎,,王茜. 信號跨時(shí)鐘域問題分析及驗(yàn)證方法研究[J].電子技術(shù)應(yīng)用,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.
0 引言
近些年,FPGA設(shè)計(jì)已由過去的譯碼,、編碼等簡單電路升級為各種復(fù)雜接口電路,、通訊協(xié)議甚至專用算法處理器的實(shí)現(xiàn),因此,,單時(shí)鐘設(shè)計(jì)遠(yuǎn)不能滿足要求,,多個(gè)時(shí)鐘域并存已非常普遍。這必然帶來信號跨時(shí)鐘域問題,,如傳輸丟失,、產(chǎn)生亞穩(wěn)態(tài)導(dǎo)致功能錯(cuò)誤等。然而在實(shí)際中,,如何發(fā)現(xiàn)跨時(shí)鐘域問題是一個(gè)難點(diǎn),,本文提出一種跨時(shí)鐘域的驗(yàn)證方法,對日常工作中發(fā)現(xiàn)及解決跨時(shí)鐘域問題有著重要意義,。
1 信號跨時(shí)鐘域帶來的問題分析
信號跨時(shí)鐘域是影響FPGA設(shè)計(jì)的可靠性,、安全性的重要因素,究其根本原因都是由于亞穩(wěn)態(tài)[1]造成,。經(jīng)過深入的分析歸納,,信號跨時(shí)鐘域問題(CDC問題)主要分為亞穩(wěn)態(tài)的傳播、數(shù)據(jù)丟失和跨時(shí)鐘域信號再聚合時(shí)引起功能出錯(cuò)3類,。
1.1 亞穩(wěn)態(tài)的傳播
如圖1所示,,信號A違反了觸發(fā)器的建立-保持時(shí)間,導(dǎo)致輸出B產(chǎn)生振蕩,,并持續(xù)一段時(shí)間,,所以當(dāng)clk_B的第二個(gè)有效沿到來時(shí),B有可能穩(wěn)定到一個(gè)中間電壓,,也有可能繼續(xù)震蕩,,因此就會給系統(tǒng)帶來以下的問題:
(1)不同的扇出會把不穩(wěn)定的B判定為不同的值,這樣就使得系統(tǒng)進(jìn)入了一個(gè)未知的狀態(tài),,導(dǎo)致某些功能失效,。
(2)造成至少一個(gè)周期的傳播延時(shí),,導(dǎo)致時(shí)序問題。
1.2 數(shù)據(jù)丟失
觸發(fā)器的輸入A從clk_A時(shí)鐘域(較快時(shí)鐘域)進(jìn)入clk_B時(shí)鐘域(較慢時(shí)鐘域)時(shí),,由于穩(wěn)定的時(shí)間不夠長造成沒有被clk_B時(shí)鐘域采樣到,,從而丟失正確的數(shù)據(jù),如圖2所示,。
1.3 跨時(shí)鐘域信號再聚合(Re-convergence)時(shí)引起功能出錯(cuò)
當(dāng)跨時(shí)鐘域信號再聚合時(shí)會引起電路功能錯(cuò)誤,。由于亞穩(wěn)態(tài)的影響會造成接收到的CDC信號發(fā)生不可預(yù)測且可變的延遲,這些不同延遲的信號在重新聚合時(shí)就可能造成采樣失敗,,從而導(dǎo)致功能錯(cuò)誤,。圖3為跨時(shí)鐘域信號再聚合的問題模型。這種設(shè)計(jì)路徑常見于多位控制總線信號的跨時(shí)鐘域傳播,,跨時(shí)鐘域再聚合波形分析如圖4所示,。
2 跨時(shí)鐘域驗(yàn)證方法
對于跨時(shí)鐘域驗(yàn)證而言,目前業(yè)界并沒有統(tǒng)一的,、成熟的驗(yàn)證方法,這里主要結(jié)合多年FPGA設(shè)計(jì)驗(yàn)證經(jīng)驗(yàn),,加入對業(yè)界領(lǐng)先技術(shù)的應(yīng)用,,提出一種多模式、互補(bǔ)型的跨時(shí)鐘域驗(yàn)證方法,。該方法從不同角度,、多方位、分階段對FPGA進(jìn)行檢查,,是一種以靜態(tài)分析為主要技術(shù)手段,,輔助以動態(tài)仿真驗(yàn)證的驗(yàn)證方法,跨時(shí)鐘域驗(yàn)證的基本流程如圖5所示,。
2.1 結(jié)構(gòu)驗(yàn)證
結(jié)構(gòu)驗(yàn)證是跨時(shí)鐘域驗(yàn)證整個(gè)流程中的主要環(huán)節(jié),,它是一種以靜態(tài)分析為主要技術(shù)手段的形式驗(yàn)證方法,通過對FPGA設(shè)計(jì)綜合后存在數(shù)據(jù)跨時(shí)鐘域傳播的路徑進(jìn)行分析,,檢查是否存在跨時(shí)鐘域問題,。
(1)檢查是否存在同步電路
數(shù)據(jù)跨時(shí)鐘域傳播時(shí)(無論是從快時(shí)鐘域到慢時(shí)鐘域,或是從慢到快時(shí)鐘域),,由于兩個(gè)時(shí)鐘域互不相關(guān),,均存在亞穩(wěn)態(tài)的可能性。因此需插入同步電路模塊,。沒有同步電路的設(shè)計(jì)結(jié)構(gòu)如圖6所示,。
(2)檢查同步電路的正確性
目前對于單bit信號的同步,主要有電平同步器,、邊沿同步器及脈沖同步器3種形式,。但是無論哪種形式,,同步電路的核心為兩級寄存器同步。下面列出幾種在FPGA設(shè)計(jì)中常見的無效同步電路形式,,如圖7~圖11所示,。
(3)檢查是否屬于多位信號的跨時(shí)鐘域問題
對于多位信號,主要是以握手協(xié)議,、異步fifo的交互方式來完成信號的跨時(shí)鐘域傳播,。多bit信號在跨時(shí)鐘域傳播時(shí)不能簡單地采用同步每位信號來完成。這會帶來多位數(shù)據(jù)的一致性問題,,造成目的時(shí)鐘域采樣錯(cuò)誤,。錯(cuò)誤電路結(jié)構(gòu)如圖12所示。
(4)檢查是否屬于跨時(shí)鐘域信號再聚合問題[4]
跨時(shí)鐘域信號再聚合應(yīng)與多位數(shù)據(jù)跨時(shí)鐘域的問題有所區(qū)分,,問題電路結(jié)構(gòu)如圖3所示,,源時(shí)鐘域可以是一個(gè)或多個(gè)時(shí)鐘域,不同信號經(jīng)過目的時(shí)鐘域同步后由組合邏輯再聚合,,再聚合而成的信號在使用時(shí)會對后級電路造成威脅,。其與多位時(shí)鐘跨時(shí)鐘域問題的解決辦法均為在源時(shí)鐘域的輸入端引入多位編碼方式,即格雷編碼,。
通過目前的驗(yàn)證情況看,,以上電路結(jié)構(gòu)形式基本可以涵蓋90%以上的設(shè)計(jì)形式。
2.2 協(xié)議檢查
協(xié)議檢查是對結(jié)構(gòu)驗(yàn)證的有力補(bǔ)充,,可以發(fā)現(xiàn)通過電路結(jié)構(gòu)檢查無法發(fā)現(xiàn)的跨時(shí)鐘域問題,,這里的協(xié)議檢查仍然以靜態(tài)分析為主要技術(shù)手段。協(xié)議檢查的方法是通過對上級系統(tǒng)及任務(wù)需求等方面的深入分析,,確認(rèn)問題設(shè)計(jì)路徑上信號的輸入形式,、變化快慢、保持時(shí)間等參數(shù),,從而確定是否存在跨時(shí)鐘域問題,。
典型的協(xié)議檢查例如數(shù)據(jù)由快時(shí)鐘域向慢時(shí)鐘域傳播的情況。如圖13的分析可知,,當(dāng)數(shù)據(jù)由快時(shí)鐘域向慢時(shí)鐘域傳播時(shí),,如果數(shù)據(jù)保持時(shí)間不夠則目的時(shí)鐘域無法采樣到數(shù)據(jù),這種情況會造成數(shù)據(jù)丟失,。這時(shí)就需要結(jié)合信號在實(shí)際電路中約定的協(xié)議來分析判斷跨時(shí)鐘域信號在源時(shí)鐘域是如何變化的,,每次變化保持的時(shí)間是多長。
經(jīng)協(xié)議分析檢查之后修改電路如圖14所示,,使得源時(shí)鐘域的數(shù)據(jù)保持兩個(gè)時(shí)鐘周期從而使目的時(shí)鐘域能夠穩(wěn)定采樣,,避免數(shù)據(jù)丟失的問題,相比圖2波形發(fā)生的變化如圖15所示,。當(dāng)然,,這種修改適用于目的時(shí)鐘域的時(shí)鐘頻率小于兩倍源時(shí)鐘域的情況,。
2.3 CDC動態(tài)仿真
前面的結(jié)構(gòu)驗(yàn)證和協(xié)議檢查的驗(yàn)證方法都是靜態(tài)分析的方法,除此之外還可以采用動態(tài)仿真的方法對跨時(shí)鐘域問題進(jìn)行驗(yàn)證,。這里的動態(tài)仿真與功能驗(yàn)證中的仿真有很大區(qū)別,,CDC動態(tài)仿真主要是引入斷言的方法針對數(shù)據(jù)跨時(shí)鐘域時(shí)可能存在問題的時(shí)序點(diǎn)進(jìn)行仿真。CDC仿真要在前面靜態(tài)分析的基礎(chǔ)上,,在已知電路結(jié)構(gòu)存在跨時(shí)鐘域問題的前提下,,有針對性地設(shè)計(jì)斷言,驗(yàn)證時(shí)序的正確性,。
CDC動態(tài)仿真分為以下3個(gè)步驟:(1)提取屬性,,(2)斷言設(shè)計(jì),(3)斷言仿真,。提取屬性和斷言設(shè)計(jì)這兩步可先由工具針對常見的CDC設(shè)計(jì)形式自動產(chǎn)生,,這些自動產(chǎn)生的CDC協(xié)議檢測器在仿真環(huán)境下運(yùn)行,最后通過調(diào)用仿真環(huán)境(testbench)檢查設(shè)計(jì)的功能是否正確,。很多情況下,,對于所需驗(yàn)證的時(shí)序點(diǎn),需要人工進(jìn)行斷言的設(shè)計(jì),,這也是這個(gè)環(huán)節(jié)的難點(diǎn),。
3 總結(jié)
本文主要對目前FPGA設(shè)計(jì)中存在的跨時(shí)鐘域問題進(jìn)行了深入的分析總結(jié),提出了一種多模式,、互補(bǔ)型的跨時(shí)鐘域驗(yàn)證方法。詳細(xì)講解了如何分層次,、多方位地進(jìn)行跨時(shí)鐘域驗(yàn)證以確認(rèn)設(shè)計(jì)中的亞穩(wěn)態(tài)問題,,為發(fā)現(xiàn)目前FPGA產(chǎn)品研制中的跨時(shí)鐘域問題提供了依據(jù),后續(xù)會對方法中的斷言設(shè)計(jì)進(jìn)行進(jìn)一步的研究,。
參考文獻(xiàn)
[1] 周偉.FPGA跨時(shí)鐘域亞穩(wěn)態(tài)研究[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.
作者信息:
王 菲,,張莎莎,王 茜
(中國航天科技集團(tuán)公司第九研究院第七七一研究所,,陜西 西安710119)