91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Vivado開發(fā)技巧:綜合策略與合適的編譯順序

454398 ? 來源:FPGADesigner的博客 ? 作者:FPGADesigner的博客 ? 2020-12-29 14:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

綜合(Synthesis)是指將RTL設(shè)計轉(zhuǎn)換為門級描述。Vivado開發(fā)套件中的綜合工具是一款時序驅(qū)動型、專為內(nèi)存使用率和性能優(yōu)化的綜合工具,支持System Verilog 2012、Verilog 2005、VHDL 2008、混合語言中的可綜合子集,以及XDC設(shè)計約束文件(基于工業(yè)標(biāo)準(zhǔn)的SDC文件),此外還支持RTL屬性來控制綜合細(xì)節(jié)。

綜合設(shè)置選項
在Flow Navigator中點擊Settings,切換到Synthesis標(biāo)簽中:

1.Constraints部分
選擇用于綜合的約束集,一個約束集是一組XDC約束文件,默認(rèn)選擇狀態(tài)為active的約束集。設(shè)計約束分兩種:

物理約束:定義管腳布局、單元(如塊RAM、查找表、觸發(fā)器等)布局的的絕對或相對位置;

時序約束:定義設(shè)計的頻率需求。如果沒有時序約束,Vivado會根據(jù)布線長度和布局擁擠度優(yōu)化設(shè)計。

2.Options部分
選擇綜合運行時使用的策略(strategy)。Vivado提供了幾種預(yù)定義的策略,后文將講述如何創(chuàng)建自定義策略。這里給出綜合策略中每個設(shè)置選項的含義:

flatten_hierarchy:定義綜合工具如何控制層次結(jié)構(gòu)(比如模塊之間的調(diào)用),選擇將所有層次展開融為一體進(jìn)行綜合,還是分別獨立綜合再連接到一起。

none表示從不展開層次結(jié)構(gòu),綜合輸出與原始RTL有相同的層次;

full表示全部展開層次結(jié)構(gòu),只留下頂層;

rebuilt讓綜合工具展開層次結(jié)構(gòu)后進(jìn)行綜合,綜合后再按原始RTL重建層次結(jié)構(gòu)。這樣既保留了跨界優(yōu)化的好處,又讓最終層次結(jié)構(gòu)與RTL類似,便于分析。

gated_clock_conversion:選擇是否將門控時鐘轉(zhuǎn)換為使能信號。設(shè)計中應(yīng)該避免使用門控時鐘,需要的時鐘信號應(yīng)盡可能由MMCM/PLL產(chǎn)生。轉(zhuǎn)換過程需要與RTL屬性配合工作,具體在第24篇介紹。

bufg:設(shè)置綜合工具可以從設(shè)計中推斷出多少個BUFG。比如使用默認(rèn)的12時,如果RTL中實例化了3個BUFG,那么綜合工具最多還可以推測出9個沒有明確實例化的BUFG。

fanout_limit:設(shè)置一個信號的最大驅(qū)動負(fù)載數(shù)量,如果超出了該限制,就會復(fù)制一個相同的邏輯來驅(qū)動超出的負(fù)載。這里只是一個總體設(shè)置,在RTL設(shè)計中還可以使用RTL屬性進(jìn)行更具體的設(shè)置,具體在第24篇介紹。

directive:設(shè)置Vivado綜合運行時擦愛去的優(yōu)化方式,具體包括

Default,默認(rèn)設(shè)置。

RuntimeOptimized,執(zhí)行最短時間的優(yōu)化選項,會忽略一些RTL優(yōu)化來減少綜合運行時間。

AreaOptimized_high/medium,執(zhí)行一些通用的面積優(yōu)化。

AlternateRoutability,使用算法提高布線能力,減少MUXF和CARRY的使用。

AreaMapLargeShiftRegToBRAM,將大型的移位寄存器用塊RAM來實現(xiàn)。

AreaMultThresholdDSP,會更多地使用DSP塊資源。

FewerCarryChains,位寬較大的操作數(shù)使用查找表(LUT)實現(xiàn),而不用進(jìn)位鏈。

