利用 IDDR 簡化亞穩(wěn)態(tài)-基礎(chǔ)電子_第1頁
利用 IDDR 簡化亞穩(wěn)態(tài)-基礎(chǔ)電子_第2頁
利用 IDDR 簡化亞穩(wěn)態(tài)-基礎(chǔ)電子_第3頁
利用 IDDR 簡化亞穩(wěn)態(tài)-基礎(chǔ)電子_第4頁
利用 IDDR 簡化亞穩(wěn)態(tài)-基礎(chǔ)電子_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯利用IDDR簡化亞穩(wěn)態(tài)-基礎(chǔ)電子如果在具有多個時鐘的非同步系統(tǒng)中使用FPGA,或者系統(tǒng)中的時鐘頻率或相位與FPGA所使用時鐘頻率或相位不同,那么設(shè)計就會遇到亞穩(wěn)態(tài)問題。不幸的是,如果設(shè)計遇到上述情況,是沒有辦法完全解決亞穩(wěn)態(tài)問題的,不過還是有一些方法可降低系統(tǒng)出現(xiàn)亞穩(wěn)態(tài)問題的幾率。

先來深入研究一下引起亞穩(wěn)態(tài)的原因,再談?wù)動媚男┓椒右詰?yīng)對。

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

在FPGA等同步邏輯數(shù)字器件中,所有器件的寄存器單元都需要預(yù)定義信號時序以使器件正確地捕獲數(shù)據(jù),進(jìn)而產(chǎn)生可靠的輸出信號。當(dāng)另一器件將數(shù)據(jù)發(fā)送給FPGA時,F(xiàn)PGA的輸入寄存器必須在時鐘脈沖邊沿前保證短的建立時間和時鐘脈沖邊沿后的保持時間,從而確保正常完整地接收信號。

在一定的延遲后,寄存器輸出端隨后將信號發(fā)送到FPGA的其他部分。不過,如果信號傳輸違反了指定時間要求,那么輸出寄存器可能就會進(jìn)入所謂的亞穩(wěn)態(tài),這就導(dǎo)致寄存器輸出值會在高低狀態(tài)之間波動,且這種狀態(tài)的時間不確定,從而使穩(wěn)定輸出狀態(tài)無法達(dá)到寄存器指定的時間,進(jìn)而造成性能略有延遲或邏輯行為的副效應(yīng)。

解決問題

一般來說,將FPGA連接到另一個具有不同時鐘域的數(shù)字器件時,必須給FPGA的輸入部分添加同步,使FPGA時鐘域中的個寄存器充當(dāng)同步寄存器。為了實(shí)現(xiàn)這一目的,可在FPGA器件的輸入級中使用一系列寄存器或同步寄存器鏈。該鏈可在輸入寄存器將信號發(fā)送到FPGA的其他區(qū)域之前,允許能有更多的時間解決潛在的亞穩(wěn)態(tài)信號問題。亞穩(wěn)態(tài)信號的穩(wěn)定時間通常比一個時鐘周期要短得多,因此即便延遲半個時鐘周期,亞穩(wěn)態(tài)出現(xiàn)的概率也會按數(shù)量級減少。

為了降低亞穩(wěn)態(tài)問題的出現(xiàn)概率,在設(shè)計中實(shí)現(xiàn)的一系列寄存器(連接成移位寄存器)必須滿足以下標(biāo)準(zhǔn)要求:

所有寄存器必須由同一時鐘,或與同一時鐘相位相關(guān)的時鐘控制。

鏈中每個寄存器的扇出都僅針對相鄰的寄存器。

由于不能完全消除亞穩(wěn)態(tài)問題,因此必須做好解決問題的準(zhǔn)備。為此,設(shè)計人員采用平均故障間隔時間(MTBF)這個指標(biāo)來估算從問題出現(xiàn)并導(dǎo)致故障的兩個事件間的平均時間。MTBF值越高,說明設(shè)計的穩(wěn)定性越高。如果發(fā)生了“故障”,只是說明沒有解決亞穩(wěn)態(tài)問題,并不是系統(tǒng)本身真的出現(xiàn)了故障。

