《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于SoC的信號跨時鐘域傳輸驗證方法研究
基于SoC的信號跨時鐘域傳輸驗證方法研究
2017年電子技術(shù)應(yīng)用第12期
王 鵬1,尤 然2,劉旭紅2,范毓洋1,田 毅1
1.中國民航大學(xué) 民用航空器適航審定技術(shù)與管理研究中心 天津市民用航空器適航與維修重點實驗室,天津300300; 2.中國民航大學(xué) 適航學(xué)院,天津300300
摘要: 在SoC信號跨時鐘域傳輸時,有可能會產(chǎn)生亞穩(wěn)態(tài)等問題。到目前為止,對信號跨時鐘域傳輸還沒有一套完整且通用的驗證方法。因此,在傳統(tǒng)SoC設(shè)計和驗證仿真工具的基礎(chǔ)上,形成了關(guān)于信號跨時鐘域傳輸?shù)囊徽昨炞C方法。其中包括CDC結(jié)構(gòu)分析、基于斷言的CDC協(xié)議驗證、亞穩(wěn)態(tài)注入分析三部分。通過此套方法可以在設(shè)計初期發(fā)現(xiàn)設(shè)計中的缺陷,提高設(shè)計的可靠性。
中圖分類號: TN47
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.172154
中文引用格式: 王鵬,尤然,劉旭紅,等. 基于SoC的信號跨時鐘域傳輸驗證方法研究[J].電子技術(shù)應(yīng)用,2017,43(12):29-32.
英文引用格式: Wang Peng,You Ran,Liu Xuhong,et al. Research on verification method of signal clock domain crossing transmission based on SOC[J].Application of Electronic Technique,2017,43(12):29-32.
Research on verification method of signal clock domain crossing transmission based on SOC
Wang Peng1,You Ran2,Liu Xuhong2,F(xiàn)an Yuyang1,Tian Yi1
1.Tianjin Key Laboratory for Civil Aircraft Airworthiness and Maintenance,Civil Aircraft Airworthiness Certification Technology and Management Research Center,Civil Aviation University of China,Tianjin 300300,China; 2.Airworthiness College,Civil Aviation University of China,Tianjin 300300,China
Abstract: When SoC signal across the clock domain transmission,there will cause metastable and other issues. So far, there is no complete and generic authentication method for signal CDC transmission. Therefore, this paper based on the traditional SoC design and verification of simulation tools, creat a set of verification of signal CDC. These include CDC structural analysis, CDC protocol verification based on assertion and metastable analysis. Through this set of methods can find the design of the initial defects in the design to improve the reliability of the design.
Key words : metastability;CDC;verification

0 引言

    隨著現(xiàn)代工業(yè)的不斷發(fā)展,數(shù)字電路設(shè)計的規(guī)模和復(fù)雜程度也在不斷的增加。在系統(tǒng)級芯片(System on Chip,SoC)中數(shù)據(jù)信號的傳輸也更多地在多個時鐘域間進行即跨時鐘域(Clock Domain Crossing,CDC)傳輸。但因為各個時鐘在頻率、相位上的差異,可能會因為建立時間或保持時間不滿足要求,而造成亞穩(wěn)態(tài)問題。在輸出端可能會出現(xiàn)毛刺、震蕩或某一固定的值,有可能會導(dǎo)致邏輯誤判。甚至有可能輸出0~1之間的電壓值進而導(dǎo)致下一級亞穩(wěn)態(tài),即亞穩(wěn)態(tài)的傳播,邏輯誤判將導(dǎo)致功能性錯誤,而亞穩(wěn)態(tài)的傳播則擴大了故障面[1]。為了避免亞穩(wěn)態(tài)及其產(chǎn)生的危害,常見的解決方法是通過CDC同步電路來保證數(shù)據(jù)的正確傳輸。但是同步電路不一定能正確地將數(shù)據(jù)同步過去,還需要保證電路的同步結(jié)構(gòu)正確并且滿足相應(yīng)的傳輸協(xié)議。當分散傳播的CDC信號經(jīng)過同步電路同步后,再重新進行組合邏輯運算時,會有可能因為亞穩(wěn)態(tài)而導(dǎo)致信號提前或延遲到達,從而使邏輯運算后的結(jié)果與期望值不符,即重匯聚問題。對于CDC同步電路的驗證,傳統(tǒng)的模擬仿真無法精確地模擬亞穩(wěn)態(tài)現(xiàn)象,而且靜態(tài)時序分析也不能對其時序進行分析[2]。

    因此國內(nèi)不少研究人員對其進行了研究討論。文獻[3]中提出了基于SpyGlass的靜態(tài)驗證流程,對同步電路結(jié)構(gòu)進行了討論,但沒有涉及到傳輸協(xié)議和重匯聚問題。梁駿等人在文獻[4]中對CDC同步電路進行了重匯聚問題分析,沒有系統(tǒng)地進行結(jié)構(gòu)分析和傳輸協(xié)議驗證。國防科技大學(xué)羅莉等人在文獻[5]中對CDC同步電路進行了結(jié)構(gòu)檢查和傳輸協(xié)議驗證,但沒有對重匯聚問題進行分析。對于上述問題,現(xiàn)在并沒有一套完整且通用的驗證方法。

    本文在基于傳統(tǒng)SoC設(shè)計和驗證仿真工具基礎(chǔ)上,形成的一整套完整且通用的CDC同步電路驗證方法。首先通過對CDC電路進行結(jié)構(gòu)分析來保證電路同步結(jié)構(gòu)的正確,再通過對電路進行基于斷言的CDC協(xié)議驗證來保證同步電路正確地傳輸了數(shù)據(jù),最后通過亞穩(wěn)態(tài)注入分析來判斷保證不會出現(xiàn)重匯聚問題。

