欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

Vitis HLS工具簡(jiǎn)介及設(shè)計(jì)流程

Xilinx賽靈思官微 ? 來源:Xilinx賽靈思官微 ? 作者:Xilinx賽靈思官微 ? 2022-05-25 09:43 ? 次閱讀

Vitis HLS 是一種高層次綜合工具,支持將 C、C++ 和 OpenCL 函數(shù)硬連線到器件邏輯互連結(jié)構(gòu)和 RAM/DSP 塊上。Vitis HLS 可在Vitis 應(yīng)用加速開發(fā)流程中實(shí)現(xiàn)硬件內(nèi)核,并使用 C/C++ 語(yǔ)言代碼在 Vivado Design Suite 中為賽靈思器件設(shè)計(jì)開發(fā) RTL IP。

Vitis 高層次綜合用戶指南(UG1399)包括Vitis HLS 入門、Vitis HLS 硬件設(shè)計(jì)方法論、Vitis HLS C 語(yǔ)言驅(qū)動(dòng)程序參考資料、Vitis HLS 命令參考資料、Vitis HLS 庫(kù)參考資料,以及Vitis HLS 移植指南。由于本指南較長(zhǎng),下文僅摘錄部分內(nèi)容。如果您希望查閱完整版,請(qǐng)至文末鏈接點(diǎn)擊下載。

Vitis HLS 簡(jiǎn)介

在 Vitis 應(yīng)用加速流程中,在可編程邏輯中實(shí)現(xiàn)和最優(yōu)化 C/C++ 語(yǔ)言代碼以及實(shí)現(xiàn)低時(shí)延和高吞吐量所需的大部分代碼修改操作均可通過 Vitis HLS 工具來自動(dòng)執(zhí)行。在應(yīng)用加速流程中,Vitis HLS 的基本作用是通過推斷所需的編譯指示來為函數(shù)實(shí)參生成正確的接口,并對(duì)代碼內(nèi)的循環(huán)和函數(shù)執(zhí)行流水打拍。Vitis HLS 還支持自定義代碼以實(shí)現(xiàn)不同接口標(biāo)準(zhǔn)或者實(shí)現(xiàn)特定最優(yōu)化以達(dá)成設(shè)計(jì)目標(biāo)。

Vitis HLS 設(shè)計(jì)流程如下所述:

編譯、仿真和調(diào)試 C/C++ 語(yǔ)言算法

查看報(bào)告以分析和最優(yōu)化設(shè)計(jì)。

將 C 語(yǔ)言算法綜合到 RTL 設(shè)計(jì)中。

使用 RTL 協(xié)同仿真來驗(yàn)證 RTL 實(shí)現(xiàn)。

將 RTL 實(shí)現(xiàn)封裝到已編譯的對(duì)象文件(.xo) 擴(kuò)展中,或者導(dǎo)出到 RTL IP。

高層次綜合基礎(chǔ)

賽靈思 Vitis HLS 工具可將 C 語(yǔ)言或 C++ 語(yǔ)言函數(shù)綜合到 RTL 代碼中,用于在可編程邏輯內(nèi)進(jìn)行加速。Vitis HLS 與Vitis 核開發(fā)套件和應(yīng)用加速設(shè)計(jì)流程緊密集成。

使用高層次綜合(HLS) 設(shè)計(jì)方法論的優(yōu)勢(shì)包括但不限于:

編譯、仿真和調(diào)試 C/C++ 語(yǔ)言算法。

查看報(bào)告以分析和最優(yōu)化設(shè)計(jì)。

將 C 語(yǔ)言算法綜合到 RTL 設(shè)計(jì)中。

使用 RTL 協(xié)同仿真來驗(yàn)證 RTL 實(shí)現(xiàn)。

將 RTL 實(shí)現(xiàn)封裝到已編譯的對(duì)象文件(.xo) 擴(kuò)展中,或者導(dǎo)出到 RTL IP。

HLS 包含以下階段:

1調(diào)度可根據(jù)下列條件判定每個(gè)時(shí)鐘周期內(nèi)發(fā)生的運(yùn)算:

運(yùn)算的依賴關(guān)系何時(shí)已得到滿足或者變?yōu)榭捎谩?/p>

時(shí)鐘周期長(zhǎng)度或時(shí)鐘頻率。

運(yùn)算完成所需時(shí)間(由目標(biāo)器件來定義)。

可用資源分配。

整合任意用戶指定的最優(yōu)化指令。

