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

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

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

3天內不再提示

如何在Vitis加速設計中為Kernel創建面積約束

鄧長生 ? 來源:鄧長生 ? 作者:鄧長生 ? 2022-08-02 09:38 ? 次閱讀

Alveo系列開發板上的平臺其實是一個DFX設計的靜態部分,在Vitis 統一軟件平臺中使用Alveo系列開發板設計加速Kernel, 最終這些Kernel的邏輯會在分布在DFX設計的動態區域。

本篇將介紹如何為Kernel的邏輯做floorplan(畫Pblock),人為控制Kernel邏輯的布局。

我們以經典Example design“Vector Addition” 為例:

1. 打開Vitis 2020.2,創建新的 Application Project

File -> New -> Application project

2. 選擇xilinx_u200_qdma_201910_1平臺 (本篇討論的方法不局限于某個具體平臺)

3. 選擇打開Example Design "Vector Addition"

4. 對Hardware Flow 在Link階段設置 "-R2",然后Build

此處report level 選擇-R2:VPL(Vitis Platform link) 過程輸出更多中間文件, 后續我們會用到畫Kernel Pblock所需要的opt.dcp

pYYBAGGYHrqAfItSAADnwMZ_bJo435.png

5. 不用等到生成xclbin文件,VPL完成opt_design步驟之后我們就能看到XX_opt.dcp 文件.

XX_opt .dcp 所在目錄及文件名:

vitis_pblock_u200/vadd_test_system_hw_link/Hardware/binary_container_1.build/link/vivado/vpl/prj/prj.runs/impl_1 

pfm_top_wrapper_opt.dcp

6. 把這個XX_opt.dcp拷貝到另外的目錄,并用Vivado打開這個dcp 文件

pYYBAGGYHruAbYjgAABXk7VZLSg742.png

7. 查看已有的Pblock。主菜單 Window -> Physical Constraints

poYBAGGYHryAQmyOAAChXbBCUpw194.png


在這個視圖可以看到平臺已經為動態區域在各個SLR中設置了相應的Pblock, 而且需要注意的是,設計中已有的Pblock是有層級關系的

例如:pblock_dynamic_region 包含三個下級pblock:

pblock_dynamic_SLR0,

pblock_dynamic_SLR1,

pblock_dynamic_SLR2,

提醒:不同平臺SLR的數目也可能是不同的. 不同平臺中自帶pblock的名字有差異是正常的. 需要用戶自己觀察.

為Kernel模塊生成的Pblock應該是pblock_dynamic_SLR0 這一級Pblock 的子模塊, 工具支持把同一個Kernel的不同部分放置到多個SLR中,用戶需要保證跨SLR路徑的時序.

8. 為Kernel模塊畫Pblock

在這里嘗試把Kernel 放置在pblock_dynamic_SLR0所屬的中心區域

. 在Vivado的Netlist View中選中Kernel 模塊

例子中的模塊名是 pfm_top_i/dynamic_region/krnl_vadd_1

. 可以在Cells properties 窗口看到這個模塊當前所屬的Pblock是pblock_dynamic_region

poYBAGGYHr6AIziMAACysjYj0-M030.png

. 點擊Device 視圖中的"Draw Pblock" 按鈕, 在Device視圖上原有pblock_dynamic_SLR0的范圍內畫一個方框,新畫的Pblock所覆蓋面積要被原Pblock完全包含. 畫完之后還可以選中Pblock微調Pblock的邊界,同時為了不影響原來Pblock的結構,在TCL CONSOLE中用以下命令把新Pblock的Parent Pblock設置成pblock_dynamic_SLR0:

set_property PARENT pblock_dynamic_SLR0 [get_pblocks pblock_krnl_vadd_1]

. 再看Kernel 模塊的Pblock屬性,已經變為pblock_krnl_vadd_1

poYBAGGYHr-AHfvDAADrNWsvQGQ739.png

在TCL CONSOLE中會打印出了畫pblock相應的約束,我們可以將這些約束拷貝到一個新的tcl文件中保存.

(在這里保存到kernel_pblock.tcl)

pYYBAGGYHsCARyabAAAxDcQd3OM287.png

看下更新的Pblock結構,新生成的pblock_krnl_vadd_1 是pblock_dynamic_SLR0的Child Pblock

poYBAGGYHsGAOkNOAACQ0GpIHoc098.png

繼續在TCL CONSOLE執行 place_design 命令完成布局

理論上這一步可以跳過,如果你確信你畫的Pblock沒有問題的話。

完成place_design之后,可以觀察一下Kernel 的資源在Device 上的實際分布情況

pYYBAGGYHsKAVCzaAADZaA1Fa9I356.png

可以看到Kernel的邏輯全部都分布在剛才所畫的Pblock 區域內

poYBAGGYHsSAGaCAAAGp_Tb6WxI859.png

pYYBAGGYHsWAZntAAAMwSamYIG4356.png

9. 在Vitis的link階段做以下設置,使之前保存的畫Pblock的命令在VPL(Vitis Platform link) 的place_design步驟執行之前生效

--vivado.prop run.impl_1.STEPS.PLACE_DESIGN.TCL.PRE=XX/kernel_pblock.tcl

pYYBAGGYHseAJnhHAADl-uS05aY930.png

10. 重新build Vitis 的Hardware flow, 之前加入的命令就會生效。

總結: 這就是一個簡單的為Kernel邏輯創建面積約束(Pblock)的過程, 實際用戶也可以為Kernel的子模塊創建Pblock,這方面工具沒有限制。


審核編輯:劉清

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

    關注

    25

    文章

    4945

    瀏覽量

    97200
  • Kernel
    +關注

    關注

    0

    文章

    48

    瀏覽量

    11139
