<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

時序約束實操

XL FPGA技術交流 ? 來源:XL FPGA技術交流 ? 作者:XL FPGA技術交流 ? 2024-04-28 18:36 ? 次閱讀

易靈思提供了相關時序約束的PPT,內容非常全面,但是我們還是發現很多客戶在使用Efinity時,時序約束存在很多問題。

添加約束

添加約束的目的是為了告訴FPGA你的設計指標及運行情況。在上面的生成約束之后,在Resultàxx.sdc中提供約束參考(請注意該文件不能直接添加到工程中,需要熱復制到別的指定目錄或者新建自己的SDC文件添加到工程)。

c5883582-0365-11ef-b759-92fbcf53809c.png

編譯完成之后可以查看時序報告,也可以通過routingàxx.timing.rpt來查看路徑詳細延時信息,如果想查看更可以通過指令來打印或者通過print_critical_path來控制打印的路徑數量 。

時鐘約束

(1)通過IO輸入的gclk。

如下圖,因為時鐘是通過外部IO輸入的,所以FPGA并不知道這個時鐘頻率是多少。打開.pt.sdc可以看到提供相關約束參考。

c5a60440-0365-11ef-b759-92fbcf53809c.png

我們只需要補充相關的時鐘周期即可以使用。

c5dc2ec6-0365-11ef-b759-92fbcf53809c.png

比如,我們要約束adc_clk_in為100M:

create_clock-period10.000[get_ports{adc_clk_in}]

(2)PLL的輸出的時鐘約束。

因為PLL的輸入輸出頻率都是設置好的,所以軟件可以檢測到。如下圖,輸入輸出時鐘頻率都是30MHz.

c5ef31ec-0365-11ef-b759-92fbcf53809c.png

在pt.sdc文件中會提供相應的約束 。

create_clock -period 33.3333 pll_inst1_CLKOUT0

在時鐘約束完成之后,可以查看Routing -->.timing.rpt文件中所有的時鐘是否都進行了完整的約束 。

c6117f9a-0365-11ef-b759-92fbcf53809c.png

IO約束

首先我們要了解易靈思的架構是core和interface分開的,相對于core,interface內部的GPIO,LVDS,JTAG及其它都是外設。所以所有針對于input_delay和outpu_delay的約束都是針對于interface的。至于FPGA對于我們平時理解的外設,比如FPGA外部連接一片AD/DA,這種是沒有辦法約束的。

c63cd6e0-0365-11ef-b759-92fbcf53809c.png

在pt.sdc文件中可以看到關于set_input_delay和set_output_delay的約束??梢钥吹接行┘s束是已經屏蔽,那是因為添加的IO沒有打開寄存器。

c6646bba-0365-11ef-b759-92fbcf53809c.png

如下圖,易靈思建議把所有IO都添加上IO寄存器。

c6823da2-0365-11ef-b759-92fbcf53809c.png

有的客戶會有疑問,clock的PIN Name是什么?其實就是與core內連接的寄存器用什么時鐘,interface中就用什么時鐘。

c699bf86-0365-11ef-b759-92fbcf53809c.png

(3)跨時鐘域約束

在保證程序上對跨時鐘域做了處理之后,約束上要對跨時鐘進行約束 ??鐣r鐘約束的語法是set_clock_groups或者set_false_path,關于用于網上很多,可以自行查找。

set_clock_groups -asynchronous -group {jtag_inst1_TCK jtag_inst1_DRCK}

在所有時鐘約束完成之后要保證時序報告的slack都為正值。

c6b776c0-0365-11ef-b759-92fbcf53809c.png

編譯完成之后可以查看時序報告,也可以通過routingàxx.timing.rpt來查看路徑詳細延時信息

如果時序上還有違例,在result--> Routing-->timing.rpt文件中查看具體的路徑。根據路徑來解決具體的時序問題。

c6d31506-0365-11ef-b759-92fbcf53809c.png

如果想查看更可以通過指令來打印或者通過print_critical_path來控制打印的路徑數量 。

c6f496cc-0365-11ef-b759-92fbcf53809c.png

也可以通過report_timing來報告具體的時序路徑及數量。

c71631ba-0365-11ef-b759-92fbcf53809c.png

先打開Tcl CommandConsole,如果Show/Hide Tcl commandConsole是灰色的,要先點擊Load Place and Route Data加載布局和布線的數據。

c7318776-0365-11ef-b759-92fbcf53809c.png

打開Tcl commandconsolel,使用report_timing命令來查看需要的路徑。

c7515286-0365-11ef-b759-92fbcf53809c.png

具體report_timing的用法,請參考EfinityTiming Closure UserGuide.pdf。

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

    關注

    1608

    文章

    21367

    瀏覽量

    594611
  • pll
    pll
    +關注

    關注

    6

    文章

    745

    瀏覽量

    134642
  • 時鐘
    +關注

    關注

    10

    文章

    1490

    瀏覽量

    130443
  • 時序約束
    +關注

    關注

    1

    文章

    113

    瀏覽量

    13364