retiming:啟用該功能,可以通過在組合門和LUT之間移動寄存器(達(dá)到寄存器平衡狀態(tài))提高內(nèi)部時鐘時序路徑的電路性能。該功能會保留原來的功能和電路延遲,也不需要改變RTL源文件。

fsm_extraction:設(shè)置綜合如何從設(shè)計中提取和映射有限狀態(tài)機,具體在第24篇介紹。

keep_equivalent_registers:阻止合并有相同輸入邏輯的寄存器。

resource_sharing:設(shè)置不同信號間共享算數(shù)操作符,選擇為auto時設(shè)計會根據(jù)設(shè)計時序判斷是否進(jìn)行資源共享。

no_lc:選中會關(guān)閉LUT組合。

no_srlextract:選中該選項時,移位寄存器會用普通的寄存器實現(xiàn),而不用FPGA內(nèi)部專用的SRL資源。

max_bram:設(shè)置設(shè)計中運行使用的最大塊RAM數(shù)量。通常當(dāng)設(shè)計中有黑盒子或第三方網(wǎng)表時,使用該選項來節(jié)省空間。默認(rèn)值為-1,表示允許使用該FPGA中所有的塊RAM。

max_uram:設(shè)置設(shè)計中運行使用的最大UltraRAM數(shù)量(對于UltraScale架構(gòu)FPGA而言)。-1,表示允許使用該FPGA中所有的UltraRAM。

max_dsp:設(shè)置設(shè)計中運行使用的最大DSP塊數(shù)量。通常當(dāng)設(shè)計中有黑盒子或第三方網(wǎng)表時,使用該選項來節(jié)省空間。默認(rèn)值為-1,表示允許使用該FPGA中所有的DSP資源。

max_bram_cascade_height:設(shè)置可以將BRAM級聯(lián)在一起的最大數(shù)量。

max_uram_cascade_height:設(shè)置可以將URAM級聯(lián)在一起的最大數(shù)量。

cascade_dsp:設(shè)置在求DSP塊輸出總數(shù)時使用多少個加法器,默認(rèn)計算時會使用塊內(nèi)部的加法器鏈。設(shè)置為tree會強制將該計算在fabric結(jié)構(gòu)中實現(xiàn)。

no_timing_driven:禁用默認(rèn)的時序驅(qū)動綜合算法,這樣可以減少綜合運行時間,但會忽略綜合中時序的影響。

sfcu:在單文件編譯單元模式下運行綜合。

assert:將VHDL中的assert狀態(tài)納入評估。失敗或錯誤級別會停止綜合進(jìn)程并產(chǎn)生一個錯誤信息;警報級別會產(chǎn)生一個警告信息。

tcl.pre/tcl.post:選擇tcl文件,在綜合前和綜合后會自動運行其中的命令。這兩個文件應(yīng)該放在相應(yīng)的運行目錄下,如project/project.runs/run_name。

創(chuàng)建綜合策略
除了Vivado提供的配置好的綜合策略外,還可以自行配置。在Settings中根據(jù)需要修改了設(shè)置選項后,點擊右側(cè)的Save strategy as按鈕(如下圖紅框),會彈出窗口,填寫策略名稱和相關(guān)描述,即可保存為用戶自定義的綜合策略。綜合策略列表的User defined strategies中即會出現(xiàn)自定義的綜合策略。

在Settings->Tool Settings->Strategies中也可以設(shè)置綜合策略,點擊“+”即可新建策略。如果想在已有策略的基礎(chǔ)上修改,則選中一個策略,點擊上方的Copy Strategy按鈕,User Defined Strategies中就會出現(xiàn)備份以供修改(Vivado提供的策略是不能修改的)。點擊Apply應(yīng)用配置后,綜合策略列表中就會出現(xiàn)自定義的策略。

控制文件編譯順序
綜合時必須選取合適的編譯順序,比如一個文件需要用到另一個文件中的相關(guān)申明。Vivado按照RTL文件的層次化結(jié)構(gòu)編譯文件,相關(guān)順序顯示在Sources窗口的Compile Order子窗口中(在底部選擇切換)。