1 驗證方法的論述

    對CDC傳輸信號的驗證包括結(jié)構(gòu)分析、協(xié)議驗證、亞穩(wěn)態(tài)注入分析三個方面,圖1的驗證流程圖描述了三個驗證方面的邏輯關(guān)系和驗證條件。具體的驗證方法步驟在下面小節(jié)中進行說明。

wdz6-t1.gif

1.1 CDC結(jié)構(gòu)分析

    常用的跨時鐘域同步電路是通過兩級觸發(fā)器結(jié)構(gòu)來進行同步,CDC結(jié)構(gòu)分析是為了保證設(shè)計中的CDC同步電路有同步結(jié)構(gòu),并且兩級觸發(fā)器中沒有組合邏輯,也沒有被另外使用。本文的CDC結(jié)構(gòu)分析是基于傳統(tǒng)的SoC設(shè)計工具,在Quartes II或ISE等工具中,先經(jīng)過綜合或全編譯,再生成RTL原理圖。

    然后可以在生成的RTL原理圖中采用下列步驟來判斷是否正確地生成電路同步結(jié)構(gòu):

    (1)在生成的原理圖中,識別出輸入時鐘域和采樣時鐘域。

    (2)判斷在時鐘域交界處有無同步結(jié)構(gòu),如果沒有同步結(jié)構(gòu)需要重新返回修改RTL代碼。

    (3)判斷電路同步結(jié)構(gòu)中的兩級觸發(fā)器中有無其他組合邏輯,是否被另外的使用。如果兩級觸發(fā)器中有其他的組合邏輯,或者被另外的使用時,需返回修改RTL代碼。

    CDC結(jié)構(gòu)分析保證了同步結(jié)構(gòu)正確后,需再進行協(xié)議驗證。從原理結(jié)構(gòu)中判斷同步后有無組合邏輯運算,如果有組合邏輯運算還需進行亞穩(wěn)態(tài)注入分析。

1.2 基于斷言的CDC協(xié)議驗證

    結(jié)構(gòu)分析完成后僅能說明電路結(jié)構(gòu)正確,并不能表明數(shù)據(jù)可以正確傳輸,在工程實際中,跨時鐘域同步電路傳輸時都有其相應(yīng)的傳輸協(xié)議,只有滿足相應(yīng)的傳輸協(xié)議時,數(shù)據(jù)才可以正確地傳輸過去。本文驗證電路是否滿足其相應(yīng)傳輸協(xié)議的方法是通過基于斷言的CDC協(xié)議驗證?;跀嘌缘腃DC協(xié)議驗證是通過采用System Verilog語言來描述CDC電路要滿足的協(xié)議所需信號的屬性。在模擬仿真中,如果所檢查的屬性不符合正確傳輸?shù)膮f(xié)議時,斷言就會宣告失敗?;跀嘌缘尿炞C技術(shù)可以在工程實際中發(fā)現(xiàn)在一般的驗證中難以發(fā)現(xiàn)的時序和事件序列相關(guān)問題。如果斷言宣告失敗后,需修改RTL代碼,直到滿足傳輸協(xié)議為止。

