《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > EDA與制造 > 設(shè)計(jì)應(yīng)用 > 利用 IDDR 簡(jiǎn)化亞穩(wěn)態(tài)
利用 IDDR 簡(jiǎn)化亞穩(wěn)態(tài)
今日電子/21ic
Primitivo Matas Sanz
摘要: 在FPGA等同步邏輯數(shù)字器件中,所有器件的寄存器單元都需要預(yù)定義信號(hào)時(shí)序以使器件正確地捕獲數(shù)據(jù),進(jìn)而產(chǎn)生可靠的輸出信號(hào),。當(dāng)另一器件將數(shù)據(jù)發(fā)送給FPGA時(shí),F(xiàn)PGA的輸入寄存器必須在時(shí)鐘脈沖邊沿前保證最短的建立時(shí)間和時(shí)鐘脈沖邊沿后的保持時(shí)間,,從而確保正常完整地接收信號(hào)。
Abstract:
Key words :

如果在具有多個(gè)時(shí)鐘的非同步系統(tǒng)中使用FPGA,,或者系統(tǒng)中的時(shí)鐘頻率或相位與FPGA所使用時(shí)鐘頻率或相位不同,,那么設(shè)計(jì)就會(huì)遇到亞穩(wěn)態(tài)問題。不幸的是,,如果設(shè)計(jì)遇到上述情況,,是沒有辦法完全解決亞穩(wěn)態(tài)問題的,不過還是有一些方法可降低系統(tǒng)出現(xiàn)亞穩(wěn)態(tài)問題的幾率,。


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

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


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

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


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


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


鏈中每個(gè)寄存器的扇出都僅針對(duì)相鄰的寄存器。


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


如欲了解測(cè)量亞穩(wěn)態(tài)的方法,,敬請(qǐng)?jiān)L問:http://www.xilinx.com/support/documentation/application_notes/xapp094.pdf,,查閱賽靈思應(yīng)用指南XAPP094。
可用以下方程式計(jì)算出寄存器的MTBF:

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


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

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


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

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


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

使用賽靈思邏輯塊的IDDR" title="IDDR">IDDR方法
在Virtex-4和Virtex-5 FPGA中,,賽靈思將其ILOGIC模塊直接放置在I/O驅(qū)動(dòng)器和接收器的后面。該模塊包括4個(gè)存儲(chǔ)元件寄存器和1個(gè)可編程絕對(duì)延遲元件,。


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


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

圖2 SAME_EDGE_PIPELINED模式中的輸入DDR

只需少量代碼
在《Virtex-4用戶指南》的328~329頁,,舉例說明采用VHDL和Verilog語言編寫的IDDR原語的例化,。以下采用Verilog語言的IDDR原碼例化的典型實(shí)例:
defparam IDDR_INT2.DDR_CLK_EDGE = "SAME_EDGE_PIPELINED";
defparam IDDR_INT2.INIT_Q1 = 1'b1;
defparam IDDR_INT2.INIT_Q2 = 1'b1;
defparam IDDR_INT2.SRTYPE = "SYNC";
IDDR IDDR_INT2( .Q1(sync_data),
.Q2(signal_noload), .C(CLK_2X),
.CE(1'b1), .D(async_data),.R(), .S());
在圖3中看到全新的布局圖。 用這種方法將寄存器鏈放置在兩個(gè)單元:前兩個(gè)寄存器放置在ILOGIC單元中,,另一個(gè)寄存器則放置在SLICE單元中(這里選擇的鏈具有3個(gè)寄存器和2個(gè)不同的時(shí)鐘,,其中一個(gè)時(shí)鐘速度是另一個(gè)的兩倍)。

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


整體而言,,亞穩(wěn)態(tài)問題會(huì)給設(shè)計(jì)帶來不便,,但采用一些快速便捷的解決方案(如以一種新的方式使用IDDR原語)就能大幅降低設(shè)計(jì)發(fā)生亞穩(wěn)態(tài)問題的幾率。大家應(yīng)在創(chuàng)建設(shè)計(jì)時(shí)就采用上述方法,,而不應(yīng)事后亡羊補(bǔ)牢,,這樣就能創(chuàng)建出既能靈活應(yīng)對(duì)亞穩(wěn)性問題,而且所占面積,、性能和成本又得到優(yōu)化的架構(gòu),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。