當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化

1 引言

基于FPGA的數(shù)字系統(tǒng)設(shè)計(jì)中大都推薦采用同步時(shí)序的設(shè)計(jì),也就是單時(shí)鐘系統(tǒng)。但是實(shí)際的工程中,純粹單時(shí)鐘系統(tǒng)設(shè)計(jì)的情況很少,特別是設(shè)計(jì)模塊與外圍芯片的通信中,跨時(shí)鐘域的情況經(jīng)常不可避免。如果對(duì)跨時(shí)鐘域帶來的亞穩(wěn)態(tài)、采樣丟失、潛在邏輯錯(cuò)誤等等一系列問題處理不當(dāng),將導(dǎo)致系統(tǒng)無法運(yùn)行。本文總結(jié)出了幾種同步策略來解決跨時(shí)鐘域問題。

2 異步設(shè)計(jì)中的亞穩(wěn)態(tài)

觸發(fā)器是FPGA設(shè)計(jì)中最常用的基本器件。觸發(fā)器工作過程中存在數(shù)據(jù)的建立(setup)和保持(hold)時(shí)間。對(duì)于使用上升沿觸發(fā)的觸發(fā)器來說,建立時(shí)間就是在時(shí)鐘上升沿到來之前,觸發(fā)器數(shù)據(jù)端數(shù)據(jù)保持穩(wěn)定的最小時(shí)間。而保持時(shí)間是時(shí)鐘上升沿到來之后,觸發(fā)器數(shù)據(jù)端數(shù)據(jù)還應(yīng)該繼續(xù)保持穩(wěn)定的最小時(shí)間。我們把這段時(shí)間成為setup-hold時(shí)間(如圖1所示)。在這個(gè)時(shí)間參數(shù)內(nèi),輸入信號(hào)在時(shí)鐘的上升沿是不允許發(fā)生變化的。如果輸入信號(hào)在這段時(shí)間內(nèi)發(fā)生了變化,輸出結(jié)果將是不可知的,即亞穩(wěn)態(tài) (Metastability)。

一個(gè)信號(hào)在過渡到另一個(gè)時(shí)鐘域時(shí),如果僅僅用一個(gè)觸發(fā)器將其鎖存,那么采樣的結(jié)果將可能是亞穩(wěn)態(tài)。這也就是信號(hào)在跨時(shí)鐘域時(shí)應(yīng)該注意的問題。如圖2所示。

信號(hào)dat經(jīng)過一個(gè)鎖存器的輸出數(shù)據(jù)為a_dat。用時(shí)鐘b_clk進(jìn)行采樣的時(shí)候,如果a_dat正好在b_clk的setup-hold時(shí)間內(nèi)發(fā)生變化,此時(shí)b_ dat就既不是邏輯“1”,也不是邏輯“0”,而是處于中間狀態(tài)。經(jīng)過一段時(shí)間之后,有可能回升到高電平,也有可能降低到低電平。輸出信號(hào)處于中間狀態(tài)到恢復(fù)為邏輯“1”或邏輯“0”的這段時(shí)間,我們稱之為亞穩(wěn)態(tài)時(shí)間。

觸發(fā)器進(jìn)入亞穩(wěn)態(tài)的時(shí)間可以用參數(shù)MTBF(Mean Time Between Failures)來描述,MTBF即觸發(fā)器采樣失敗的時(shí)間間隔,表示為:

其中fclock表示系統(tǒng)時(shí)鐘頻率,fdata代表異步輸入信號(hào)的頻率,tmet代表不會(huì)引起故障的最長亞穩(wěn)態(tài)時(shí)間,C1和C2分別為與器件特性相關(guān)的常數(shù)。如果MTBF很大,就認(rèn)為這個(gè)設(shè)計(jì)在實(shí)際工作中是能夠正常運(yùn)行的,不會(huì)因?yàn)閬喎€(wěn)態(tài)導(dǎo)致整個(gè)系統(tǒng)的失效。當(dāng)觸發(fā)器處于亞穩(wěn)態(tài),且處于亞穩(wěn)態(tài)的時(shí)間超過了一個(gè)時(shí)鐘周期,這種不確定的狀態(tài)還會(huì)影響到下一級(jí)的觸發(fā)器,最終導(dǎo)致連鎖反應(yīng),從而使整個(gè)系統(tǒng)功能失常。

3 同步策略

在異步設(shè)計(jì)中,完全避免亞穩(wěn)態(tài)是不可能的。因此,設(shè)計(jì)的基本思路應(yīng)該是:首先盡可能減少出現(xiàn)亞穩(wěn)態(tài)的可能性,其次是盡可能減少出現(xiàn)亞穩(wěn)態(tài)并給系統(tǒng)帶來危害的可能性。以下是根據(jù)實(shí)際工作總結(jié)出來的幾種同步策略。

