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

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

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

簡(jiǎn)談同步復(fù)位和異步復(fù)位

FPGA學(xué)習(xí)交流 ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-17 09:30 ? 次閱讀

大家好,談到同步復(fù)位和異步復(fù)位,那咱們就不得不來(lái)聊一聊復(fù)位這個(gè)詞了。在數(shù)字邏輯電路設(shè)計(jì)中,電路通過(guò)復(fù)位來(lái)啟動(dòng),復(fù)位猶如數(shù)字電路的“起搏器”。那在設(shè)計(jì)中,主要會(huì)出現(xiàn)以下三種類型的,一是無(wú)復(fù)位:天生就強(qiáng)壯著,上電就啟動(dòng);二是異步復(fù)位:好心人路過(guò),隨便踢了一腳,起搏了,這完全沒有心理準(zhǔn)備,隨時(shí)都有可能復(fù)活?。蝗峭綇?fù)位:專業(yè)救援隊(duì),手按住胸口,不起博按住不放啊。直到聽到“砰砰”聲才離開,非常關(guān)鍵,必須要按住一會(huì)會(huì)。
那下面咱們就來(lái)詳細(xì)聊聊這三種類型。
一、無(wú)復(fù)位
沒見過(guò)這樣寫代碼的,竟然沒有復(fù)位,老師都說(shuō)數(shù)字電路離不開復(fù)位的,沒有復(fù)位,寄存器怎么賦初值???沒有確定的初值,這電路怎么工作呢?
其實(shí),不用擔(dān)心,FPGA上電之后,寄存器初始值默認(rèn)為“0”,當(dāng)然,也可以人為的賦初值。下面為無(wú)復(fù)位的代碼舉例:
104054d6666wljwcjqffmx.png

reg [7:0] a;

always @(posedge clk)
begin
a <= b;
end

如果沒有復(fù)位信號(hào),省了很多資源,編譯和布線時(shí)間也縮短不少,如果規(guī)模很大,對(duì)提高設(shè)計(jì)整體性能也是有幫助的。但是在數(shù)字電路設(shè)計(jì)中,我們很少不用復(fù)位電路。到是我們經(jīng)常利用FPGA這個(gè)特性,自己產(chǎn)生內(nèi)部復(fù)位電路。

二、異步復(fù)位
異步復(fù)位電路描述:在always語(yǔ)句中添加復(fù)位信號(hào)在敏感量列表中,即可實(shí)現(xiàn)異步復(fù)位。下面為異步復(fù)位的代碼舉例以及電路圖舉例:
105435yrkuiwzz83nnkr3c.png

reg [7:0] a;

always @(posedge clk, posedge rst_n)
begin
if(rst_n)
begin
a <= 8’h0;
end
else
begin
a <= b;
end
end

104752rabtta4tq485hwtq.png

異步復(fù)位的缺點(diǎn):
異步復(fù)位對(duì)復(fù)位信號(hào)要求很嚴(yán)格的,不然隨便一個(gè)毛刺就會(huì)把電路給復(fù)位掉的。
另外,異步復(fù)位信號(hào)依賴于FPGA內(nèi)部的傳導(dǎo)延時(shí),因此,在微小的電壓或溫度差異下,設(shè)計(jì)都有可能輸出錯(cuò)誤,設(shè)計(jì)的可移植性也很差。上面不是說(shuō)了嘛,這隨便一腳提過(guò)來(lái),有時(shí)候能感覺到,有時(shí)候感覺不到啊。冬天穿個(gè)大棉襖,就得使個(gè)大勁才能提醒。
正因?yàn)閷?duì)不同寄存器延遲是不同的,所以容易引發(fā)間斷性設(shè)計(jì)問題。怎么理解呢?
如圖所示,2 bit的移位寄存器組成一個(gè)環(huán),復(fù)位后,左邊寄存器清零,右邊寄存器置位,而且都在同一上升沿觸發(fā),所以,如果左邊寄存器上升沿來(lái)的時(shí)候,復(fù)位信號(hào)已經(jīng)釋放掉了,但是右邊寄存器還處于復(fù)位狀態(tài),這個(gè)時(shí)候數(shù)據(jù)就錯(cuò)誤。