2綁定會(huì)分配硬件資源用于實(shí)現(xiàn)調(diào)度的每項(xiàng)運(yùn)算,并將運(yùn)算符(例如,加法、乘法和移位)映射到特定 RTL 實(shí)現(xiàn)。例如,mult 運(yùn)算可在 RTL 內(nèi)作為組合乘法器或流水打拍乘法器來實(shí)現(xiàn)。

3控制邏輯抽取可創(chuàng)建有限狀態(tài)機(jī)(FSM),根據(jù)定義的調(diào)度按順序執(zhí)行 RTL 設(shè)計(jì)中的運(yùn)算。

以調(diào)度和綁定為例,下圖顯示了此代碼示例的調(diào)度和綁定階段的示例:

8451d03e-dbbf-11ec-ba43-dac502259ad0.png

846f27a6-dbbf-11ec-ba43-dac502259ad0.png

在此示例的調(diào)度階段,根據(jù)高層次綜合的調(diào)度,在每個(gè)時(shí)鐘周期內(nèi)將執(zhí)行以下操作:

第一個(gè)時(shí)鐘周期:乘法和第一次加法

第二個(gè)時(shí)鐘周期:如果在第二個(gè)時(shí)鐘周期內(nèi)第一次加法的結(jié)果可用,則執(zhí)行第二次加法并輸出生成。

在最終的硬件實(shí)現(xiàn)中,高層次綜合將頂層函數(shù)的實(shí)參實(shí)現(xiàn)為輸入和輸出 (I/O) 端口。在此示例中,實(shí)參是簡(jiǎn)單數(shù)據(jù)端口。因?yàn)槊總€(gè)輸入變量都是 char 類型,所以輸入數(shù)據(jù)端口位寬均為 8 位。return 函數(shù)為 32 位 int 數(shù)據(jù)類型,而輸出數(shù)據(jù)端口位寬為 32 位。

在此示例的初始綁定階段,高層次綜合使用組合乘法器(Mul)實(shí)現(xiàn)乘法運(yùn)算,并使用組合加法器/減法器(AddSub)實(shí)現(xiàn)兩次加法運(yùn)算。

在目標(biāo)綁定階段,高層次綜合使用 DSP 模塊資源實(shí)現(xiàn)乘法器和其中一項(xiàng)加法運(yùn)算。部分應(yīng)用使用大量二進(jìn)制乘法器和累加器,這些乘法器和累加器最好在專用 DSP 資源內(nèi)實(shí)現(xiàn)。DSP 模塊是 FPGA 架構(gòu)中可用的計(jì)算塊,可在高性能和高效實(shí)現(xiàn)之間達(dá)成理想的平衡。

Vitis HLS 進(jìn)程概述

Vitis HLS 基于工程,可包含多個(gè)變體(稱為“解決方案”)以驅(qū)動(dòng)綜合與仿真。每個(gè)解決方案均可將 Vivado IP 流程或Vitis 內(nèi)核流程設(shè)定為目標(biāo)。基于目標(biāo)流程,每個(gè)解決方案都將指定不同的約束和最優(yōu)化指令,如 啟用 Vivado IP 流程和啟用 Vitis 內(nèi)核流程中所述。

以下提供了典型設(shè)計(jì)流程中的綜合、分析與最優(yōu)化步驟:

1創(chuàng)建新的 Vitis HLS 工程。

2利用 C 語(yǔ)言仿真來驗(yàn)證源代碼。

3運(yùn)行高層次綜合以生成 RTL 文件。

4分析結(jié)果,包括檢驗(yàn)時(shí)延、啟動(dòng)時(shí)間間隔 (II)、吞吐量和資源使用情況。

5執(zhí)行最優(yōu)化,并按需重復(fù)此步驟。

6使用 C/RTL 協(xié)同仿真驗(yàn)證結(jié)果。

Vitis HLS 基于目標(biāo)流程、默認(rèn)工具配置、設(shè)計(jì)約束和您指定的任意最優(yōu)化編譯指示或指令來實(shí)現(xiàn)解決方案。您可使用最優(yōu)化指令來修改和控制內(nèi)部邏輯和 I/O 端口的實(shí)現(xiàn),以覆蓋工具的默認(rèn)行為。

C/C++ 代碼綜合方式如下:

1頂層函數(shù)實(shí)參由 Vitis HLS 自動(dòng)綜合到 RTL I/O 端口接口內(nèi)。如 定義接口 中所述,該工具創(chuàng)建的默認(rèn)接口取決于目標(biāo)流程、函數(shù)實(shí)參的數(shù)據(jù)類型和方向、默認(rèn)接口模式以及用戶指定的任何 INTERFACE 編譯指示或指令(用于手動(dòng)定義接口)。