1.3 亞穩(wěn)態(tài)注入分析

    傳輸數(shù)據(jù)經(jīng)過了同步電路的同步,可以將數(shù)據(jù)正確地同步過去了,但可能因為亞穩(wěn)態(tài)而使輸出數(shù)據(jù)延遲或提前到達。此時,如果輸出端的輸出數(shù)據(jù)再進行組合邏輯運算時,會因為數(shù)據(jù)的提前或延遲輸出而導(dǎo)致運算結(jié)果與預(yù)期不符即重匯聚問題。所以本文采用在同步之后的數(shù)據(jù)處隨機注入延遲的方法來驗證當電路有亞穩(wěn)態(tài)問題時,是否可能會產(chǎn)生重匯聚問題。如果注入隨機延遲后,經(jīng)過組合邏輯后的數(shù)據(jù)結(jié)果與預(yù)期不符,則表明此電路可能會產(chǎn)生重匯聚問題。需要修改RTL代碼,直到亞穩(wěn)態(tài)注入分析通過為止。

2 實例分析

    本部分的測試案例以實際工程中的一個跨時鐘域數(shù)據(jù)傳輸模塊為例,此傳輸模塊數(shù)據(jù)由頻率為166.7 MHz的時鐘域傳輸?shù)筋l率為100 MHz時鐘域。模塊的輸出端出現(xiàn)了非預(yù)期的數(shù)據(jù),現(xiàn)以第一節(jié)的驗證方法對跨時鐘域數(shù)據(jù)傳輸模塊進行驗證。

2.1 CDC結(jié)構(gòu)分析

    在進行CDC結(jié)構(gòu)分析時,以Quartus II 軟件為例,進行分析驗證。在Quartus II 軟件中通過Tools-> Netlist Viewers->RTL Viewer生成RTL原理圖。可以得到如圖2所示原理圖。

wdz6-t2.gif

    在RTL原理圖中可以分析得出該跨時鐘域數(shù)據(jù)傳輸模塊是由兩個DMUX模塊把數(shù)據(jù)同步過去后再進行邏輯運算。現(xiàn)采用1.1節(jié)的方法對異步時鐘數(shù)據(jù)傳輸模塊RTL原理圖進行討論:

    (1)輸入數(shù)據(jù)時鐘域clk1,頻率為166.7 MHz,同步采樣時鐘域clk2,頻率為100 MHz。

    (2)可以看到在采樣時鐘域中有同步結(jié)構(gòu)—兩級觸發(fā)器(en2_1模塊和en2_2模塊)。

    (3)兩級觸發(fā)器模塊中均無其他組合邏輯。這表明該跨時鐘域數(shù)據(jù)傳輸模塊的同步結(jié)構(gòu)正確,為了保證數(shù)據(jù)正確地同步過去,還需進行CDC協(xié)議驗證。從原理圖中可以看到數(shù)據(jù)同步過去后,有組合邏輯運算,所以還需進行亞穩(wěn)態(tài)注入分析。

