《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 基于FPGA的跨時(shí)鐘域信號處理——亞穩(wěn)態(tài)

基于FPGA的跨時(shí)鐘域信號處理——亞穩(wěn)態(tài)

2015-02-12

    在特權(quán)的上篇博文《基于FPGA的跨時(shí)鐘域信號處理——專用握手信號》中提出了使用專門的握手信號達(dá)到異步時(shí)鐘域數(shù)據(jù)的可靠傳輸。列舉了一個(gè)簡單的由請求信號req、數(shù)據(jù)信號data、應(yīng)答信號ack組成的簡單握手機(jī)制。riple兄更是提出了req和ack這兩個(gè)直接的跨時(shí)鐘域信號在被另一個(gè)時(shí)鐘域的寄存器同步時(shí)的亞穩(wěn)態(tài)問題。這個(gè)問題估計(jì)是整個(gè)異步通信中最值得探討和關(guān)注的。

 很幸運(yùn),特權(quán)同學(xué)找到了很官方的說法——《Application Note42:Metastability in Altera Devices》,一口氣讀完全文,有一個(gè)單詞送給這篇文章很合適——“nice”。特權(quán)同學(xué)過去的所有疑惑都在文章中找到了答案,盡管altera在文章的最后只是竭盡全力的在吹捧自己的好。

  如果你E文還不錯(cuò)(該不會比我這個(gè)4次都沒過掉4級考試的家伙差吧,~_~),那么去享受原文吧。或者你可以考慮看看特權(quán)同學(xué)的翻譯水平,哈哈……

  什么是亞穩(wěn)態(tài)?

  所有數(shù)字器件(例如FPGA)的信號傳輸都會有一定的時(shí)序要求,從而保證每個(gè)寄存器將捕獲的輸入信號正確輸出。為了確保可靠的操作,輸入寄存器的信號必須在時(shí)鐘沿的某段時(shí)間(寄存器的建立時(shí)間Tsu)之前保持穩(wěn)定,并且持續(xù)到時(shí)鐘沿之后的某段時(shí)間(寄存器的保持時(shí)間Th)之后才能改變。而該寄存器的輸入反映到輸出則需要經(jīng)過一定的延時(shí)(時(shí)鐘到輸出的時(shí)間Tco)。如果數(shù)據(jù)信號的變化違反了Tsu后者Th的要求,那么寄存器的輸出就會處于亞穩(wěn)態(tài)。此時(shí),寄存器的輸出會在高電平1和低電平0之間盤旋一段時(shí)間,這也意味著寄存器的輸出達(dá)到一個(gè)穩(wěn)定的高或者低電平的狀態(tài)所需要的時(shí)間會大于Tco。

  在同步系統(tǒng)中,輸入信號總是能夠達(dá)到寄存器的時(shí)序要求,所以亞穩(wěn)態(tài)不會發(fā)生。亞穩(wěn)態(tài)問題通常發(fā)生在一些跨時(shí)鐘域信號的傳輸上。由于數(shù)據(jù)信號可能在任何時(shí)間到達(dá)異步時(shí)鐘域的目的寄存器,所以設(shè)計(jì)者無法保證滿足Tsu和Th的要求。然而,并非所有違反寄存器的Tsu或Th要求的信號會導(dǎo)致輸出亞穩(wěn)態(tài)。某個(gè)寄存器進(jìn)入了亞穩(wěn)態(tài)后重新回到穩(wěn)定狀態(tài)的時(shí)間取決于器件的制造工藝及工作環(huán)境。在大多數(shù)情況下,寄存器將會快速的返回穩(wěn)定狀態(tài)。

  寄存器在時(shí)鐘沿采樣數(shù)據(jù)信號好比一個(gè)球從小山的一側(cè)拋到另一側(cè)。如圖1所示,小山的兩側(cè)代表數(shù)據(jù)的穩(wěn)定狀態(tài)——舊的數(shù)據(jù)值或者新的數(shù)據(jù)值;山頂代表亞穩(wěn)態(tài)。如果球被拋到山頂上,它可能會停在山頂上,但實(shí)際上它只要稍微有些動靜就會滾落到山底。在一定時(shí)間內(nèi),球滾的越遠(yuǎn),它達(dá)到穩(wěn)定狀態(tài)的時(shí)間也就越短。

  如果數(shù)據(jù)信號的變化發(fā)生在時(shí)鐘沿的某段時(shí)間之后(Th),就好像球跌落到了小山的“old data value”一側(cè),輸出信號仍然保持時(shí)鐘變化前的值不變。如果數(shù)據(jù)信號的變化發(fā)生在時(shí)鐘沿的某段時(shí)間(Tsu)之前,并且持續(xù)到時(shí)鐘沿之后的某段時(shí)間(Th)都不再變化,那就好像球跌落到了小山的“new data value”一側(cè),輸出數(shù)據(jù)達(dá)到穩(wěn)定狀態(tài)的時(shí)間為Tco。然而,當(dāng)一個(gè)寄存器的輸入數(shù)據(jù)違反了Tsu或者Th,就像球被拋到了山頂。如果球在山頂停留的越久,那么它到達(dá)山底的時(shí)間也就越長,這就相應(yīng)的延長了從時(shí)鐘變化到輸出數(shù)據(jù)達(dá)到穩(wěn)定狀態(tài)的時(shí)間(Tco)。

  