2頂層 C/C++ 函數(shù)的子函數(shù)綜合到 RTL 設(shè)計(jì)的層級(jí)內(nèi)的各塊中。

最終 RTL 設(shè)計(jì)包含與原始頂層 C 語(yǔ)言函數(shù)層級(jí)相對(duì)應(yīng)的模塊或?qū)嶓w層級(jí)。

Vitis HLS 會(huì)將子函數(shù)根據(jù)需要自動(dòng)內(nèi)聯(lián)到更高層次的函數(shù)中或者內(nèi)聯(lián)到頂層函數(shù)中,以提升性能。

您可通過在解決方案中向子函數(shù)指定 INLINE 編譯指示,或者使用 set_directive_inline 并將其設(shè)置為OFF 來禁用自動(dòng)內(nèi)聯(lián)。

默認(rèn)情況下,C 語(yǔ)言子函數(shù)的每次調(diào)用使用的 RTL 模塊的實(shí)例是相同的。但您可以通過在解決方案中指定ALLOCATION 編譯指示或者使用 set_directive_allocation 來實(shí)現(xiàn)多個(gè) RTL 模塊實(shí)例以提升性能。

3控制邏輯抽取可創(chuàng)建有限狀態(tài)機(jī)(FSM),根據(jù)定義的調(diào)度按順序執(zhí)行 RTL 設(shè)計(jì)中的運(yùn)算。

Vitis HLS 工具將不會(huì)展開循環(huán),除非這樣能夠提升解決方案性能,如展開嵌套的循環(huán)以對(duì)頂層函數(shù)進(jìn)行流水打拍。收起循環(huán)時(shí),綜合會(huì)為循環(huán)的單次迭代創(chuàng)建邏輯,RTL 設(shè)計(jì)會(huì)為序列中循環(huán)的每次迭代都執(zhí)行此邏輯。展開循環(huán)允許循環(huán)的部分或全部迭代并行發(fā)生,但也會(huì)耗用更多器件資源。

您可以使用 UNROLL 編譯指示或 set_directive_unroll 命令來手動(dòng)展開循環(huán)。

循環(huán)還可通過如下任一方法進(jìn)行流水打拍:通過有限狀態(tài)機(jī)高精度實(shí)現(xiàn)(循環(huán)流水打拍)或者采用基于較低精度的握手的實(shí)現(xiàn)(數(shù)據(jù)流)。

4代碼中的陣列將綜合到最終 FPGA 設(shè)計(jì)中的塊 RAM (BRAM)、LUT RAM 或 UltraRAM 中。

如果陣列位于頂層函數(shù)接口上,那么高層次綜合可將此陣列作為端口來實(shí)現(xiàn),以便訪問設(shè)計(jì)外部的塊 RAM。

您可使用 ARRAY_PARTITION 或 ARRAY_RESHAPE 編譯指示或者關(guān)聯(lián)的 set_directive_array 命令更改。

綜合后,您可以對(duì)先前生成的各項(xiàng)報(bào)告中的結(jié)果進(jìn)行分析,以確定結(jié)果質(zhì)量。分析結(jié)果后,您可以為工程創(chuàng)建其它解決方案,指定不同的約束和最優(yōu)化指令,并對(duì)這些結(jié)果進(jìn)行綜合與分析。您可對(duì)不同解決方案的結(jié)果進(jìn)行比較,查看哪些有效,哪些無效。您可重復(fù)此過程,直至設(shè)計(jì)達(dá)成所期望的性能特性為止。您可使用多種解決方案持續(xù)進(jìn)行開發(fā),同時(shí)仍可保留先前的解決方案。

原文標(biāo)題:Vitis 高層次綜合用戶指南

文章出處:【微信公眾號(hào):Xilinx賽靈思官微】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    32

    文章

    1794

    瀏覽量

    131481
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137638
  • Vitis
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    7494

原文標(biāo)題:Vitis 高層次綜合用戶指南

