色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

454398 ? 來源:FPGADesigner的博客 ? 作者:FPGADesigner的博客 ? 2020-12-29 14:07 ? 次閱讀

綜合(Synthesis)是指將RTL設計轉換為門級描述。Vivado開發套件中的綜合工具是一款時序驅動型、專為內存使用率和性能優化的綜合工具,支持System Verilog 2012、Verilog 2005、VHDL 2008、混合語言中的可綜合子集,以及XDC設計約束文件(基于工業標準的SDC文件),此外還支持RTL屬性來控制綜合細節。

綜合設置選項
在Flow Navigator中點擊Settings,切換到Synthesis標簽中:

1.Constraints部分
選擇用于綜合的約束集,一個約束集是一組XDC約束文件,默認選擇狀態為active的約束集。設計約束分兩種:

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

時序約束:定義設計的頻率需求。如果沒有時序約束,Vivado會根據布線長度和布局擁擠度優化設計。

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

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

none表示從不展開層次結構,綜合輸出與原始RTL有相同的層次;

full表示全部展開層次結構,只留下頂層;

rebuilt讓綜合工具展開層次結構后進行綜合,綜合后再按原始RTL重建層次結構。這樣既保留了跨界優化的好處,又讓最終層次結構與RTL類似,便于分析。

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

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

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

directive:設置Vivado綜合運行時擦愛去的優化方式,具體包括

Default,默認設置。

RuntimeOptimized,執行最短時間的優化選項,會忽略一些RTL優化來減少綜合運行時間。

AreaOptimized_high/medium,執行一些通用的面積優化。

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

AreaMapLargeShiftRegToBRAM,將大型的移位寄存器用塊RAM來實現。

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

FewerCarryChains,位寬較大的操作數使用查找表(LUT)實現,而不用進位鏈。

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

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

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

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

no_lc:選中會關閉LUT組合。

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

max_bram:設置設計中運行使用的最大塊RAM數量。通常當設計中有黑盒子或第三方網表時,使用該選項來節省空間。默認值為-1,表示允許使用該FPGA中所有的塊RAM。

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

max_dsp:設置設計中運行使用的最大DSP塊數量。通常當設計中有黑盒子或第三方網表時,使用該選項來節省空間。默認值為-1,表示允許使用該FPGA中所有的DSP資源。

max_bram_cascade_height:設置可以將BRAM級聯在一起的最大數量。

max_uram_cascade_height:設置可以將URAM級聯在一起的最大數量。

cascade_dsp:設置在求DSP塊輸出總數時使用多少個加法器,默認計算時會使用塊內部的加法器鏈。設置為tree會強制將該計算在fabric結構中實現。

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

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

assert:將VHDL中的assert狀態納入評估。失敗或錯誤級別會停止綜合進程并產生一個錯誤信息;警報級別會產生一個警告信息。

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

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

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

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

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

Automatic Update and Compile Order設定當源文件發生改動時,工具自動管理編譯順序,Compile Order窗口中將顯示編譯順序,Hierarchy窗口中顯示文件是否在層次結構中使用以及所處的位置。

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

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

o4YBAF9uJbqACBuPAAAsHRGDTjI188.png

編輯:hfy

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

    關注

    30

    文章

    817

    瀏覽量

    128119
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59761
  • Vivado
    +關注

    關注

    19

    文章

    812

    瀏覽量

    66470