異步復(fù)位的優(yōu)點(diǎn):
異步復(fù)位不依賴于時(shí)鐘。所以如果時(shí)鐘是外部輸入的,而且時(shí)鐘有可能丟失,例如處于省電模式時(shí),只能使用異步復(fù)位。
另外一個(gè)優(yōu)勢(shì)是設(shè)計(jì)更快的物理實(shí)現(xiàn)。相對(duì)于同步復(fù)位,異步復(fù)位有更寬松的時(shí)序約束。從而布局布線工具使用更少的時(shí)間便可達(dá)到約束條件。

三、同步復(fù)位
同步復(fù)位就是非常專業(yè),不留一點(diǎn)馬虎,和他的名字一樣,只在時(shí)鐘的有效沿發(fā)生,所以一個(gè)有效的同步信號(hào),至少要維持一個(gè)時(shí)鐘周期(把你叫不醒,是不會(huì)停的)。由于僅僅在時(shí)鐘的有效沿有效,所以可以濾除復(fù)位信號(hào)上的毛刺,電路可靠性好很多。下面為同步復(fù)位的代碼舉例:
105712tswlw6a6qseuue6f.png

reg [7:0] a;

always @(posedge clk)
begin
if(rst_n)
begin
a <= 8’h0;
end
else
begin
a <= b;
end
end


所以,總結(jié)一下。其優(yōu)點(diǎn)是“彌補(bǔ)了異步復(fù)位的所有缺點(diǎn)”,其缺點(diǎn)是“沒有異步復(fù)位的優(yōu)點(diǎn)“”。這個(gè)總結(jié)夠簡(jiǎn)單吧。

總結(jié)

我們熟悉了3種復(fù)位方式,了解了他們的脾氣,那就總結(jié)一下,在我們平時(shí)設(shè)計(jì)中如何使用他們。

盡量用同步復(fù)位,如果你的規(guī)模不是特別大,雖然占有布線資源多一點(diǎn),但是對(duì)系統(tǒng)可靠性還是有幫助的。

規(guī)模很大的時(shí)候,可以考慮混和復(fù)位方式,在什么場(chǎng)合呢?比如說(shuō)設(shè)計(jì)中有多個(gè)IP核和功能模塊,要求有不同的復(fù)位方式,這個(gè)時(shí)候就要求混和復(fù)位方式,另外,還有電路延遲,大型電路中兩個(gè)模塊之間信號(hào)延遲可能超過(guò)10ns,如果時(shí)鐘周期為3ns,需要3個(gè)時(shí)鐘周期才能通過(guò),所以,大型設(shè)計(jì)中完全同步是非常不容易的。如圖所示為一個(gè)復(fù)雜的混和復(fù)位樹。各種復(fù)位都用上了。
105713yi9j99nsxk1k9cfg.png

