• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      FPGA跨時(shí)鐘域亞穩(wěn)態(tài)研究

      2012-06-01 06:58:06廣東工業(yè)大學(xué)自動(dòng)化學(xué)院杜玉曉楊其宇張育俊
      電子世界 2012年3期
      關(guān)鍵詞:亞穩(wěn)態(tài)數(shù)據(jù)信號(hào)觸發(fā)器

      廣東工業(yè)大學(xué)自動(dòng)化學(xué)院 周 偉 杜玉曉 楊其宇 張育俊 曾 浩

      FPGA跨時(shí)鐘域亞穩(wěn)態(tài)研究

      廣東工業(yè)大學(xué)自動(dòng)化學(xué)院 周 偉 杜玉曉 楊其宇 張育俊 曾 浩

      在FPGA電路設(shè)計(jì)中,一個(gè)系統(tǒng)可能包含了很多跨時(shí)鐘域的時(shí)鐘信號(hào),當(dāng)其目標(biāo)域時(shí)鐘與源域時(shí)鐘不同時(shí),如何在這些不同域之間傳遞數(shù)據(jù)成為了一個(gè)重要問題。特別是在中心模塊與外圍電路芯片的通信設(shè)計(jì)中,容易導(dǎo)致亞穩(wěn)態(tài)的跨時(shí)鐘域就不可避免。針對(duì)FPGA設(shè)計(jì)中的亞穩(wěn)態(tài)問題,本文給出了一系列行之有效的解決方法,很好地抑制亞穩(wěn)態(tài),提高系統(tǒng)可靠性。

      亞穩(wěn)態(tài);建立時(shí)間;保持時(shí)間;異步FIFO;握手協(xié)議

      1.引言

      在FPGA同步時(shí)序電路設(shè)計(jì)中,即所有時(shí)鐘寄存器的時(shí)鐘共享一個(gè)時(shí)鐘,可以有效地消除亞穩(wěn)態(tài)。然而,許多實(shí)際應(yīng)用要求在同一個(gè)可編程邏輯器件內(nèi)采用多個(gè)時(shí)鐘,且核心模塊與外設(shè)的通信設(shè)計(jì)也涉及跨時(shí)鐘域的數(shù)據(jù)傳遞??鐣r(shí)鐘的異步時(shí)序電路含有的多個(gè)時(shí)鐘源,它們存在頻率和相位的差異,當(dāng)它們用作寄存器的輸入時(shí)鐘時(shí),就可能違背建立時(shí)間和保持時(shí)間的要求,出現(xiàn)亞穩(wěn)態(tài)[1-5]。亞穩(wěn)態(tài)問題是跨時(shí)鐘域異步數(shù)據(jù)傳輸過程面臨的主要問題。

      在FPGA設(shè)計(jì)中,每種觸發(fā)器都有時(shí)序要求?!敖r(shí)間”(Setup time)是指在時(shí)鐘沿到來之前,觸發(fā)器輸入信號(hào)必須保持穩(wěn)定的時(shí)間?!氨3謺r(shí)間”(Hold time)則是指在時(shí)鐘沿之后,信號(hào)必須保持穩(wěn)定的時(shí)間。這些指標(biāo)通常比較保守,以應(yīng)對(duì)不同的PVT(工藝、電壓、溫度)環(huán)境下時(shí)序各有差異的情況。如果一個(gè)設(shè)計(jì)滿足了這些時(shí)序要求,則觸發(fā)器出現(xiàn)錯(cuò)誤的可能性可以忽略不計(jì)。

      亞穩(wěn)態(tài)是當(dāng)信號(hào)在跨時(shí)鐘的異步電路中或是無關(guān)的時(shí)鐘域之間傳輸時(shí)導(dǎo)致數(shù)字系統(tǒng)失效的一種現(xiàn)象。為了使觸發(fā)器能夠正確捕獲并輸出數(shù)據(jù),F(xiàn)PGA的信號(hào)傳輸數(shù)據(jù)信號(hào)都會(huì)有一定的時(shí)序要求,為了確??煽康牟僮?,輸入寄存器的數(shù)據(jù)信號(hào)必須在時(shí)鐘沿的某段時(shí)間(寄存器的建立時(shí)間Tsu)之前保持穩(wěn)定,并且持續(xù)到時(shí)鐘沿之后的某段時(shí)間(寄存器的保持時(shí)間Th)之后才能改變。寄存器的輸入反映到輸出則需要經(jīng)過一定的延時(shí)(時(shí)鐘到輸出的時(shí)間Tco)。如果數(shù)據(jù)信號(hào)的變化違反了Tsu和Th的要求,那么寄存器的輸出就會(huì)處于亞穩(wěn)態(tài)[6]。此時(shí),寄存器的輸出會(huì)在高電平1和低電平0之間盤旋一段時(shí)間,這也意味著寄存器的輸出達(dá)到一個(gè)穩(wěn)定的高或者低電平的狀態(tài)所需要的時(shí)間會(huì)大于Tco。

      隨著跨時(shí)鐘域設(shè)計(jì)的愈發(fā)常見和復(fù)雜化,只要系統(tǒng)中存在跨時(shí)鐘域,亞穩(wěn)態(tài)就是無法避免的,因此設(shè)計(jì)的電路首先要減少亞穩(wěn)態(tài)導(dǎo)致錯(cuò)誤的發(fā)生,其次要使系統(tǒng)對(duì)產(chǎn)生的錯(cuò)誤不敏感。前者要靠同步來實(shí)現(xiàn),而后者根據(jù)不同的設(shè)計(jì)應(yīng)用有不同的處理辦法。

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

      2.1 亞穩(wěn)態(tài)

      在FPGA設(shè)計(jì)中,數(shù)據(jù)信號(hào)在不同時(shí)鐘域間傳遞,最容易產(chǎn)生亞穩(wěn)態(tài),即觸發(fā)器無法在時(shí)序要求的規(guī)定時(shí)間段內(nèi)達(dá)到一個(gè)可確認(rèn)的狀態(tài)。數(shù)據(jù)信號(hào)在傳輸過程中觸發(fā)器的建立時(shí)間或保持時(shí)間不滿足時(shí)序要求,即信號(hào)在穩(wěn)定前的狀態(tài),一般是由于時(shí)序余量不夠,使得電路的輸入電平無法上升或下降到所需邏輯電平1或0。

      2.2 亞穩(wěn)態(tài)分析

      跨時(shí)鐘異步輸入信號(hào)可以在任何時(shí)間點(diǎn)翻轉(zhuǎn),它與下級(jí)同步采樣信號(hào)沒有必然聯(lián)系。此外,在數(shù)據(jù)翻轉(zhuǎn)前,設(shè)計(jì)者無法預(yù)知該被采樣信號(hào)的時(shí)鐘沿或翻轉(zhuǎn)順序,也就不能保證信號(hào)滿足建立時(shí)間。無法保證穩(wěn)定的采樣,給跨時(shí)鐘域的FPGA設(shè)計(jì)帶來難題。

      跨時(shí)鐘域的轉(zhuǎn)換的核心就是要保證下級(jí)時(shí)鐘對(duì)上級(jí)時(shí)鐘數(shù)據(jù)的采樣的Tsu和Th時(shí)間。如果觸發(fā)器的Tsu時(shí)間或Th時(shí)間不能滿足,就可能產(chǎn)生亞穩(wěn)態(tài),此時(shí)觸發(fā)器輸出端Q在有效時(shí)鐘沿之后較長(zhǎng)時(shí)間處于不確定狀態(tài),在這段時(shí)間內(nèi)Q端產(chǎn)生毛刺并不斷振蕩,最終固定在某一個(gè)值,這個(gè)值不一定等于原來數(shù)據(jù)輸入端口D的數(shù)值,這短時(shí)間稱為判決時(shí)間(Resolution time),經(jīng)過Resolution time之后Q端經(jīng)穩(wěn)定到0或1上,但究竟是0還是1,是隨機(jī)的。與輸入沒有必然的聯(lián)系。

      如圖1所示,時(shí)鐘CLK_A在上升沿時(shí)采樣數(shù)據(jù)DATAIN,數(shù)據(jù)信號(hào)data是時(shí)鐘CLK_A同步產(chǎn)生的,輸入信號(hào)data對(duì)下一級(jí)的觸發(fā)器的時(shí)鐘CLK_B是跨時(shí)鐘的異步信號(hào),由于data的變化與CLK_B時(shí)鐘域時(shí)鐘的采樣邊沿太接近,未滿足采樣建立時(shí)間,造成的亞穩(wěn)態(tài)周期。輸出DATAOUT傳遞到后面的組合邏輯會(huì)產(chǎn)生不定狀態(tài),若在進(jìn)入下一級(jí)采樣前還沒有進(jìn)入穩(wěn)定狀態(tài),就會(huì)導(dǎo)致系統(tǒng)混亂。

      圖1

      圖2

      圖3 握手協(xié)議

      圖4 異步FIFO

      亞穩(wěn)態(tài)的危害主要是破壞系統(tǒng)的穩(wěn)定性。由于輸出在穩(wěn)定前可能有毛刺、振蕩、固定的某一電壓值,因此亞穩(wěn)態(tài)將導(dǎo)致邏輯誤判,嚴(yán)重的情況輸出0~1之間的電壓值還會(huì)使下一級(jí)產(chǎn)生亞穩(wěn)態(tài),即亞穩(wěn)態(tài)的傳播。邏輯誤判導(dǎo)致功能性錯(cuò)誤,而亞穩(wěn)態(tài)傳播則擴(kuò)大故障面。另外,在亞穩(wěn)態(tài)下,電源干擾、環(huán)境噪聲、工作溫度等細(xì)微的擾動(dòng)都可能導(dǎo)致更惡劣的狀態(tài)不穩(wěn)定,這時(shí)系統(tǒng)的傳輸延遲增大,狀態(tài)輸出錯(cuò)誤。

      3.FPGA跨時(shí)鐘解決方案

      FPGA設(shè)計(jì)中,要減少亞穩(wěn)態(tài)導(dǎo)致的錯(cuò)誤并使系統(tǒng)對(duì)產(chǎn)生的錯(cuò)誤不敏感,就要正確定義和處理FPGA內(nèi)部與外部時(shí)鐘之間的接口。對(duì)于異步或無關(guān)時(shí)鐘域間傳輸?shù)男盘?hào),在FPGA本地時(shí)鐘域使用該信號(hào)前,必須對(duì)其進(jìn)行同步。同步器的功能是采樣異步輸入信號(hào),使產(chǎn)生的輸出信號(hào)滿足同步系統(tǒng)對(duì)建立時(shí)間和保持時(shí)間的要求,從而抑制亞穩(wěn)態(tài)對(duì)電路的影響。在許多應(yīng)用中,跨時(shí)鐘域傳送的不只是簡(jiǎn)單的信號(hào),數(shù)據(jù)總線、地址總線和控制總線都會(huì)同時(shí)跨域傳輸,這些復(fù)雜的情況,就需要應(yīng)用握手協(xié)議和異步FIFO的手段來處理這些情況。因此處理跨時(shí)鐘域常用的方法有兩級(jí)觸發(fā)器同步法、握手協(xié)議和異步FIFO法3種。

      3.1 兩級(jí)寄存器同步法

      為了避免進(jìn)入亞穩(wěn)態(tài),通常采用的方法是使用兩級(jí)寄存器,即一個(gè)信號(hào)要進(jìn)入另外一個(gè)時(shí)鐘域之前用另一時(shí)鐘域的時(shí)候進(jìn)行兩次寄存,在圖2中,左邊為異步的輸入端,經(jīng)過兩級(jí)觸發(fā)器采樣,在右邊的輸出與時(shí)鐘CLK_B同步,而且該輸出基本不存在亞穩(wěn)態(tài)。其原理是即使第一個(gè)觸發(fā)器的輸出端存在亞穩(wěn)態(tài),經(jīng)過一個(gè)CLK時(shí)鐘周期后,第二個(gè)觸發(fā)器D端的電平仍未穩(wěn)定的概率非常小,因此第二個(gè)觸發(fā)器Q端基本不會(huì)產(chǎn)生亞穩(wěn)態(tài)。理論上如果再添加一級(jí)寄存器,是同步采樣達(dá)3級(jí)。則末級(jí)輸出為亞穩(wěn)態(tài)的概率幾乎為0。因此使用兩級(jí)寄存器采樣可以有效地減少亞穩(wěn)態(tài)繼續(xù)傳播的概率。

      使用圖2所示兩級(jí)寄存器采樣不僅能降低亞穩(wěn)態(tài)的概率。但是并不能保證第二級(jí)的輸出的穩(wěn)定電平就是正確的電平。前面說過經(jīng)過Resolution time之后寄存器輸出電平是一個(gè)不正確定的穩(wěn)態(tài)值。也就是說這種處理方法不能排除采樣錯(cuò)誤的產(chǎn)生。這時(shí)就要求所設(shè)計(jì)的系統(tǒng)對(duì)采樣錯(cuò)誤有一定的容忍度。有些應(yīng)用本身就對(duì)采樣錯(cuò)誤不敏感,有些系統(tǒng)對(duì)錯(cuò)誤采樣比較敏感,可以采用一些糾錯(cuò)編碼手段完成錯(cuò)誤的糾正。

      3.2 握手協(xié)議

      握手協(xié)議是實(shí)現(xiàn)總線數(shù)據(jù)跨時(shí)鐘域通信的一種有效方法,它能在避免亞穩(wěn)態(tài)傳播的同時(shí)正確地捕獲總線數(shù)據(jù)。握手信號(hào),雙方電路在聲明或中止各自的握手信號(hào)前都要等待對(duì)方的響應(yīng)。使用握手協(xié)議方式處理跨時(shí)鐘域數(shù)據(jù)傳輸,只需要對(duì)雙方的握手信號(hào)(req、ack)分別使用脈沖檢測(cè)方法進(jìn)行同步。在具體實(shí)現(xiàn)中,首先,電路A聲明它的請(qǐng)求信號(hào),即先把數(shù)據(jù)放入總線,隨后發(fā)送有效的請(qǐng)求req信號(hào)給電路B。然后,電路B檢測(cè)到有效的req信號(hào)后鎖存數(shù)據(jù)總線,聲明它的響應(yīng)信號(hào),即回送一個(gè)有效的ack信號(hào)表示讀取完成應(yīng)答。當(dāng)電路A檢測(cè)到電路B回應(yīng)的響應(yīng)信號(hào)有效后,中止自己的請(qǐng)求信號(hào),即撤銷當(dāng)前的req信號(hào)。最后,當(dāng)電路B檢測(cè)到電路A的信號(hào)req撤銷后也相應(yīng)撤銷ack信號(hào),此時(shí)完成一次正常握手通信。此后,可以繼續(xù)開始下一次握手通信,如此循環(huán)。該方式能夠使接收到的數(shù)據(jù)穩(wěn)定可靠,有效的避免了亞穩(wěn)態(tài)的出現(xiàn),以上所述的通信流程如圖3所示。

      信號(hào)跨越一個(gè)時(shí)鐘域要花兩個(gè)時(shí)鐘周期的時(shí)間,信號(hào)在跨越多個(gè)時(shí)鐘域前被電路寄存。全部的時(shí)間序列是:A時(shí)鐘域中最多五個(gè)周期加上B時(shí)鐘域最多六個(gè)周期。握手有效的避免了亞穩(wěn)態(tài)的出現(xiàn),因?yàn)橥ㄟ^檢測(cè)請(qǐng)求與響應(yīng)信號(hào),每個(gè)電路都清楚地知道對(duì)方的狀態(tài)。但控制信號(hào)握手檢測(cè)會(huì)消耗通信雙方較多的時(shí)間,完成所有交互的整個(gè)過程要花費(fèi)很多時(shí)鐘周期。

      3.3 異步FIFO

      異步FIFO[7-8]是一種先進(jìn)先出的電路,使用在需要產(chǎn)時(shí)數(shù)據(jù)接口的部分,用來存儲(chǔ)、緩沖在兩個(gè)跨時(shí)鐘異步時(shí)鐘之間的數(shù)據(jù)傳輸。使用一個(gè)異步FIFO在兩個(gè)時(shí)鐘域的交界處通信,通過它來實(shí)現(xiàn)數(shù)據(jù)流的傳輸。由發(fā)送時(shí)鐘域?qū)?shù)據(jù)寫入,接收時(shí)鐘域?qū)?shù)據(jù)取出,在數(shù)據(jù)傳輸?shù)耐瑫r(shí)實(shí)現(xiàn)了數(shù)據(jù)的緩存,因此是一種較理想的方法。

      由圖4可以看出:整個(gè)系統(tǒng)分為兩個(gè)完全獨(dú)立的時(shí)鐘域——讀時(shí)鐘域和寫時(shí)間域;FIFO的存儲(chǔ)介質(zhì)為一塊雙端口RAM,可以同時(shí)進(jìn)行讀寫操作。在寫時(shí)鐘域部分,由寫地址產(chǎn)生邏輯產(chǎn)生寫控制信號(hào)和寫地址;讀時(shí)鐘部分由讀地址產(chǎn)生邏輯產(chǎn)生讀控制信號(hào)和讀地址。在空/滿標(biāo)志產(chǎn)生部分,由讀寫地址相互比較產(chǎn)生空/滿標(biāo)志。

      不同時(shí)鐘域間數(shù)據(jù)傳遞的問題及其解決方法不同時(shí)鐘域間數(shù)據(jù)傳遞的最重要問題就是亞穩(wěn)態(tài)問題。當(dāng)數(shù)據(jù)信號(hào)通過兩個(gè)時(shí)鐘域的交界處時(shí),將會(huì)分別由這兩個(gè)時(shí)鐘來控制信號(hào)的值。此時(shí)如果兩時(shí)鐘信號(hào)的敏感沿非常接近并超過了允許的額度,則將出現(xiàn)數(shù)據(jù)信號(hào)的不穩(wěn)定,即電路陷入亞穩(wěn)態(tài),也稱為同步失敗,同樣會(huì)產(chǎn)生亞穩(wěn)態(tài)。但是通過設(shè)計(jì)改進(jìn)可以將其發(fā)生的概率降低到一個(gè)可以接受的程度。

      在FIFO設(shè)計(jì)中,F(xiàn)IFO指針邏輯使用了格雷碼,代替指針使用的二進(jìn)制碼。格雷碼在每一次計(jì)數(shù)增減時(shí)只改變其中的一位。你可以在格雷碼總線上使用同步器,因?yàn)槊恳淮慰偩€改變時(shí)只有一根信號(hào)線有變化,于是就消除了格雷碼總線各位通過不同同步器時(shí)的競(jìng)爭(zhēng)情況,降低了亞穩(wěn)態(tài)的產(chǎn)生,在異步FIFO設(shè)計(jì)中,通過提高空/滿標(biāo)志產(chǎn)生邏輯的可靠性,能夠很好地抑制亞穩(wěn)態(tài),進(jìn)一步的降低了亞穩(wěn)態(tài)的產(chǎn)生。

      4.結(jié)語

      在FPGA跨時(shí)鐘域設(shè)計(jì)中,亞穩(wěn)態(tài)與設(shè)計(jì)可靠性有著密切的聯(lián)系。本文探討分析了跨時(shí)鐘域亞穩(wěn)態(tài)的產(chǎn)生機(jī)制及FPGA設(shè)計(jì)中亞穩(wěn)態(tài)問題的解決方法,提出的這些方法行之有效。傳輸在不相關(guān)時(shí)鐘域的信號(hào),都有可能在相對(duì)于捕獲寄存器時(shí)鐘沿的任何時(shí)間點(diǎn)變化。因此,設(shè)計(jì)者無法預(yù)測(cè)信號(hào)變化的順序或者說信號(hào)兩次變化間經(jīng)過了幾個(gè)鎖存時(shí)鐘周期。設(shè)計(jì)者必須考慮到電路的這些情況,在實(shí)際應(yīng)用中,設(shè)計(jì)者可根據(jù)具體的實(shí)際情況而使用異步FIFO傳輸信號(hào)或者使用握手信號(hào)進(jìn)行控制。

      一般情況下兩級(jí)寄存器同步適合步時(shí)鐘域之間單信號(hào)傳輸;當(dāng)幾個(gè)電路不能預(yù)知相互的響應(yīng)時(shí)間時(shí),握手方法能讓數(shù)字電路間實(shí)現(xiàn)有效的通信;總線數(shù)據(jù)同步、高速數(shù)據(jù)傳輸、數(shù)據(jù)在跨越時(shí)鐘域時(shí)需要存儲(chǔ)容量大的緩沖時(shí)則可以采用異步FIFO。這些措施能夠有效解決FPGA設(shè)計(jì)中跨時(shí)鐘域的亞穩(wěn)態(tài)問題,能實(shí)現(xiàn)數(shù)據(jù)跨越時(shí)鐘域的安全傳遞。

      [1]夏字聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程(2版)[M].北京:北京航空航天大學(xué)出版社,2008.

      [2]魏堃.跨時(shí)鐘域信號(hào)同步技術(shù)研究[D].西安:西安電子科技大學(xué),2009.

      [3]Michelle Lange.Automated CDC verification protects complex electronic hardware from metastability failures.Mentor Graphics Corporation.Aug.2008.

      [4]孟憲元,譯.高級(jí)FPGA設(shè)計(jì)結(jié)構(gòu)、實(shí)現(xiàn)和優(yōu)化[M].北京:機(jī)械工業(yè)出版社,2009.

      [5]徐翼,鄭建宏.異步時(shí)鐘域的亞穩(wěn)態(tài)問題和同步器[J].微計(jì)算機(jī)信息,2008,24(2):171-172.

      [6]吳小蕻.跨時(shí)鐘域若干問題的研究-同步與亞穩(wěn)態(tài)[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2008.

      [7]楊青山,蔡敏.基于多時(shí)鐘域的異步FIFO設(shè)設(shè)計(jì)[J].中國(guó)集成電路,2007(9):36-39.

      [8]于海,樊曉椏.基于FPGA異步FIFO的研究與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算,2007.

      猜你喜歡
      亞穩(wěn)態(tài)數(shù)據(jù)信號(hào)觸發(fā)器
      基于STM32 微控制器的低功耗無線通信方法
      傳感器世界(2023年7期)2023-10-15 08:00:04
      基于多源數(shù)據(jù)融合的傳感器數(shù)據(jù)智能分析系統(tǒng)
      2016年門源MS6.4地震前跨斷層短水準(zhǔn)短期異常的機(jī)理探討
      地震研究(2020年4期)2020-09-26 10:08:11
      FPGA設(shè)計(jì)中跨時(shí)鐘域的問題與方法
      主從JK觸發(fā)器邏輯功能分析
      電子世界(2017年22期)2017-12-02 03:03:45
      同位控制猝發(fā)總線設(shè)計(jì)與實(shí)現(xiàn)
      使用觸發(fā)器,強(qiáng)化安全性
      基于小波變換通信數(shù)據(jù)信號(hào)的分析與研究
      非對(duì)稱反饋神經(jīng)網(wǎng)絡(luò)中亞穩(wěn)態(tài)的位置與穩(wěn)定性
      對(duì)觸發(fā)器邏輯功能轉(zhuǎn)換的分析
      从化市| 红河县| 通渭县| 佳木斯市| 临颍县| 嘉禾县| 阜平县| 南投市| 古交市| 唐山市| 余干县| 常德市| 桓仁| 锡林郭勒盟| 改则县| 甘谷县| 北京市| 南靖县| 阿城市| 深泽县| 红原县| 梅州市| 常熟市| 浑源县| 安义县| 宝丰县| 永吉县| 广汉市| 若尔盖县| 太和县| 乌拉特后旗| 秦皇岛市| 西乌| 建阳市| 梓潼县| 绥滨县| 长丰县| 文登市| 诸城市| 兴海县| 宿迁市|