收藏 人收藏

    評論

    相關推薦

    何在TMS320C6727 DSP上創建基于延遲的音頻效果

    電子發燒友網站提供《如何在TMS320C6727 DSP上創建基于延遲的音頻效果.pdf》資料免費下載
    發表于 10-16 10:35 ?0次下載
    如<b class='flag-5'>何在</b>TMS320C6727 DSP上<b class='flag-5'>創建</b>基于延遲的音頻效果

    何在SQL創建觸發器

    的業務邏輯,以及執行審計和記錄更改歷史等功能。下面,我將詳細解釋如何在SQL創建觸發器,并附帶示例代碼。
    的頭像 發表于 07-18 16:01 ?1465次閱讀

    何在Draftsman創建PCB制造圖紙

    在制作PCB的過程,繪制面板制造圖紙是不可或缺的一步。單個PCB的制造圖紙只顯示單個PCB的鉆孔和板特征,但這些需要合并到整個面板的一張圖紙。根據不同公司或制造商的具體需求,一些設計團隊需要接手創建面板圖紙,包括指定拆板方法
    的頭像 發表于 07-16 09:30 ?516次閱讀
    如<b class='flag-5'>何在</b>Draftsman<b class='flag-5'>中</b><b class='flag-5'>創建</b>PCB制造圖紙

    linux kernel通過修改鏈接腳本lds文件,如何在esp32的linker.lf文件實現?

    linux kernel通過修改鏈接腳本lds文件實現,請問如何在esp32的linker.lf文件實現? linux kernel實現過程: 鏈接腳本: . = ALIGN(4
    發表于 06-26 06:19

    AMD Vitis?設計工具的Libraries新功能介紹

    AMD Vitis? 2023.2 設計工具是 Vitis 設計工具變化較大的一個版本,設計流程和界面都發生了變化。
    的頭像 發表于 05-29 09:50 ?540次閱讀
    AMD <b class='flag-5'>Vitis</b>?設計工具<b class='flag-5'>中</b>的Libraries新功能介紹

    在Windows 10上創建并運行AMD Vitis?視覺庫示例

    本篇文章將演示創建一個使用 AMD Vitis? 視覺庫的 Vitis HLS 組件的全過程。此處使用的是 Vitis Unified IDE。如果您使用的是舊版 AMD
    的頭像 發表于 05-08 14:02 ?675次閱讀
    在Windows 10上<b class='flag-5'>創建</b>并運行AMD <b class='flag-5'>Vitis</b>?視覺庫示例

    Vitis2023.2使用之—— updata to Vitis Unified IDE

    上一章聊了一下vitis2023.2怎樣使用classic Vitis IDE,這章我們來說一說基于classic Vitis IDE的工程怎么樣更新到新版本的Vitis Unifie
    發表于 03-24 17:14

    Vitis2023.2使用之—— classic Vitis IDE

    Vitis 已經更新到2023.2了,新版本相較于舊版本更新了嵌入式平臺,新版平臺增加了Versal? AI 引擎 DSP 設計的增強功能,全新的獨立 Vitis 嵌入式軟件,最新 Vitis 統一
    發表于 03-24 16:15

    機器人運動學的非完整約束與運動模型推導

    機器人運動學的運動學約束是指機器人在運動過程受到的限制,包括位置、姿態、速度和加速度等因素。這些約束會對機器人的自由度產生影響,從而影響
    的頭像 發表于 01-18 16:45 ?1661次閱讀
    機器人運動學<b class='flag-5'>中</b>的非完整<b class='flag-5'>約束</b>與運動模型推導

    Vitis AI用戶指南

    電子發燒友網站提供《Vitis AI用戶指南.pdf》資料免費下載
    發表于 01-03 10:51 ?1次下載
    <b class='flag-5'>Vitis</b> AI用戶指南

    OpenCL多Kernel并行計算結果討論分析

    模擬加速核同一時刻開始運行的情況。注意到0,2和1,3將數據從DDR運送到Host的開始時間不同。 更改后,測試數據512MB,Kernel的處理時間32.2ms,相比于單核運行提
    發表于 12-31 21:31

    Vitis 統一軟件平臺文檔

    AMD Vitis 軟件平臺是一款開發環境,主要用于開發包括 FPGA 架構、Arm 處理器子系統和 AI 引擎在內的設計。Vitis 工具與 AMD Vivado ML 設計套件相結合,可為
    的頭像 發表于 12-20 10:00 ?499次閱讀
    <b class='flag-5'>Vitis</b> 統一軟件平臺文檔

    何在LoRaWAN網關的內置NS創建應用與節點設備

    本文章將說明如何在LoRaWAN網關的內置NS創建應用與節點設備,配置安信可Ra-08模塊連接至網關NS服務,實現數據發送與接收。注: 該教程僅適用于支持Class B模式通訊的網關。
    的頭像 發表于 12-16 16:18 ?1715次閱讀
    如<b class='flag-5'>何在</b>LoRaWAN網關的內置NS<b class='flag-5'>創建</b>應用與節點設備

    研討會:利用編譯器指令提升AMD Vitis? HLS 設計性能

    /C++ 代碼 AMD 設備上可編程邏輯的 RTL 代碼加速 IP 創建。 在 Vitis HLS ,優化指令脫穎而出成為最強大的工具之
    的頭像 發表于 12-05 09:10 ?519次閱讀
    研討會:利用編譯器指令提升AMD <b class='flag-5'>Vitis</b>? HLS 設計性能

    kernel到android核心啟動過程

    總結一個圖:kernel 到android核心啟動過程 kernel鏡像執行跳轉到start_kernel開始執行,在rest_init會創建兩個k
    的頭像 發表于 12-04 16:59 ?891次閱讀
    <b class='flag-5'>kernel</b>到android核心啟動過程