Vitis IDE 艱難切換--從傳統 Vitis GUI 到 2024.1 統一軟件界面

目錄

1. 簡介

2. 界面展示

2.1 啟動

2.2 Flow Navigator

2.1.1 C Simulation Dialog

2.1.2 C Synthesis

2.1.3 C/RTL Co-simulation

2.1.4 Implementation

2.1.5 Package

3. C Synthesis 詳解

3.1 Classic Configuration Settings

3.1.1 config_array_partition

3.1.2 config_compile

3.1.3 config_dataflow

3.1.4 config_debug

3.1.5 config_export

3.1.6 config_interface

3.1.7 config_op

3.1.8 config_rtl

3.1.9 config_schedule

3.1.10 config_storage

3.1.11 config_unroll

3.2 New?Configuration Settings

3.2.1?Array Partition

3.2.2 Array Stencil

3.2.3?Compile

3.2.4 Dataflow

3.2.5 Debug

3.2.6 interface

3.2.7 RTL

3.2.8 Schedule

3.2.9 Unroll

3.2.10 Op

3.2.11 Storage

4. 創建?HLS 工程

4.1 選擇 HLS 組件

4.2 名稱和路徑

4.3 創建配置文件

4.4 選擇綜合源文件和TestBench

4.5 選擇硬件平臺

4.6 配置Clock和Flow

4.7 查看摘要

4.8 新建組件完畢

5. 總結


1. 簡介

Vitis 2024.1 已經完全不支持傳統界面了,新版軟件提供一個更加統一和現代化的用戶界面。

傳統的 Vitis GUI 像是一位老朋友,我們熟悉它的每一個角落,每一個命令,就像回到自己溫馨的家。新的統一軟件界面卻像是搬進了一個未知的新城市,盡管它充滿了現代化的便利和先進的功能,但那份親切感和熟悉度卻需要時間來建立。

命令行選項的變更、菜單結構的重組、工具鏈的整合,每一個細節都需要重新學習。筆者不得不告別那些熟悉的命令行快捷方式,轉而學習新的操作方法。

比如運行 vitis -w <workspace> 將直接進入新的界面,不在提供進入傳統 SDK 的模式。

這個過程中,我們可能會感到迷茫,甚至有些挫敗。

但正如所有的成長過程一樣,適應是必經之路。隨著時間的推移,我們將逐漸掌握新界面的奧秘,發現它帶來的高效和便捷。新的統一軟件界面不僅僅是一個工具的更新,它是我們作為開發者進步的象征,是我們與時俱進的證明。

據說從2023.2版本開始,Vitis統一IDE整合了多個工具,以便在Vitis、Vitis AIE編譯器/仿真器和Vitis HLS中提供一致的圖形用戶界面。

本文將探索這種變換的一角,開啟筆者適應新GUI的過程。

Vitis IDE的新特性簡述如下:

  • 用戶界面友好:Flow Navigator助力工作流程管理,模板樣本啟迪新手,多任務并行執行提升效率。
  • AI引擎優化:軟件仿真在x86環境下加快迭代,AI引擎的流水線和微代碼視圖得到多核支持和篩選功能增強。
  • 界面現代化:提供明亮和暗色兩種主題,自定義快捷鍵簡化操作,命令選用板更加人性化,C++語法高亮和智能提示功能。
  • 靈活切換:GUI和CLI模式無縫轉換,結合兩者優勢,配置文件實時展示,CLI構建項目,GUI用于調試和核心分析,操作記錄可用于批處理。

2. 界面展示

2.1 啟動

Vitis Unified 把 Vitis HLS 和 SDK 合并了。

啟動 Vitis Unified IDE:

vitis -w <workspace>

workspace 是一個文件夾,用于保存設計的各種組件和項目。?

?

2.2 Flow Navigator

傳統 Vitis IDE 啟動每個 Flow,都會彈出配置對話框。新 Vitis Unified IDE,全部都在 Vitis Component下的 Settings 下進行設置,啟動每個 Flow 則會直接運行。?

2.1.1 C Simulation Dialog

Vitis Unified IDE

csim.clean:啟用清理構建。如果不選擇此選項,csim_design將進行增量編譯。

csim.code_analyzer:啟用代碼分析器。設計在執行過程中將被分析。

csim.sanitize_address:啟用地址檢查器

