色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

詳細(xì)解讀FPGA復(fù)位的重點(diǎn)

454398 ? 來源: 科學(xué)計(jì)算technomania ? 作者:貓叔 ? 2020-11-18 17:32 ? 次閱讀

本篇文章參考Xilinx White Paper:Get Smart About Reset: Think Local, Not Global

在沒看這篇文章前,回想一下平時(shí)我們常用的復(fù)位方式:
① 首先,上電后肯定是要復(fù)位一下,不然仿真時(shí)會出現(xiàn)沒有初值的情況;
② 最好有個復(fù)位的按鍵,在調(diào)試時(shí)按一下復(fù)位鍵就可以全局復(fù)位了;
③ 也許是同步復(fù)位,也許是異步復(fù)位,不同的工程師可能有不同的方案。

但如果認(rèn)真看了Xilinx的White Paper,就會對復(fù)位有了新的認(rèn)識。

我們把White Paper的內(nèi)容總結(jié)為下面4個問題:
① 需不需要復(fù)位?
② 同步復(fù)位 or 異步復(fù)位?
③ 高復(fù)位 or 低復(fù)位?
④ 全局復(fù)位 or 局部復(fù)位?怎么用?

1. 需不需要復(fù)位?

看到這個問題,可能很多同學(xué)會有點(diǎn)懵,怎么可能不需要復(fù)位?其實(shí)Xilinx FPGA在系統(tǒng)上電配置時(shí),會有一個GSR(Global Set/Reset)的信號,這個信號有以下幾個特點(diǎn):
? 預(yù)布線
? 高扇出
? 可靠的

這個信號可初始化所有的cell,包括所有的Flip-Flop和BRAM。


如果我們在程序里用自己生成的復(fù)位信號,也只能復(fù)位Flip-Flop。

這個GSR信號我們可以在程序中通過實(shí)例化STARTUP直接調(diào)用,但Xilinx并不推薦這么使用。


主要原因是FPGA會把像系統(tǒng)復(fù)位這種高扇出的信號放到高速布線資源上,這比使用GSR要快,而且更容易進(jìn)行時(shí)序分析。

雖然有GSR,但這并不是說要避免使用復(fù)位信號,以下兩種情況就必須要加復(fù)位:

? 帶有反饋的模塊,比如IIR這種濾波器和狀態(tài)機(jī),當(dāng)狀態(tài)跑飛了,就需要復(fù)位一下


? 應(yīng)用過程中需要復(fù)位的寄存器

這個就具體看是什么應(yīng)用了,我們公司的很多寄存器都需要在調(diào)試過程中需要經(jīng)常復(fù)位,像這種復(fù)位就是必須的了。

所以,需不需要復(fù)位完全看設(shè)計(jì)。這里多提一點(diǎn),時(shí)序收斂也是一樣,主要看設(shè)計(jì),而不是約束。

2. 同步復(fù)位 or 異步復(fù)位?

在HDL中,如果敏感列表中不包含rst,會被綜合成同步復(fù)位:

always @ ( posedge clk )
begin
    if(rst)
        ...
end

如果敏感列表中包含rst,則會被綜合成異步復(fù)位:

always @ ( posedge clk or posedge rst)
begin
    ...
end

同步復(fù)位的好處,不言而喻,有利于時(shí)序分析,降低亞穩(wěn)態(tài)的幾率,避免毛刺。

同步信號的缺點(diǎn):
? 復(fù)位信號有效電平持續(xù)時(shí)間必須大于時(shí)鐘周期,不然時(shí)鐘可能采不到復(fù)位
? 在沒有時(shí)鐘的時(shí)候無法復(fù)位

也有很多同學(xué)會說同步復(fù)位會需要額外的資源,但對于Xilinx的FPGA,是沒有這個問題的,具體原因后面講。

對于異步復(fù)位,好處就是同步復(fù)位的反方面:脈沖寬度沒有限制,沒有時(shí)鐘也可以復(fù)位。

