RM新时代网站-首页

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

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

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

如何縮短Vivado的運行時間

電子工程師 ? 來源:fqj ? 2019-05-29 14:37 ? 次閱讀

在Vivado Implementation階段,有時是有必要分析一下什么原因?qū)е逻\行時間(runtime)過長,從而找到一些方法來縮短運行時間。

首先,要明確到底哪個階段耗時過長。Vivado Implementation主要有三個子步驟:opt_design、place_design和route_design。Implementation結(jié)束后,會在".runs/impl_x"目錄下生成一個runme.log文件。在這個文件中可以查看每個子步驟的耗時。如下圖所示,可以看到place_design耗時2分41秒。

如何縮短Vivado的運行時間

可采用如下一些方法縮短運行時間。

Implementation Strategy

如果只是評估資源利用率,可使用Flow_Quick策略。該策略不是時序驅(qū)動的策略,因此可以快速執(zhí)行Implementation。策略Flow_RuntimeOptimized是時序驅(qū)動的策略,可以快速完成Implementation,它是設(shè)計性能和運行時間之間一種折中。

檢查約束

對于時序約束,我們要求“干凈且合理”。所謂“干凈”,是指約束完備,不會出現(xiàn)漏約或者約束被覆蓋的情形。例如,由于set_clock_groups的優(yōu)先級高于set_max_delay,這就有可能造成后者的約束被覆蓋。所謂“合理”,是指約束的數(shù)值是正確的。這在多周期路徑約束以及跨時鐘域路徑約束中會經(jīng)常碰到,對于這類路徑要格外注意。例如,如果多周期路徑的hold requirement不是0,那么有可能就是約束不合理;如果跨時鐘域路徑的path requirement為1ns,這也是不合理的。

此外,在用Tcl命令時,盡可能地去緩存被復(fù)用的對象。例如,如果通過get_nets獲得的一組nets在后續(xù)約束中被反復(fù)使用,那么可將get_nets的返回結(jié)果賦給一個變量,后續(xù)使用時只需調(diào)用該變量即可。同時,通過選項-filter找到更準(zhǔn)確的對象,例如:對于時序路徑,通過屬性IS_SEQUENTIAL找到時序單元,從而避免了獲得其他一些不期望的結(jié)果。

約束路徑越具體越節(jié)省運行時間,例如:如果set_false_path只使用了-from選項,那么Vivado在搜索這些路徑時就會比較耗時。

管理生成報告

生成報告也會消耗一些時間。Vivado提供了Report strategy,如下圖所示。根據(jù)設(shè)計分析的需求選擇生成報告可節(jié)省一定的運行時間。

如何縮短Vivado的運行時間

布線

擁塞對運行時間有很大的影響。因此,如果設(shè)計出現(xiàn)了擁塞問題,就要把其作為首要問題去解決。同時,在route_design階段,使用選項-ultrathreads也可縮短運行時間。

增量編譯

如果設(shè)計只是有一小部分改動,那么可嘗試增量Implementation。這在一定程度上也會縮短運行時間。

設(shè)置多線程

Vivado 2018.x的版本,無論是Synthesis還是Implementation,都可以支持多線程。只需要通過如下命令即可設(shè)置線程個數(shù)。對于Synthesis,最大線程數(shù)為4,對于Implementation,最大線程數(shù)為8。

如何縮短Vivado的運行時間

ECO流程

對于微小的改動,例如修改ILA的Debug probes或者把內(nèi)部net鏈接到某個Package Pin,都可以采用ECO流程,可以極大地縮短運行時間。ECO具體流程可看這里(替換Debug Probes其實很簡單),文檔ug904中也有詳細(xì)介紹。

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

    關(guān)注

    19

    文章

    812

    瀏覽量

    66470
  • 時序驅(qū)動
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1497

原文標(biāo)題:如何縮短Vivado運行時間