csim.sanitize_undefined:啟用未定義行為檢查器

csim.setup:當指定此選項時,C仿真二進制文件將被創建在當前解決方案的'csim'目錄中,但不會執行仿真。

2.1.2 C Synthesis

Vitis IDE

Vitis Unified IDE

2.1.3 C/RTL Co-simulation

2.1.4 Implementation

2.1.5 Package

在 Vitis Unified IDE 中獨有。

3. C Synthesis 詳解

在 Vivado IP Flow Target 流程中。

3.1 Classic Configuration Settings

3.1.1 config_array_partition

  • complete_threshold, defalt=4
  • throughput_driven, default=auto, (auto/off)

3.1.2 config_compile

  • enable_auto_rewind, default=true
  • ignore_long_run_time, default=false
  • name_max_length, default=80
  • no_signed_zeros, default=false
  • pipeline_loops, default=64
  • pipeline_style, default=frp, (stp/flp/frp)
  • pragma_strict_mode, default=false
  • pre_tcl
  • unsafe_math_optimizations, default=false

3.1.3 config_dataflow

  • default_channel, default=pingpong, (fifo/pingpong)
  • disable_fifo_sizing_opt, default=false
  • fifo_depth, default=2
  • override_user_fifo_depth, default=0
  • scalar_fifo_depth, default=2
  • start_fifo_depth, default=2
  • strict_mode, default=warning, (off/warning/error)
  • strict_stable_sync, default=false
  • task_level_fifo_depth, default=2

3.1.4 config_debug

  • directory, default=.debug
  • enable, default=false

3.1.5 config_export

3.1.6 config_interface

3.1.7 config_op

3.1.8 config_rtl

3.1.9 config_schedule

  • enable_dsp_full_reg, default=true

3.1.10 config_storage

  • fifo impl, default=autosrl, (bram/lutram/ram/memory/srl)
  • fifo auto_srl_max_bits, default=1024
  • fifo auto_srl_max_depth, default=2

3.1.11 config_unroll

  • tripcount_threshold, default=0

3.2 New?Configuration Settings

3.2.1?Array Partition

  • array_partition.complete_threshold: 設置完全分區數組的閾值。具有少于閾值元素的數組將被完全分區為單獨的元素。
  • array_partition.throughput_driven: 啟用自動部分和/或完全數組分區。

3.2.2 Array Stencil

  • array_stencil.throughput_driven: 啟用自動數組模板

3.2.3?Compile

  • compile.design_size_maximum_warning: 當總設計指令超過此值時顯示警告
  • compile.enable_auto_rewind: 當為真時,啟用用于流水線循環的替代 HLS 實現,該實現使用自動循環回繞
  • compile.ignore_long_run_time: 忽略長運行時間警告
  • compile.name_max_length: name_max_length 選項將指定函數名稱的最大長度。如果長度超過閾值,名稱的最后部分將被截斷。
  • compile.no_signed_zeros: no_signed_zeros 選項將忽略浮點零的符號,以便編譯器可以對浮點操作進行最大程度的優化。
  • compile.pipeline_flush_in_task: 啟用數據流程中的非回繞流水線默認刷新。
  • compile.pipeline_loops: 循環的迭代次數大于此值將自動進行流水線處理。
  • compile.pipeline_style: 設置默認流水線樣式,這是一種偏好而不是硬性約束。
  • compile.pragma_strict_mode: 啟用錯誤而不是警告,用于舊的和不正確的編譯指示語法檢查。
  • compile.unsafe_math_optimizations: unsafe_math_optimizations 選項將忽略浮點零的符號,并啟用浮點操作的結合性,以便編譯器可以對浮點操作進行激進的優化。

