精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

深度解讀Vivado之Synthesis

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2021-06-01 11:20 ? 次閱讀

FPGA設計里,設計仿真完成RTL代碼設計后便是交給設計套件進行綜合及布局布線。在綜合過程里,Vivado里提供的參數選項有點兒多,今天閑暇抽空梳理下。

-flatten_hierarchy

該參數提供三個可選項:

full:將我們整個設計層次打平,只保留頂層設計,對模塊間進行邊界優化(可以理解為我們整個設計被塞到一個Module里)。

none:完全保留設計原始層次,不執行任何邊界優化。該選項工具進行的優化最少,消耗的資源最多,層次保留最完整。

rebuild:在進行綜合時將原始設計打平,執行邊界優化,但將網表文件按照原始設計層次顯示。

對于在Verilog中使用的“keep_hierarchy”屬性優先級高于flatten_hierarchy。

gated_clock_conversion

ASIC中門控時鐘用的比較多,而在FPGA設計中,門控時鐘并不是專用時鐘模塊生成,而且Vivado并不會對門控時鐘插入BUFG,在設計中應極力避免。該選項可將門控時鐘信號轉換為使能信號,從而避免門控時鐘的使用。該選項存在三個參數:

off:不允許門控時鐘轉換。

on:允許門控時鐘轉換,Verilog里添加“gated_clocked”的門控時鐘將會自動轉換。

auto:Verilog中添加“gated_clocked”的門控時鐘或者工具檢測到門控時鐘而且有相應可用的時鐘約束選項時將進行門控時鐘轉換。

當門控時鐘負載較少且時鐘頻率并不高時可以適當使用門控時鐘,但建議手動插入BUFG。

-fanout_limit

該選項用于設定信號所能承受的最大負載。該選項對于設計中的控制信號,如置位,復位和使能信號是無效的。

-fanout_limit只是一個宏觀指導原則,并非強制命令。如果需要很明確的對某個信號降扇出,應使用MAX_FANOUT而不是-fanout_limit。

MAX_FANOUT可應用于RTL代碼中,也可應用于XDC中,優先級高于-fanout_limit。當需要控制扇出的寄存器與負載不在同一層次時,flatten_hierarchy不要設置為none模式,否則將會無法生效。

-directive

Vivado提供的一些優化策略:

RuntimeOptimized:執行較少的時序優化及RTL優化以降低運行時間。

AreaOptimized_high:執行常規面積優化,包括強制執行三進制加法器,在比較器中使用新閾值以使用進位鏈以及實現面積優化的多路復用器。

AreaOptimized_medium:執行常規面積優化,包括更改控制集優化的閾值,強制執行三進制加法器,將推理的乘法器閾值降低到DSP模塊,將移位寄存器移入BRAM,在比較器中使用較低閾值以使用進位鏈,以及進行區域優化的MUX操作。

AlternateRoutability:通過算法提升路由能力(使用更少的MUXF和CARRYs)。

AreaMapLargeShiftRegToBRAM:檢測大型移位寄存器,并使用專用的Block RAM實現它們。

AreaMultThresholdDSP:減少DSP的推斷及使用。

FewerCarryChains:通過LUT使用降低進位鏈的使用。

-retiming

在不改變原始設計及功能時通過調整LUT和寄存器位置來進行時序優化調整。

-fsm_extraction

設定狀態機編碼方式,默認為auto,此時Vivado會自行決定最佳的編碼方式。

-keep_equivalent_registers

當勾選時,對于輸入的同源寄存器,綜合時將會被合成一個。如下例所示:

always@(posedge clk)begin rx《=a; ry《=a; r《=b; resa《=rx & r; resb《=ry^y;end

當該選項不勾選時,rx,ry將會被合并成一個寄存器。

-resource_shring

對算數運算符通過資源共享優化設計資源,有三個可選項:auto、on、off。設置為auto時,工具會根據時序要求進行調整。

-control_set_opt_threshold

觸發器的控制集由時鐘信號,復位/置位吸納后和使能信號構成,通常只有{clk,set/rst,ce}均相同的觸發器才可以被放在一個SLICE中。該選項將時鐘使能優化的閾值設置為較少的控制集。默認值為自動,這意味著該工具將根據目標設備選擇一個值。支持任何正整數值。

給定值是工具將控制集移入寄存器的D邏輯所需的扇出數量。如果扇出大于該值,則該工具嘗試使該信號驅動該寄存器上的control_set_pin。

-no_lc

使能該選項時,工具將不會嘗試LUT的整合。雖然LUT整合能夠降低LUT的使用,但也有可能導致布局布線擁塞。當“LUT as Logic”超過15%時,建議勾選該選項。

-no_slrextract -shreg_min_size

移位寄存器可以被綜合成LUT實現。-shreg_min_size用于管理移位寄存器是否映射為LUT,默認值為3.當移位寄存器的深度不超過-shereg_min_size時,最終采用移位寄存器實現,否則采用FF+LUT+FF形式實現。

-no_slrextract用于阻止工具將移位寄存器映射為LUT。優先級高于-shreg_min_size。

其他選項我們基本就用不上了,若需使用可參照ug901手冊。