2.2 基于斷言的CDC協(xié)議驗證

    數(shù)據(jù)要從兩個DMUX模塊中正確地傳輸過去,需要滿足相應(yīng)的傳輸協(xié)議:輸入數(shù)據(jù)在發(fā)送時鐘域的選擇信號有效期間一直保持穩(wěn)定,且同步到接收時鐘域后,在接收時鐘域的輸入數(shù)據(jù)需在接收時鐘域的選擇信號穩(wěn)定期間一直保持穩(wěn)定。

    其斷言協(xié)議如下:

    property en1_p1;

    @(posedge clk1) $rose(en1)|-> en1[*(`T2/`T1+1)];

    endproperty

    property en1_p;

    @(posedge clk1)  (en1 ##1 en1) |-> $stable(datin1);

    endproperty

    property en2_p;

    @(posedge clk2)  (en2 ##1 en2)|-> $stable(datin1);

    endproperty

    其中T1為clk1的時鐘周期,時鐘周期長度為6 ns。T2為clk2的時鐘周期,時鐘周期長度為10 ns。第一段代碼表示同步信號en1至少保持兩個采樣時鐘長度的穩(wěn)定,第二段代碼表示的是輸入數(shù)據(jù)datain1在發(fā)送時鐘域的選擇信號en1有效期間一直保持穩(wěn)定,第三段代碼表示輸入數(shù)據(jù)在接收時鐘域的選擇信號en2有效期間一直保持穩(wěn)定。

wdz6-t3.gif

    由圖4可以看到失效斷言數(shù)量為0,通過了傳輸協(xié)議,表明數(shù)據(jù)可以正確地傳輸過去。

wdz6-t4.gif

2.3 亞穩(wěn)態(tài)注入分析

    兩個DMUX模塊分別將數(shù)據(jù)datain1和數(shù)據(jù)datain2同步過去后,再進行組合邏輯運算。根據(jù)本文1.3節(jié)的方法,采用隨機注入延遲的方法是隨機注入一個延遲的采樣時鐘??蓮南旅娴牟ㄐ螆D中看到當有一個采樣時鐘的隨機延遲時,組合邏輯運算后的輸出數(shù)據(jù)會與預(yù)期的輸出有不相符的地方。圓圈圈出部分為錯誤的運算結(jié)果。

wdz6-t5.gif

    因此,當電路中有亞穩(wěn)態(tài)的情況發(fā)生時,盡管經(jīng)過同步后,數(shù)據(jù)正確地傳輸出來,但當進行組合邏輯運算時,可能會因為數(shù)據(jù)的延遲而使邏輯運算后的結(jié)果和預(yù)期不符。由此可以得知此跨時鐘域數(shù)據(jù)傳輸模塊可能出現(xiàn)重匯聚問題。因此需要修改此設(shè)計模塊的RTL代碼,然后重新進行驗證。

3 結(jié)束語

    本文介紹了基于傳統(tǒng)SoC設(shè)計和仿真工具的一整套對信號CDC傳輸?shù)尿炞C方法。從電路結(jié)構(gòu)、傳輸協(xié)議、亞穩(wěn)態(tài)注入三個循序漸進的角度進行了論述。并使用此套方法對一個跨時鐘域傳輸模塊進行了驗證,證明了本文所提出的方法能在設(shè)計初期發(fā)現(xiàn)設(shè)計中的不合理地方,提高設(shè)計的可靠性和效率。

參考文獻

[1] 周偉,杜玉曉,楊其宇,等.FPGA跨時鐘域亞穩(wěn)態(tài)研究[J].電子世界,2012:87-89.

[2] 范毓洋,劉萬和,田毅,等.基于SVA的跨時鐘域協(xié)議驗證方法[J].微電子學(xué)與計算機,2015,32(9):23-27,32.

[3] 趙文鋒.基于SpyGlass的同步設(shè)計分析與靜態(tài)驗證[D].西安:西安電子科技大學(xué),2014.

[4] 梁駿,唐露,張明,等.基于隨機延時注入的跨時鐘域信號驗證方法[J].微電子學(xué)與計算機,2014,31(2):1-4.

[5] 羅莉,何鴻君,徐煒遐,等.面向SOC芯片的跨時鐘域設(shè)計和驗證[J].計算機科學(xué),2011,38(9):279-281.

[6] Luo Li,He Hongjun,Dou Qiang,et al.Design and verification of multi-clock domain synchronizers [C]//Intelligent System Design and Engineering Applicat.Changsha,2010:544-547.

[7] CUMMINGS C E.Clock domain crossing(CDC) design & verification techniques using system verilog[EB/OL].[2008-09-26].http://www.sunburst-design.com/papers.

[8] Mentor Graphics.0-In CDC Analyzer User Guide software version 3.0c,September 2010.

[9] 黃隸凡,鄭學(xué)仁.FPGA設(shè)計中的亞穩(wěn)態(tài)研究[J].微電子學(xué),2011,41(2).

[10] 高文輝,胥志毅,鄔天凱,等.異步時鐘亞穩(wěn)態(tài)仿真方法[J].信息技術(shù),2012(10):167-169.


作者信息:

王  鵬1,尤  然2,劉旭紅2,范毓洋1,田  毅1

(1.中國民航大學(xué) 民用航空器適航審定技術(shù)與管理研究中心 天津市民用航空器適航與維修重點實驗室,天津300300;

2.中國民航大學(xué) 適航學(xué)院,天津300300)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。