3.1 雙鎖存器法

為了避免進(jìn)入亞穩(wěn)態(tài),應(yīng)當(dāng)使參數(shù)MTBF盡可能大。通常采用的方法是雙鎖存器法,即在一個(gè)信號(hào)進(jìn)入另一個(gè)時(shí)鐘域之前,將該信號(hào)用兩個(gè)鎖存器連續(xù)鎖存兩次(如圖3所示)。理論研究表明這種設(shè)計(jì)可以將出現(xiàn)亞穩(wěn)態(tài)的幾率降低到一個(gè)很小的程度,但這種方法同時(shí)帶來了對(duì)輸入信號(hào)的一級(jí)延時(shí),需要在設(shè)計(jì)時(shí)鐘的時(shí)候加以注意。

對(duì)于上面的雙鎖存器法,如果a_clk的頻率比b_clk的頻率高,將可能出現(xiàn)因?yàn)閐at變化太快,而使b_clk無法采樣的問題。即在信號(hào)從快時(shí)鐘域向慢時(shí)鐘域過渡的時(shí)候,如果信號(hào)變化太快,慢時(shí)鐘將可能無法對(duì)該信號(hào)進(jìn)行正確的采樣,所以在使用雙鎖存器法的時(shí)候,應(yīng)該使原始信號(hào)保持足夠長的時(shí)間,以便另一個(gè)時(shí)鐘域的鎖存器可以正確地對(duì)其進(jìn)行采樣。

3.2 結(jié)繩法

由于雙鎖存器法在快時(shí)鐘域向慢時(shí)鐘域過渡中可能存在采樣失效的問題,我們引入了一種安全的跨時(shí)鐘域的方法:結(jié)繩法。結(jié)繩法適合任何時(shí)鐘域的過渡(clk1,clk2的頻率和相位關(guān)系可以任意選定),如圖4所示。

圖4中的_clk1表示該信號(hào)屬于clk1時(shí)鐘域,_clk2的信號(hào)表示該信號(hào)屬于clk2時(shí)鐘域。在兩次src_req_clk1之間被src_vld_clk1結(jié)繩(Pluse2Toggle)。將src_vld—clk1用雙鎖存器同步以后,該信號(hào)轉(zhuǎn)換為dst_req_clk2(Toggle2Pluse)。同理,用dst_vld_clk2將dat_req_clk2結(jié)繩,dst_vld_clk2表明在clk2時(shí)鐘域中,src_dat_clk1已經(jīng)可以進(jìn)行正確的采樣了。最后將dst_vld_clk2轉(zhuǎn)換為dst_ack_clk1(Synchronizer and Toggle2Pluse)。dst_ack_clk表明src_dat_clk1已經(jīng)被clk2正確采樣了,此后clk1時(shí)鐘域就可以安全地傳輸下一個(gè)數(shù)據(jù)了。可以看出,結(jié)繩法的關(guān)鍵是將信號(hào)結(jié)繩以后,使其保持足夠長的時(shí)間,以便另一個(gè)時(shí)鐘可以正確采樣。圖5描述了結(jié)繩法的具體實(shí)現(xiàn),主要包括3個(gè)基本單元:Pluse2Toggle、Synchronizer和Toggle2Pluse。

Pluse2Toggle模塊負(fù)責(zé)將兩個(gè)脈沖信號(hào)結(jié)繩,即將單脈沖信號(hào)延長;Synchronizer模塊用雙鎖存器法將得到的信號(hào)過渡到另一個(gè)時(shí)鐘域;Toggle2Pluse模塊與Pluse2Toggle功能相對(duì),即將延長的脈沖信號(hào)還原為單脈沖,這里用到了異或門。整體的設(shè)計(jì)思想就是用Pluse2Toggle將信號(hào)延長,用Synchronizer過渡,再用Toggle2Pluse還原,以保證另一個(gè)時(shí)鐘域可以正確采樣,而接收方用相反的流程送回響應(yīng)信號(hào)。

結(jié)繩法可以解決快時(shí)鐘域向慢時(shí)鐘域過渡的問題,且適用的范圍很廣。但是結(jié)繩法實(shí)現(xiàn)較復(fù)雜,在設(shè)計(jì)要求較高的場合應(yīng)該慎用。

4 結(jié)束語

本文主要把FPGA異步時(shí)鐘設(shè)計(jì)中產(chǎn)生的問題,原因以及解決問題所采用的同步策略做了詳細(xì)的分析。其中雙鎖存器法比較適用于只有少數(shù)信號(hào)跨時(shí)鐘域;結(jié)繩法比較適用快時(shí)鐘域向慢時(shí)鐘過渡的情況。所以,在實(shí)際的應(yīng)用中,應(yīng)根據(jù)自身設(shè)計(jì)的特點(diǎn)選擇適當(dāng)?shù)耐讲呗浴?/p>

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