可用以下方程式計算出寄存器的MTBF:

在本例中,C1和C2代表寄存器技術(shù)相關(guān)常數(shù),tMET代表亞穩(wěn)態(tài)的穩(wěn)定時間。

可根據(jù)每個寄存器的MTBF,確定總的MTBF值。同步器的故障率為1/MTBF,則將每個同步器的故障率相加,就能計算出整個設(shè)計的故障率:

從上式可以明顯看出,通過改進(jìn)寄存器單元的架構(gòu),優(yōu)化設(shè)計以延長同步寄存器的tMET,甚至增加鏈中寄存器的數(shù)量等多種方法來改進(jìn)MTBF。

高層代碼與布局圖

如果發(fā)現(xiàn)輸入信號存在潛在的亞穩(wěn)態(tài)問題,只需創(chuàng)建與同一時鐘有相位關(guān)系的時鐘驅(qū)動的寄存器鏈就能解決此問題。這需要提供如圖1所示的電路。

圖1同步器鏈的默認(rèn)布置圖

圖中,將寄存器鏈放置在兩個單元中:個為ILOGIC單元,而另外兩個寄存器放置在SLICE單元中(選擇具有相同時鐘的3個寄存器和鏈)。這是減少亞穩(wěn)態(tài)問題的一種快速且非常簡單的方法,還有其他一些方法不但可減少亞穩(wěn)態(tài)問題,還可優(yōu)化性能。

使用賽靈思邏輯塊的IDDR方法

在Virtex-4和Virtex-5FPGA中,賽靈思將其ILOGIC模塊直接放置在I/O驅(qū)動器和接收器的后面。該模塊包括4個存儲元件寄存器和1個可編程延遲元件。

Virtex-4與Virtex-5器件均采用這4個寄存器來實(shí)現(xiàn)雙倍數(shù)據(jù)率輸入(IDDR)寄存器,功能設(shè)計師只需例化IDDR原語便能實(shí)現(xiàn)。這將使受益匪淺。

這種原語的其中一個模式稱為SAME_EDGE_PIPELINED。圖2顯示了采用這種模式的DDR輸入寄存器及相關(guān)信號。綠色矩形框顯示了一系列的寄存器,可用其解決亞穩(wěn)態(tài)問題。此外,使用IDDR方法還有一個優(yōu)勢,即能使用兩三倍之多的主時鐘,同時又不會造成任何設(shè)計時延問題。

圖2SAME_EDGE_PIPELINED模式中的輸入DDR

只需少量代碼

在《Virtex-4用戶指南》的328~329頁,舉例說明采用VHDL和Verilog語言編寫的IDDR原語的例化。以下采用Verilog語言的IDDR原碼例化的典型實(shí)例:

defparamIDDR_INT2.DDR_CLK_EDGE="SAME_EDGE_PIPELINED";

defparamIDDR_INT2.INIT_Q1=1'b1;

defparamIDDR_INT2.INIT_Q2=1'b1;

defparamIDDR_INT2.SRTYPE="SYNC";

IDDRIDDR_INT2(.Q1(sync_data),

.Q2(signal_noload),.C(CLK_2X),

.CE(1'b1),.D(async_data),.R(),.S());

在圖3中看到全新的布局圖。用這種方法將寄存器鏈放置在兩個單元:前兩個寄存器放置在ILOGIC單元中,另一個寄存器則放置在SLICE單元中(這里選擇的鏈具有3個寄存器和2個不同的時鐘,其中一個時鐘速度是另一個的兩倍)。

圖3顯示IDDR替代的同步器鏈

整體而言,亞穩(wěn)態(tài)問題會給

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論