Vivado可以自動識別和設(shè)置最佳的頂層模塊,同時自動管理編譯順序。頂層模塊文件和該層次結(jié)構(gòu)下所有的文件,都會以正確的順序用于綜合和仿真。Sources窗口的右鍵菜單->Hierarchy Update命令用于設(shè)置Vivado如何處理設(shè)計中文件的改動。

Automatic Update and Compile Order設(shè)定當(dāng)源文件發(fā)生改動時,工具自動管理編譯順序,Compile Order窗口中將顯示編譯順序,Hierarchy窗口中顯示文件是否在層次結(jié)構(gòu)中使用以及所處的位置。

Automatic Update, Manual Compile Order設(shè)定Vivado可以自動決定最佳頂層模塊,但是允許人工設(shè)定編譯順序。在Compile Order窗口中拖動文件所處位置即可完成修改。

Vivado支持將Verilog(.v)或Verilog Header(.vh)文件作為全局`include文件。Vivado會在其它源文件前優(yōu)先處理此類文件。選中需要添加的文件,右鍵->Set Global Include即可,或者在屬性窗口中選中相應(yīng)復(fù)選框。

o4YBAF9uJbqACBuPAAAsHRGDTjI188.png

編輯:hfy

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

    關(guān)注

    30

    文章

    822

    瀏覽量

    131701
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    394

    瀏覽量

    62661
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    857

    瀏覽量

    71120
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    簡單高效的鴻蒙編譯提速技巧

    在鴻蒙應(yīng)用開發(fā)編譯構(gòu)建是開發(fā)者最頻繁的操作,每一次編譯提速都能顯著提升項目整體開發(fā)效率。本次分享幾個簡單卻高效的鴻蒙
    的頭像 發(fā)表于 03-04 16:09 ?50次閱讀
    簡單高效的鴻蒙<b class='flag-5'>編譯</b>提速技巧

    通過vivado HLS設(shè)計一個FIR低通濾波器

    Vivado HLS是一款強大的高層次綜合工具,可將C/C++代碼轉(zhuǎn)換為硬件描述語言(HDL),顯著提升FPGA開發(fā)效率。
    的頭像 發(fā)表于 01-20 16:19 ?316次閱讀
    通過<b class='flag-5'>vivado</b> HLS設(shè)計一個FIR低通濾波器

    一文詳解SystemC仿真庫的編譯

    AMD Vivado 設(shè)計套件以文件和庫的形式提供仿真模型。仿真庫包含器件和 IP 的行為和時序模型。編譯后的庫可供多個設(shè)計項目使用。用戶必須在設(shè)計仿真之前通過名為 compile_simlib 的實用程序編譯這些文件,以便為目
    的頭像 發(fā)表于 12-12 15:08 ?4830次閱讀
    一文詳解SystemC仿真庫的<b class='flag-5'>編譯</b>

    嵌入式開發(fā)工具版本的選擇策略

    今天,我們就來結(jié)合嵌入式常見的幾個軟件(如Keil / IAR、VS Code 、Source Insight、VMware、Git等),簡單講一講嵌入式開發(fā)工具軟件版本選擇策略。 開發(fā)團隊軟件工具
    發(fā)表于 11-25 06:11

    使用Vivado 2018.2編譯E203的mcs文件,遇到的問題求解

    Hi 各位,我在嘗試使用Vivado 2018.2編譯E203的mcs文件,遇到如下兩個問題: 1. 按照書中步驟運行,執(zhí)行完make mcs之后得到的mcs文件與git中預(yù)編譯出來的mcs文件有
    發(fā)表于 11-11 06:04

    vivado時序分析相關(guān)經(jīng)驗

    vivado綜合后時序為例主要是有兩種原因?qū)е拢?1,太多的邏輯級 2,太高的扇出 分析時序違例的具體位置以及原因可以使用一些tcl命令方便快速得到路徑信息
    發(fā)表于 10-30 06:58

    Windows系統(tǒng)下用vivado將電路燒寫到MCU200T板載FLASH的方法

    文件自動完成FPGA硬件電路的燒寫。這樣就不必每次調(diào)試軟件之前都需要重新打開vivado工程下載bitstream,可以更加方便地進(jìn)行嵌入式軟件開發(fā)。 首先打開vivado工程,綜合
    發(fā)表于 10-29 08:21

    vcs和vivado聯(lián)合仿真

    我們在做參賽課題的過程中發(fā)現(xiàn),上FPGA開發(fā)板跑系統(tǒng)時,有時需要添加vivado的ip核。但是vivado仿真比較慢,vcs也不能直接對添加了vivado ip核的soc系統(tǒng)進(jìn)行仿真。
    發(fā)表于 10-24 07:28

    FPGA開發(fā)vivado綜合、下載程序問題匯總

    問題 做vivado綜合時,可能會出現(xiàn)識別不到FPGA開發(fā)板的問題。我們用的是DDR200T開發(fā)板,在確定jtag接線無誤后,我們懷疑是驅(qū)動程序的問題。我們采用的方法是將驅(qū)動程序卸了再
    發(fā)表于 10-24 07:12

    如何在Vivado上仿真蜂鳥SOC,仿真NucleiStudio編譯好的程序

    如標(biāo)題所示,我們分享如何在Vivado上仿真蜂鳥SOC,仿真NucleiStudio編譯好的程序 具體步驟 1. 將蜂鳥soc移植到Vivado 只要將端口映射好,注意配置好時鐘和bank
    發(fā)表于 10-21 11:08

    Vivado無法選中開發(fā)板的常見原因及解決方法

    在使用 AMD Vivado Design Suite 對開發(fā)板(Evaluation Board)進(jìn)行 FPGA 開發(fā)時,我們通常希望在創(chuàng)建工程時直接選擇開發(fā)板,這樣
    的頭像 發(fā)表于 07-15 10:19 ?1709次閱讀
    <b class='flag-5'>Vivado</b>無法選中<b class='flag-5'>開發(fā)</b>板的常見原因及解決方法

    適用于Versal的AMD Vivado 加快FPGA開發(fā)完成Versal自適應(yīng)SoC設(shè)計

    設(shè)計、編譯、交付,輕松搞定。更快更高效。 Vivado 設(shè)計套件提供經(jīng)過優(yōu)化的設(shè)計流程,讓傳統(tǒng) FPGA 開發(fā)人員能夠加快完成 Versal 自適應(yīng) SoC 設(shè)計。 面向硬件開發(fā)人員的
    的頭像 發(fā)表于 05-07 15:15 ?1331次閱讀
    適用于Versal的AMD <b class='flag-5'>Vivado</b>  加快FPGA<b class='flag-5'>開發(fā)</b>完成Versal自適應(yīng)SoC設(shè)計

    Vivado HLS設(shè)計流程

    為了盡快把新產(chǎn)品推向市場,數(shù)字系統(tǒng)的設(shè)計者需要考慮如何加速設(shè)計開發(fā)的周期。設(shè)計加速主要可以從“設(shè)計的重用”和“抽象層級的提升”這兩個方面來考慮。Xilinx 推出的 Vivado HLS 工具可以
    的頭像 發(fā)表于 04-16 10:43 ?1630次閱讀
    <b class='flag-5'>Vivado</b> HLS設(shè)計流程

    電機大范圍調(diào)速的綜合電壓調(diào)制策略

    針對電動汽車要求驅(qū)動電機具有大范圍調(diào)速要求和目前任何單種基本調(diào)制方式都無法做到全調(diào)制比范圍內(nèi)性能最優(yōu)的問題,提出了一種綜合的調(diào)制策略:在低調(diào)制比階段使用傳統(tǒng)的SVPWM策略,在高調(diào)制比階段
    發(fā)表于 04-01 14:51

    一文詳解Vivado時序約束

    Vivado的時序約束是保存在xdc文件中,添加或創(chuàng)建設(shè)計的工程源文件后,需要創(chuàng)建xdc文件設(shè)置時序約束。時序約束文件可以直接創(chuàng)建或添加已存在的約束文件,創(chuàng)建約束文件有兩種方式:Constraints Wizard和Edit Timing Constraints,在綜合
    的頭像 發(fā)表于 03-24 09:44 ?4833次閱讀
    一文詳解<b class='flag-5'>Vivado</b>時序約束