文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何檢查Linux服務(wù)器的運行時間

    Linux 中的 uptime 用于查看系統(tǒng)啟動后的運行時間。它是一個比較簡單的 Linux 命令,可以不帶參數(shù)直接運行。
    發(fā)表于 11-25 15:25 ?1.5w次閱讀
    如何檢查Linux服務(wù)器的<b class='flag-5'>運行時間</b>

    運行時錯誤Vivado 2016.2

    消息。在此之后我甚至無法打開檢查點 - 如果我正在嘗試打開dcp,我將收到運行時錯誤“R6025 -pure虛函數(shù)調(diào)用”。在本主題中看起來像是一個錯誤:得到-R6025-運行時錯誤 - 運行 - 解構(gòu)
    發(fā)表于 10-30 18:02

    雙電池電源管理器使運行時間延長12%,并將充電時間縮短一半

    DN277- 雙電池電源管理器使運行時間延長12%,并將充電時間縮短一半
    發(fā)表于 08-12 08:06

    freertos的任務(wù)運行時間怎么設(shè)置

    對于相同優(yōu)先級的任務(wù)采用時間片輪詢的方式運行,那比如說有兩個優(yōu)先級都為5的任務(wù),那這兩個任務(wù)的運行時間如何設(shè)置呢?在rt-thread中創(chuàng)建任務(wù)時就可以設(shè)置任務(wù)的運行時間,在freer
    發(fā)表于 07-19 08:03

    C語言教程之顯示程序運行時間

    C語言教程之顯示程序運行時間,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-25 16:09 ?0次下載

    如何用SysTick實現(xiàn)測量程序運行時間

    在實際的項目開發(fā)過程中,常常遇到需要得到一段代碼的運行時間,通常的方法是用示波器來測量,這篇博文將用 SysTick 來實現(xiàn) 精確測量 程序運行時間。 STM32F4 的內(nèi)核定時器SysTick是一個24位的定時器,需要注
    的頭像 發(fā)表于 05-09 14:07 ?6038次閱讀
    如何用SysTick實現(xiàn)測量程序<b class='flag-5'>運行時間</b>

    電機(jī)運行時間進(jìn)行排列 是分為兩個部分來完成這個程序的設(shè)計的

    前幾天有個學(xué)員咨詢一個程序設(shè)計的問題,程序的控制要求如下:需要控制5臺電機(jī)的運行,每臺電機(jī)運行時需要記錄運行時間,電機(jī)啟動運行時,根據(jù)記錄的運行時間
    的頭像 發(fā)表于 07-19 08:57 ?7189次閱讀
    電機(jī)<b class='flag-5'>運行時間</b>進(jìn)行排列 是分為兩個部分來完成這個程序的設(shè)計的

    最大化延長即使具有老化電池的汽車電池組運行時間

    最大化延長即使具有老化電池的汽車電池組運行時間
    發(fā)表于 03-20 12:44 ?9次下載
    最大化延長即使具有老化電池的汽車電池組<b class='flag-5'>運行時間</b>

    DN277-雙電池電源管理器將運行時間提高12%,并將充電時間縮短一半

    DN277-雙電池電源管理器將運行時間提高12%,并將充電時間縮短一半
    發(fā)表于 04-27 15:35 ?1次下載
    DN277-雙電池電源管理器將<b class='flag-5'>運行時間</b>提高12%,并將充電<b class='flag-5'>時間</b><b class='flag-5'>縮短</b>一半

    如何高效測量ECU的運行時間

    ,最終可能會引起運行時間方面的問題。這在項目后期需要大量的時間和金錢來解決。如果不能掌握系統(tǒng)的運行狀態(tài),則很難發(fā)現(xiàn)系統(tǒng)內(nèi)缺陷的根源。 解決方案 將TA軟件工具套件與VX1000測量標(biāo)定硬件相結(jié)合,可同步分析 ECU內(nèi)部
    的頭像 發(fā)表于 10-28 11:05 ?2211次閱讀

    淺析STM32代碼運行時間的技巧

    前言 ????測試代碼的運行時間的兩種方法: 使用單片機(jī)內(nèi)部定時器,在待測程序段的開始啟動定時器,在待測程序段的結(jié)尾關(guān)閉定時器。為了測量的準(zhǔn)確性,要進(jìn)行多次測量,并進(jìn)行平均取值。 借助示波器的方法
    的頭像 發(fā)表于 11-09 09:52 ?3872次閱讀
    淺析STM32代碼<b class='flag-5'>運行時間</b>的技巧

    單片雙電池電源管理器可延長運行時間縮短充電時間

    效的方法是并行充電和放電,與順序系統(tǒng)相比,它可以使單個電池的運行時間增加一倍以上,并將充電時間縮短一半。雖然長期以來一直可以并聯(lián)多個電池的充電和放電,但到目前為止,很難設(shè)計出電路來做到這一點。
    的頭像 發(fā)表于 03-09 16:39 ?1789次閱讀
    單片雙電池電源管理器可延長<b class='flag-5'>運行時間</b>并<b class='flag-5'>縮短</b>充電<b class='flag-5'>時間</b>

    ch32v307記錄程序運行時間

    ch32v307記錄程序運行時間 在程序開發(fā)中,很重要的一項任務(wù)就是對程序的運行時間進(jìn)行評估。對于大型的程序系統(tǒng)來說,它們通常需要處理大量的數(shù)據(jù)或進(jìn)行復(fù)雜的計算操作。因此,如果程序的運行時間過長
    的頭像 發(fā)表于 08-22 15:53 ?901次閱讀

    西門子SCL編程50臺電機(jī)運行時間累計方法

    當(dāng)RUN信號為TRUE時,開始計時,為FALSE時停止計時,單次運行時間清零,長按RESET為5秒時,單次和總運行時間都清零。
    發(fā)表于 11-27 09:59 ?1864次閱讀
    西門子SCL編程50臺電機(jī)<b class='flag-5'>運行時間</b>累計方法

    三菱plc累計運行時間怎么編程

    具有重要意義。本文將詳細(xì)介紹如何使用三菱PLC編程實現(xiàn)累計運行時間的統(tǒng)計功能。 一、概述 累計運行時間是指設(shè)備或系統(tǒng)在一定時間內(nèi)的總運行時間。在工業(yè)生產(chǎn)中,對設(shè)備的累計
    的頭像 發(fā)表于 06-20 11:31 ?2276次閱讀
    RM新时代网站-首页