當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]在FPGA系統(tǒng)中,如果數(shù)據(jù)傳輸中不滿足觸發(fā)器的Tsu和Th不滿足,或者復(fù)位過程中復(fù)位信號(hào)的釋放相對(duì)于有效時(shí)鐘沿的恢復(fù)時(shí)間(recovery TIme)不滿足,就可能產(chǎn)生亞穩(wěn)態(tài),此時(shí)觸發(fā)器輸出端Q在有效時(shí)鐘沿之后比較長的一段時(shí)間處于不確定的狀態(tài),在這段時(shí)間里Q端在0和1之間處于振蕩狀態(tài),而不是等于數(shù)據(jù)輸入端D的值。這段時(shí)間稱為決斷時(shí)間(resoluTIon TIme)。經(jīng)過resoluTIon time之后Q端將穩(wěn)定到0或1上,但是穩(wěn)定到0或者1,是隨機(jī)的,與輸入沒有必然的關(guān)系。

1. 應(yīng)用背景

1.1 亞穩(wěn)態(tài)發(fā)生原因

在FPGA系統(tǒng)中,如果數(shù)據(jù)傳輸中不滿足觸發(fā)器的Tsu和Th不滿足,或者復(fù)位過程中復(fù)位信號(hào)的釋放相對(duì)于有效時(shí)鐘沿的恢復(fù)時(shí)間(recovery TIme)不滿足,就可能產(chǎn)生亞穩(wěn)態(tài),此時(shí)觸發(fā)器輸出端Q在有效時(shí)鐘沿之后比較長的一段時(shí)間處于不確定的狀態(tài),在這段時(shí)間里Q端在0和1之間處于振蕩狀態(tài),而不是等于數(shù)據(jù)輸入端D的值。這段時(shí)間稱為決斷時(shí)間(resoluTIon TIme)。經(jīng)過resoluTIon time之后Q端將穩(wěn)定到0或1上,但是穩(wěn)定到0或者1,是隨機(jī)的,與輸入沒有必然的關(guān)系。

1.2 亞穩(wěn)態(tài)發(fā)生場合

只要系統(tǒng)中有異步元件,亞穩(wěn)態(tài)就是無法避免的,亞穩(wěn)態(tài)主要發(fā)生在異步信號(hào)檢測、跨時(shí)鐘域信號(hào)傳輸以及復(fù)位電路等常用設(shè)計(jì)中。

1.3 亞穩(wěn)態(tài)危害

由于產(chǎn)生亞穩(wěn)態(tài)后,寄存器Q端輸出在穩(wěn)定下來之前可能是毛刺、振蕩、固定的某一電壓值。在信號(hào)傳輸中產(chǎn)生亞穩(wěn)態(tài)就會(huì)導(dǎo)致與其相連其他數(shù)字部件將其作出不同的判斷,有的判斷到“1”有的判斷到“0”,有的也進(jìn)入了亞穩(wěn)態(tài),數(shù)字部件就會(huì)邏輯混亂。在復(fù)位電路中產(chǎn)生亞穩(wěn)態(tài)可能會(huì)導(dǎo)致復(fù)位失敗。怎么降低亞穩(wěn)態(tài)發(fā)生的概率成了FPGA設(shè)計(jì)需要重視的一個(gè)注意事項(xiàng)。

2. 理論分析

2.1 信號(hào)傳輸中的亞穩(wěn)態(tài)

在同步系統(tǒng)中,輸入信號(hào)總是系統(tǒng)時(shí)鐘同步,能夠達(dá)到寄存器的時(shí)序要求,所以亞穩(wěn)態(tài)不會(huì)發(fā)生。亞穩(wěn)態(tài)問題通常發(fā)生在一些跨時(shí)鐘域信號(hào)傳輸以及異步信號(hào)采集上。

它們發(fā)生的原因如下:

(1)在跨時(shí)鐘域信號(hào)傳輸時(shí),由于源寄存器時(shí)鐘和目的寄存器時(shí)鐘相移未知,所以源寄存器數(shù)據(jù)發(fā)出數(shù)據(jù),數(shù)據(jù)可能在任何時(shí)間到達(dá)異步時(shí)鐘域的目的寄存器,所以無法保證滿足目的寄存器Tsu和Th的要求;

(2)在異步信號(hào)采集中,由于異步信號(hào)可以在任意時(shí)間點(diǎn)到達(dá)目的寄存器,所以也無法保證滿足目的寄存器Tsu和Th的要求;

當(dāng)數(shù)據(jù)在目的寄存器Tsu-Th時(shí)間窗口發(fā)生變化,也即當(dāng)數(shù)據(jù)的建立時(shí)間或者保持時(shí)間不滿足時(shí),就可能發(fā)生亞穩(wěn)態(tài)現(xiàn)象。如圖1所示。

