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實現
一種新型雙軌同步焊接的焊接裝置
主站蜘蛛池模板: 国产精品所毛片视频| 国内嫩模私拍精品视频| 欧美伦理一区| 亚洲第一成年网| 国产精品99在线观看| 国产免费福利网站| 国产欧美高清| 国产精品成人第一区| 都市激情亚洲综合久久| V一区无码内射国产| 色AV色 综合网站| 五月婷婷精品| 99re在线观看视频| 国产丝袜丝视频在线观看| 久久动漫精品| 高清国产在线| 欧美成人午夜影院| 2048国产精品原创综合在线| 蜜臀AVWWW国产天堂| 国产打屁股免费区网站| 国产在线精彩视频论坛| 99在线小视频| 毛片一级在线| 国产精品免费露脸视频| 亚洲女人在线| 91麻豆国产视频| 欧美成人精品在线| 国产丝袜91| 欧美一级在线| 99久久亚洲综合精品TS| 免费不卡在线观看av| 日韩av高清无码一区二区三区| 欧美日韩国产在线播放| 亚洲成a人片在线观看88| 亚洲精品片911| 欧美中文一区| 国产xx在线观看| 国产成人三级在线观看视频| 72种姿势欧美久久久久大黄蕉| 亚洲国产精品无码AV| 91视频区| 真实国产乱子伦视频| 国产精品美女在线| 婷婷午夜天| 国产精品亚洲一区二区三区在线观看| 亚洲欧洲日产国码无码av喷潮| 国产理论一区| 国产性爱网站| 天天综合网站| 亚洲一区二区三区中文字幕5566| 999国内精品久久免费视频| 久久天天躁夜夜躁狠狠| 久久99国产综合精品女同| 亚洲中字无码AV电影在线观看| 永久天堂网Av| av性天堂网| 在线国产91| 欧美日韩成人在线观看| 亚洲国产欧美中日韩成人综合视频| 国产精品爆乳99久久| 色综合热无码热国产| 国产高清免费午夜在线视频| 国产成人免费手机在线观看视频| 久久精品中文字幕少妇| 久996视频精品免费观看| 久久中文字幕av不卡一区二区| 午夜精品福利影院| 中文无码日韩精品| 91精品福利自产拍在线观看| 91人人妻人人做人人爽男同 | 国产一区二区三区在线观看视频| 欧洲日本亚洲中文字幕| 日韩精品一区二区三区大桥未久| 亚洲av成人无码网站在线观看| 国产精品网址在线观看你懂的| 手机在线国产精品| 国产精品久线在线观看| 亚洲国产成人久久精品软件| 亚洲香蕉在线| 欧美一区二区三区香蕉视| 永久在线精品免费视频观看| 9啪在线视频|