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

FPGA設計中的跨時鐘域問題

2014-04-18 07:12:03俞帆張偉欣
現代電子技術 2014年7期
關鍵詞:同步仿真

俞帆+張偉欣

摘 要: 隨著FPGA設計中的時鐘頻率越來越高,時鐘方案越來越復雜,跨時鐘域問題變成了設計和驗證中的關鍵點。為了解決跨時鐘域問題對FPGA設計造成功能錯誤,對跨時鐘域信號采用兩級寄存器或多級寄存器同步、握手協議和異步FIFO等同步方法;同時還提出了不檢查時序、修改SDF文件和添加約束文件三種仿真中的技術,解決了跨時鐘域產生的亞穩態現象對FPGA仿真驗證造成的影響。

關鍵詞: CDC; 亞穩態; 同步; 仿真

中圖分類號: TN710?34 文獻標識碼: A 文章編號: 1004?373X(2014)07?0151?03

Problem of clock domain crossing in FPGA design

YU Fan, ZHANG Wei?xin

(Shanghai Aerospace Electronic Technology Institute, Shanghai 201109, China)

Abstract: With the increasing clock frequency in the FPGA design, the clock scheme is more and more complex, and the issue of crossing the clock domain becomes a key point in design and verification. In order to correct the function error in FPGA design generated by crossing clock domain, two?stage register or multi?stage register synchronization, hand?shake protocol and asynchronous FIFO are used for the signal crossing the clock domain. At the same time, some technologies of no?timing check, SDF file modification and constraint file addition are proposed, which overcome influence of metastable state phenomennon produced by clock domain crossing on FPGA simulation and verification.

Keywords: CDC; metastability; synchronization; simulation

0 引 言

在FPGA(Field Programmable Gate Array,現場可編程門陣列)設計中往往存在多個時鐘域,這就會帶來跨時鐘域(Clock Domain Crossing,CDC)問題。如果對跨時鐘域產生的亞穩態等問題解決不當,就有可能造成設計功能錯誤。本文就跨時鐘域問題產生的原因、在設計中的解決方法和仿真驗證中的相關技術進行闡述和討論,這對提高FPGA設計的可靠性有著重要的意義。

1 亞穩態

在數字集成電路中,寄存器要滿足建立時間(setup time)和保持時間(hold time)的時序要求。建立時間是指在時鐘沿到來之前,寄存器輸入數據信號必須保持穩定的時間。保持時間是指在時鐘沿之后,數據信號必須保持穩定的時間。亞穩態(Metastability)現象就是如果寄存器數據端的變化與時鐘的有效沿很近(不能滿足建立時間或保持時間要求),其輸出信號就會在一段不可預知長度的時間內處于一個非“0”非“1”的中間狀態(這段時間稱為亞穩態恢復時間),之后可能穩定在“1”狀態,也可能穩定在“0” 狀態。而且這種亞穩態可能向后傳播,造成后級出現邏輯錯誤。

亞穩態的形成過程如圖1所示,時鐘域aclk的輸出信號adat從高到低的變化與時鐘bclk的上升沿非常接近,不滿足建立時間或保持時間的要求,輸出信號bdat1就會有亞穩態產生,經過一段時間后隨機穩定在“1”或“0”上。當亞穩態產生的不確定電平被后續電路采樣時,就可能發生功能錯誤。

圖1 亞穩態示意圖

亞穩態現象是寄存器的一個固有特點,由于亞穩態恢復時間的不確定性,不能根本的去除亞穩態的影響。通過在設計中預留一定的亞穩態恢復時間,使信號恢復到確定的電平后參與邏輯運算,降低亞穩態的影響。MTBF(Mean Time Between Failure,平均無故障時間)是衡量一個設計的可靠性指標,MTBF的值越大,則出現亞穩態問題的概率越小。一個高的平均無故障時間表明一個設計是可靠的。MTBF的計算公式如下所示:

[MTBF=eTmetC2C1?fclk?fdata]

式中:[Tmet]為寄存器從時鐘上升沿觸發后的時序余量時間;[fclk]為接收時鐘域的時鐘頻率;[fdata]為數據的變化頻率;[C1]和[C2]為與FPGA器件有關的參數。可以通過延長[Tmet]的時間或降低[fclk]和[fdata]的頻率來增大MTBF的值。