圖1 亞穩(wěn)態(tài)產(chǎn)生示意圖

由圖可知,當(dāng)產(chǎn)生亞穩(wěn)態(tài)后Tco時(shí)間后會(huì)有Tmet(決斷時(shí)間)的振蕩時(shí)間段,當(dāng)振蕩結(jié)束回到穩(wěn)定狀態(tài)時(shí)為“0”或者“1”,這個(gè)是隨機(jī)的。因此,會(huì)對(duì)后續(xù)電路判斷造成影響。

2.2 復(fù)位電路的亞穩(wěn)態(tài)

2.2.1 異步復(fù)位電路

在復(fù)位電路設(shè)計(jì)中,復(fù)位信號(hào)基本都是異步的,常用異步復(fù)位電路Verilog描述如下:

always @(posedge clk or negedge rst_n)

begin

if(!rst_n) a 《= 1’b0;

else a 《= b;

end

綜合出來復(fù)位電路模型如圖2所示:

圖2 異步復(fù)位電路模型

如圖3所示,為復(fù)位電路復(fù)位時(shí)序圖。如果異步復(fù)位信號(hào)的撤銷時(shí)間在Trecovery(恢復(fù)時(shí)間)和Tremoval(移除時(shí)間)之內(nèi),那勢必造成亞穩(wěn)態(tài)的產(chǎn)生,輸出在時(shí)鐘邊沿的Tco后會(huì)產(chǎn)生振蕩,振蕩時(shí)間為Tmet(決斷時(shí)間),最終穩(wěn)定到“0”或者“1”,就會(huì)可能造成復(fù)位失敗。

圖3 異步復(fù)位時(shí)序

2.2.2 同步復(fù)位電路的亞穩(wěn)態(tài)

在復(fù)位電路中,由于復(fù)位信號(hào)是異步的,因此,有些設(shè)計(jì)采用同步復(fù)位電路進(jìn)行復(fù)位,并且絕大多數(shù)資料對(duì)于同步復(fù)位電路都認(rèn)為不會(huì)發(fā)生亞穩(wěn)態(tài),其實(shí)不然,同步電路也會(huì)發(fā)生亞穩(wěn)態(tài),只是幾率小于異步復(fù)位電路。

如下面verilog代碼對(duì)同步復(fù)位電路的描述。

always @(posedge clk)

begin

if(!rst_n) a 《= 1’b0;

else a 《= b;

end

綜合出硬件電路如圖4所示。

圖4 同步復(fù)位電路

在此,我們不討論同步復(fù)位的消耗資源問題,只討論同步復(fù)位的亞穩(wěn)態(tài)產(chǎn)生情況。

當(dāng)輸入端Din為高電平,而且復(fù)位信號(hào)的撤銷時(shí)間在clk的Tsu和Th內(nèi)時(shí)候,亞穩(wěn)態(tài)就隨之產(chǎn)生了。如圖5時(shí)序所示,當(dāng)復(fù)位撤銷時(shí)間在clk的Tsu和Th內(nèi),輸入數(shù)據(jù)為“1”,通過和輸入數(shù)據(jù)相與后的數(shù)據(jù)也在clk的Tsu和Th內(nèi),因此,勢必會(huì)造成類似異步信號(hào)采集的亞穩(wěn)態(tài)情況。

圖5 同步復(fù)位電路時(shí)序圖

2.3 亞穩(wěn)態(tài)產(chǎn)生概率以及串?dāng)_概率

在實(shí)際的FPGA電路設(shè)計(jì)中,常常人們想的是怎么減少亞穩(wěn)態(tài)對(duì)系統(tǒng)的影響,很少有人考慮怎么才能減少亞穩(wěn)態(tài)發(fā)生幾率,以及亞穩(wěn)態(tài)串?dāng)_的概率問題。

2.3.1 亞穩(wěn)態(tài)發(fā)生概率

由上面分析得知,系統(tǒng)亞穩(wěn)態(tài)發(fā)生的都是由于clk的Tsu和Th不滿足,又或者是復(fù)位信號(hào)的移除和恢復(fù)時(shí)間不滿足。常用FPGA器件的Tsu+Th約等于1ns,復(fù)位移除和恢復(fù)時(shí)間相加約等于1ns。

當(dāng)異步信號(hào)不是一組數(shù)據(jù),或者信號(hào)量較少,那就需要對(duì)異步信號(hào)進(jìn)行同步處理,例如對(duì)一個(gè)異步脈沖信號(hào)進(jìn)行采集,只要脈沖信號(hào)變化發(fā)生在時(shí)鐘Tsu和Th窗口內(nèi),那就很可能會(huì)產(chǎn)生亞穩(wěn)態(tài),亞穩(wěn)態(tài)產(chǎn)生的概率大概為:

