《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于SoC的信號(hào)跨時(shí)鐘域傳輸驗(yàn)證方法研究
基于SoC的信號(hào)跨時(shí)鐘域傳輸驗(yàn)證方法研究
2017年電子技術(shù)應(yīng)用第12期
王 鵬1,,尤 然2,,劉旭紅2,范毓洋1,,田 毅1
1.中國(guó)民航大學(xué) 民用航空器適航審定技術(shù)與管理研究中心 天津市民用航空器適航與維修重點(diǎn)實(shí)驗(yàn)室,,天津300300; 2.中國(guó)民航大學(xué) 適航學(xué)院,,天津300300
摘要: 在SoC信號(hào)跨時(shí)鐘域傳輸時(shí),,有可能會(huì)產(chǎn)生亞穩(wěn)態(tài)等問題。到目前為止,,對(duì)信號(hào)跨時(shí)鐘域傳輸還沒有一套完整且通用的驗(yàn)證方法,。因此,在傳統(tǒng)SoC設(shè)計(jì)和驗(yàn)證仿真工具的基礎(chǔ)上,,形成了關(guān)于信號(hào)跨時(shí)鐘域傳輸?shù)囊徽昨?yàn)證方法,。其中包括CDC結(jié)構(gòu)分析、基于斷言的CDC協(xié)議驗(yàn)證,、亞穩(wěn)態(tài)注入分析三部分,。通過此套方法可以在設(shè)計(jì)初期發(fā)現(xiàn)設(shè)計(jì)中的缺陷,提高設(shè)計(jì)的可靠性,。
中圖分類號(hào): TN47
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.172154
中文引用格式: 王鵬,,尤然,劉旭紅,,等. 基于SoC的信號(hào)跨時(shí)鐘域傳輸驗(yàn)證方法研究[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è)計(jì)的規(guī)模和復(fù)雜程度也在不斷的增加。在系統(tǒng)級(jí)芯片(System on Chip,,SoC)中數(shù)據(jù)信號(hào)的傳輸也更多地在多個(gè)時(shí)鐘域間進(jìn)行即跨時(shí)鐘域(Clock Domain Crossing,,CDC)傳輸。但因?yàn)楦鱾€(gè)時(shí)鐘在頻率,、相位上的差異,,可能會(huì)因?yàn)榻r(shí)間或保持時(shí)間不滿足要求,而造成亞穩(wěn)態(tài)問題,。在輸出端可能會(huì)出現(xiàn)毛刺,、震蕩或某一固定的值,有可能會(huì)導(dǎo)致邏輯誤判,。甚至有可能輸出0~1之間的電壓值進(jìn)而導(dǎo)致下一級(jí)亞穩(wěn)態(tài),,即亞穩(wěn)態(tài)的傳播,邏輯誤判將導(dǎo)致功能性錯(cuò)誤,,而亞穩(wěn)態(tài)的傳播則擴(kuò)大了故障面[1],。為了避免亞穩(wěn)態(tài)及其產(chǎn)生的危害,常見的解決方法是通過CDC同步電路來保證數(shù)據(jù)的正確傳輸,。但是同步電路不一定能正確地將數(shù)據(jù)同步過去,,還需要保證電路的同步結(jié)構(gòu)正確并且滿足相應(yīng)的傳輸協(xié)議。當(dāng)分散傳播的CDC信號(hào)經(jīng)過同步電路同步后,,再重新進(jìn)行組合邏輯運(yùn)算時(shí),,會(huì)有可能因?yàn)閬喎€(wěn)態(tài)而導(dǎo)致信號(hào)提前或延遲到達(dá),從而使邏輯運(yùn)算后的結(jié)果與期望值不符,,即重匯聚問題,。對(duì)于CDC同步電路的驗(yàn)證,傳統(tǒng)的模擬仿真無法精確地模擬亞穩(wěn)態(tài)現(xiàn)象,,而且靜態(tài)時(shí)序分析也不能對(duì)其時(shí)序進(jìn)行分析[2],。

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

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

1 驗(yàn)證方法的論述

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

wdz6-t1.gif

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

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

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

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

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

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

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

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

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

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

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

2 實(shí)例分析

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

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

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

wdz6-t2.gif

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

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

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

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

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

    數(shù)據(jù)要從兩個(gè)DMUX模塊中正確地傳輸過去,,需要滿足相應(yīng)的傳輸協(xié)議:輸入數(shù)據(jù)在發(fā)送時(shí)鐘域的選擇信號(hào)有效期間一直保持穩(wěn)定,且同步到接收時(shí)鐘域后,,在接收時(shí)鐘域的輸入數(shù)據(jù)需在接收時(shí)鐘域的選擇信號(hào)穩(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的時(shí)鐘周期,時(shí)鐘周期長(zhǎng)度為6 ns,。T2為clk2的時(shí)鐘周期,時(shí)鐘周期長(zhǎng)度為10 ns,。第一段代碼表示同步信號(hào)en1至少保持兩個(gè)采樣時(shí)鐘長(zhǎng)度的穩(wěn)定,,第二段代碼表示的是輸入數(shù)據(jù)datain1在發(fā)送時(shí)鐘域的選擇信號(hào)en1有效期間一直保持穩(wěn)定,第三段代碼表示輸入數(shù)據(jù)在接收時(shí)鐘域的選擇信號(hào)en2有效期間一直保持穩(wěn)定,。

wdz6-t3.gif

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

wdz6-t4.gif

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

    兩個(gè)DMUX模塊分別將數(shù)據(jù)datain1和數(shù)據(jù)datain2同步過去后,,再進(jìn)行組合邏輯運(yùn)算。根據(jù)本文1.3節(jié)的方法,,采用隨機(jī)注入延遲的方法是隨機(jī)注入一個(gè)延遲的采樣時(shí)鐘,。可從下面的波形圖中看到當(dāng)有一個(gè)采樣時(shí)鐘的隨機(jī)延遲時(shí),,組合邏輯運(yùn)算后的輸出數(shù)據(jù)會(huì)與預(yù)期的輸出有不相符的地方,。圓圈圈出部分為錯(cuò)誤的運(yùn)算結(jié)果。

wdz6-t5.gif

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

3 結(jié)束語

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

參考文獻(xiàn)

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

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

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

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

[5] 羅莉,,何鴻君,徐煒遐,,等.面向SOC芯片的跨時(shí)鐘域設(shè)計(jì)和驗(yàn)證[J].計(jì)算機(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è)計(jì)中的亞穩(wěn)態(tài)研究[J].微電子學(xué),,2011,,41(2).

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


作者信息:

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

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

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

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