收藏 人收藏

    評論

    相關推薦

    什么是MASH順序?如何在射頻合成器中確定合適的MASH順序

    您能告訴我什么是 MASH 順序以及如何確定合適的 MASH 順序嗎?
    發表于 11-12 06:16

    每次Vivado編譯的結果都一樣嗎

    很多FPGA工程師都有這種困惑,Vivado每次編譯的結果都一樣嗎? 在AMD官網上,有這樣一個帖子: Are Vivado results repeatable for identical
    的頭像 發表于 11-11 11:23 ?308次閱讀
    每次<b class='flag-5'>Vivado</b><b class='flag-5'>編譯</b>的結果都一樣嗎

    淺談Vivado編譯時間

    隨著FPGA規模的增大,設計復雜度的增加,Vivado編譯時間成為一個不可回避的話題。尤其是一些基于SSI芯片的設計,如VU9P/VU13P/VU19P等,布局布線時間更是顯著增加。當然,對于一些設計而言,十幾個小時是合理的。但我們依然試圖分析設計存在的問題以期縮短
    的頭像 發表于 09-18 10:43 ?886次閱讀
    淺談<b class='flag-5'>Vivado</b><b class='flag-5'>編譯</b>時間

    Vivado 2024.1版本的新特性(2)

    綜合角度看,Vivado 2024.1對SystemVerilog和VHDL-2019的一些特性開始支持。先看SystemVerilog。
    的頭像 發表于 09-18 10:34 ?854次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    linux開發板如何編譯curl

    在Linux開發板上編譯 curl 庫通常涉及到幾個步驟,包括準備開發環境、下載源代碼、配置編譯選項以及執行編譯和安裝過程。以下是一個基本的
    的頭像 發表于 08-30 15:33 ?598次閱讀

    優化 FPGA HLS 設計

    上設計的。運行多個編譯需要更多的計算能力。這是與時間的權衡。如果可以同時運行更多(使用云)綜合策略,周轉時間將會更短。 如何優化高級設計-Sobel 濾波器 Sobel 濾波器是視頻處理中常
    發表于 08-16 19:56

    鴻蒙OpenHarmony【標準系統編譯】 (基于RK3568開發板)

    DevEco Device Tool支持Rockchip RK3568開發板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環境依賴的檢測及一鍵安裝,簡化復雜
    的頭像 發表于 04-24 20:55 ?1266次閱讀
    鴻蒙OpenHarmony【標準系統<b class='flag-5'>編譯</b>】 (基于RK3568<b class='flag-5'>開發</b>板)

    鴻蒙OpenHarmony【小型系統編譯】 (基于Hi3516開發板)

    DevEco Device Tool支持Hi3516DV300開發板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環境依賴的檢測及一鍵安裝,簡化復雜編譯
    的頭像 發表于 04-23 15:53 ?511次閱讀
    鴻蒙OpenHarmony【小型系統<b class='flag-5'>編譯</b>】 (基于Hi3516<b class='flag-5'>開發</b>板)

    鴻蒙OpenHarmony【輕量系統編譯】 (基于Hi3861開發板)

    DevEco Device Tool支持Hi3861V100開發板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環境依賴的檢測及一鍵安裝,簡化復雜編譯
    的頭像 發表于 04-22 15:19 ?561次閱讀
    鴻蒙OpenHarmony【輕量系統<b class='flag-5'>編譯</b>】 (基于Hi3861<b class='flag-5'>開發</b>板)

    Vivado編譯常見錯誤與關鍵警告梳理與解析

    Xilinx Vivado開發環境編譯HDL時,對時鐘信號設置了編譯規則,如果時鐘由于硬件設計原因分配到了普通IO上,而非_SRCC或者_MRCC專用時鐘管腳上時,
    的頭像 發表于 04-15 11:38 ?5324次閱讀

    HighTec Tricore編譯速度優化策略探討

    HighTec在編譯時默認是根據工程源文件文件架構首先生成makefile文件,然后執行“make makefile”指令來編譯工程。
    的頭像 發表于 04-10 12:44 ?2068次閱讀
    HighTec Tricore<b class='flag-5'>編譯</b>速度優化<b class='flag-5'>策略</b>探討

    PLC順序啟動逆順序停止電路如何運行

    了解了順序啟動電路,今天再來看看順序啟動逆順序停止電路如何運行。
    發表于 04-09 14:13 ?759次閱讀
    PLC<b class='flag-5'>順序</b>啟動逆<b class='flag-5'>順序</b>停止電路如何運行

    詳解OpenHarmony各部分文件在XR806上的編譯順序

    大家好,今天我們來談一談編程時一個很有趣的話題——編譯順序。我知道,一提到編譯可能大家會感到有點兒頭疼,但請放心,我不會讓大家頭疼的。我們要明白,在開始寫代碼之前,了解整個程序的編譯
    發表于 01-29 10:00

    如何禁止vivado自動生成 bufg

    定和可靠。Vivado編譯設計過程中會自動檢測到時鐘信號,并自動生成BUFG來緩沖時鐘。然而,在某些情況下,我們可能希望手動管理時鐘信號。 要禁止Vivado自動生成BUFG,可以按照以下步驟進行
    的頭像 發表于 01-05 14:31 ?2159次閱讀

    如何構建linux開發環境和編譯軟件工程、應用程序

    前文介紹了如何使用官方提供的鏡像文件啟動開發板,本文將說明如何構建linux開發環境和編譯軟件工程、應用程序。
    的頭像 發表于 01-03 12:31 ?2039次閱讀
    如何構建linux<b class='flag-5'>開發</b>環境和<b class='flag-5'>編譯</b>軟件工程、應用程序
    主站蜘蛛池模板: 国产精品嫩草影院在线观看免费| 亚洲精品网址| 好爽别插了无码视频| 中文字幕视频在线观看| 鸥美一级黄色片| 国产精品亚洲精品久久品| 一级淫片bbbxxx| 琪琪色原网20岁以下热热色原网站| 国产AV麻豆出品在线播放| 亚洲精品国偷拍自产在线观看蜜臀| 久久影院毛片一区二区| gay吊粗大双龙| 校花的奶好大好浪| 老鸭窝毛片| 国产成人mv 在线播放| 一区二区中文字幕在线观看 | 亚洲二区电影| 美女挑战50厘米长的黑人| 国产Av男人的天堂精品良久| 亚洲伊人色| 秋霞电影网午夜免费鲁丝片| 国产亚洲精品精华液| 97精品在线播放| 邪恶肉肉全彩色无遮盖| 美女大鸡鸡| 国产欧美亚洲综合第一页| 18禁裸乳无遮挡免费网站| 偷拍亚洲色自拍| 麻豆精品乱码WWW久久密| 国产精品搬运| 3acg同人漫画禁图h| 无人影院在线播放| 免费看国产精品麻豆| 国产人妻人伦精品98| A级超碰视频在线观看| 亚洲国产精品VA在线看黑人| 欧美另类videosbest| 解开白丝老师的短裙猛烈进入| X8X8拨牐拨牐X8免费视频8午夜| 亚洲三级视频| 色狠狠一区|