一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何在Vitis加速設(shè)計中為Kernel創(chuàng)建面積約束

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

Alveo系列開發(fā)板上的平臺其實是一個DFX設(shè)計的靜態(tài)部分,在Vitis 統(tǒng)一軟件平臺中使用Alveo系列開發(fā)板設(shè)計加速Kernel, 最終這些Kernel的邏輯會在分布在DFX設(shè)計的動態(tài)區(qū)域。

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

我們以經(jīng)典Example design“Vector Addition” 為例:

1. 打開Vitis 2020.2,創(chuàng)建新的 Application Project

File -> New -> Application project

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

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

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

此處report level 選擇-R2:VPL(Vitis Platform link) 過程輸出更多中間文件, 后續(xù)我們會用到畫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


在這個視圖可以看到平臺已經(jīng)為動態(tài)區(qū)域在各個SLR中設(shè)置了相應(yīng)的Pblock, 而且需要注意的是,設(shè)計中已有的Pblock是有層級關(guān)系的

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

pblock_dynamic_SLR0,

pblock_dynamic_SLR1,

pblock_dynamic_SLR2,

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

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

8. 為Kernel模塊畫Pblock

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

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

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

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

poYBAGGYHr6AIziMAACysjYj0-M030.png

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

set_property PARENT pblock_dynamic_SLR0 [get_pblocks pblock_krnl_vadd_1]

. 再看Kernel 模塊的Pblock屬性,已經(jīng)變?yōu)閜block_krnl_vadd_1

poYBAGGYHr-AHfvDAADrNWsvQGQ739.png

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

(在這里保存到kernel_pblock.tcl)

pYYBAGGYHsCARyabAAAxDcQd3OM287.png

看下更新的Pblock結(jié)構(gòu),新生成的pblock_krnl_vadd_1 是pblock_dynamic_SLR0的Child Pblock

poYBAGGYHsGAOkNOAACQ0GpIHoc098.png

繼續(xù)在TCL CONSOLE執(zhí)行 place_design 命令完成布局

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

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

pYYBAGGYHsKAVCzaAADZaA1Fa9I356.png

可以看到Kernel的邏輯全部都分布在剛才所畫的Pblock 區(qū)域內(nèi)

poYBAGGYHsSAGaCAAAGp_Tb6WxI859.png

pYYBAGGYHsWAZntAAAMwSamYIG4356.png

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

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

pYYBAGGYHseAJnhHAADl-uS05aY930.png

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

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


審核編輯:劉清

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

    關(guān)注

    25

    文章

    5389

    瀏覽量

    100898
  • Kernel
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    11495
收藏 人收藏

    評論

    相關(guān)推薦

    一文詳解Vivado時序約束

    Vivado的時序約束是保存在xdc文件,添加或創(chuàng)建設(shè)計的工程源文件后,需要創(chuàng)建xdc文件設(shè)置時序約束。時序
    的頭像 發(fā)表于 03-24 09:44 ?1669次閱讀
    一文詳解Vivado時序<b class='flag-5'>約束</b>

    使用AMD Vitis進行嵌入式設(shè)計開發(fā)用戶指南

    Zynq MPSoC 和 AMD Alveo 數(shù)據(jù)中心加速器卡)目標的異構(gòu)嵌入式應(yīng)用。 Vitis 工具包括: C++ 編譯器、庫和本征函數(shù),適用于 AI 引擎和可編程邏輯( PL ) 適用于 Arm
    的頭像 發(fā)表于 01-08 09:33 ?1155次閱讀
    使用AMD <b class='flag-5'>Vitis</b>進行嵌入式設(shè)計開發(fā)用戶指南

    淺談多目標優(yōu)化約束條件下充電設(shè)施有序充電控制策略

    隨著電動汽車的普及,充電設(shè)施的需求日益增長,如何在多目標優(yōu)化約束下實現(xiàn)充電設(shè)施的有序充電成為亟待解決的問題。新能源汽車的快速發(fā)展清潔能源和可持續(xù)交通帶來了新機遇,但也引出了許多問題。其中,充電設(shè)施的有序充電控制策略在多目標優(yōu)化
    的頭像 發(fā)表于 01-07 13:17 ?356次閱讀
    淺談多目標優(yōu)化<b class='flag-5'>約束</b>條件下充電設(shè)施有序充電控制策略

    時序約束一主時鐘與生成時鐘

    的輸出,對于Ultrascale和Ultrascale+系列的器件,定時器會自動地接入到GT的輸出。 1.2 約束設(shè)置格式 主時鐘約束使用命令create_clock進行創(chuàng)建,進入Timing
    的頭像 發(fā)表于 11-29 11:03 ?1089次閱讀
    時序<b class='flag-5'>約束</b>一主時鐘與生成時鐘

    AMD Vitis Unified Software Platform 2024.2發(fā)布

    近日,全新 AMD Vitis Unified Software Platform 2024.2 版本推出。
    的頭像 發(fā)表于 11-27 15:47 ?576次閱讀

    何在TMS320C6727 DSP上創(chuàng)建基于延遲的音頻效果

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

    電路的兩類約束指的是哪兩類

    電路的兩類約束通常指的是電氣約束和物理約束。這兩類約束在電路設(shè)計和分析起著至關(guān)重要的作用。 一、電氣
    的頭像 發(fā)表于 08-25 09:34 ?1652次閱讀

    深度解析FPGA的時序約束

    建立時間和保持時間是FPGA時序約束兩個最基本的概念,同樣在芯片電路時序分析也存在。
    的頭像 發(fā)表于 08-06 11:40 ?1150次閱讀
    深度解析FPGA<b class='flag-5'>中</b>的時序<b class='flag-5'>約束</b>

    何在SQL創(chuàng)建觸發(fā)器

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

    何在Draftsman創(chuàng)建PCB制造圖紙

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

    何在引腳映射器文件添加TC322?

    我想在AURIX Development Studio TC322 創(chuàng)建一個引腳映射文檔。 遺憾的是,我只能在那里找到 TC33X 及更高版本。 如何在這里添加所需的控制器?
    發(fā)表于 07-04 07:01

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

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

    AMD Vitis?設(shè)計工具的Libraries新功能介紹

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

    stm32f072如何在keil里面創(chuàng)建寄存器函數(shù)的工程而非庫函數(shù)?

    stm32f072如何在keil里面創(chuàng)建 寄存器函數(shù)的工程而非庫函數(shù)?
    發(fā)表于 05-17 07:21

    在Windows 10上創(chuàng)建并運行AMD Vitis?視覺庫示例

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