0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何理解和使用做FPGA設(shè)計時的過約束?

FPGA之家 ? 來源:邏輯空間 ? 作者:邏輯空間 ? 2021-03-29 11:56 ? 次閱讀

有人希望能談談在做FPGA設(shè)計的時候,如何理解和使用過約束。我就以個人的經(jīng)驗談談:

什么是過約束;

為什么會使用過約束;

過約束的優(yōu)點和缺點是什么;

如何使用過約束使自己的設(shè)計更為健壯。

什么是過約束(overconstraint)

所謂過約束,就是給目標時鐘一個超過其設(shè)定運行頻率的約束。比如實際運行的時鐘頻率是100MHz,我們在給這個時鐘添加約束的時候,要求它能運行在120MHz。

為什么會使用過約束

通常在兩種情況下,我們可能會使用過約束。

第一種情況,F(xiàn)PGA的時序報告不準確,為了確保邏輯的實際運行頻率能滿足要求,做過約束來保留設(shè)計余量。

FPGA的時序報告是基于FPGA的時序模型計算出來的,時序模型來源于實驗室的測試和對生產(chǎn)過程的嚴格控制,是要充分考慮PVT(Process,Voltage,Temperature)的影響計算出來的。對比較成熟的FPGA廠家來說,研發(fā),生產(chǎn),測試都有標準流程控制,這一部分的數(shù)據(jù)還是比較可靠的。如果是新的廠家,大家可能要做好時序模型不準確的心理準備。在工藝不變的情況下,信號的傳輸,翻轉(zhuǎn)速率隨電壓,溫度的變化而變化。一般來說,溫度越低,電壓越高,信號的傳輸,翻轉(zhuǎn)越快,反之越慢。而FPGA的設(shè)計軟件在做STA的時候,往往是根據(jù)最差的工作條件下的(Worst Case)給出的。所以我們會看到這樣的現(xiàn)象,時序報告顯示的時序是不滿足設(shè)計要求的,但邏輯運行到FPGA上功能又是正常的。這是因為FPGA的實際運行條件要比Worst Case好,實際的時序也優(yōu)于報告的結(jié)果。如果是這種情況,可以不考慮使用過約束。

第二種情況,對某些關(guān)鍵的時鐘域,時序不太容易滿足,施加一個更高的時鐘約束,以期望軟件能跑出一個滿意的結(jié)果。如果是這種情況,需要注意的是EDA軟件在做布局布線的時候,會根據(jù)邏輯功能和時鐘頻率分配布局布線資源。過約束加的不合理,會造成非關(guān)鍵路徑占用有限的布局布線資源,反而會使布局布線的結(jié)果更差。所以在做過約束的時候,要根據(jù)你的設(shè)計合理設(shè)置,不能簡單的把所有時鐘都做過約束。

過約束的優(yōu)點和缺點:

過約束的優(yōu)點顯而易見,會讓的設(shè)計運行的余量更大。缺點除了我們上面討論的,如果在你的設(shè)計里面有跨時鐘域的信號傳遞,而你沒有對跨時鐘域的路徑做約束,軟件在分析跨時鐘域的delay的時候,由于變成過約束后,源時鐘和目的時鐘的頻率相關(guān)性變化了,這部分的delay約束就變成了無限小,布局布線更困難了。這是我們在做過約束設(shè)計的時候要特別注意的。

過約束還有一個問題是,比如你的設(shè)計頻率是100MHz,添加的約束是120MHz。那么在做STA的時候,軟件還是按照120MHz來分析。即使你的布局布線的時序結(jié)果是119MHz,已經(jīng)滿足設(shè)計要求,但在時序報告上,還會顯示時序不滿足。這給我們的時序分析帶來一些麻煩。

如何使用過約束使自己的設(shè)計更為健壯

在使用過約束的時候,一般情況下,以增加20%-30%為宜,太大的余量并沒有太大的意義。如果該時鐘有跨時鐘域的操作,一定要通過專門的約束(Multicycle或max delay)在明確定義這部分的延時要求。

Lattice的設(shè)計軟件中,為了配合過約束的使用,增加的一個PAR_ADJ屬性:

FREQUENCY NET“sys_clk” 100.000000 MHz PAR_ADJ 20.000000 ;

這樣的約束會告訴軟件,用100+20=120MHz做布局布線的時候,而用100MHz的約束來做STA,這樣就不會發(fā)生我們前面遇到的困擾了。

GUI的界面是這樣的:

8f86a574-8ecc-11eb-8b86-12bb97331649.png

原文標題:FPGA的過約束

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600472