3.2.4 Dataflow

  • dataflow.default_channel: 默認情況下,在使用數據流流水線時,將以ping-pong方式配置的RAM內存用于在函數或循環之間緩沖數據。當使用流式數據(其中數據總是按順序讀取和寫入)時,FIFO內存將更有效,并可以選擇為默認內存類型。請注意,必須使用 set_directive_array_stream 命令將數組設置為流式,以便執行FIFO訪問。
  • dataflow.disable_fifo_sizing_opt: 禁用增加資源使用量并可能提高性能并減少死鎖的FIFO大小優化。
  • dataflow.fifo_depth: 指定FIFO的默認深度的整數值。當使用ping-pong方式的存儲器時,此選項不起作用。如果未指定,通道中使用的FIFO將設置為最大生產者或消費者的大小(以較大者為準)。在某些情況下,這可能過于保守,引入比實際所需更大的FIFO。當用戶知道FIFO比所需更大時,可以使用此選項。在使用此選項時要小心,因為不正確的使用可能導致設計無法正確運行。
  • dataflow.override_user_fifo_depth: 設置設計中所有FIFO的深度,除非深度已經大于覆蓋值。
  • dataflow.scalar_fifo_depth: 指定標量值傳播FIFO的最小深度的整數值。如果未指定,最小值為 fifo_depth 選項的值(如果指定),否則為2。這些FIFO用于將數據流區域的標量參數值傳播到區域內具有前驅的處理過程。它們不影響功能正確性,但自動計算的大小不足可能導致性能損失甚至死鎖。粗略來說,最佳深度是發出標量的處理過程在最后讀取它的處理過程實際啟動前的平均次數。
  • dataflow.start_fifo_depth: 指定啟動傳播FIFO的最小深度的整數值。如果未指定,最小值為 fifo_depth 選項的值(如果指定),否則為2。這些FIFO用于將 ap_start 握手信號轉發到區域內具有前驅的處理過程。它們不影響功能正確性,但自動計算的大小不足可能導致性能損失。粗略來說,最佳深度是處理過程應該被允許提前啟動的預期平均次數。
  • dataflow.strict_mode: 設置數據流規范形式消息的嚴重程度。
  • dataflow.strict_stable_sync: 穩定端口強制與 done 同步。
  • dataflow.task_level_fifo_depth: 默認任務級FIFO深度(用于自動創建的用于在處理過程之間傳輸標量的FIFO)。

3.2.5 Debug

  • debug.directory: 相對于 solution 方案目錄的輸出目錄名稱
  • debug.enable: 啟用調試文件生成
  • debug.enable_verbose_report: 啟用覆蓋率報告

3.2.6 interface

3.2.7 RTL

3.2.8 Schedule

  • schedule.enable_dsp_full_reg: 啟用完整的 dsp48 寄存器利用率

3.2.9 Unroll

  • unroll.tripcount_threshold: 自動展開循環,其迭代次數少于此閾值。

3.2.10 Op

  • hls.syn.op: 配置不同運算符的默認實現樣式和延遲。

3.2.11 Storage

  • hls.syn.storage: 配置不同類型存儲元素的默認實現樣式和延遲。

4. 創建?HLS 工程

在 Vitis Unified IDE 中,PL 內核被創建為 HLS 組件,你可以在 C/C++ 源代碼上運行 C 仿真,使用編譯指示或指令優化設計,綜合和分析結果,并將設計導出為 Vivado IP 與 Vivado Design Suite 一起使用,或作為 Vitis 內核 ( .xo ) 文件在更高級別的系統項目中使用。

4.1 選擇 HLS 組件

4.2 名稱和路徑

4.3 創建配置文件

4.4 選擇綜合源文件和TestBench

這里我們先跳過,后續再添加。

編寫良好的測試平臺可以極大地提高工作效率,因為 C 函數的執行速度比 RTL 仿真快幾個數量級。在綜合之前使用 C 來開發和驗證算法比開發和調試 RTL 代碼要快得多。?

4.5 選擇硬件平臺

4.6 配置Clock和Flow

當未指定時鐘不確定度時,默認時鐘不確定性為時鐘周期的 27%。?

4.7 查看摘要

4.8 新建組件完畢

5. 總結

在Vitis 2024.1版本中,傳統的Vitis GUI已經被全新的統一軟件界面所取代。這個變化雖然初看令人生疏,但它實際上為開發者們帶來了更加高效和現代化的工作環境。新界面的Flow Navigator、多任務并行執行、AI引擎優化、以及界面的現代化設計,都極大地提升了工作流程的管理和執行效率。此外,新的統一軟件界面還提供了GUI和CLI模式的無縫轉換,使得項目構建和調試更加靈活。雖然適應新界面需要時間,但隨著熟悉度的提升,開發者們將能夠充分利用這些新特性,以更快的速度迭代和優化他們的工程。總的來說,Vitis的這次更新不僅僅是界面上的改變,更是開發者與時俱進、不斷進步的體現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38082.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38082.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38082.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL進階:存儲過程和函數