各位,加油,共同進(jìn)步!

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

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601239
  • 同步復(fù)位
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    10694
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Xilinx FPGA異步復(fù)位同步釋放—同步后的復(fù)位該當(dāng)作同步復(fù)位還是異步復(fù)位?

    針對(duì)異步復(fù)位同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號(hào)時(shí),到底是使用同步
    發(fā)表于 06-21 09:59 ?1347次閱讀
    Xilinx FPGA<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>釋放—<b class='flag-5'>同步</b>后的<b class='flag-5'>復(fù)位</b>該當(dāng)作<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>還是<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>?

    簡(jiǎn)同步復(fù)位異步復(fù)位

    ` ?大家好,談到同步復(fù)位異步復(fù)位,那咱們就不得不來(lái)聊一聊復(fù)位這個(gè)詞了。在數(shù)字邏輯電路設(shè)計(jì)中,電路通過(guò)
    發(fā)表于 01-30 11:01

    簡(jiǎn)同步復(fù)位異步復(fù)位

    發(fā)表于 07-23 10:58

    同步復(fù)位異步復(fù)位有什么聯(lián)系與區(qū)別,優(yōu)缺點(diǎn)!

     異步復(fù)位原理:異步復(fù)位只要有復(fù)位信號(hào)系統(tǒng)馬上復(fù)位,因此異步
    發(fā)表于 11-30 08:45 ?9.9w次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>和<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>有什么聯(lián)系與區(qū)別,優(yōu)缺點(diǎn)!

    FPGA設(shè)計(jì)中的異步復(fù)位同步釋放問題

    異步復(fù)位同步釋放 首先要說(shuō)一下同步復(fù)位異步復(fù)位的區(qū)
    發(fā)表于 06-07 02:46 ?2134次閱讀

    如何區(qū)分同步復(fù)位異步復(fù)位?

    問:如何區(qū)分同步復(fù)位異步復(fù)位?可以理解為同步復(fù)位是作用于狀態(tài),然后通過(guò)狀態(tài)來(lái)驅(qū)動(dòng)電路
    的頭像 發(fā)表于 06-11 15:15 ?6789次閱讀

    Xilinx FPGA的同步復(fù)位異步復(fù)位

    對(duì)于xilinx 7系列的FPGA而言,flip-flop支持高有效的異步復(fù)/置位和同步復(fù)位/置位。對(duì)普通邏輯設(shè)計(jì),同步復(fù)位
    發(fā)表于 07-13 09:31 ?6551次閱讀

    同步復(fù)位異步復(fù)位電路簡(jiǎn)介

    同步復(fù)位異步復(fù)位都是狀態(tài)機(jī)的常用復(fù)位機(jī)制,圖1中的復(fù)位電路結(jié)合了各自的優(yōu)點(diǎn)。
    的頭像 發(fā)表于 08-12 15:20 ?7359次閱讀
    <b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>和<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>電路簡(jiǎn)介

    同步復(fù)位異步復(fù)位的優(yōu)缺點(diǎn)和對(duì)比說(shuō)明

    同步復(fù)位:顧名思義,同步復(fù)位就是指復(fù)位信號(hào)只有在時(shí)鐘上升沿到來(lái)時(shí),才能有效。否則,無(wú)法完成對(duì)系統(tǒng)的復(fù)位
    發(fā)表于 09-14 08:00 ?0次下載
    <b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>和<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>的優(yōu)缺點(diǎn)和對(duì)比說(shuō)明

    詳細(xì)講解同步后的復(fù)位同步復(fù)位還是異步復(fù)位?

    針對(duì)異步復(fù)位、同步釋放,一直沒搞明白在使用同步化以后的復(fù)位信號(hào)時(shí),到底是使用同步
    的頭像 發(fā)表于 04-27 18:12 ?4639次閱讀
    詳細(xì)講解<b class='flag-5'>同步</b>后的<b class='flag-5'>復(fù)位</b>是<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>還是<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>?

    【FPGA】異步復(fù)位,同步釋放的理解

    異步復(fù)位同步釋放的理解目錄目錄 同步復(fù)位異步復(fù)位
    發(fā)表于 01-17 12:53 ?4次下載
    【FPGA】<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b>,<b class='flag-5'>同步</b>釋放的理解

    同步復(fù)位異步復(fù)位的區(qū)別

    請(qǐng)簡(jiǎn)述同步復(fù)位異步復(fù)位的區(qū)別,說(shuō)明兩種復(fù)位方式的優(yōu)缺點(diǎn),并解釋“異步
    的頭像 發(fā)表于 08-14 11:49 ?6887次閱讀

    淺析異步復(fù)位同步釋放與同步復(fù)位打拍模塊

    異步復(fù)位同步釋放:rst_synchronizer.v
    的頭像 發(fā)表于 08-21 09:27 ?933次閱讀
    淺析<b class='flag-5'>異步</b><b class='flag-5'>復(fù)位</b><b class='flag-5'>同步</b>釋放與<b class='flag-5'>同步</b><b class='flag-5'>復(fù)位</b>打拍模塊

    同步復(fù)位異步復(fù)位到底孰優(yōu)孰劣呢?

    同步復(fù)位異步復(fù)位到底孰優(yōu)孰劣呢? 同步復(fù)位異步
    的頭像 發(fā)表于 01-16 16:25 ?1581次閱讀

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

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