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

    EEPW首頁 > 測試測量 > 設計應用 > 使用FPGA測試的一些有效方法(05-100)

    使用FPGA測試的一些有效方法(05-100)

    ——
    作者:北京工業大學 北京市嵌入式重點實驗室 鄒楊 林平分 王普 方穗明 時間:2009-02-23 來源:電子產品世界 收藏

      綜合過程解決時序問題

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

      我們使用公司的工具進行綜合,這是業界通常使用的綜合工具之一。選擇該工具最主要的原因在于它與Xilinx的FPGA配合的很好。我們做過實驗,通過該工具綜合產生結果報表,再通過ISE產生真實布局布線后的報表。對這兩個報表的時序估計部分進行對比,我們發現兩者之間驚人的相似,最差路徑之間的差別不超過1ns。

      綜合的時候需要設置約束,最重要的是時鐘約束。這個約束限制了系統工作的頻率。為了降低系統對于時鐘抖動的敏感性,我們采取的第一個方法是在設置時鐘約束的時候將此約束值設的略高于實際的時鐘頻率。這樣做有一個前提,那就是在綜合后不得有負的時鐘余度(time slack)出現。當沒有負的時鐘余度出現的時候,提高時鐘約束可以有效避免因時鐘抖動而引入的時序問題,但是如果因為提高了約束中時鐘頻率,而導致負的時鐘余度的出現,那么有可能導致在布局布線過程中產生時序沖突而無法正常布局布線。在這種情形下,就不宜提高約束中的時鐘頻率。

      在綜合中采取的第二個方法是使用綜合工具提供的pipeline和retiming功能。這些功能可以調整寄存器的位置,使之在不改變邏輯的前提下,將寄存器的位置調整的更加合理,如圖2所示。這個功能主要用于組合邏輯過長且不合理的情況下。當然,如果某些乘法器位數過寬而結果沒有寄存的時候也會導致組合邏輯時序緊張。當發生這種情況而retiming功能又無法糾正時,就需要設計者在做設計的時候對乘法器的輸出結果做一拍寄存,同時其余的控制邏輯也要做相應的調整。

      

     

      圖 1 DSP48示意圖

      布局布線階段解決時序問題

      當綜合工作完成,進入布局布線的階段后,仍然有兩種方法可以改善邏輯時序問題。

      第一種是手動增加并調整BUFG(Global Clock Buffer)。BUFG是Xilinx的全局時鐘資源,所有時鐘樹的起點都是BUFG,位于FPGA的北極和南極。當布線后仍有負的slack時,有可能是某些當作時鐘使用的信號沒有被放上時鐘樹,此時就要手動將這些信號放上BUFG。若遇到門控時鐘,還應該使用BUFGMUX資源。另外,在Virtex-4中,北部的BUFG主要負責北部的時鐘,南部的BUFG負責南部的時鐘。在我們的項目中,共有十余個時鐘,因此,BUFG位置的選擇也很關鍵。有些時候,工具不能解決一切問題,只有手動調整BUFG的位置,或將BUFG的位置信息寫入用戶約束文件才可以取得較滿意的效果。



    關鍵詞: Synplicity Synplify

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 樟树市| 鸡西市| 莲花县| 清镇市| 遵义县| 金坛市| 金乡县| 达日县| 台南县| 临邑县| 睢宁县| 玛纳斯县| 崇州市| 达孜县| 巨鹿县| 莒南县| 兴隆县| 穆棱市| 武清区| 台东市| 北海市| 钦州市| 萝北县| 镇沅| 娱乐| 江都市| 浦北县| 会理县| 思茅市| 八宿县| 廉江市| 余干县| 香格里拉县| 富裕县| 金阳县| 武邑县| 三门县| 乌海市| 陆丰市| 册亨县| 石首市|