缺點(diǎn)就是異步電路,容易引起亞穩(wěn)態(tài),產(chǎn)生毛刺,不利于時(shí)序分析,而且不同觸發(fā)器的復(fù)位時(shí)間可能不同。下面這個圖中,在A時(shí)刻接收到復(fù)位信號拉低的FF可以在下一個時(shí)鐘上升沿時(shí)就釋放復(fù)位狀態(tài),但C時(shí)刻接收到復(fù)位信號拉低的FF則在下下個時(shí)鐘上升沿時(shí)才能釋放復(fù)位狀態(tài)。


按照White Paper上所講,99.99%的概率這種情況都不會發(fā)生,但如果你剛好碰到一次這種現(xiàn)象,那你就是那0.01%。

下面我們來舉一個例子來說明同步復(fù)位和異步復(fù)位,F(xiàn)PGA為V7,代碼如下:

module rst_demo(
 input clk,
 input rst1,
 input rst2,
 input in1,
 input in2,
 output reg out1,
 output reg out2);

 always @ ( posedge clk )
 begin
    if(rst1)
        out1 <= 1'b0;
    else
        out1 <= in1;
 end

 always @ ( posedge clk or posedge rst2 )
 begin
    if(rst2)
        out2 <= 1'b0;
    else
        out2 <= in2;
 end

 endmodule

綜合后的schematic如下圖:


可以看出來,同步復(fù)位和異步復(fù)位都是占用一個Storage Element,我們在之前的一篇文章中講過Storage Element可以配置為Latch,同樣的,也可以配置為FDRE和FDCE,而且在7Series手冊中也并未提到配置成FDRE或FDCE時(shí)是否會占用更多資源(比如,7Series的FPGA中,一個Slice中有8個Storage Element,如果其中一個被配置成了Latch,那有4個Storage Element是不能用的),因此在Xilinx的FPGA中,同步復(fù)位和異步復(fù)位在資源占用上,并沒有區(qū)別。

3. 高復(fù)位 or 低復(fù)位?

很多處理器上的復(fù)位都是低復(fù)位,這也導(dǎo)致了很多同學(xué)在使用復(fù)位信號時(shí)也習(xí)慣使用低復(fù)位了。但從我們上一節(jié)所講中可以看出,無論是同步復(fù)位還是異步復(fù)位,復(fù)位信號都是高有效,如果采用低復(fù)位,還需要增加一個反相器。

如果接收到其他處理器發(fā)過來的低有效復(fù)位信號,我們最好在頂層模塊中翻轉(zhuǎn)復(fù)位信號的極性,這樣做可以將反相器放入IO Logic中,不會占用FPGA內(nèi)部的邏輯資源和布線資源。

這里多補(bǔ)充一點(diǎn),如果使用Zynq和Microblaze,則Reset模塊默認(rèn)是低復(fù)位,我們可以手動設(shè)置為高復(fù)位。

4. 全局復(fù)位 or 局部復(fù)位?怎么用?

我們對復(fù)位常用的做法是將系統(tǒng)中的每個FF都連接到某個復(fù)位信號,但這樣就造成了復(fù)位信號的高扇出,高扇出就容易導(dǎo)致時(shí)序的違規(guī)。而且全局復(fù)位占用的資源比我們想象中要高的多:

? 布線資源占用
? 其他網(wǎng)絡(luò)的布線空間就相應(yīng)減少
? 可能會降低系統(tǒng)性能
? 增加布線時(shí)間
? 邏輯資源占用
? 占用FF作為專門的復(fù)位電路
? 如果該復(fù)位信號還受其他信號控制,會導(dǎo)致FF的輸入前增加門電路
? 會增加整個設(shè)計(jì)的size
? 增加的邏輯資源會影響系統(tǒng)性能
? 增加布局布線時(shí)間
? 全局復(fù)位不會使用像SRL16E這種高效結(jié)構(gòu)
? 在LUT中SRL16E可當(dāng)作16個FF
? 這些Virtual FF不支持復(fù)位
? 增加設(shè)計(jì)的size,并降低系統(tǒng)性能
? 增加布局布線時(shí)間

