• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > 引起的較高時鐘頻率仿真失敗原因

    引起的較高時鐘頻率仿真失敗原因

    作者: 時間:2018-08-06 來源:網絡 收藏

    通常如果你的設計在較低時通過了仿真,但是在較高時卻失敗了,你的第一個問題應該是你的設計在某個較高時是否達到了時序約束的要求。

    本文引用地址:http://www.czjhyjcfj.com/article/201808/385552.htm

    然而這里我們將舉這樣一個例子,就是對于某個較高時鐘頻率你已經檢查了靜態時序分析(STA),而且時序約束也是正確的。

    這種情況是什么引起的較高時鐘頻率仿真失敗呢?

    可能的原因就是仿真方式、設計本身或者testbench設置方式有問題。

    然而在較低時鐘頻率通過了仿真這個事實就排除了設計/testbench/仿真在設置上的問題。

    排除了上面兩項,下一個可能就是脈沖拒絕(reject)或者脈沖錯誤。

    “脈沖拒絕(reject)”和“脈沖錯誤”是Verilog仿真中的概念。

    這些概念說的是脈沖的持續時間小于某個值(pulse_r)就不會通過某個電路元件。

    當然脈沖持續時間大于pulse_r,但是如果小于另一個值pulse_e盡管會通過,但是在仿真中顯示的是“x”。

    這個持續時間是以通過某元器件延遲的百分比來表示的。

    比如通過某元件的延遲是1ns。

    0.5ns的脈沖表示為50%的持續時間。

    現在假設設計采用的頻率是200MHz。

    對應的周期就是5ns。

    那么一半就是2.5ns。

    在仿真中時鐘每隔2.5ns變化一次,也就是時鐘脈沖的寬度是2.5ns。

    讓我們假設內部時鐘網絡某一脈沖寬度是2.8ns(也就是大于2.5ns)。

    分析結果,pulse-duraTIon(脈沖持續時間)《100%。

    這個脈沖可能就會被“拒絕(rejected)”,也就是說盡管時鐘信號能夠到達某個具體網絡的輸入端,但是卻不能從這個網絡輸出。

    因此盡管STA分析顯示200MHz很合適,但是仿真卻不能通過。

    設計其他模塊將不能獲得時鐘脈沖。

    解決這個仿真問題的方法是在仿真設置中修改脈沖拒絕和錯誤(reject/error)限制。

    例如在ModelSim中我們可以設置:

    +transport_path_delays +transport_int_delays +pulse_r/0 +pulse_e/0

    后續操作還有:

    1.將pulse-rejecTIon限制修改為0。(不會拒絕任何一個脈沖)

    2.將pulse-error限制修改為0。(脈沖寬度低于某個值時不會顯示輸出為“x”)

    同時要將interconnect延遲模式修改為transport,其實是修改了脈沖濾波選項。

    最后的問題是我們做這么多的修改就是為了能通過仿真測試嗎?

    在真正的硅片中的實際情況是怎樣的?

    在硅片中大部分內部互連線在每隔幾皮秒后就會設置一個repeater(中繼器)。

    因此幾納秒的脈沖會順利通過(合適的延遲),這不會存在問題。

    具體出現問題的情形可能是這樣的:

    1.頻率增加(脈沖寬度更小了)

    2.器件尺寸增加(某個路徑的內部延遲可能變大了,導致內部延遲時間大于脈沖達到的傳輸時間)

    『本文轉載自網絡,版權歸原作者所有,如有侵權請聯系刪除』



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 南皮县| 鄂伦春自治旗| 黑龙江省| 开封县| 常山县| 华坪县| 六盘水市| 五华县| 汽车| 林周县| 哈巴河县| 贡嘎县| 安阳市| 青海省| 大新县| 诸城市| 吉隆县| 虞城县| 娄烦县| 鱼台县| 上饶县| 香港| 肇东市| 客服| 延吉市| 定南县| 永仁县| 大方县| 桃源县| 招远市| 濮阳县| 城口县| 靖宇县| 奇台县| 隆回县| 化隆| 邵武市| 安龙县| 昭通市| 乌恰县| 咸阳市|