[Tmet]的計算公式為:

[Tmet]=采樣時鐘周期時間-輸出信號的[Tco]時間-數據到達下一級寄存器輸入端口的延時時間[Tdata-]下一級寄存器時間[Tsu]

式中:[Tco]為輸出相對于時鐘沿之后的延時時間;[Tsu]為輸入相對于時鐘沿所需的建立時間。精確的說,[Tmet]時間還應該加上時鐘網絡延時時間[(Tclk2-Tclk1)。]如圖2所示。

圖2 寄存器采集數據示意圖

因為[Tco]和[Tsu]是由FPGA器件的工藝以及工作環境決定的,時鐘網絡延時時間很大程度上也是由FPGA器件決定。所以在時鐘頻率[fclk]和數據變化頻率[fdata]固定的情況下,只有減小[Tdata]的值才能增大[Tmet]的值。而[Tdata]是指兩個寄存器之間的邏輯延時以及連線延時之和,為了使[Tdata]最小,兩個寄存器之間應該沒有任何邏輯。

2 同步方法

2.1 兩級寄存器同步

根據上面的分析,為了防止新時鐘域中的第一級寄存器的亞穩態信號對下級邏輯造成影響,可以采用兩級寄存器同步的方法。具體電路如圖3所示。

在圖3中可以看出,時鐘域bclk的第一級寄存器的輸出信號bdat1如果存在亞穩態,經過1個時鐘周期后,bdat1的亞穩態趨于穩定,第二級寄存器就能夠采樣到穩定的值,輸出信號bdat2不會產生亞穩態。

在一些高速的設計中,可能兩級寄存器同步也無法獲得足夠的MTBF,第一級寄存器輸出的亞穩態保持了足夠長的時間,導致第二級輸出還有亞穩態,這時就需要采用三級寄存器或者更多級寄存器的方法來同步。

圖3 兩級寄存器同步

2.2 從快時鐘域到慢時鐘域

當接收時鐘域的頻率滿足大于1.5倍發送時鐘域的頻率時,可以直接用兩級寄存器同步。但是如果發送時鐘域的頻率大于接收時鐘域的頻率時,如果直接用兩級寄存器同步,跨時鐘域信號可能不能正常采樣,造成數據丟失。比較可靠的方法是跨時鐘域信號的電平寬度大于1.5倍的接收時鐘周期,這樣就可以保證跨時鐘域信號正常采樣。

可以在設計時直接在發送時鐘域里把跨時鐘域信號展寬到大于1.5倍的接收時鐘周期,也可以采用握手協議。握手協議的原理是:在發送時鐘域里將所要傳輸的數據準備好,再產生一個標志信號通過同步器傳遞到接收時鐘域告訴它來讀取數據,當接收時鐘域的控制邏輯檢測到這個信號后會將發送時鐘域準備好的數據讀進來,然后會產生一個傳輸完成信號告訴發送時鐘域數據讀取完畢,最后發送時鐘域接收到這個信號后會撤銷標志信號,完成一次數據傳輸。

使用握手協議可以進行從快時鐘域向慢時鐘域的傳輸,也可以進行多位數據的傳輸。

2.3 異步FIFO

在多位數據進行跨時鐘傳輸時還可以使用異步FIFO。異步FIFO是一種先進先出電路,用來進行2個異步時鐘之間的數據傳輸。FIFO的存儲介質為一塊雙端口RAM,可以同時進行讀寫操作。在寫時鐘域部分,由寫地址產生邏輯產生寫控制信號和寫地址;讀時鐘域部分由讀地址產生邏輯產生讀控制信號和讀地址。在空/滿標志產生部分,由讀寫地址相互比較產生空/滿標志。

異步FIFO的指針邏輯使用格雷碼,代替了通常使用的二進制碼。格雷碼在每次計數時只改變其中的一位。可以在格雷碼總線上使用同步器,因為每一次總線改變時只有一根信號線有變化,于是就消除了格雷碼總線各位數據通過不同同步器時的競爭情況。

