0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA中復(fù)位電路的亞穩(wěn)態(tài)技術(shù)詳解

454398 ? 來源:博客園 ? 作者:屋檐下的龍卷風(fēng) ? 2020-09-30 17:08 ? 次閱讀

1. 應(yīng)用背景

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

FPGA系統(tǒng)中,如果數(shù)據(jù)傳輸中不滿足觸發(fā)器的Tsu和Th不滿足,或者復(fù)位過程中復(fù)位信號的釋放相對于有效時鐘沿的恢復(fù)時間(recovery time)不滿足,就可能產(chǎn)生亞穩(wěn)態(tài),此時觸發(fā)器輸出端Q在有效時鐘沿之后比較長的一段時間處于不確定的狀態(tài),在這段時間里Q端在0和1之間處于振蕩狀態(tài),而不是等于數(shù)據(jù)輸入端D的值。這段時間稱為決斷時間(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ā)生在異步信號檢測、跨時鐘域信號傳輸以及復(fù)位電路等常用設(shè)計中。

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

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

2. 理論分析

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

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

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

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

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

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

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

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

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

2.2.1 異步復(fù)位電路

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

always @(posedge clk or negedge rst_n)

begin

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

       else         a <= b;

end

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

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

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

圖3.3 異步復(fù)位時序

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

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

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

always @(posedge clk)

begin

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

       else         a <= b;

end

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

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

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

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

圖3.5 同步復(fù)位電路時序圖

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

在實際的FPGA電路設(shè)計中,常常人們想的是怎么減少亞穩(wěn)態(tài)對系統(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ù)位信號的移除和恢復(fù)時間不滿足。常用FPGA器件的Tsu+Th約等于1ns,復(fù)位移除和恢復(fù)時間相加約等于1ns。

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

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

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

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

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

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

所以在異步信號采集過程中,要想減少亞穩(wěn)態(tài)發(fā)生的概率:
1) 降低系統(tǒng)工作時鐘,增大系統(tǒng)周期,亞穩(wěn)態(tài)概率就會減??;
2) 采用工藝更好的FPGA,也就是Tsu和Th時間較小的FPGA器件;

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

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

圖3.6 三級寄存器同步

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

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

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

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

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

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

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

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

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

3. 應(yīng)用分析

有亞穩(wěn)態(tài)產(chǎn)生,我們就要對亞穩(wěn)態(tài)進(jìn)行消除,常用對亞穩(wěn)態(tài)消除有三種方式:
(1)對異步信號進(jìn)行同步處理;
(2)采用FIFO對跨時鐘域數(shù)據(jù)通信進(jìn)行緩沖設(shè)計;
(3)對復(fù)位電路采用異步復(fù)位、同步釋放方式處理。

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

在異步通信或者跨時鐘域通信過程中,最常用的就是對異步信號進(jìn)行同步提取邊沿處理。對一個異步信號進(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];

這種邊沿提取方式對于一個穩(wěn)定的系統(tǒng)是不合適的,例如:當(dāng)?shù)谝患壖拇嫫鞑杉絹喎€(wěn)態(tài),那勢必造成sig_nsyn_p輸出亞穩(wěn)態(tài),這樣就會對采用sig_nsyn_p的信號進(jìn)行判斷的電路造成影響,甚至判斷出錯誤的值。

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

程序清單 4.2 多級寄存器提取邊沿信號

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ù)流從一個時鐘域到另一個時鐘域的時候,絕大多數(shù)情況下都采用FIFO來作為中間緩沖,采用雙時鐘對數(shù)據(jù)緩沖,就可以避免亞穩(wěn)態(tài)的發(fā)生。

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

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

