久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2845|回復: 0
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:104287 發(fā)表于 2016-1-31 04:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1. 應用背景1.1         亞穩(wěn)態(tài)發(fā)生原因
      在FPGA系統(tǒng)中,如果數據傳輸中不滿足觸發(fā)器的Tsu和Th不滿足,或者復位過程中復位信號的釋放相對于有效時鐘沿的恢復時間(recovery time)不滿足,就可能產生亞穩(wěn)態(tài),此時觸發(fā)器輸出端Q在有效時鐘沿之后比較長的一段時間處于不確定的狀態(tài),在這段時間里Q端在0和1之間處于振蕩狀態(tài),而不是等于數據輸入端D的值。這段時間稱為決斷時間(resolution time)。經過resolution time之后Q端將穩(wěn)定到0或1上,但是穩(wěn)定到0或者1,是隨機的,與輸入沒有必然的關系。
1.2         亞穩(wěn)態(tài)發(fā)生場合
      只要系統(tǒng)中有異步元件,亞穩(wěn)態(tài)就是無法避免的,亞穩(wěn)態(tài)主要發(fā)生在異步信號檢測、跨時鐘域信號傳輸以及復位電路等常用設計中。
1.3         亞穩(wěn)態(tài)危害
      由于產生亞穩(wěn)態(tài)后,寄存器Q端輸出在穩(wěn)定下來之前可能是毛刺、振蕩、固定的某一電壓值。在信號傳輸中產生亞穩(wěn)態(tài)就會導致與其相連其他數字部件將其作出不同的判斷,有的判斷到“1”有的判斷到“0”,有的也進入了亞穩(wěn)態(tài),數字部件就會邏輯混亂。在復位電路中產生亞穩(wěn)態(tài)可能會導致復位失敗。怎么降低亞穩(wěn)態(tài)發(fā)生的概率成了FPGA設計需要重視的一個注意事項。

2. 理論分析2.1         信號傳輸中的亞穩(wěn)態(tài)
     在同步系統(tǒng)中,輸入信號總是系統(tǒng)時鐘同步,能夠達到寄存器的時序要求,所以亞穩(wěn)態(tài)不會發(fā)生。亞穩(wěn)態(tài)問題通常發(fā)生在一些跨時鐘域信號傳輸以及異步信號采集上。
它們發(fā)生的原因如下:
(1)在跨時鐘域信號傳輸時,由于源寄存器時鐘和目的寄存器時鐘相移未知,所以源寄存器數據發(fā)出數據,數據可能在任何時間到達異步時鐘域的目的寄存器,所以無法保證滿足目的寄存器Tsu和Th的要求;
(2)在異步信號采集中,由于異步信號可以在任意時間點到達目的寄存器,所以也無法保證滿足目的寄存器Tsu和Th的要求;
當數據在目的寄存器Tsu-Th時間窗口發(fā)生變化,也即當數據的建立時間或者保持時間不滿足時,就可能發(fā)生亞穩(wěn)態(tài)現象。如圖3.1所示。
圖3.1  亞穩(wěn)態(tài)產生示意圖
     由圖可知,當產生亞穩(wěn)態(tài)后Tco時間后會有Tmet(決斷時間)的振蕩時間段,當振蕩結束回到穩(wěn)定狀態(tài)時為“0”或者“1”,這個是隨機的。因此,會對后續(xù)電路判斷造成影響。
2.2         復位電路的亞穩(wěn)態(tài)2.2.1    異步復位電路
在復位電路設計中,復位信號基本都是異步的,常用異步復位電路Verilog描述如下:
always @(posedge clk or negedge rst_n)
begin
       if(!rst_n) a <= 1’b0;
       else         a <= b;
end
綜合出來復位電路模型如圖3.2所示:

圖3.2  異步復位電路模型
      如圖3.3所示,為復位電路復位時序圖。如果異步復位信號的撤銷時間在Trecovery(恢復時間)和Tremoval(移除時間)之內,那勢必造成亞穩(wěn)態(tài)的產生,輸出在時鐘邊沿的Tco后會產生振蕩,振蕩時間為Tmet(決斷時間),最終穩(wěn)定到“0”或者“1”,就會可能造成復位失敗。
圖3.3  異步復位時序
2.2.2    同步復位電路的亞穩(wěn)態(tài)
     在復位電路中,由于復位信號是異步的,因此,有些設計采用同步復位電路進行復位,并且絕大多數資料對于同步復位電路都認為不會發(fā)生亞穩(wěn)態(tài),其實不然,同步電路也會發(fā)生亞穩(wěn)態(tài),只是幾率小于異步復位電路。