3 仿真中的相關技術

當使用仿真工具對FPGA設計進行后仿真時,如果存在跨時鐘域問題,不滿足建立時間或保持時間的要求就會產生亞穩態,仿真工具無法確定當前的值,輸出變為不定態X。X態會往后傳播,造成仿真失敗。

在某FPGA設計做后仿真時,存在亞穩態問題,仿真波形如圖4所示。

圖4 亞穩態仿真波形圖

其中后仿真文件中的相關代碼如下所示:

DF1B\clk_cnt[0] (.D(\clk_cnt_3[0]), .CLK(clkin_t), .Q(\clk_cnt[0]_net_1 ));

從圖4中可以看出,時鐘clkin_t的下降沿與寄存器的輸入信號\clk_cnt_3[0]跳變沿的建立時間無法滿足,產生亞穩態,輸出信號\clk_cnt[0]_net_1變為X。亞穩態向后傳播,造成仿真無法正常進行。為了解決仿真中的這個問題,可以采用以下一些技術。

3.1 不進行時序檢查

通過在仿真時添加命令讓仿真器不進行時序檢查。以Synopsys公司的仿真器VCS為例,可以在編譯時添加命令+notimingcheck,VCS工具就不會檢查時序,當建立時間或保持時間不滿足時,也不會產生X態。這種方法的弊端是所有的邏輯單元均不會檢查時序。

3.2 修改SDF文件

還可以對違反時序的單元直接修改SDF文件中的時序約束。在該例子中,違反時序的單元是寄存器\clk_cnt[0],通過查找SDF文件,可以看到該寄存器的時序約束如圖5所示。

圖5 SDF文件中違反時序約束的寄存器

該寄存器違反的是輸入數據相對于時鐘下降沿的建立時間約束,可以在SDF文件中將這兩行的約束值均修改為0,如下所示:

(SETUP (posedge D) (negedge CLK) (0.00:0.00:0.00))

(SETUP (negedge D) (negedge CLK) (0.00:0.00:0.00))

修改SDF文件后,只要輸入數據相對于時鐘下降沿的建立時間大于0就能滿足時序要求,也就不會產生X態。

3.3 添加vcs_cfg文件

除了上面兩種方法,VCS仿真器還可以采用編寫vcs_cfg文件的方法來對一些特定的單元不檢查時序。此方法在編譯時要添加命令+optconfigfile+vcs_cfg,該例子中編寫的vcs_cfg文件內容為:

instance {top_tb.uut.\clk_cnt[0] } {noTiming};

通過此方法,只對寄存器\clk_cnt[0]不檢查時序,不影響其他的邏輯單元。以上三種方法都可以解決后仿真中亞穩態現象出X態的問題,消除X態后的仿真波形圖如圖6所示,仿真可以正常運行。

圖6 消除X態后的仿真波形圖

4 結 論

隨著FPGA設計的復雜化,時鐘頻率更高,時鐘方案更復雜,對跨時鐘域信號做同步處理的方法越來越重要,同時在仿真驗證時怎樣處理跨時鐘域信號也非常關鍵。本文詳細闡述了跨時鐘問題產生的原因,平均無故障時間MTBF的影響因素,跨時鐘域的同步方法,最后針對具體的FPGA設計,在后仿真時產生亞穩態問題的幾種解決方法進行了重點的介紹,通過這些方法,可以使跨時鐘域產生的亞穩態問題不影響后仿真驗證。

參考文獻

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

[2] CUMMINGS C E. Synthesis and scripting techniques for designing multi?asynchronous clock designs [EB/OL]. [2012?09?28]. http://www.sunburst?design.com/papers.

[3] 吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2010.

[4] 吳昆,黃坤,傅勇,等.一種基于格雷碼的異步FIFO設計與實現[J].計算機與數字工程,2007,35(1):141?144.

[5] DALLY W J, POULTON J W. Digital systems engineer [M]. UK: Cambridge University Press, 1998.

[6] ARORA Mohit. The art of hardware architecture [M]. New York: Springer Science Business Media Press, 2012.