程序清單 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];

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600687
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5274

    瀏覽量

    119677
  • 亞穩(wěn)態(tài)
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    13219
  • 數(shù)據(jù)處理
    +關(guān)注

    關(guān)注

    0

    文章

    562

    瀏覽量

    28483
  • 異步信號
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7006
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA系統(tǒng)復(fù)位過程亞穩(wěn)態(tài)原理

    復(fù)位電路,由于復(fù)位信號是異步的,因此,有些設(shè)計采用同步復(fù)位電路進(jìn)行
    發(fā)表于 06-26 16:37 ?1394次閱讀
    <b class='flag-5'>FPGA</b>系統(tǒng)<b class='flag-5'>復(fù)位</b>過程<b class='flag-5'>中</b>的<b class='flag-5'>亞穩(wěn)態(tài)</b>原理

    FPGA亞穩(wěn)態(tài)——讓你無處可逃

    1. 應(yīng)用背景1.1亞穩(wěn)態(tài)發(fā)生原因在FPGA系統(tǒng),如果數(shù)據(jù)傳輸不滿足觸發(fā)器的Tsu和Th不滿足,或者復(fù)位過程
    發(fā)表于 01-11 11:49

    FPGA亞穩(wěn)態(tài)——讓你無處可逃

    。 圖3.5同步復(fù)位電路時序圖2.3亞穩(wěn)態(tài)產(chǎn)生概率以及串?dāng)_概率在實際的FPGA電路設(shè)計,常常人
    發(fā)表于 04-25 15:29

    FPGA觸發(fā)器的亞穩(wěn)態(tài)認(rèn)識

    返回到低電平, 這和輸入的數(shù)據(jù)無關(guān)。且在亞穩(wěn)態(tài)的過程,觸發(fā)器的輸出可能在震蕩,也可能徘徊在一個固定的中間電平上。我們來看一個真實案例。見圖3. 在這個案例,我們測試一個FPGA
    發(fā)表于 12-04 13:51

    亞穩(wěn)態(tài)問題解析

    亞穩(wěn)態(tài)是數(shù)字電路設(shè)計中最為基礎(chǔ)和核心的理論。同步系統(tǒng)設(shè)計的多項技術(shù),如synthesis,CTS,STA等都是為了避免同步系統(tǒng)產(chǎn)生亞穩(wěn)態(tài)。
    發(fā)表于 11-01 17:45

    FPGA復(fù)位電路中產(chǎn)生亞穩(wěn)態(tài)的原因

    亞穩(wěn)態(tài)概述01 亞穩(wěn)態(tài)發(fā)生原因在 FPGA 系統(tǒng),如果數(shù)據(jù)傳輸不滿足觸發(fā)器的 Tsu 和 Th 不滿足,或者
    發(fā)表于 10-19 10:03

    FPGA--復(fù)位電路產(chǎn)生亞穩(wěn)態(tài)的原因

    FPGA 系統(tǒng),如果數(shù)據(jù)傳輸不滿足觸發(fā)器的 Tsu 和 Th 不滿足,或者復(fù)位過程復(fù)位
    發(fā)表于 10-22 11:42

    FPGA,同步信號、異步信號和亞穩(wěn)態(tài)的理解

    性的培訓(xùn)誘導(dǎo),真正的去學(xué)習(xí)去實戰(zhàn)應(yīng)用,這種快樂試試你就會懂的。話不多說,上貨。在FPGA,同步信號、異步信號和亞穩(wěn)態(tài)的理解PGA(Field-Programmable Gate Array),即現(xiàn)場
    發(fā)表于 02-28 16:38

    今日說“法”:讓FPGA設(shè)計亞穩(wěn)態(tài)“無處可逃”

    的分析一下。 背景 1、亞穩(wěn)態(tài)發(fā)生原因 在FPGA系統(tǒng),如果數(shù)據(jù)傳輸不滿足觸發(fā)器的Tsu和Th不滿足,或者復(fù)位過程
    發(fā)表于 04-27 17:31

    基于FPGA亞穩(wěn)態(tài)參數(shù)測量方法

    基于FPGA亞穩(wěn)態(tài)參數(shù)測量方法_田毅
    發(fā)表于 01-07 21:28 ?0次下載

    FPGA復(fù)位電路產(chǎn)生亞穩(wěn)態(tài)概述與理論分析

    亞穩(wěn)態(tài)概述 01亞穩(wěn)態(tài)發(fā)生原因 在 FPGA 系統(tǒng),如果數(shù)據(jù)傳輸不滿足觸發(fā)器的 Tsu 和 Th 不滿足,或者
    的頭像 發(fā)表于 10-25 09:50 ?2429次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>中</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>電路</b>產(chǎn)生<b class='flag-5'>亞穩(wěn)態(tài)</b>概述與理論分析

    數(shù)字電路何時會發(fā)生亞穩(wěn)態(tài)

    亞穩(wěn)態(tài)問題是數(shù)字電路很重要的問題,因為現(xiàn)實世界是一個異步的世界,所以亞穩(wěn)態(tài)是無法避免的,并且亞穩(wěn)態(tài)應(yīng)該也是面試常考的考點。
    發(fā)表于 09-07 14:28 ?496次閱讀

    什么是亞穩(wěn)態(tài)?如何克服亞穩(wěn)態(tài)?

    亞穩(wěn)態(tài)電路設(shè)計是常見的屬性現(xiàn)象,是指系統(tǒng)處于一種不穩(wěn)定的狀態(tài),雖然不是平衡狀態(tài),但可在短時間內(nèi)保持相對穩(wěn)定的狀態(tài)。對工程師來說,亞穩(wěn)態(tài)的存在可以帶來獨特的性質(zhì)和應(yīng)用,如非晶態(tài)材料、
    的頭像 發(fā)表于 05-18 11:03 ?4477次閱讀

    FPGA設(shè)計亞穩(wěn)態(tài)解析

    說起亞穩(wěn)態(tài),首先我們先來了解一下什么叫做亞穩(wěn)態(tài)。亞穩(wěn)態(tài)現(xiàn)象:信號在無關(guān)信號或者異步時鐘域之間傳輸時導(dǎo)致數(shù)字器件失效的一種現(xiàn)象。
    的頭像 發(fā)表于 09-19 15:18 ?1753次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計<b class='flag-5'>中</b>的<b class='flag-5'>亞穩(wěn)態(tài)</b>解析

    復(fù)位信號存在亞穩(wěn)態(tài),有危險嗎?

    復(fù)位信號存在亞穩(wěn)態(tài),有危險嗎? 復(fù)位信號在電子設(shè)備起著重要的作用,它用于使設(shè)備回到初始狀態(tài),以確保設(shè)備的正常運(yùn)行。然而,我們有時會發(fā)現(xiàn)復(fù)位
    的頭像 發(fā)表于 01-16 16:25 ?427次閱讀