點(diǎn)擊看大圖

 

  圖1

  圖2很好的闡釋了亞穩(wěn)態(tài)信號。在時(shí)鐘變化的同時(shí),寄存器的輸入數(shù)據(jù)信號也處于從低電平到高電平的變化狀態(tài),這就違反了寄存器的Tsu要求。圖中的輸出信號從低電平變化到亞穩(wěn)態(tài),即盤旋于高低電平之間的一個(gè)狀態(tài)。信號輸出A最終達(dá)到輸入信號的新狀態(tài)值1,信號輸出B卻返回了輸入信號的舊狀態(tài)值0。在這兩種情況下,信號輸出變化穩(wěn)定在固定的1或者0狀態(tài)的時(shí)間遠(yuǎn)超過了寄存器的固有Tco。

  

點(diǎn)擊看大圖

 

  圖2

  如果輸出信號在下一個(gè)寄存器捕獲數(shù)據(jù)前(下一個(gè)時(shí)鐘鎖存沿的Tsu時(shí)間前)處于一個(gè)穩(wěn)定的有效狀態(tài),那么亞穩(wěn)態(tài)信號不會對該系統(tǒng)照成影響。但是如果亞穩(wěn)態(tài)信號在下一個(gè)寄存器捕獲數(shù)據(jù)時(shí)仍然盤旋于高或者低電平之間,那將會對系統(tǒng)的后續(xù)電路產(chǎn)生影響。繼續(xù)討論球和小山的比喻,當(dāng)球到達(dá)山底的時(shí)間(處于穩(wěn)定的邏輯值0或1)超過了扣除寄存器Tco以外的余量時(shí)間,那么問題就隨著而來。

  同步寄存器

  當(dāng)信號變化處于一個(gè)不相關(guān)的電路或者以不時(shí)鐘域,它在被使用前就需要先被同步到新的時(shí)鐘域中。新的時(shí)鐘域中的第一個(gè)寄存器將扮演同步寄存器的角色。

  為了盡可能減少異步信號傳輸中由于亞穩(wěn)態(tài)引發(fā)的問題,設(shè)計(jì)者通常在目的時(shí)鐘域中使用一串連續(xù)的寄存器(同步寄存器鏈或者同步裝置)將信號同步到新的時(shí)鐘域中。這些寄存器有額外的時(shí)間用于信號在被使用前從亞穩(wěn)態(tài)達(dá)到穩(wěn)定值。同步寄存器到寄存器路徑的時(shí)序余量,也就是亞穩(wěn)態(tài)信號達(dá)到穩(wěn)定的最大時(shí)間,也被認(rèn)為是亞穩(wěn)態(tài)持續(xù)時(shí)間。

  同步寄存器鏈,或者同步裝置,被定義為一串達(dá)到以下要求的連續(xù)寄存器:

  ■ 鏈中的寄存器都由相同的時(shí)鐘或者相位相關(guān)的時(shí)鐘觸發(fā);

  ■ 鏈中的第一個(gè)寄存器由不相關(guān)時(shí)鐘域或者是異步的時(shí)鐘來觸發(fā);

  ■ 每個(gè)寄存器的扇出值都為1,鏈中的最后一個(gè)寄存器可以例外。

  同步寄存器鏈的長度就是達(dá)到以上要求的同步時(shí)鐘域的寄存器數(shù)量,圖3是一個(gè)兩級的同步寄存器鏈,

  

