<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > FPGA開(kāi)發(fā)技巧之同步復位與異步復位的理解

FPGA開(kāi)發(fā)技巧之同步復位與異步復位的理解

作者: 時(shí)間:2017-10-13 來(lái)源:網(wǎng)絡(luò ) 收藏

前兩天和師兄討論了一下design rule其中提到了同步的比較這個(gè)常見(jiàn)問(wèn)題,據說(shuō)也是IC公司經(jīng)常問(wèn)到的一面試題。后來(lái)在網(wǎng)上看了些相關(guān)資料,終于在這一點(diǎn)有了比較清晰的感念,眼看就要實(shí)習了,唯恐同學(xué)們面試時(shí)陰溝里翻船,特此將這個(gè)問(wèn)題總結如下(如果你對:你在設計中如何復位?為什么這樣復位?這兩個(gè)問(wèn)題概念清晰,本貼可以略過(guò))一、概念::就是指復位信號只有在時(shí)鐘上升沿到來(lái)時(shí),才能有效,否則無(wú)法完成對系統的復位工作。用verilog描述如下:always @ (posedge clk)begin if (!Rst_n) ... end:它是指無(wú)論時(shí)鐘沿是否到來(lái),只要復位信號有效,就對系統進(jìn)行復位。用Verilog描述如下:always @ (posedge clk or negedge Rst_n)begin if (!Rst_n) ...end二、各自的優(yōu)缺點(diǎn):1. 的優(yōu)點(diǎn)大概有3條:a. 有利于仿真器的仿真。b. 可以使所設計的系統成為的同步時(shí)序電路,這便大大有利于時(shí)序分析,而且綜合出來(lái)的一般較高。c. 因為他只有在時(shí)鐘有效電平到來(lái)時(shí)才有效,所以可以濾除高于時(shí)鐘頻率的毛刺。缺點(diǎn):a. 復位信號的有效時(shí)長(cháng)必須大于時(shí)鐘周期,才能真正被系統識別并完成復位任務(wù)。同時(shí)還要考慮,諸如:clk skew組合邏輯路徑延時(shí),復位延時(shí)等因素。b. 由于大多數的邏輯器件的目標庫內的DFF都只有端口,所以,倘若采用的話(huà),綜合器就會(huì )在寄存器的數據輸入端口插入組合邏輯,這樣就會(huì )耗費較多的邏輯資源。2. 異步復位優(yōu)點(diǎn)也有三條,都是相對應的a. 大多數目標器件庫的都有異步復位端口,因此采用異步復位可以節省資源。b. 設計相對簡(jiǎn)單。c. 異步復位信號識別方便,而且可以很方便的使用的全局復位端口GSR。缺點(diǎn):a. 在復位信號釋放(release)的時(shí)候容易出現問(wèn)題。具體就是說(shuō):倘若復位釋放時(shí)恰恰在時(shí)鐘有效沿附近,就很容易使寄存器輸出出現亞穩態(tài),從而導致亞穩態(tài)。b. 復位信號容易受到毛刺的影響。三、總結及推薦復位方式: 所以說(shuō),一般都推薦使用異步復位,同步釋放的方式,而且復位信號低電平有效。這樣就可以?xún)扇涿懒?。也就是上文中所說(shuō)的:“異步復位,同步釋放”。這就結合了雙方面的優(yōu)點(diǎn),很好的克服了異步復位的缺點(diǎn)(因為異步復位的問(wèn)題主要出現在復位信號釋放的時(shí)候,具體原因可見(jiàn)上文)。 具體實(shí)現并不難,這里列出一種方式:那就是在異步復位鍵后加上一個(gè)所謂的“reset synchronizer”,這樣就可以使異步復位信號同步化,然后,再用經(jīng)過(guò)處理的復位信號去作用系統,就可以保證比較穩定了。reset sychronizer的代碼如下:module Reset_Synchronizer( output reg rst_n, input clk, asyncrst_n); reg rff1;always @ (posedge clk , negedge asyncrst_n) begin if (!asyncrst_n) {rst_n,rff1} = 2b0; else {rst_n,rff1} = {rff1,1b1}; endendmodule大家可以看到,這就是一個(gè)dff,異步復位信號直接接在它的異步復位端口上(低電平有效),然后數據輸入端rff1一直為高電平1。倘若異步復位信號有效的話(huà),觸發(fā)器就會(huì )復位,輸出為低,從而復位后繼系統。但是,又由于這屬于時(shí)鐘沿觸發(fā),當復位信號釋放時(shí),觸發(fā)器的輸出要延遲一個(gè)時(shí)鐘周期才能恢復成1’,因此使得復位信號的釋放與時(shí)鐘沿同步化。此外,還有一種方法更為直接,就是直接在異步復位信號后加一個(gè)觸發(fā)器,然后用D觸發(fā)器的輸出作為后級系統的復位信號,也能達到相同的效果。

本文引用地址:http://dyxdggzs.com/article/201710/365680.htm


關(guān)鍵詞: FPGA 同步復位 異步復位

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>