收藏 人收藏

    評論

    相關推薦

    如何在FPGA設計環境中加入時序約束?

    在給FPGA做邏輯綜合和布局布線時,需要在工具中設定時序約束。通常,在FPGA設計工具中都FPGA中包含有4種路徑:從輸入端口到寄存器,從寄存器到寄存器,從寄存器到輸出,從輸入到輸出的純組合邏輯
    的頭像 發表于 10-12 12:00 ?967次閱讀
    如何在FPGA設計環境中加入<b class='flag-5'>時序</b><b class='flag-5'>約束</b>?

    FPGA I/O口時序約束講解

    前面講解了時序約束的理論知識FPGA時序約束理論篇,本章講解時序約束實際使用。
    發表于 08-14 18:22 ?1033次閱讀
    FPGA I/O口<b class='flag-5'>時序</b><b class='flag-5'>約束</b>講解

    FPGA時序約束時序路徑和時序模型

    時序路徑作為時序約束時序分析的物理連接關系,可分為片間路徑和片內路徑。
    發表于 08-14 17:50 ?569次閱讀
    FPGA<b class='flag-5'>時序</b><b class='flag-5'>約束</b>之<b class='flag-5'>時序</b>路徑和<b class='flag-5'>時序</b>模型

    FPGA時序約束之建立時間和保持時間

    FPGA中時序約束是設計的關鍵點之一,準確的時鐘約束有利于代碼功能的完整呈現。進行時序約束,讓軟件布局布線后的電路能夠滿足使用的要求。
    發表于 08-14 17:49 ?947次閱讀
    FPGA<b class='flag-5'>時序</b><b class='flag-5'>約束</b>之建立時間和保持時間

    時序約束連載03~約束步驟總結

    本小節對時序約束做最終的總結
    的頭像 發表于 07-11 17:18 ?434次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>連載03~<b class='flag-5'>約束</b>步驟總結

    時序約束連載02~時序例外

    本文繼續講解時序約束的第四大步驟——時序例外
    的頭像 發表于 07-11 17:17 ?487次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>連載02~<b class='flag-5'>時序</b>例外

    時序約束出現時序違例(Slack為負數),如何處理?

    時序約束出現時序違例(Slack為負數),如何處理?
    的頭像 發表于 07-10 15:47 ?3786次閱讀

    淺談時序設計和時序約束

    ??本文主要介紹了時序設計和時序約束。
    的頭像 發表于 07-04 14:43 ?908次閱讀

    時序約束怎么用?時序約束到底是要干嘛?

    很多小伙伴開始學習時序約束的時候第一個疑惑就是標題,有的人可能會疑惑很久。不明白時序約束是什么作用,更不明白怎么用。
    的頭像 發表于 06-28 15:10 ?1059次閱讀
    <b class='flag-5'>時序</b><b class='flag-5'>約束</b>怎么用?<b class='flag-5'>時序</b><b class='flag-5'>約束</b>到底是要干嘛?

    如何在Vivado中添加時序約束呢?

    今天介紹一下,如何在Vivado中添加時序約束,Vivado添加約束的方法有3種:xdc文件、時序約束向導(Constraints Wiza
    的頭像 發表于 06-26 15:21 ?2452次閱讀
    如何在Vivado中添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>呢?

    FPGA時序約束的原理是什么?

    FPGA開發過程中,離不開時序約束,那么時序約束是什么?簡單點說,FPGA芯片中的邏輯電路,從輸入到輸出所需要的時間,這個時間必須在設定的時鐘周期內完成,更詳細一點,即需要滿足建立和保
    發表于 06-26 14:42 ?411次閱讀
    FPGA<b class='flag-5'>時序</b><b class='flag-5'>約束</b>的原理是什么?

    FPGA設計-時序約束(理論篇)

    STA(Static Timing Analysis,即靜態時序分析)在實際FPGA設計過程中的重要性是不言而喻的
    發表于 06-26 09:01 ?410次閱讀
    FPGA設計-<b class='flag-5'>時序</b><b class='flag-5'>約束</b>(理論篇)

    如何在Vivado中添加時序約束

    前面幾篇文章已經詳細介紹了FPGA時序約束基礎知識以及常用的時序約束命令,相信大家已經基本掌握了時序約束
    的頭像 發表于 06-23 17:44 ?1535次閱讀
    如何在Vivado中添加<b class='flag-5'>時序</b><b class='flag-5'>約束</b>

    FPGA時序約束之偽路徑和多周期路徑

    前面幾篇FPGA時序約束進階篇,介紹了常用主時鐘約束、衍生時鐘約束、時鐘分組約束的設置,接下來介紹一下常用的另外兩個
    發表于 06-12 17:33 ?1140次閱讀

    FPGA時序約束之衍生時鐘約束和時鐘分組約束

    在FPGA設計中,時序約束對于電路性能和可靠性非常重要。在上一篇的文章中,已經詳細介紹了FPGA時序約束的主時鐘約束。
    發表于 06-12 17:29 ?1627次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>