概率 = (建立時(shí)間 + 保持時(shí)間)/ 采集時(shí)鐘周期 (公式3-1)

由公式3-1可以看出,隨著clk頻率的增加,亞穩(wěn)態(tài)發(fā)生的幾率是增加的。

例如,為系統(tǒng)采用100M時(shí)鐘對(duì)一個(gè)外部信號(hào)進(jìn)行采集,采集時(shí)鐘周期為10ns,那采集產(chǎn)生亞穩(wěn)態(tài)的概率為:1ns/10ns = 10%

同理采用300M時(shí)鐘對(duì)一個(gè)外部信號(hào)進(jìn)行采集,那產(chǎn)生亞穩(wěn)態(tài)的概率為:1ns/3.3ns = 30%

如果采用三相相位差為120°的時(shí)鐘對(duì)一個(gè)外部信號(hào)進(jìn)行采集,那產(chǎn)生亞穩(wěn)態(tài)的概率接近90%

所以在異步信號(hào)采集過程中,要想減少亞穩(wěn)態(tài)發(fā)生的概率:

(1) 降低系統(tǒng)工作時(shí)鐘,增大系統(tǒng)周期,亞穩(wěn)態(tài)概率就會(huì)減小;

(2) 采用工藝更好的FPGA,也就是Tsu和Th時(shí)間較小的FPGA器件;

2.3.2 亞穩(wěn)態(tài)的串?dāng)_概率

使用異步信號(hào)進(jìn)行使用的時(shí)候,好的設(shè)計(jì)都會(huì)對(duì)異步信號(hào)進(jìn)行同步處理,同步一般采用多級(jí)D觸發(fā)器級(jí)聯(lián)處理,如圖6所示,采用三級(jí)D觸發(fā)器對(duì)異步信號(hào)進(jìn)行同步處理。

圖6 三級(jí)寄存器同步

這種模型大部分資料都說的是第一級(jí)寄存器產(chǎn)生亞穩(wěn)態(tài)后,第二級(jí)寄存器穩(wěn)定輸出概率為90%,第三極寄存器穩(wěn)定輸出的概率為99%,如果亞穩(wěn)態(tài)跟隨電路一直傳遞下去,那就會(huì)另自我修護(hù)能力較弱的系統(tǒng)直接崩潰。接下來我們分析這種串?dāng)_的概率問題。

如圖7所示為一個(gè)正常第一級(jí)寄存器發(fā)生了亞穩(wěn)態(tài),第二級(jí)、第三極寄存器消除亞穩(wěn)態(tài)時(shí)序模型。

圖7 三級(jí)寄存器消除亞穩(wěn)態(tài)

由上圖可以看出,當(dāng)?shù)谝粋€(gè)寄存器發(fā)生亞穩(wěn)態(tài)后,經(jīng)過Tmet的振蕩穩(wěn)定后,第二級(jí)寄存器能采集到一個(gè)穩(wěn)定的值。但是為什么第二級(jí)寄存器還是可能會(huì)產(chǎn)生亞穩(wěn)態(tài)呢?

由于振蕩時(shí)間Tmet是受到很多因素影響的,所以Tmet時(shí)間又長有短,所以當(dāng)Tmet時(shí)間長到大于一個(gè)采集周期后,那第二級(jí)寄存器就會(huì)采集到亞穩(wěn)態(tài)。如圖8所示。

圖8 二級(jí)寄存器亞穩(wěn)態(tài)

由上圖可知,第二級(jí)也是一個(gè)亞穩(wěn)態(tài),所以在這種情況下,亞穩(wěn)態(tài)產(chǎn)生了串?dāng)_,從第一級(jí)寄存器傳到了第二級(jí)寄存器,同樣也可能從第二級(jí)寄存器串?dāng)_到第三級(jí)寄存器。這樣會(huì)讓設(shè)計(jì)邏輯判斷出錯(cuò),產(chǎn)生亞穩(wěn)態(tài)傳輸,可能導(dǎo)致系統(tǒng)死機(jī)奔潰。

2.3.3 亞穩(wěn)態(tài)振蕩時(shí)間Tmet

亞穩(wěn)態(tài)震蕩時(shí)間Tmet關(guān)系到后級(jí)寄存器的采集穩(wěn)定問題,Tmet影響因素包括:器件的生產(chǎn)工藝、溫度、環(huán)境以及寄存器采集到亞穩(wěn)態(tài)離穩(wěn)定態(tài)的時(shí)刻等。甚至某些特定條件,如干擾、輻射等都會(huì)造成Tmet增長。

3. 應(yīng)用分析

