<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 異步復(fù)位,同步釋放的方式,而且復(fù)位信號低電平有效

          異步復(fù)位,同步釋放的方式,而且復(fù)位信號低電平有效

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

          一、特點(diǎn):

          同步復(fù)位:顧名思義,同步復(fù)位就是指復(fù)位信號只有在時鐘上升沿到來時,才能有效。否則,無法完成對系統(tǒng)的復(fù)位工作。用Verilog描述如下:
          always @ (posedge clk) begin
          if (!Rst_n)
          ...
          end
          :它是指無論時鐘沿是否到來,只要復(fù)位信號有效,就對系統(tǒng)進(jìn)行復(fù)位。用Verilog描述如下:
          always @ (posedge clk,negedge Rst_n) begin
          if (!Rst_n)
          ...
          end

          本文引用地址:http://www.ex-cimer.com/article/201710/365654.htm

          二、各自的優(yōu)缺點(diǎn):

          1、總的來說,同步復(fù)位的優(yōu)點(diǎn)大概有3條:
          a、有利于仿真器的仿真。
          b、可以使所設(shè)計(jì)的系統(tǒng)成為100%的同步時序電路,這便大大有利于時序分析,而且綜合出來的fmax一般較高。
          c、因?yàn)樗挥性跁r鐘有效電平到來時才有效,所以可以濾除高于時鐘頻率的毛刺。
          他的缺點(diǎn)也有不少,主要有以下幾條:
          a、復(fù)位信號的有效時長必須大于時鐘周期,才能真正被系統(tǒng)識別并完成復(fù)位任務(wù)。同時還要考慮,諸如:clk skew,組合邏輯路徑延時,復(fù)位延時等因素。
          b、由于大多數(shù)的邏輯器件的目標(biāo)庫內(nèi)的DFF都只有端口,所以,倘若采用同步復(fù)位的話,綜合器就會在寄存器的數(shù)據(jù)輸入端口插入組合邏輯,這樣就會耗費(fèi)較多的邏輯資源。
          2、對于來說,他的優(yōu)點(diǎn)也有三條,都是相對應(yīng)的:
          a、大多數(shù)目標(biāo)器件庫的dff都有異步復(fù)位端口,因此采用異步復(fù)位可以節(jié)省資源。
          b、設(shè)計(jì)相對簡單。
          c、異步復(fù)位信號識別方便,而且可以很方便的使用FPGA的全局復(fù)位端口GSR。
          缺點(diǎn):
          a、在復(fù)位信號釋放(release)的時候容易出現(xiàn)問題。具體就是說:倘若復(fù)位釋放時恰恰在時鐘有效沿附近,就很容易使寄存器輸出出現(xiàn)亞穩(wěn)態(tài),從而導(dǎo)致亞穩(wěn)態(tài)。
          b、復(fù)位信號容易受到毛刺的影響。

          三、總結(jié):

          所以說,一般都推薦使用異步復(fù)位,同步釋放的方式,而且復(fù)位信號有效。這樣就可以兩全其美了。

          always @(posedge clk or negedge rst_n)

          if(!rst_n) b = 1b0;

          else b = a;

          我們可以看到FPGA的寄存器都有一個異步的清零端(CLR),在異步復(fù)位的設(shè)計(jì)中這個端口一般就是接有效的復(fù)位信號rst_n。即使說你的設(shè)計(jì)中是高電平復(fù)位,那么實(shí)際綜合后會把你的復(fù)位信號反向后接這個CLR端。

          一個簡單的異步復(fù)位的例子

          always @ (posedge clk or negedge rst_n)

          if(!rst_n) b = 1b0;

          else b = a;

          我們可以看到FPGA的寄存器都有一個異步的清零端(CLR),在異步復(fù)位的設(shè)計(jì)中這個端口一般就是接有效的復(fù)位信號rst_n。即使說你的設(shè)計(jì)中是高電平復(fù)位,那么實(shí)際綜合后會把你的復(fù)位信號反向后接這個CLR端。

          一個簡單的同步復(fù)位的例子

          always @ (posedge clk)

          if(!rst_n) b = 1b0;

          else b = a;

          和異步復(fù)位相比,同步復(fù)位沒有用上寄存器的CLR端口,綜合出來的實(shí)際電路只是把復(fù)位信號rst_n作為了輸入邏輯的使能信號。那么,這樣的同步復(fù)位勢必會額外增加FPGA內(nèi)部的資源消耗。

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

          只能說,各有優(yōu)缺點(diǎn)。同步復(fù)位的好在于它只在時鐘信號clk的上升沿觸發(fā)進(jìn)行系統(tǒng)是否復(fù)位的判斷,這降低了亞穩(wěn)態(tài)出現(xiàn)的概率;它的不好上面也說了,在于它需要消耗更多的器件資源,這是我們不希望看到的。FPGA的寄存器有支持異步復(fù)位專用的端口,采用異步復(fù)位的端口無需額外增加器件資源的消耗,但是異步復(fù)位也存在著隱患,特權(quán)同學(xué)過去從沒有意識到也沒有見識過。異步時鐘域的亞穩(wěn)態(tài)問題同樣的存在與異步復(fù)位信號和系統(tǒng)時鐘信號之間。

          再看下面一個兩級寄存器異步復(fù)位的例子

          always @ (posedge clk or negedge rst_n)

          if(!rst_n) b = 1b0;

          else b = a;

          always @ (posedge clk or negedge rst_n)

          if(!rst_n) c = 1b0;

          else c = b;

          如此一來,既解決了同步復(fù)位的資源消耗問題,也解決了異步復(fù)位的亞穩(wěn)態(tài)問題。其根本思想,也是將異步信號同步化。



          關(guān)鍵詞: 異步復(fù)位 低電平

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();