[7] 杜旭,王夏泉.ASIC中的異步時序設計[J].微電子學,2004,34(5):522?528.

[8] 趙永建,段國東,李苗.集成電路中的多時鐘域同步設計技術[J].計算機工程,2008,34(9):247?249.

[9] 徐翼,鄭建宏.異步時鐘域的亞穩態問題和同步器[J].微計算機信息,2008,24(5):272?275.

[10] 謝修祥,王廣生.異步多時鐘系統的同步設計技術[J].電子工程師,2005,31(5):33?37.

instance {top_tb.uut.\clk_cnt[0] } {noTiming};

通過此方法,只對寄存器\clk_cnt[0]不檢查時序,不影響其他的邏輯單元。以上三種方法都可以解決后仿真中亞穩態現象出X態的問題,消除X態后的仿真波形圖如圖6所示,仿真可以正常運行。

圖6 消除X態后的仿真波形圖

4 結 論

隨著FPGA設計的復雜化,時鐘頻率更高,時鐘方案更復雜,對跨時鐘域信號做同步處理的方法越來越重要,同時在仿真驗證時怎樣處理跨時鐘域信號也非常關鍵。本文詳細闡述了跨時鐘問題產生的原因,平均無故障時間MTBF的影響因素,跨時鐘域的同步方法,最后針對具體的FPGA設計,在后仿真時產生亞穩態問題的幾種解決方法進行了重點的介紹,通過這些方法,可以使跨時鐘域產生的亞穩態問題不影響后仿真驗證。

參考文獻

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

[2] CUMMINGS C E. Synthesis and scripting techniques for designing multi?asynchronous clock designs [EB/OL]. [2012?09?28]. http://www.sunburst?design.com/papers.

[3] 吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2010.

[4] 吳昆,黃坤,傅勇,等.一種基于格雷碼的異步FIFO設計與實現[J].計算機與數字工程,2007,35(1):141?144.

[5] DALLY W J, POULTON J W. Digital systems engineer [M]. UK: Cambridge University Press, 1998.

[6] ARORA Mohit. The art of hardware architecture [M]. New York: Springer Science Business Media Press, 2012.

[7] 杜旭,王夏泉.ASIC中的異步時序設計[J].微電子學,2004,34(5):522?528.

[8] 趙永建,段國東,李苗.集成電路中的多時鐘域同步設計技術[J].計算機工程,2008,34(9):247?249.

[9] 徐翼,鄭建宏.異步時鐘域的亞穩態問題和同步器[J].微計算機信息,2008,24(5):272?275.

[10] 謝修祥,王廣生.異步多時鐘系統的同步設計技術[J].電子工程師,2005,31(5):33?37.

instance {top_tb.uut.\clk_cnt[0] } {noTiming};

通過此方法,只對寄存器\clk_cnt[0]不檢查時序,不影響其他的邏輯單元。以上三種方法都可以解決后仿真中亞穩態現象出X態的問題,消除X態后的仿真波形圖如圖6所示,仿真可以正常運行。

圖6 消除X態后的仿真波形圖

4 結 論

隨著FPGA設計的復雜化,時鐘頻率更高,時鐘方案更復雜,對跨時鐘域信號做同步處理的方法越來越重要,同時在仿真驗證時怎樣處理跨時鐘域信號也非常關鍵。本文詳細闡述了跨時鐘問題產生的原因,平均無故障時間MTBF的影響因素,跨時鐘域的同步方法,最后針對具體的FPGA設計,在后仿真時產生亞穩態問題的幾種解決方法進行了重點的介紹,通過這些方法,可以使跨時鐘域產生的亞穩態問題不影響后仿真驗證。

參考文獻

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

[2] CUMMINGS C E. Synthesis and scripting techniques for designing multi?asynchronous clock designs [EB/OL]. [2012?09?28]. http://www.sunburst?design.com/papers.

[3] 吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2010.

[4] 吳昆,黃坤,傅勇,等.一種基于格雷碼的異步FIFO設計與實現[J].計算機與數字工程,2007,35(1):141?144.

[5] DALLY W J, POULTON J W. Digital systems engineer [M]. UK: Cambridge University Press, 1998.

