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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 復(fù)位設(shè)計(jì)中的結(jié)構(gòu)性缺陷及解決方案(二)

          復(fù)位設(shè)計(jì)中的結(jié)構(gòu)性缺陷及解決方案(二)

          作者: 時(shí)間:2013-11-16 來源:網(wǎng)絡(luò) 收藏

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

            1. 問題(I)

            在許多地方,設(shè)計(jì)人員在時(shí)鐘方面喜歡同步。原因可能是為了節(jié)省一些芯片面積(帶有異步復(fù)位輸入的觸發(fā)器比任何不可復(fù)位觸發(fā)器都大)或讓系統(tǒng)與時(shí)鐘完全同步,也可能有一些其他原因。對(duì)于此類設(shè)計(jì),當(dāng)復(fù)位源被斷言時(shí)需要向設(shè)計(jì)的觸發(fā)器提供時(shí)鐘,否則,這些觸發(fā)器可能會(huì)在一段時(shí)間內(nèi)都不進(jìn)行初始化。但當(dāng)該模塊被插入一個(gè)系統(tǒng)時(shí),系統(tǒng)設(shè)計(jì)人員可能選擇在復(fù)位階段禁用其時(shí)鐘(如果在一開始不需要激活該模塊),以節(jié)省整個(gè)系統(tǒng)的動(dòng)態(tài)功耗。因此,該模塊甚至在復(fù)位去斷言后一段時(shí)間內(nèi)都不進(jìn)行初始化。如果該模塊的任何輸出直接在系統(tǒng)中使用,那么將捕獲未初始化和未知的值(X),這可能會(huì)導(dǎo)致系統(tǒng)功能故障。

            復(fù)位設(shè)計(jì)中的結(jié)構(gòu)性缺陷及解決方案(二)

            圖9:同步復(fù)位問題時(shí)序圖

            2. 解決方案

            在復(fù)位階段啟用該模塊的時(shí)鐘且持續(xù)最短的時(shí)間,使該模塊內(nèi)的所有觸發(fā)器都在復(fù)位過程中被初始化。 當(dāng)系統(tǒng)復(fù)位被去斷言時(shí),模塊輸出不會(huì)有任何未初始化的值。

            復(fù)位設(shè)計(jì)中的結(jié)構(gòu)性缺陷及解決方案(二)

            圖10:同步復(fù)位問題已解決

            3. 問題(II)

            在時(shí)鐘域交叉路徑使用兩個(gè)觸發(fā)同步器是常見做法。然而,有時(shí)設(shè)計(jì)人員對(duì)這些觸發(fā)器使用同步復(fù)位。相同的RTL代碼是

            always @(posedge clk )

            if(!sync_rst_b) begin

            sync1 = 1‘b0; sync2 = 1’b0 ;

            end

            else begin

            sync1 = async_in; sync2 = sync1

            end

            在硬件中進(jìn)行了RTL合成后,上面的代碼會(huì)在雙觸發(fā)器同步器的同步鏈中引入組合邏輯,這會(huì)帶來風(fēng)險(xiǎn),并縮短sync2觸發(fā)器輸入進(jìn)入亞穩(wěn)態(tài)的時(shí)間。

            復(fù)位設(shè)計(jì)中的結(jié)構(gòu)性缺陷及解決方案(二)


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 復(fù)位設(shè)計(jì) 結(jié)構(gòu)性缺陷

          評(píng)論


          相關(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); })();