劉勇 重慶電子工程職業(yè)學(xué)院
基于FPGA的數(shù)據(jù)采集系統(tǒng)中跨時鐘域設(shè)計的研究
劉勇 重慶電子工程職業(yè)學(xué)院
隨著數(shù)字電路系統(tǒng)設(shè)計復(fù)雜性的增加,一個系統(tǒng)中存在多個時鐘域,而信號在不同的時鐘域之間進(jìn)行傳遞時會帶來由跨時鐘域引起的亞穩(wěn)態(tài),從而導(dǎo)致對下一級邏輯電路的影響。本文論述了在基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計中對跨時鐘域信號處理的幾種方式,從而盡可能的保證了信號在跨時鐘域設(shè)計中的穩(wěn)定性。
數(shù)字電路 跨時鐘域 FPGA 亞穩(wěn)態(tài)
隨著數(shù)字電路設(shè)計復(fù)雜度的提高,設(shè)計中存在多個時鐘域變得越來越普遍。由于多時鐘的異步系統(tǒng)內(nèi)含有多個時鐘源的頻率和相位存在差異,當(dāng)信號跨時鐘域時就可能違背建立時間和保持時間的要求,出現(xiàn)亞穩(wěn)態(tài)的現(xiàn)象。數(shù)字設(shè)計中沒有EDA工具能夠智能的去考慮和解決電路中的跨時鐘域引起的亞穩(wěn)態(tài)問題,而需要工程師了解可靠性設(shè)計從而減小電路中跨時鐘域同步失敗的危險??鐣r鐘域同步問題可以分為兩類:一是信號的跨時鐘域同步;二是數(shù)據(jù)的跨時鐘域同步。在該數(shù)據(jù)采集系統(tǒng)中存在大量的跨時鐘域設(shè)計,本文重點討論信號的跨時鐘域同步問題。
在數(shù)字電路中,觸發(fā)器正常工作必須滿足保持時間(Hold time)和建立時間(Setup time)。保持時間指在時鐘沿之后,信號必須保持穩(wěn)定的時間。建立時間指在時鐘沿到來之前,觸發(fā)器輸入信號必須保持穩(wěn)定的時間。因此,要使一個信號正確進(jìn)入觸發(fā)器,信號就必須滿足建立時間與保持時間的規(guī)則,如果輸入信號不滿足,觸發(fā)器的輸出信號則會進(jìn)入亞穩(wěn)態(tài)。
信號同步的目的是防止新時鐘域中第一級觸發(fā)器的亞穩(wěn)態(tài)信號對下一級邏輯造成影響。簡單的同步由兩個觸發(fā)器串聯(lián)而成,中間沒有其他組合電路。這種設(shè)計可以保證后面的觸發(fā)器獲得前一個觸發(fā)器輸出時,前一個觸發(fā)器已退出了亞穩(wěn)態(tài),并且輸出已穩(wěn)定。設(shè)計中要注意將兩個觸發(fā)器放得盡可能近,以確保兩者間有最小的時滯(clock skew)。在信號的跨時鐘域設(shè)計中主要有三種類型:
①電平同步。電平同步適合用于信號從低時鐘域到高時鐘域的同步,跨時鐘域的信號在新時鐘域中要保持高電平或低電平兩個時鐘周期以上。這種電路的要求是,在再次成為有效信號前,信號需要先變成無效狀態(tài)。每一次信號有效時,接收邏輯都會把它看作一個單個事件,而不管信號的有效狀態(tài)保持了多久。
②邊沿檢測同步。邊沿檢測同步器在電平同步器的輸出端增加了一個觸發(fā)器,新增觸發(fā)器的輸出經(jīng)反相后和電平同步器的輸出進(jìn)行與操作。這一電路會檢測同步器輸入的上升沿,產(chǎn)生一個與時鐘周期等寬、高電平有效的脈沖。如果將與門的兩個輸入端交換使用,就可以構(gòu)成一個檢測輸入信號下降沿的同步器。
③脈沖同步。脈沖同步器的輸入信號是一個單時鐘寬度脈沖,它觸發(fā)原時鐘域中的一個翻轉(zhuǎn)電路。每當(dāng)翻轉(zhuǎn)電路接收到一個脈沖時,它就會在高、低電平間進(jìn)行轉(zhuǎn)換,然后通過電平同步器到達(dá)異或門的一個輸入端,而另一個信號經(jīng)一個時鐘周期的延遲進(jìn)入異或門的另一端。
在FPGA的數(shù)據(jù)采集系統(tǒng)中,由于MCU工作的時鐘頻率是USB提供的30MHz,而IF模塊邏輯工作在DDR2控制器提供的125MHz頻率下,同時數(shù)據(jù)采集輸入輸出接口時鐘為62.5MHz和50MHz。因此MCU與IF模塊之間的控制信號存在跨時鐘域的問題,即xx_begin信號是從MCU的時鐘域到DDR2的時鐘域,而xx_ done信號恰好相反。在本系統(tǒng)設(shè)計的過程中xx_begin信號電平同步設(shè)計,而xx_done信號脈沖同步設(shè)計。
在多時鐘域系統(tǒng)設(shè)計中,跨時鐘域信號的處理關(guān)系到系統(tǒng)設(shè)計的穩(wěn)定性,如何有效的避免信號在跨時鐘域時引起的亞穩(wěn)態(tài)是現(xiàn)代大規(guī)模復(fù)雜數(shù)字電路和FPGA系統(tǒng)設(shè)計的難點和重點。
本文通過在基于FPGA數(shù)據(jù)采集系統(tǒng)中的實踐表明,文中所述的三種時鐘域電路能夠有效處理信號跨時鐘域傳遞的問題。但是在實際使用的過程中要結(jié)合三種電路的應(yīng)用范圍和限制,以及結(jié)合實際設(shè)計與實際需求來選擇。
[1]Paradigm Works Inc.Crossing the abyss-asynchronous signal in a synchronous world.
[2]鄒晨 ZOU Chen. FPGA設(shè)計中跨時鐘域信號同步方法. 航空計算技術(shù) 2014[4]
[3]吳小蕻.跨時鐘域若干問題的研究同步與亞穩(wěn)態(tài)[D].合肥:中國科學(xué)技術(shù)大學(xué),2008
[4]廖艷,王廣君,高楊.FPGA異步時鐘設(shè)計中的同步策略[J].自動化技術(shù)與用,2006,25(1):67-68
[5]Xilinx Virtex-5 User Guide [M]. Xilinx Inc., 2008
[6]Xilinx Memory Interface Generator(MIG) User Guide[M]. Xilinx Inc., 2008
[7]Xilinx Inc.Constraints Guide.Release 10.1
劉勇(1983-),男,漢族,重慶沙坪壩人,重慶電子工程職業(yè)學(xué)院應(yīng)用電子學(xué)院,講師。