因此,Xilinx推薦盡量使用局部復(fù)位的方式,前面我們也講到然同步復(fù)位和異步復(fù)位都多多少少有些問題,那有沒有一種方式可以結(jié)合同步復(fù)位和異步復(fù)位的優(yōu)點(diǎn)?當(dāng)然有,就是異步復(fù)位,同步釋放。這種方法可以將兩者結(jié)合起來,取長補(bǔ)短。如下圖所示,所謂異步復(fù)位,就是輸入的復(fù)位信號仍然是異步的,這樣可以保證復(fù)位信號能夠起效;而同步釋放是指當(dāng)復(fù)位信號釋放時(shí),輸出的sys_rst并不是立即變化,而且被FF延遲了一個時(shí)鐘周期,這樣讓復(fù)位和時(shí)鐘同步起來。


圖中的Verilog代碼如下:

module rst_demo(
 input      clk, 
 input      rst_async, 
 (* keep = "true" *)
 output  reg  rst_module1 = 0,
 (* keep = "true" *)
 output  reg  rst_module2 = 0
    );

reg         sys_rst;
reg         rst_r;

always @(posedge clk or posedge rst_async) begin
    if (rst_async) begin
        rst_r <= 1'b1;
    end
    else begin
        rst_r <= 1'b0;
    end
end

always @(posedge clk or posedge rst_async) begin
    if (rst_async) begin
        sys_rst <= 1'b1;
    end
    else begin
        sys_rst <= rst_r;
    end
end

always @ ( posedge clk ) begin
    rst_module1 <= sys_rst;
    rst_module2 <= sys_rst;
end

endmodule

綜合后的schematic如下圖:


異步復(fù)位模塊輸出的sys_rst通過n個D觸發(fā)器后輸出給n個模塊,當(dāng)做模塊的復(fù)位信號。

總結(jié)

在使用復(fù)位信號時(shí),考慮這個寄存器需不需要在運(yùn)行過程中進(jìn)行復(fù)位,如果只需要上電后復(fù)位一次,那只需在定義時(shí)寫上初值即可,無需使用其他復(fù)位信號;在Xilinx的FPGA中盡量使用高有效的復(fù)位信號,采用異步復(fù)位同步釋放的方式,并且要將復(fù)位信號局部化,避免使用高扇出的全局復(fù)位。