存儲過程和函數 1. 簡介2. 創建存儲過程使用MySQL工作臺創建存儲過程 3. 刪除存儲過程4. 參數帶默認值的參數參數驗證輸出參數 5. 變量6. 函數7. 其他約定 1. 簡介 存儲過程三大作用&#xff1a; 儲存和管理SQL代碼&#xff08;置于數據庫中&#xff0c;與應用層分離&#xf…

【力扣 28】找出字符串中第一個匹配項的下標 C++題解(字符串匹配)

給你兩個字符串 haystack 和 needle &#xff0c;請你在 haystack 字符串中找出 needle 字符串的第一個匹配項的下標&#xff08;下標從 0 開始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;則返回 -1 。 示例 1&#xff1a; 輸入&#xff1a;haystack “s…

(13)DroneCAN 適配器節點(二)

文章目錄 前言 2 固件 2.1 基于F103 2.2 基于F303 2.3 基于F431 3 ArduPilot固件DroneCAN設置 3.1 f303-通用設置示例 4 DroneCAN適配器節點 前言 這些節點允許現有的 ArduPilot 支持的外圍設備作為 DroneCAN 或 MSP 設備適應 CAN 總線。這也允許擴展自動駕駛儀硬件的…

隨機文本生成器

目錄 開頭程序程序的流程圖程序打印的效果(不必細看&#xff0c;因為字符太多)例1例2例3 結尾 開頭 大家好&#xff0c;我叫這是我58。看&#xff01;這下面有一個程序。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <random> #includ…

快遞物流倉庫管理系統java項目springboot和vue的前后端分離系統java課程設計java畢業設計

文章目錄 快遞物流倉庫管理系統一、項目演示二、項目介紹三、部分功能截圖四、部分代碼展示五、底部獲取項目源碼&#xff08;9.9&#xffe5;帶走&#xff09; 快遞物流倉庫管理系統 一、項目演示 快遞物流倉庫管理系統 二、項目介紹 語言: Java 數據庫&#xff1a;MySQL 前…

寶塔安裝rabbitMQ實戰

服務器環境說明 阿里云服務器、寶塔、centos7 一、下載erlang 原因&#xff1a;RabbitMQ服務端代碼是使用并發式語言Erlang編寫的&#xff0c;安裝Rabbit MQ的前提是安裝Erlang。 下載地址&#xff1a;http://www.erlang.org/downloads 下載對應的版本&…

山東省著名烈士孫善師孫善帥故居布展喜添新篇

人海信息網山東訊&#xff08;張春兄、馮愛云&#xff09; “……他們以鋼鐵般的意志&#xff0c;堅守共產黨員的使命&#xff0c;他們就是濼口九烈士的孫善師孫善帥兄弟&#xff01;”6月28日&#xff0c;對于山東省著名烈士孫善師孫善帥故居來說&#xff0c;又是一個不平凡的…

LabVIEW電壓電流實時監測系統

開發了一種基于LabVIEW和研華&#xff08;Advantech&#xff09;數據采集卡的電壓電流實時監測系統&#xff0c;通過高效的數據采集和處理&#xff0c;為工業和科研用戶提供高精度、實時的電壓電流監測解決方案。系統采用研華USB-4711A數據采集卡&#xff0c;結合LabVIEW編程環…

AI論文速讀 | 2024[KDD]自適應時空圖神經網絡中圖中獎彩票的預訓練識別

題目&#xff1a;Pre-Training Identification of Graph Winning Tickets in Adaptive Spatial-Temporal Graph Neural Networks 作者&#xff1a;Wenying Duan, Tianxiang Fang, Hong Rao, Xiaoxi He 機構&#xff1a;南昌大學&#xff0c;澳門大學 arXiv網址&#xff1a;h…

Python數據分析-股票分析和可視化(深證指數)

一、內容簡介 股市指數作為衡量股市整體表現的重要工具&#xff0c;不僅反映了市場的即時狀態&#xff0c;也提供了經濟健康狀況的關鍵信號。在全球經濟體系中&#xff0c;股市指數被廣泛用于預測經濟活動&#xff0c;評估投資環境&#xff0c;以及制定財政和貨幣政策。在中國…

IEEE JSTSP綜述:從信號處理領域分析視觸覺傳感器的研究

觸覺傳感器是機器人系統的重要組成部分&#xff0c;雖然與視覺相比觸覺具有較小的感知面積&#xff0c;但卻可以提供機器人與物體交互過程中更加真實的物理信息。 視覺觸覺傳感是一種分辨率高、成本低的觸覺感知技術&#xff0c;被廣泛應用于分類、抓取、操作等領域中。近期&a…

R-CNN和YOLO的各自優缺點

R-CNN&#xff08;包括其改進版本如Faster R-CNN和Mask R-CNN&#xff09;與YOLO&#xff08;You Only Look Once&#xff09;是兩種常用的物體檢測算法&#xff0c;它們各自有不同的優缺點&#xff0c;適用于不同的應用場景和需求。 R-CNN 系列 優點&#xff1a; 高精度&am…

如何跑起來一個前后端項目

后端部署 第一步配置自己的maven 第二步優先導入自己本地jar包當本地沒有在從遠程下載 第三步找到配置文件 第四步成功運行后端部署完畢 前端部署 第一步看看項目node_modules有沒有文件如果有就是已經安裝好了對應的依賴&#xff0c;沒有執行npm install 第二步運行即可

決策樹劃分屬性依據

劃分依據 基尼系數基尼系數的應用信息熵信息增益信息增益的使用信息增益準則的局限性 最近在學習項目的時候經常用到隨機森林&#xff0c;所以對決策樹進行探索學習。 基尼系數 基尼系數用來判斷不確定性或不純度&#xff0c;數值范圍在0~0.5之間&#xff0c;數值越低&#x…

【知識學習】Unity3D中Scriptable Render Pipeline的概念及使用方法示例

Unity3D中的Scriptable Render Pipeline&#xff08;SRP&#xff09;是一種高度可定制的渲染管線框架&#xff0c;允許開發者完全控制渲染流程&#xff0c;以適應不同的渲染需求和硬件平臺。SRP使得開發者可以編寫自己的渲染邏輯&#xff0c;包括攝像機管理、渲染設置、光照處理…

【機器學習】K-means++: 一種改進的聚類算法詳解

&#x1f308;個人主頁: 鑫寶Code &#x1f525;熱門專欄: 閑話雜談&#xff5c; 炫酷HTML | JavaScript基礎 ?&#x1f4ab;個人格言: "如無必要&#xff0c;勿增實體" 文章目錄 K-means: 一種改進的聚類算法詳解引言1. K-means算法回顧1.1 基本概念1.2 局限性…

Java的多彩之旅

Java的多彩之旅&#xff0c;確實是一場技術與創新的盛宴。下面&#xff0c;我們將探索它如何在不同領域展現其魅力和功能&#xff0c;從基礎到前沿&#xff0c;一步步揭開Java的神秘面紗。 基礎開發&#xff1a;清新之源 Java的基礎語法簡潔而嚴謹&#xff0c;是學習之旅的起…

Mongodb的體系結構,語法,底層原理,怎么開發使用,使用場景有哪些?

MongoDB 教材 MongoDB 是一個開源的 NoSQL 數據庫&#xff0c;以其高性能、高可用性和自動擴展性廣受歡迎。本文將詳細介紹 MongoDB 的體系結構、語法、底層原理、開發使用方法及常見使用場景。 目錄 MongoDB 簡介MongoDB 體系結構MongoDB 語法 基本操作高級查詢聚合操作 底…

RDMA建鏈的3次握手和斷鏈的4次揮手流程?

文章目錄 基礎信息建鏈 3次握手斷鏈4次揮手建聯狀態active端passive端 報文結構函數關系其他后記 基礎信息 CM: Communication Management 通信管理 連接管理SIDR: Service ID Resolution Protocol. 作用&#xff1a; enables users of Unreliable Datagram service to locate …

實驗4 圖像空間濾波

1. 實驗目的 ①掌握圖像空間濾波的主要原理與方法&#xff1b; ②掌握圖像邊緣提取的主要原理和方法&#xff1b; ③了解空間濾波在圖像處理和機器學習中的應用。 2. 實驗內容 ①調用 Matlab / Python OpenCV中的函數&#xff0c;實現均值濾波、高斯濾波、中值濾波等。 ②調…