點(diǎn)擊看大圖

 

  圖3

  傳輸在不相關(guān)時(shí)鐘域的信號,都有可能在相對于捕獲寄存器時(shí)鐘沿的任何時(shí)間點(diǎn)變化。因此,設(shè)計(jì)者無法預(yù)測信號變化的順序或者說信號兩次變化間經(jīng)過了幾個(gè)鎖存時(shí)鐘周期。例如,一條異步總線的各個(gè)數(shù)據(jù)信號可能在不同的時(shí)鐘沿變化,結(jié)果接收到的數(shù)據(jù)值可能是錯(cuò)誤的。

  設(shè)計(jì)者必須考慮到電路的這些情況,而使用雙時(shí)鐘FIFO(DCFIFO)傳輸信號或者使用握手信號進(jìn)行控制。FIFO使用同步裝置處理來自不同時(shí)鐘域的控制信號,數(shù)據(jù)的讀寫使用兩套獨(dú)立的總線。此外,如果異步信號作為兩個(gè)時(shí)鐘域的握手邏輯,這些控制信號就需要用于指示何時(shí)數(shù)據(jù)信號可以被接收時(shí)鐘域鎖存。如此一來,就可以利用同步寄存器確保亞穩(wěn)態(tài)不會影響控制信號的傳輸,從而保證數(shù)據(jù)在使用前有充足的時(shí)間等待亞穩(wěn)態(tài)達(dá)到穩(wěn)定。

  文章其實(shí)還沒有結(jié)束,只不過altera在后面很官方的提出了所謂的MTBF(mean time between failures)的概念,即所謂的平均無故障時(shí)間的概念。列了個(gè)公式,分析了各個(gè)參數(shù),當(dāng)然也不忘提他們的器件參數(shù)對于這個(gè)MTBF做了多大的貢獻(xiàn)。然后也提出了它們是如何進(jìn)行該公式參數(shù)的推導(dǎo)。

  我們還是回到主題,在明確了這些基本的概念和基本的方法后,就要學(xué)以致用。在上篇博文沒有解決的一個(gè)關(guān)鍵問題在于如何最有效的進(jìn)行握手信號req、ack的采樣。這個(gè)問題我們可以先以altera提出的MTBF推導(dǎo)公式的各個(gè)參數(shù)入手分析。

  

 

  在這個(gè)公式中,Tmet就是指寄存器從時(shí)鐘上升沿觸發(fā)后的時(shí)序余量時(shí)間,F(xiàn)clk是接收時(shí)鐘域的時(shí)鐘頻率,F(xiàn)data是數(shù)據(jù)的變化頻率,而C1、C2則是與器件有關(guān)的參數(shù),對于用戶是一個(gè)固定值。由此看來,設(shè)計(jì)者只能通過改變Tmet、Fclk、Fdata來提高M(jìn)TBF值。MTBF值越大,說明出現(xiàn)亞穩(wěn)態(tài)的幾率越小。要增大MTBF值,可以延長Tmet、也可以降低Fclk和Fdata這兩個(gè)頻率。

  首先我們看看如何延長Tmet時(shí)間。

  Tmet時(shí)間 = 采樣時(shí)鐘周期時(shí)間 – 輸出信號正常的Tco時(shí)間 - 數(shù)據(jù)到達(dá)下一級寄存器的輸入端口的其它延時(shí)時(shí)間Tdata - 下一級寄存器Tsu時(shí)間。

  

 

  圖4

  從嚴(yán)格意義上來說,Tmet時(shí)間還應(yīng)該加上時(shí)鐘網(wǎng)絡(luò)延時(shí)時(shí)間(Tclk2-Tclk1)。總之,這個(gè)Tmet時(shí)間是指正常沒有亞穩(wěn)態(tài)情況下,寄存器輸出信號從源寄存器到目的寄存器的建立時(shí)間余量。由于決定Tmet取值的參數(shù)中Tco和Tsu都是由FPGA器件本身的工藝以及工作環(huán)境決定的,設(shè)置時(shí)鐘網(wǎng)絡(luò)延時(shí)參數(shù)也很大程度上由器件決定,所以,如果在時(shí)鐘頻率Fclk和數(shù)據(jù)變化率Fdata固定的情況下,要增大Tmet值,那么設(shè)計(jì)者要做的只能是減小Tdata值。而這個(gè)Tdata是指兩個(gè)寄存器間的邏輯延時(shí)以及走線延時(shí)之和,要最大程度的減小它,估計(jì)也只能是不在連個(gè)寄存器間添加任何邏輯而已,正如我們的實(shí)例中也只有簡單的input=output。

  再看Fclk,它是接收域的采樣時(shí)鐘,就是異步信號需要被同步到的那個(gè)時(shí)鐘域,它的頻率是越小越好。當(dāng)然了,事物都其兩面性,這個(gè)頻率小到影響系統(tǒng)正常工作可就不行了。設(shè)計(jì)者需要從各個(gè)方面考慮來決定這個(gè)頻率,不會僅僅為了降低亞穩(wěn)態(tài)發(fā)生的概率而無限制的降低系統(tǒng)的時(shí)鐘頻率。如此分析,發(fā)現(xiàn)這個(gè)Fclk基本也是一個(gè)比較固定的值,不是可以隨便說降就降的。降低Fclk其實(shí)也就是在增大Tmet時(shí)間,因?yàn)樗荰met公式計(jì)算中的被減數(shù),哈哈,好像是一環(huán)扣一環(huán)。另外,在不降低采樣頻率Fclk的情況下,通過使用使能信號的方式得到一個(gè)二分頻時(shí)鐘去采樣信號也可以達(dá)到降頻的目的,只不過這樣會多耗費(fèi)幾個(gè)時(shí)鐘周期用于同步,但是有時(shí)也能夠明顯改善性能。

  特權(quán)同學(xué)的二分頻采樣思路如圖5所示,前兩級采樣電路都做了2分頻,然后第三級使用原來時(shí)鐘進(jìn)行采樣。它的好處在于給第一級和第二級同步寄存器更多的Tmet時(shí)間,將亞穩(wěn)態(tài)抑制在第二級寄存器輸入之前,從而保證第三級寄存器的可靠采樣。雖然它在一、二級寄存器的輸入端增加了一些邏輯,可能會增大Tdata,但是相比于這個(gè)采樣時(shí)鐘的一半將額,它的變化是可以忽略不計(jì)的。

  