原文標題:FPGA的過約束

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA芯片架構(gòu)和資源有深入的理解,精通Verilog HDL、VHDL

    、計算機相關(guān)專業(yè),具有良好的專業(yè)基礎(chǔ)知識。 2.工作年限不限,有工作經(jīng)驗或優(yōu)秀應屆畢業(yè)生亦可。 3.對FPGA芯片架構(gòu)和資源有深入的理解,精通Verilog HDL、VHDL編程語言,熟悉時序約束、時序分析
    發(fā)表于 09-15 15:23

    深度解析FPGA中的時序約束

    建立時間和保持時間是FPGA時序約束中兩個最基本的概念,同樣在芯片電路時序分析中也存在。
    的頭像 發(fā)表于 08-06 11:40 ?441次閱讀
    深度解析<b class='flag-5'>FPGA</b>中的時序<b class='flag-5'>約束</b>

    FPGA的sata接口設(shè)計時需要注意哪些問題

    FPGA的SATA接口設(shè)計時,需要注意以下幾個方面的問題,以確保設(shè)計的穩(wěn)定性和性能: 接口版本和速度 : SATA有三代標準,分別為SATA I(1.5 Gb/s)、SATA II(3.0 Gb
    發(fā)表于 05-27 16:20

    Xilinx FPGA編程技巧之常用時序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時序約束詳解,話不多說,上貨。 基本的約束方法 為了保證成功的設(shè)計,所有路徑的時序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑以及異常路徑為
    發(fā)表于 05-06 15:51

    時序約束實操

    添加約束的目的是為了告訴FPGA你的設(shè)計指標及運行情況。在上面的生成約束之后,在Result àxx.sdc中提供約束參考(請注意該文件不能直接添加到工程中,需要熱復制到別的指定目錄或
    的頭像 發(fā)表于 04-28 18:36 ?2010次閱讀
    時序<b class='flag-5'>約束</b>實操

    Xilinx FPGA約束設(shè)置基礎(chǔ)

    LOC約束FPGA設(shè)計中最基本的布局約束和綜合約束,能夠定義基本設(shè)計單元在FPGA芯片中的位置,可實現(xiàn)絕對定位、范圍定位以及區(qū)域定位。
    發(fā)表于 04-26 17:05 ?958次閱讀
    Xilinx <b class='flag-5'>FPGA</b>的<b class='flag-5'>約束</b>設(shè)置基礎(chǔ)

    Xilinx FPGA編程技巧之常用時序約束詳解

    今天給大俠帶來Xilinx FPGA編程技巧之常用時序約束詳解,話不多說,上貨。 基本的約束方法為了保證成功的設(shè)計,所有路徑的時序要求必須能夠讓執(zhí)行工具獲取。最普遍的三種路徑以及異常路徑為
    發(fā)表于 04-12 17:39

    深入理解 FPGA 的基礎(chǔ)結(jié)構(gòu)

    轉(zhuǎn)載地址:https://zhuanlan.zhihu.com/p/506828648 文章很詳細的介紹了FPGA的基礎(chǔ)結(jié)構(gòu),能更直觀的理解內(nèi)部結(jié)構(gòu)原理。對深入學習很有幫助。 以下是正文: 這一段
    發(fā)表于 04-03 17:39

    詳細介紹OVP壓保護芯片的功能及使用方法

    OVP壓保護IC:為了保護后級電路,平芯微早早推出了系列OVP壓保護芯片產(chǎn)品,很多客戶對于OVP壓保護芯片的功能和使用仍然存在一些誤解。這次我們平芯微就針對OVP壓保護芯片功能
    的頭像 發(fā)表于 02-22 18:18 ?2781次閱讀
    詳細介紹OVP<b class='flag-5'>過</b>壓保護芯片的功能及使用方法

    FPGA物理約束之布局約束

    在進行布局約束前,通常會對現(xiàn)有設(shè)計進行設(shè)計實現(xiàn)(Implementation)編譯。在完成第一次設(shè)計實現(xiàn)編譯后,工程設(shè)計通常會不斷更新迭代,此時對于設(shè)計中一些固定不變的邏輯,設(shè)計者希望它們的編譯結(jié)果
    的頭像 發(fā)表于 01-02 14:13 ?1281次閱讀
    <b class='flag-5'>FPGA</b>物理<b class='flag-5'>約束</b>之布局<b class='flag-5'>約束</b>

    FPGA物理約束之布線約束

    IS_ROUTE_FIXED命令用于指定網(wǎng)絡的所有布線進行固定約束。進入Implemented頁面后,Netlist窗口如圖1所示,其中Nets文件展開后可以看到工程中所有的布線網(wǎng)絡。
    的頭像 發(fā)表于 12-16 14:04 ?1059次閱讀
    <b class='flag-5'>FPGA</b>物理<b class='flag-5'>約束</b>之布線<b class='flag-5'>約束</b>

    FPGA的電源管理解決方案

    電子發(fā)燒友網(wǎng)站提供《FPGA的電源管理解決方案.pdf》資料免費下載
    發(fā)表于 11-24 14:42 ?0次下載
    <b class='flag-5'>FPGA</b>的電源管<b class='flag-5'>理解</b>決方案

    物理約束實踐:I/O約束

    I/O約束(I/O Constraints)包括I/O標準(I/OStandard)約束和I/O位置(I/O location)約束。
    的頭像 發(fā)表于 11-18 16:42 ?981次閱讀
    物理<b class='flag-5'>約束</b>實踐:I/O<b class='flag-5'>約束</b>

    FPGA時序約束--基礎(chǔ)理論篇

    FPGA開發(fā)過程中,離不開時序約束,那么時序約束是什么?簡單點說,FPGA芯片中的邏輯電路,從輸入到輸出所需要的時間,這個時間必須在設(shè)定的時鐘周期內(nèi)完成,更詳細一點,即需要滿足建立和保
    發(fā)表于 11-15 17:41

    #共建FPGA開發(fā)者技術(shù)社區(qū),為FPGA生態(tài)點贊#+2023.11.8+FPGA設(shè)計的實踐與經(jīng)驗分享

    一:理解FPGA FPGA由邏輯單元,(LUT)和存情單元(FF) 組成,可以通過VHDL或Verlo等硬件描述語言進行代碼編寫,初學者需要堂握FPGA的基本結(jié)構(gòu)和使用方法,從而
    發(fā)表于 11-08 15:25