編輯:jq

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

    關注

    2

    文章

    258

    瀏覽量

    22231
  • 觸發器
    +關注

    關注

    14

    文章

    1995

    瀏覽量

    61049
  • LUT
    LUT
    +關注

    關注

    0

    文章

    49

    瀏覽量

    12482
  • 代碼
    +關注

    關注

    30

    文章

    4744

    瀏覽量

    68347
  • xdc
    xdc
    +關注

    關注

    1

    文章

    24

    瀏覽量

    5916

原文標題:亂花漸欲迷人眼—Vivado之Synthesis

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

收藏 人收藏

    評論

    相關推薦

    4G模組加解密藝術:通用函數的深度解讀

    今天是對加解密通用函數的深度解讀,我將詳細講解,建議收藏,不可錯過。
    的頭像 發表于 11-12 09:58 ?177次閱讀
    4G模組加解密藝術:通用函數的<b class='flag-5'>深度</b><b class='flag-5'>解讀</b>

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

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

    Vivado使用小技巧

    有時我們對時序約束進行了一些調整,希望能夠快速看到對應的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序約束。如果調整
    的頭像 發表于 10-24 15:08 ?211次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    Vivado 2024.1版本的新特性(2)

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

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式發布,今天我們就來看看新版本帶來了哪些新特性。
    的頭像 發表于 09-18 10:30 ?959次閱讀
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)

    解讀 MEMS 可編程 LVCMOS 振蕩器 SiT1602 系列:精準頻率的創新

    解讀 MEMS 可編程 LVCMOS 振蕩器 SiT1602 系列:精準頻率的創新
    的頭像 發表于 08-09 15:39 ?305次閱讀
    <b class='flag-5'>解讀</b> MEMS 可編程 LVCMOS 振蕩器 SiT1602 系列:精準頻率的創新<b class='flag-5'>之</b>選

    解讀 MEMS 可編程 LVCMOS 振蕩器 SiT8008 系列:精準與靈活的時脈

    解讀 MEMS 可編程 LVCMOS 振蕩器 SiT8008 系列:精準與靈活的時脈
    的頭像 發表于 08-09 10:29 ?282次閱讀
    <b class='flag-5'>解讀</b> MEMS 可編程 LVCMOS 振蕩器 SiT8008 系列:精準與靈活的時脈<b class='flag-5'>之</b>選

    深度解讀 VCXO VG7050CDN:可變晶體振蕩器的卓越

    深度解讀 VCXO VG7050CDN:可變晶體振蕩器的卓越
    的頭像 發表于 07-24 10:58 ?325次閱讀

    Vivado Synthesis中怎么使用SystemVerilog接口連接邏輯呢?

    SystemVerilog 接口的開發旨在讓設計中層級之間的連接變得更加輕松容易。 您可以把這類接口看作是多個模塊共有的引腳集合。
    的頭像 發表于 03-04 15:25 ?885次閱讀
    在<b class='flag-5'>Vivado</b> <b class='flag-5'>Synthesis</b>中怎么使用SystemVerilog接口連接邏輯呢?

    OneFlow Softmax算子源碼解讀BlockSoftmax

    寫在前面:筆者這段時間工作太忙,身心俱疲,博客停更了一段時間,現在重新撿起來。本文主要解讀 OneFlow 框架的第二種 Softmax 源碼實現細節,即 block 級別的 Softmax。
    的頭像 發表于 01-08 09:26 ?659次閱讀
    OneFlow Softmax算子源碼<b class='flag-5'>解讀</b><b class='flag-5'>之</b>BlockSoftmax

    如何禁止vivado自動生成 bufg

    Vivado中禁止自動生成BUFG(Buffered Clock Gate)可以通過以下步驟實現。 首先,讓我們簡要了解一下什么是BUFG。BUFG是一個時鐘緩沖器,用于緩沖輸入時鐘信號,使其更穩
    的頭像 發表于 01-05 14:31 ?1959次閱讀

    Vivado時序問題分析

    有些時候在寫完代碼之后呢,Vivado時序報紅,Timing一欄有很多時序問題。
    的頭像 發表于 01-05 10:18 ?1913次閱讀

    VIVADO安裝問題解決

    vivado出現安裝問題剛開始還以為是安裝路徑包含中文空格了,重裝的注意了一下,發現還是這個問題。。。。后來又一頓操作猛如虎,終于發現了問題。出這個問題的原因是vivado壓縮包解壓的路徑包含中文了把解壓文件放到不含中文的地方,再重新安裝,安裝路徑也不能含中文。然后。。。
    發表于 12-22 10:56 ?0次下載

    大咖解讀SafeVideo

    ——SafeVideo,究竟有什么不一樣的地方呢?一起來看看吧~ 大咖解讀 Q A 如何通過軟件技術來應對硬盤故障? 由于硬盤損壞不可避免,尤其是硬盤的壞道,所以業界通常都是用RAID技術來應對。RAID是數據塊經過XOR得到校驗塊,從而提供數
    的頭像 發表于 12-19 16:20 ?568次閱讀
    大咖<b class='flag-5'>解讀</b><b class='flag-5'>之</b>SafeVideo

    VIVADO軟件使用問題總結

    【關鍵問題?。。?!重要!!!】VIVADO會在MESSAGE窗口出提示很多錯誤和警告信息!
    的頭像 發表于 12-15 10:11 ?1783次閱讀
    <b class='flag-5'>VIVADO</b>軟件使用問題總結