點(diǎn)擊看大圖

 

  圖5

  另一種辦法是在不降低每級寄存器的采樣頻率的情況下采用更多的同步寄存器,盡量去使用后級的寄存器,這也是一個(gè)笨辦法。Altera的筆記里打了一個(gè)比喻,如果一個(gè)設(shè)計(jì)你使用了9級的同步寄存器,那么MTBF是100年,而當(dāng)你使用了10級的同步寄存器,那么MTBF是1000年。這個(gè)辦法其實(shí)有點(diǎn)類似冗余,這是所有人都知道的可以提高可靠性的原始辦法。這種思路的弊端和前面提到的方法一樣,需要付出多個(gè)時(shí)鐘周期為代價(jià)。

  最后看這個(gè)Fdata,這個(gè)是發(fā)送時(shí)鐘域的數(shù)據(jù)變化率,似乎也是由系統(tǒng)決定的,設(shè)計(jì)者也無法做太多改變。

  其實(shí)對于一般的應(yīng)用,如果系統(tǒng)的時(shí)鐘頻率不太高,器件的特性還算可以(只是一些泛泛的說法,具體問題要具體分析),特權(quán)同學(xué)覺得上篇博文提出的握手信號同步方法就足以應(yīng)付亞穩(wěn)態(tài)問題。如果到高頻范疇來討論亞穩(wěn)態(tài),那將會是一項(xiàng)更有挑戰(zhàn)性的任務(wù),只可惜特權(quán)同學(xué)目前接觸的最高頻也只不過100MHz而已。特權(quán)同學(xué)自覺才疏學(xué)淺,班門弄斧了。

  無獨(dú)有偶,特權(quán)同學(xué)這篇博文即將收官之際,無意中看到船長的博客中《理解FPGAs中的亞穩(wěn)態(tài)》一文也涉及到了altera的這篇筆記,也做了一下翻譯,似乎比特權(quán)同學(xué)翻譯的好。不過在此做個(gè)聲明,特權(quán)同學(xué)的博文一貫堅(jiān)持原創(chuàng),即便參考其它資料,也大都有所提及,并且有自己的評論和思考,這應(yīng)該是每位電子工程師應(yīng)該有的嚴(yán)謹(jǐn)和認(rèn)真的態(tài)度。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜一区二区三视频在线观看| 亚洲人成在线影院| 尤物在线观看一区| 国产欧美一级| 国产精品国产三级国产| 欧美色视频一区| 欧美国产国产综合| 蜜臀久久久99精品久久久久久 | 在线亚洲观看| 日韩亚洲欧美一区| 日韩天堂av| 99视频一区二区三区| 亚洲精品视频在线观看网站| 亚洲国产成人av在线| 亚洲欧美日韩在线高清直播| 亚洲一区二区黄| 亚洲自拍高清| 亚洲欧美在线另类| 欧美亚洲网站| 欧美制服丝袜第一页| 欧美伊人久久久久久久久影院| 亚洲欧美国产精品专区久久| 亚洲欧美不卡| 欧美一区深夜视频| 久久精品91久久久久久再现| 亚洲成色www8888| 亚洲大片在线观看| 亚洲国产专区| 亚洲国产精品尤物yw在线观看| 亚洲国产成人精品女人久久久| 亚洲国产精品热久久| 亚洲激情电影中文字幕| 亚洲精品视频在线观看网站| 日韩视频三区| 亚洲视频一区二区在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 欧美一区=区| 久久福利电影| 亚洲精品美女免费| 一本久道久久综合婷婷鲸鱼 | 欧美超级免费视 在线| 午夜精品免费视频| 欧美一区二区三区四区视频| 欧美伊人久久久久久久久影院 | 一区二区三区国产盗摄| 亚洲性图久久| 欧美一区二区三区免费看| 久久国产手机看片| 麻豆91精品91久久久的内涵| 欧美精品日韩一本| 国产精品久久夜| 国产视频亚洲精品| 亚洲高清视频中文字幕| 夜夜精品视频| 性欧美办公室18xxxxhd| 91久久在线| 亚洲一区免费看| 久久久999成人| 欧美另类综合| 免费欧美视频| 国产精品捆绑调教| 国内一区二区在线视频观看| 亚洲精选一区| 小处雏高清一区二区三区| 亚洲日本中文| 欧美一区二区黄| 欧美va天堂va视频va在线| 欧美三日本三级三级在线播放| 国产日韩欧美二区| 亚洲黄网站在线观看| 亚洲欧美综合v| 99精品99| 久久久综合精品| 欧美揉bbbbb揉bbbbb| 国产在线精品自拍| 一本一本久久a久久精品综合麻豆| 久久国产精品久久久久久电车| 亚洲图片在线观看| 久久视频这里只有精品| 欧美午夜美女看片| 亚洲国产精品一区二区www| 亚洲一区二区欧美日韩| 亚洲精品久久久久久久久| 欧美一区二区视频免费观看| 欧美精品日本| 狠狠入ady亚洲精品经典电影| 宅男精品视频| 亚洲精品在线看| 久久久噜噜噜久久人人看| 国产精品v一区二区三区| 1000部精品久久久久久久久| 亚洲一区视频在线| 一区二区不卡在线视频 午夜欧美不卡'| 久久久久国产精品人| 国产精品久久久亚洲一区 | 亚洲国产另类久久久精品极度 | 亚洲欧美一区二区三区在线| 欧美黄色片免费观看| 很黄很黄激情成人| 亚洲一区免费在线观看| 亚洲图片欧洲图片日韩av| 欧美黑人国产人伦爽爽爽| 激情欧美日韩| 欧美一区免费视频| 香蕉成人啪国产精品视频综合网| 欧美日本一道本| 亚洲国产一区二区精品专区| 亚洲欧美另类中文字幕| 亚洲一本大道在线| 欧美日韩一区二区欧美激情| 亚洲日本成人女熟在线观看| 亚洲欧洲日产国产网站| 老鸭窝毛片一区二区三区| 国产一区日韩欧美| 欧美一区二区视频97| 久久9热精品视频| 国产欧美日本在线| 亚洲永久视频| 99精品国产在热久久| 免费国产一区二区| 伊人色综合久久天天| 久久精品91| 久久亚洲春色中文字幕久久久| 国产亚洲激情| 欧美在线视屏| 麻豆成人在线观看| 亚洲国产精品成人久久综合一区| 亚洲国产高清一区| 免费观看亚洲视频大全| 亚洲高清网站| 日韩亚洲国产精品| 欧美日韩成人激情| 9人人澡人人爽人人精品| 一本大道久久精品懂色aⅴ| 欧美久久成人| 一本色道久久综合亚洲精品不| 亚洲一级在线观看| 欧美调教vk| 亚洲一区三区视频在线观看| 欧美一区二区三区免费大片| 国产手机视频一区二区| 欧美在线二区| 欧美成ee人免费视频| 亚洲美女网站| 午夜视频在线观看一区| 国产视频亚洲精品| 亚洲经典视频在线观看| 欧美电影免费观看网站| 一本综合精品| 久久成人免费网| 亚洲高清资源| 亚洲自拍电影| 红桃视频成人| 一本色道久久88亚洲综合88| 国产精品高潮呻吟久久| 亚洲欧美影院| 欧美国产精品劲爆| 国产精品99久久久久久久久| 久久精品导航| 亚洲人精品午夜| 欧美一区二区三区在线播放| 在线日韩成人| 亚洲欧美日韩精品在线| 好看不卡的中文字幕| 99视频在线观看一区三区| 国产精品一区免费视频| 91久久精品视频| 国产精品久久国产精品99gif| 久久成人免费视频| 欧美日韩国产三级| 欧美一区二区精品久久911| 欧美国产日韩在线观看| 亚洲深夜福利| 性刺激综合网| 亚洲高清资源综合久久精品| 这里只有精品电影| 精久久久久久久久久久| 99亚洲伊人久久精品影院红桃| 国产精品九色蝌蚪自拍| 一区二区三区不卡视频在线观看 | 亚洲女人av| 欧美成人在线免费观看| 一本久久a久久免费精品不卡| 久久三级福利| 夜夜嗨av一区二区三区中文字幕 | 国产精品日韩高清| 日韩视频免费在线| 国产精品欧美日韩一区| 久久国产欧美日韩精品| 猫咪成人在线观看| 在线综合视频| 老鸭窝91久久精品色噜噜导演| 亚洲精品国产精品乱码不99按摩| 久久福利毛片| 亚洲日本中文字幕| 久久成人国产精品| 亚洲婷婷综合色高清在线| 老司机精品福利视频| av成人福利| 欧美成人精品在线视频|