[6] ARORA Mohit. The art of hardware architecture [M]. New York: Springer Science Business Media Press, 2012.

[7] 杜旭,王夏泉.ASIC中的異步時序設計[J].微電子學,2004,34(5):522?528.

[8] 趙永建,段國東,李苗.集成電路中的多時鐘域同步設計技術[J].計算機工程,2008,34(9):247?249.

[9] 徐翼,鄭建宏.異步時鐘域的亞穩態問題和同步器[J].微計算機信息,2008,24(5):272?275.

[10] 謝修祥,王廣生.異步多時鐘系統的同步設計技術[J].電子工程師,2005,31(5):33?37.

猜你喜歡
同步仿真
素質教育理念下藝術教育改革的思路
政府職能的轉變與中國經濟結構調整的同步
商情(2016年42期)2016-12-23 14:26:58
一種幫助幼兒車內脫險應急裝置的仿真分析
科技資訊(2016年18期)2016-11-15 20:09:22
公共藝術與城市設計的協調與同步
Buck開關變換器的基本參數設計及仿真分析
試析PLC控制下的自動化立體倉庫仿真情況分析
基于MADYMO的航空座椅約束系統優化設計
科技視界(2016年18期)2016-11-03 21:44:44
中國體態假人模型與FAA Hybrid Ⅲ 型假人模型沖擊差異性分析
科技視界(2016年18期)2016-11-03 20:31:49
有源應答器DBPL解碼算法研究及FPGA實現
一種新型雙軌同步焊接的焊接裝置
主站蜘蛛池模板: av性天堂网| 国产极品粉嫩小泬免费看| 热99re99首页精品亚洲五月天| 国产精品污视频| 伊人福利视频| 亚洲一区国色天香| 亚洲VA中文字幕| 国产美女精品一区二区| 国产一级毛片网站| 国产精品无码AV中文| 日韩精品一区二区三区大桥未久| 中文字幕在线欧美| 久久国产高潮流白浆免费观看| 国产精品永久在线| 热久久国产| 日本一本在线视频| 国产91小视频在线观看| 亚洲欧美在线综合图区| 欧美精品高清| 免费观看欧美性一级| 99免费在线观看视频| 久久永久免费人妻精品| 日本黄色a视频| 国产欧美日韩在线在线不卡视频| 女人天堂av免费| 亚洲另类色| 99在线视频免费| 亚洲天堂网2014| 亚洲成人精品| 国产69精品久久久久孕妇大杂乱 | 国产人在线成免费视频| 欧美精品v日韩精品v国产精品| 亚洲国产天堂久久九九九| 国产精品55夜色66夜色| 伊人久久久久久久| 99视频只有精品| 国产第一页免费浮力影院| 久久久噜噜噜| 色135综合网| 亚洲精品第一页不卡| 久久精品嫩草研究院| 99re在线视频观看| 亚洲第一中文字幕| 国产成人精品男人的天堂下载| 欧美自慰一级看片免费| 永久在线精品免费视频观看| 久操线在视频在线观看| 国内精品免费| JIZZ亚洲国产| 色香蕉影院| 精品三级网站| 亚洲午夜国产精品无卡| 亚洲热线99精品视频| 98超碰在线观看| 国产在线观看精品| 国产欧美精品午夜在线播放| 欧美日韩成人在线观看| 91成人精品视频| 亚洲一区波多野结衣二区三区| 国产成人精品一区二区| 在线中文字幕日韩| 亚洲成a人片在线观看88| 日本一本正道综合久久dvd| 亚洲国产理论片在线播放| 亚洲天堂免费在线视频| 亚洲国产av无码综合原创国产| 欧美性久久久久| 色天堂无毒不卡| 亚洲国内精品自在自线官| a网站在线观看| 国产玖玖视频| 欧美国产日韩一区二区三区精品影视| 亚洲国产成人精品一二区| 伊人AV天堂| 激情综合网址| 亚洲欧洲天堂色AV| 波多野结衣一区二区三区四区| 九九九精品视频| 色偷偷av男人的天堂不卡| 国产亚洲精品精品精品| 午夜视频免费试看| 亚洲妓女综合网995久久|