編輯:hfy


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

    關(guān)注

    1630

    文章

    21794

    瀏覽量

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

    關(guān)注

    31

    文章

    5363

    瀏覽量

    120925
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2170

    瀏覽量

    121906
  • 復(fù)位信號
    +關(guān)注

    關(guān)注

    0

    文章

    54

    瀏覽量

    6354
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA復(fù)位的8種技巧

    FPGA 設(shè)計(jì)中,復(fù)位起到的是同步信號的作用,能夠?qū)⑺械拇鎯υO(shè)置成已知狀態(tài)。在數(shù)字電路設(shè)計(jì)中,設(shè)計(jì)人員一般把全局復(fù)位作為一個外部引腳來實(shí)現(xiàn),在加電的時(shí)候初始化設(shè)計(jì)。全局復(fù)位
    的頭像 發(fā)表于 11-16 10:18 ?377次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>復(fù)位</b>的8種技巧

    復(fù)位電路的設(shè)計(jì)問題

    前言 最近看advanced fpga 以及fpga設(shè)計(jì)實(shí)戰(zhàn)演練中有講到復(fù)位電路的設(shè)計(jì),才知道復(fù)位電路有這么多的門道,而不是簡單的外界信號輸入系統(tǒng)復(fù)
    的頭像 發(fā)表于 11-15 11:13 ?199次閱讀
    <b class='flag-5'>復(fù)位</b>電路的設(shè)計(jì)問題

    復(fù)位電路介紹 復(fù)位電路的原理及作用

    復(fù)位電路(Reset Circuit)是現(xiàn)代電子設(shè)備中常見的一種關(guān)鍵電路,它用于確保在正確的時(shí)間和條件下將系統(tǒng)恢復(fù)到初始狀態(tài)。復(fù)位電路的設(shè)計(jì)和應(yīng)用對于保障電子系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。 一、復(fù)位
    的頭像 發(fā)表于 10-18 16:44 ?2586次閱讀

    單片機(jī)異常復(fù)位的原因

    單片機(jī)異常復(fù)位是指單片機(jī)在正常工作過程中,非預(yù)期地返回到初始狀態(tài)或重啟。這種異常復(fù)位現(xiàn)象可能由多種因素引起,以下是對單片機(jī)異常復(fù)位原因的詳細(xì)分析:
    的頭像 發(fā)表于 10-17 17:56 ?1307次閱讀

    STM32復(fù)位電路用復(fù)位芯片和阻容復(fù)位電路區(qū)別

    STM32是一款廣泛使用的微控制器,其復(fù)位電路設(shè)計(jì)對于系統(tǒng)的穩(wěn)定性和可靠性至關(guān)重要。本文將詳細(xì)介紹STM32復(fù)位電路中使用復(fù)位芯片和阻容復(fù)位
    的頭像 發(fā)表于 08-06 10:26 ?1764次閱讀

    解讀MIPI A-PHY與車載Serdes芯片技術(shù)與測試

    上一期,《汽車芯片標(biāo)準(zhǔn)體系建設(shè)指南》技術(shù)解讀與功率芯片測量概覽中,我們給大家介紹了工信部印發(fā)的《汽車芯片標(biāo)準(zhǔn)體系建設(shè)指南》涉及到的重點(diǎn)芯片與測試領(lǐng)域解讀,本期繼續(xù)給大家做延展,我們解讀
    的頭像 發(fā)表于 07-24 10:14 ?3007次閱讀
    <b class='flag-5'>解讀</b>MIPI A-PHY與車載Serdes芯片技術(shù)與測試

    FPGA同步復(fù)位和異步復(fù)位

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)中的復(fù)位操作是設(shè)計(jì)過程中不可或缺的一環(huán),它負(fù)責(zé)將電路恢復(fù)到初始狀態(tài),以確保系統(tǒng)的正確啟動和穩(wěn)定運(yùn)行。在FPGA設(shè)計(jì)中,
    的頭像 發(fā)表于 07-17 11:12 ?1711次閱讀

    FPGA的學(xué)習(xí)重點(diǎn)是什么?

    FPGA的學(xué)習(xí)重點(diǎn)是什么?
    發(fā)表于 05-24 07:38

    示波器測量復(fù)位信號的原理和方法

    具有重要意義。本文將詳細(xì)介紹示波器測量復(fù)位信號的原理和方法,以幫助工程師和技術(shù)人員更好地理解和應(yīng)用這一技術(shù)。
    的頭像 發(fā)表于 05-17 17:14 ?1594次閱讀

    FPGA設(shè)計(jì)添加復(fù)位功能的注意事項(xiàng)

    本文將回顧使用重置輸入對給定功能進(jìn)行編碼的一些基本注意事項(xiàng)。設(shè)計(jì)者可能會忽視使用復(fù)位輸入的后果,但不正確的復(fù)位策略很容易造成嚴(yán)重處罰。復(fù)位功能會對 FPGA 設(shè)計(jì)的速度、面積和功耗產(chǎn)生
    發(fā)表于 05-03 09:49 ?234次閱讀
    向<b class='flag-5'>FPGA</b>設(shè)計(jì)添加<b class='flag-5'>復(fù)位</b>功能的注意事項(xiàng)

    MCU復(fù)位RAM會保持嗎,如何實(shí)現(xiàn)復(fù)位時(shí)變量數(shù)據(jù)保持

    在使用MCU時(shí),通常大家默認(rèn)MCU復(fù)位時(shí)RAM會被復(fù)位清零,那實(shí)際MCU復(fù)位時(shí)RAM是什么狀態(tài)?如何讓mcu復(fù)位時(shí)RAM保持不變呢?
    的頭像 發(fā)表于 03-01 09:32 ?2603次閱讀
    MCU<b class='flag-5'>復(fù)位</b>RAM會保持嗎,如何實(shí)現(xiàn)<b class='flag-5'>復(fù)位</b>時(shí)變量數(shù)據(jù)保持

    ABB變頻器怎么復(fù)位 | 復(fù)位時(shí)可能會出現(xiàn)哪些問題?

    ,ABB變頻器如何進(jìn)行復(fù)位呢?本文將為大家詳細(xì)講解ABB變頻器復(fù)位的方法和步驟。 一、ABB變頻器的復(fù)位方式 在使用ABB變頻器時(shí),復(fù)位可以
    的頭像 發(fā)表于 02-21 10:50 ?8293次閱讀
    ABB變頻器怎么<b class='flag-5'>復(fù)位</b> | <b class='flag-5'>復(fù)位</b>時(shí)可能會出現(xiàn)哪些問題?

    復(fù)位電路的電阻電容分別有什么作用?

    重新啟動并正常運(yùn)行。 復(fù)位電路通常由電阻和電容組成,它們在復(fù)位電路中起著不可或缺的作用。下面我將詳細(xì)介紹電阻和電容在復(fù)位電路中的作用,以及它們的主要特點(diǎn)。 首先,讓我們來看一下電阻在
    的頭像 發(fā)表于 02-04 09:28 ?3194次閱讀

    如何排查GD32 MCU復(fù)位是由哪個復(fù)位源導(dǎo)致的?

    上期為大家講解了GD32 MCU復(fù)位包括電源復(fù)位和系統(tǒng)復(fù)位,其中系統(tǒng)復(fù)位還包括獨(dú)立看門狗復(fù)位、內(nèi)核軟復(fù)位
    的頭像 發(fā)表于 02-03 09:46 ?1821次閱讀
    如何排查GD32 MCU<b class='flag-5'>復(fù)位</b>是由哪個<b class='flag-5'>復(fù)位</b>源導(dǎo)致的?

    GD32 MCU電源復(fù)位和系統(tǒng)復(fù)位有什么區(qū)別

    GD32 MCU的復(fù)位分為電源復(fù)位和系統(tǒng)復(fù)位,電源復(fù)位又稱為冷復(fù)位,相較于系統(tǒng)復(fù)位,上電
    的頭像 發(fā)表于 02-02 09:37 ?1568次閱讀
    GD32 MCU電源<b class='flag-5'>復(fù)位</b>和系統(tǒng)<b class='flag-5'>復(fù)位</b>有什么區(qū)別
    主站蜘蛛池模板: 一本到高清视频在线观看三区| 久久精品一区二区免费看| 小色哥影院| 男人到天堂a在538线| 乱淫67194| 欧美00后rapper潮水| 好爽别插了无码视频| 国产中文字幕免费观看| 精品国产乱码久久久久久下载 | 女王羞辱丨vk| 日本免费xxx| 我就去色色| 亚洲精品无码国产爽快A片百度 | 久章草一区二区| 男同志china免费视频| 日本无码专区亚洲麻豆| 午夜福利免费0948视频| 亚洲视频中文| 99久久re6热精品首页| 成人无码在线超碰视频| 国产超碰精久久久久久无码AV| 国产精品婷婷五月久久久久| 精品国产品在线18年| 牛牛自拍国产免费视频| 视频一区亚洲视频无码| 青青青青草原国产免费| 无码乱人伦一区二区亚洲| 亚洲中文字幕无码一久久区| 97精品国产亚洲AV高清| 给个男人都懂的网址2019| 韩国演艺圈qvod| 蜜芽视频在线观看视频免费播放| 日产精品高潮呻吟AV久久| 亚洲黄色免费观看| 97夜夜澡人人爽人人模人人喊| 高清一区二区亚洲欧美日韩| 久久91精品国产91| 日本久久黄色| 一本道的mv中文字幕| 百度影音第四色| 黄色三级网络|