如下面verilog代碼對同步復位電路的描述。
always @(posedge clk)
begin
       if(!rst_n) a <= 1’b0;
       else         a <= b;
end
綜合出硬件電路如圖3.4所示。
圖3.4  同步復位電路
      在此,我們不討論同步復位的消耗資源問題,只討論同步復位的亞穩(wěn)態(tài)產生情況。
      當輸入端Din為高電平,而且復位信號的撤銷時間在clk的Tsu和Th內時候,亞穩(wěn)態(tài)就隨之產生了。如圖3.5時序所示,當復位撤銷時間在clk的Tsu和Th內,輸入數據為“1”,通過和輸入數據相與后的數據也在clk的Tsu和Th內,因此,勢必會造成類似異步信號采集的亞穩(wěn)態(tài)情況。
圖3.5  同步復位電路時序圖
2.3         亞穩(wěn)態(tài)產生概率以及串擾概率
      在實際的FPGA電路設計中,常常人們想的是怎么減少亞穩(wěn)態(tài)對系統(tǒng)的影響,很少有人考慮怎么才能減少亞穩(wěn)態(tài)發(fā)生幾率,以及亞穩(wěn)態(tài)串擾的概率問題。
2.3.1    亞穩(wěn)態(tài)發(fā)生概率
      由上面分析得知,系統(tǒng)亞穩(wěn)態(tài)發(fā)生的都是由于clk的Tsu和Th不滿足,又或者是復位信號的移除和恢復時間不滿足。常用FPGA器件的Tsu+Th約等于1ns,復位移除和恢復時間相加約等于1ns。
      當異步信號不是一組數據,或者信號量較少,那就需要對異步信號進行同步處理,例如對一個異步脈沖信號進行采集,只要脈沖信號變化發(fā)生在時鐘Tsu和Th窗口內,那就很可能會產生亞穩(wěn)態(tài),亞穩(wěn)態(tài)產生的概率大概為:
                                              概率 = (建立時間 + 保持時間)/ 采集時鐘周期                                                                            (公式3-1)
      由公式3-1可以看出,隨著clk頻率的增加,亞穩(wěn)態(tài)發(fā)生的幾率是增加的。
      例如,為系統(tǒng)采用100M時鐘對一個外部信號進行采集,采集時鐘周期為10ns,那采集產生亞穩(wěn)態(tài)的概率為:1ns/10ns = 10%
      同理采用300M時鐘對一個外部信號進行采集,那產生亞穩(wěn)態(tài)的概率為:1ns/3.3ns = 30%
      如果采用三相相位差為120°的時鐘對一個外部信號進行采集,那產生亞穩(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觸發(fā)器級聯(lián)處理,如圖3.6所示,采用三級D觸發(fā)器對異步信號進行同步處理。
圖3.6  三級寄存器同步
      這種模型大部分資料都說的是第一級寄存器產生亞穩(wěn)態(tài)后,第二級寄存器穩(wěn)定輸出概率為90%,第三極寄存器穩(wěn)定輸出的概率為99%,如果亞穩(wěn)態(tài)跟隨電路一直傳遞下去,那就會另自我修護能力較弱的系統(tǒng)直接崩潰。接下來我們分析這種串擾的概率問題。
     如圖3.7所示為一個正常第一級寄存器發(fā)生了亞穩(wěn)態(tài),第二級、第三極寄存器消除亞穩(wěn)態(tài)時序模型。

圖3.7 三級寄存器消除亞穩(wěn)態(tài)
     由上圖可以看出,當第一個寄存器發(fā)生亞穩(wěn)態(tài)后,經過Tmet的振蕩穩(wěn)定后,第二級寄存器能采集到一個穩(wěn)定的值。但是為什么第二級寄存器還是可能會產生亞穩(wěn)態(tài)呢?
     由于振蕩時間Tmet是受到很多因素影響的,所以Tmet時間又長有短,所以當Tmet時間長到大于一個采集周期后,那第二級寄存器就會采集到亞穩(wěn)態(tài)。如圖3.8所示。

圖3.8  二級寄存器亞穩(wěn)態(tài)
      由上圖可知,第二級也是一個亞穩(wěn)態(tài),所以在這種情況下,亞穩(wěn)態(tài)產生了串擾,從第一級寄存器傳到了第二級寄存器,同樣也可能從第二級寄存器串擾到第三級寄存器。這樣會讓設計邏輯判斷出錯,產生亞穩(wěn)態(tài)傳輸,可能導致系統(tǒng)死機奔潰。
2.3.3    亞穩(wěn)態(tài)振蕩時間Tmet
      亞穩(wěn)態(tài)震蕩時間Tmet關系到后級寄存器的采集穩(wěn)定問題,Tmet影響因素包括:器件的生產工藝、溫度、環(huán)境以及寄存器采集到亞穩(wěn)態(tài)離穩(wěn)定態(tài)的時刻等。甚至某些特定條件,如干擾、輻射等都會造成Tmet增長。
3. 應用分析
有亞穩(wěn)態(tài)產生,我們就要對亞穩(wěn)態(tài)進行消除,常用對亞穩(wěn)態(tài)消除有三種方式:
(1)       對異步信號進行同步處理;
(2)       采用FIFO對跨時鐘域數據通信進行緩沖設計;
(3)       對復位電路采用異步復位、同步釋放方式處理。
3.1.1    對異步信號進行同步提取邊沿
在異步通信或者跨時鐘域通信過程中,最常用的就是對異步信號進行同步提取邊沿處理。對一個異步信號進行提取上升沿通常采用程序清單 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)是不合適的,例如:當第一級寄存器采集到亞穩(wěn)態(tài),那勢必造成sig_nsyn_p輸出亞穩(wěn)態(tài),這樣就會對采用sig_nsyn_p的信號進行判斷的電路造成影響,甚至判斷出錯誤的值。
根據3.3.1小節(jié)的亞穩(wěn)態(tài)產生概率,如果在100M時種下那第一級寄存器產生亞穩(wěn)態(tài)的概率約為10%,隨著系統(tǒng)采集頻率升高,那產生亞穩(wěn)態(tài)的概率也會隨之上升。因此,在進行異步信號跨頻提取邊沿時候,一般采用多進行一級寄存器消除亞穩(wěn)態(tài),可能在系統(tǒng)穩(wěn)定性要求高的情況下,采用更多級寄存器來消除亞穩(wěn)態(tài),如程序清單 4.2所示,即為采用4級寄存器消除亞穩(wěn)態(tài),相應的邊沿信號產生的時間就晚了兩個時鐘周期。
程序清單 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進行異步跨頻數據處理
當數據流從一個時鐘域到另一個時鐘域的時候,絕大多數情況下都采用FIFO來作為中間緩沖,采用雙時鐘對數據緩沖,就可以避免亞穩(wěn)態(tài)的發(fā)生。
3.1.3    異步復位,同步釋放
對于復位情況下的亞穩(wěn)態(tài),常常是由于恢復時間和移除時鐘不滿足造成的,因此,最常用的處理方式是采用異步復位、同步釋放。常用電路模型如所示。采用第二級寄存器輸出作為全局復位信號輸出。
程序清單 4.3  異步復位處理
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];
通過上面三種方式處理異步信號、異步數據、以及異步復位可有效的提高系統(tǒng)的穩(wěn)定性。減少亞穩(wěn)態(tài)的產生。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品永久久久久久久www | 在线成人免费视频 | 亚洲第一成人影院 | 亚洲午夜电影 | 免费h在线 | 视频一二区 | 日韩精品一区二区三区视频播放 | 男人天堂网址 | 久久久毛片 | 91精品久久久久久久久中文字幕 | 色视频在线免费观看 | 天堂av在线影院 | 国产专区在线 | 国产一区二区三区视频 | 国产精品免费一区二区三区四区 | 四虎成人免费视频 | 成人免费在线视频 | 黄在线免费观看 | 久久久久久久久久久久久9999 | 国产精品一区二区三区在线 | 91av视频在线播放 | 91激情视频| 亚洲精品在线免费观看视频 | 亚洲综合精品 | 欧美成人aaa级毛片在线视频 | 欧美a级网站 | 亚洲一区二区三区久久 | 人操人人 | 精品成人免费视频 | 日本中文在线视频 | 国产精品美女www | 国产乱码精品一区二区三区中文 | 欧美一级免费 | 中文字幕综合在线 | 精产国产伦理一二三区 | 午夜网| 国产一区二区在线免费观看 | 国产一区二区三区免费 | 天天拍天天草 | 欧美特级黄色 | 国产精品久久久久久久久久免费看 |