文章出處:【微信號(hào):賽靈思,微信公眾號(hào):Xilinx賽靈思官微】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA高層次綜合HLSVitis HLS知識(shí)庫(kù)簡(jiǎn)析

    ,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統(tǒng)一將HLS集成到Vitis里了,集成之后增加了一些功能
    發(fā)表于 09-07 15:21

    使用Vitis HLS創(chuàng)建屬于自己的IP相關(guān)資料分享

    Xilinx而言,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統(tǒng)一將HLS集成到Vitis里了,集成
    發(fā)表于 09-09 16:45

    Vivado HLSVitis HLS 兩者之間有什么區(qū)別

    的是VivadoIP,用于支持Vivado IP 設(shè)計(jì)流程。后者用于Vitis應(yīng)用加速流程,此時(shí),Vitis HLS會(huì)自動(dòng)推斷接口,無需在代
    的頭像 發(fā)表于 11-05 17:43 ?3.9w次閱讀

    利用Vitis HLS tcl shell一鍵跑通視覺加速例程

    ? 本文給想直接使用Vitis HLS 工具在 Standalone 模式下調(diào)用 Xilinx Vision Library L1 API 的小伙伴提供了一個(gè)非常容易上手的腳本文件。 在論壇上遇到在
    的頭像 發(fā)表于 12-29 11:12 ?3507次閱讀
    利用<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b> tcl shell一鍵跑通視覺加速例程

    基于Vitis HLS的加速圖像處理

    使用Vivado / Vitis工具提供預(yù)安裝的OpenCV版本。盡管Vitis_hls編譯Vision庫(kù)不需要OpenCV,但是用戶測(cè)試驗(yàn)證使用時(shí)OpenCV。
    的頭像 發(fā)表于 02-16 16:21 ?2522次閱讀
    基于<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>的加速圖像處理

    Vitis HLS如何添加HLS導(dǎo)出的.xo文件

    HLS導(dǎo)出的.xo文件如何導(dǎo)入到Vitis里面?需要把.xo文件解壓,然后把文件夾導(dǎo)入到Vitis Kernel/src文件夾下嗎?
    的頭像 發(fā)表于 08-03 11:20 ?3150次閱讀
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>如何添加<b class='flag-5'>HLS</b>導(dǎo)出的.xo文件

    開啟無限可能的世界:Vitis HLS 前端現(xiàn)已全面開源

    。Vitis HLS 工具能夠?qū)?C++ 和 OpenCL? 功能部署到器件的邏輯結(jié)構(gòu)和 RAM/DSP 塊上。
    發(fā)表于 08-02 09:38 ?1217次閱讀
    開啟無限可能的世界:<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b> 前端現(xiàn)已全面開源

    Vitis HLS前端現(xiàn)已全面開源

    Vitis HLS 工具能夠?qū)?C++ 和 OpenCL 功能部署到器件的邏輯結(jié)構(gòu)和 RAM/DSP 塊上。在 GitHub 上提供 Vitis H
    的頭像 發(fā)表于 08-03 09:53 ?997次閱讀

    Vitis HLS知識(shí)庫(kù)總結(jié)

    對(duì)于AMD Xilinx而言,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統(tǒng)一將HLS集成到Vitis
    的頭像 發(fā)表于 09-02 09:06 ?3594次閱讀

    理解Vitis HLS默認(rèn)行為

    相比于VivadoHLS,Vitis HLS更加智能化,這體現(xiàn)在Vitis HLS可以自動(dòng)探測(cè)C/C++代碼中可并行執(zhí)行地部分而無需人工干預(yù)添加pragma。另一方面VitisHLS也
    的頭像 發(fā)表于 11-24 11:42 ?1901次閱讀

    HLS最全知識(shí)庫(kù)

    對(duì)于AMD Xilinx而言,Vivado 2019.1之前(包括),HLS工具叫Vivado HLS,之后為了統(tǒng)一將HLS集成到Vitis
    的頭像 發(fā)表于 01-15 11:27 ?2737次閱讀

    AMD全新Vitis HLS資源現(xiàn)已推出

    AMD Vitis HLS 工具允許用戶通過將 C/C++ 函數(shù)綜合成 RTL,輕松創(chuàng)建復(fù)雜的 FPGA 算法。Vitis HLS
    的頭像 發(fā)表于 04-23 10:41 ?1172次閱讀
    AMD全新<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>資源現(xiàn)已推出

    如何在Vitis HLS GUI中使用庫(kù)函數(shù)?

    Vitis? HLS 2023.1 支持新的 L1 庫(kù)向?qū)?,本文將講解如何下載 L1 庫(kù)、查看所有可用功能以及如何在 Vitis HLS GUI 中使用庫(kù)函數(shù)。
    的頭像 發(fā)表于 08-16 10:26 ?1254次閱讀
    如何在<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b> GUI中使用庫(kù)函數(shù)?

    Vitis HLS:使用任務(wù)級(jí)并行性的高性能設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《Vitis HLS:使用任務(wù)級(jí)并行性的高性能設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 09-13 17:21 ?0次下載
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>:使用任務(wù)級(jí)并行性的高性能設(shè)計(jì)

    Vitis HLS移植指南

    電子發(fā)燒友網(wǎng)站提供《Vitis HLS移植指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:21 ?0次下載
    <b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b>移植指南