有亞穩(wěn)態(tài)產(chǎn)生,我們就要對(duì)亞穩(wěn)態(tài)進(jìn)行消除,常用對(duì)亞穩(wěn)態(tài)消除有三種方式:

(1) 對(duì)異步信號(hào)進(jìn)行同步處理;

(2) 采用FIFO對(duì)跨時(shí)鐘域數(shù)據(jù)通信進(jìn)行緩沖設(shè)計(jì);

(3) 對(duì)復(fù)位電路采用異步復(fù)位、同步釋放方式處理。

3.1.1 對(duì)異步信號(hào)進(jìn)行同步提取邊沿

在異步通信或者跨時(shí)鐘域通信過程中,最常用的就是對(duì)異步信號(hào)進(jìn)行同步提取邊沿處理。對(duì)一個(gè)異步信號(hào)進(jìn)行提取上升沿通常采用程序清單 4.1所示。

程序清單 4.1 雙極寄存器提取邊沿

input sig_nsyn;

wire sig_nsyn_p;

reg[1:0] sig_nsyn_r;

always @(posedge clk or negedge rst_n)

begin

if(!rst_n) sig_nsyn_r 《= 2’d0;

else sig_nsyn_r 《= { sig_nsyn_r [0], sig_nsyn };

end

assign sig_nsyn_p = sig_nsyn_r[0] & ~sig_nsyn_r[1];

這種邊沿提取方式對(duì)于一個(gè)穩(wěn)定的系統(tǒng)是不合適的,例如:當(dāng)?shù)谝患?jí)寄存器采集到亞穩(wěn)態(tài),那勢必造成sig_nsyn_p輸出亞穩(wěn)態(tài),這樣就會(huì)對(duì)采用sig_nsyn_p的信號(hào)進(jìn)行判斷的電路造成影響,甚至判斷出錯(cuò)誤的值。

根據(jù)3.3.1小節(jié)的亞穩(wěn)態(tài)產(chǎn)生概率,如果在100M時(shí)種下那第一級(jí)寄存器產(chǎn)生亞穩(wěn)態(tài)的概率約為10%,隨著系統(tǒng)采集頻率升高,那產(chǎn)生亞穩(wěn)態(tài)的概率也會(huì)隨之上升。因此,在進(jìn)行異步信號(hào)跨頻提取邊沿時(shí)候,一般采用多進(jìn)行一級(jí)寄存器消除亞穩(wěn)態(tài),可能在系統(tǒng)穩(wěn)定性要求高的情況下,采用更多級(jí)寄存器來消除亞穩(wěn)態(tài),如程序清單 4.2所示,即為采用4級(jí)寄存器消除亞穩(wěn)態(tài),相應(yīng)的邊沿信號(hào)產(chǎn)生的時(shí)間就晚了兩個(gè)時(shí)鐘周期。

程序清單 4.2 多級(jí)寄存器提取邊沿信號(hào)

input sig_nsyn;

wire sig_nsyn_p;

reg[3:0] sig_nsyn_r;

always @(posedge clk or negedge rst_n)

begin

if(!rst_n) sig_nsyn_r 《= 2’d0;

else sig_nsyn_r 《= { sig_nsyn_r [2::0], sig_nsyn };

end

assign sig_nsyn_p = sig_nsyn_r[2] & ~sig_nsyn_r[3];

3.1.2 FIFO進(jìn)行異步跨頻數(shù)據(jù)處理

當(dāng)數(shù)據(jù)流從一個(gè)時(shí)鐘域到另一個(gè)時(shí)鐘域的時(shí)候,絕大多數(shù)情況下都采用FIFO來作為中間緩沖,采用雙時(shí)鐘對(duì)數(shù)據(jù)緩沖,就可以避免亞穩(wěn)態(tài)的發(fā)生。

3.1.3 異步復(fù)位,同步釋放

對(duì)于復(fù)位情況下的亞穩(wěn)態(tài),常常是由于恢復(fù)時(shí)間和移除時(shí)鐘不滿足造成的,因此,最常用的處理方式是采用異步復(fù)位、同步釋放。常用電路模型如所示。采用第二級(jí)寄存器輸出作為全局復(fù)位信號(hào)輸出。

程序清單 4.3 異步復(fù)位處理

wire sys_rst_n;

reg [1:0] rst_r;

always @(posedge clk or negedge rst_n)

begin

if(!rst_n) rst_r 《= 2’d0;

else rst_r 《= {rst_r[0], 1’b1};

end

assign sys_rst_n = rst_r[1];

通過上面三種方式處理異步信號(hào)、異步數(shù)據(jù)、以及異步復(fù)位可有效的提高系統(tǒng)的穩(wěn)定性。減少亞穩(wěn)態(tài)的產(chǎn)生。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