日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電路設(shè)計(jì)項(xiàng)目集錦
[導(dǎo)讀]我們最近一直在研究的一件事是,在與Versal Devices合作時(shí),使用Vitis開(kāi)發(fā)解決方案。例如,請(qǐng)參閱我的項(xiàng)目在Vitis系統(tǒng)設(shè)計(jì)的Versal和使用芯片范圍調(diào)試Versal設(shè)計(jì)。

我們最近一直在研究的一件事是,在與Versal Devices合作時(shí),使用Vitis開(kāi)發(fā)解決方案。例如,請(qǐng)參閱我的項(xiàng)目在Vitis系統(tǒng)設(shè)計(jì)的Versal和使用芯片范圍調(diào)試Versal設(shè)計(jì)。

在這個(gè)項(xiàng)目中,我們將研究如何在AIE和HLS開(kāi)發(fā)中使用Vitis功能仿真。

但什么是功能模擬?在為通用設(shè)備開(kāi)發(fā)時(shí),我們通常有獨(dú)立的PL或AIE設(shè)計(jì),或者需要在組合設(shè)計(jì)中同時(shí)使用PL和AIE的異構(gòu)設(shè)計(jì)。

功能仿真使我們能夠在進(jìn)行循環(huán)精確仿真之前驗(yàn)證行為和驗(yàn)證設(shè)計(jì)的功能正確性(Vitis子系統(tǒng)仿真)。

以前,我們已經(jīng)能夠使用x86模擬器進(jìn)行AIE引擎開(kāi)發(fā),并使用C-Sim進(jìn)行HLS內(nèi)核功能仿真。然而,Vitis功能仿真為開(kāi)發(fā)人員提供了一系列新的更高層次的抽象框架,我們可以使用這些框架執(zhí)行功能仿真。

Vitis Functional Simulation,使開(kāi)發(fā)人員能夠使用Python或MATLAB單獨(dú)或組合地模擬HLS和AIE引擎。這種使用高級(jí)框架的能力可以加快開(kāi)發(fā)時(shí)間,并使功能驗(yàn)證與算法開(kāi)發(fā)時(shí)使用的語(yǔ)言保持一致。

Vitis功能仿真

當(dāng)使用Vitis功能仿真時(shí),我們?cè)谠O(shè)計(jì)中獲得了幾個(gè)好處,包括

?編譯HLS內(nèi)核或AIE引擎圖(如果需要)。

?能力模擬和調(diào)試,因?yàn)槲覀冋诮⒌脑O(shè)計(jì)。

?仿真性能顯著提高,使仿真運(yùn)行速度更快,因此能夠捕獲數(shù)百萬(wàn)個(gè)樣本來(lái)計(jì)算性能,例如信號(hào)噪聲等。

由于VFS支持MATLAB和Python框架,因此VFS需要能夠有效地處理Python或MATLAB原生不支持的一系列類(lèi)型,例如bfloat16, mex9, float8。為了使VFS能夠使用變量來(lái)轉(zhuǎn)換MATLAB數(shù)組和Python Numpy數(shù)組,列表和元組。varray的工作方式類(lèi)似于Python中的numpy數(shù)組或MATLAB中的數(shù)組,但將所有所需的數(shù)據(jù)類(lèi)型放在一個(gè)保護(hù)傘下。

支持的數(shù)據(jù)類(lèi)型,取決于所使用的框架和AIE、AIE- ml和AIE- mlv2的目標(biāo)設(shè)備,下表提供了一個(gè)很好的參考。

而對(duì)于HLS內(nèi)核,類(lèi)型如下。

有兩種方法可以實(shí)例化AIE或HLS內(nèi)核對(duì)象。

?配置文件-定義構(gòu)建細(xì)節(jié),如果存在將使用的構(gòu)建。如果沒(méi)有一個(gè)將被編譯和使用。

?鍵值對(duì)——定義輸入文件、平臺(tái)和仿真參數(shù)。然后,這些將用于創(chuàng)建配置文件。

在這個(gè)項(xiàng)目中,我們將探索使用Python流來(lái)驗(yàn)證HLS設(shè)計(jì)。我們可以在通用設(shè)備上這樣做,但也可以在任何我們想要放置HLS IP核的設(shè)備上使用這種方法。

環(huán)境設(shè)置

要開(kāi)始使用VFS,我們需要在安裝了Vitis 2025.1的Linux機(jī)器上進(jìn)行開(kāi)發(fā)。

對(duì)于這個(gè)例子,我將使用我的一臺(tái)Linux開(kāi)發(fā)機(jī)器。

首先要做的是設(shè)置Vitis環(huán)境,這將允許我們的腳本根據(jù)需要調(diào)用Vitis。

在這個(gè)演示中,我將使用VSCode,因?yàn)樗情_(kāi)發(fā)python應(yīng)用程序的流行框架。因此,我使用集成終端。

建立了Vitis環(huán)境后,下一步是確保我們擁有所有必要的附加條件。在python中,我們唯一需要的VFS是NumPy。

如果您沒(méi)有,我們可以使用命令安裝它

請(qǐng)等待NumPy安裝完成。

為了檢查我們是否擁有我們需要的一切,我們可以在終端中啟動(dòng)python3,并檢查我們是否能夠?qū)氡匾膒ython

如果沒(méi)有問(wèn)題,我們就可以開(kāi)始創(chuàng)建測(cè)試應(yīng)用程序了。

測(cè)試應(yīng)用程序

對(duì)于這個(gè)模塊,我們將編寫(xiě)一個(gè)簡(jiǎn)單的HLS模塊,它將兩個(gè)數(shù)字相加。

這將使用AXI流輸入,每個(gè)輸入最多可達(dá)64位,并將它們加在一起。

這段代碼定義了兩個(gè)實(shí)現(xiàn)流(FIFO通道)的輸入,它們攜帶64位無(wú)符號(hào)不帶小數(shù)位的定點(diǎn)數(shù)字。

結(jié)果創(chuàng)建一個(gè)流(FIFO通道),它也攜帶64位無(wú)符號(hào)定點(diǎn)數(shù)。

然后將這兩個(gè)輸入加在一起,以創(chuàng)建一個(gè)結(jié)果,該結(jié)果在編譯時(shí)采用該類(lèi)型。

最后,將結(jié)果寫(xiě)入輸出。

雖然簡(jiǎn)單,但這演示了我們?nèi)绾卧贖SL IP內(nèi)核上使用流接口。

VFS測(cè)試應(yīng)用

VFS測(cè)試應(yīng)用程序如下所示

讓我們來(lái)分析一下

我們要做的第一件事是正確設(shè)置python腳本中所需的模塊。

在這種情況下,我們將導(dǎo)入VFS模塊,使我們能夠支持Vitis功能仿真。該模塊將為腳本提供所有必要的函數(shù)來(lái)定義HLS內(nèi)核,檢查其輸入和輸出,當(dāng)然在模擬中運(yùn)行HSL內(nèi)核。

然后我們還需要導(dǎo)入數(shù)組類(lèi)型,使我們能夠與HLS內(nèi)核共享數(shù)據(jù)。

要導(dǎo)入的最后一個(gè)模塊是numpy,它使我們能夠創(chuàng)建隨機(jī)數(shù)數(shù)組。

導(dǎo)入模塊后,下一步是創(chuàng)建HLS內(nèi)核對(duì)象,在此流程中,我使用鍵值對(duì)方法。在這種方法中,我們提供了HLS內(nèi)核的源代碼,所針對(duì)的部分板和要模擬的實(shí)際HLS函數(shù)的名稱(chēng)。

下一步是設(shè)置我們希望生成的隨機(jī)樣本的數(shù)量。

然后還創(chuàng)建了兩個(gè)NumPy數(shù)組,其中包含0到63之間的隨機(jī)數(shù)。創(chuàng)建的隨機(jī)樣本的數(shù)量取決于前面定義的隨機(jī)樣本的數(shù)量。這使得測(cè)試平臺(tái)可以根據(jù)需要進(jìn)行縮放。

但是,我們需要將NumPy數(shù)組轉(zhuǎn)換為一種不同的格式,以便能夠?qū)㈦S機(jī)數(shù)應(yīng)用于HLS內(nèi)核。

我們使用va模塊數(shù)組類(lèi)型,對(duì)于我們用來(lái)將NumPy數(shù)組轉(zhuǎn)換為無(wú)符號(hào)(0),64位寬(64)和0小數(shù)的固定類(lèi)型的varray,因?yàn)槲覀兊哪繕?biāo)是HLS內(nèi)核中的ap_unit類(lèi)型。

接下來(lái)的兩行報(bào)告HLS內(nèi)核上的輸入格式和輸出類(lèi)型。

這應(yīng)該與我們期望的類(lèi)型和寬度保持一致。

最后,內(nèi)核可以運(yùn)行,VFS的結(jié)果可以在輸出數(shù)組中捕獲。當(dāng)然,這將被格式化為一個(gè)數(shù)組。

然后我們可以顯示輸入值和輸出結(jié)果,當(dāng)然結(jié)果應(yīng)該是兩個(gè)輸入值的相加。

運(yùn)行模擬將顯示HLS內(nèi)核的編譯,因?yàn)闆](méi)有進(jìn)行預(yù)編譯。

編譯完成后,將加載hlkernel,并完成Vitis功能仿真。

總結(jié)

該項(xiàng)目展示了如何使用Python模擬Vitis HLS內(nèi)核,這為我們提供了一種非常靈活的方法,可以使用最流行的算法開(kāi)發(fā)框架之一來(lái)驗(yàn)證功能。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

我們從 IEEE 的論文《RDA:一種適用于雜亂環(huán)境中自主導(dǎo)航的加速無(wú)碰撞運(yùn)動(dòng)規(guī)劃器》中復(fù)制了 RDA 規(guī)劃器項(xiàng)目。我們提供了一個(gè)詳細(xì)的步驟指南,幫助您快速重現(xiàn)本文中的 RDA 路徑規(guī)劃算法,從而在復(fù)雜環(huán)境中實(shí)現(xiàn)高效的障...

關(guān)鍵字: ROS Python RDA規(guī)劃器

一款針對(duì) 4GB Jetson Orin Nano 設(shè)備進(jìn)行物體檢測(cè)的高性能 C++ 實(shí)現(xiàn)。對(duì) YOLOv8(成功)與 YOLOv26(挑戰(zhàn))進(jìn)行基準(zhǔn)測(cè)試

關(guān)鍵字: Python 邊緣計(jì)算 YOLOv8

藍(lán)牙低功耗(BLE)設(shè)備廣泛用于環(huán)境監(jiān)測(cè),但將其數(shù)據(jù)傳輸?shù)皆贫送ǔP枰獜?fù)雜的sdk、網(wǎng)關(guān)或?qū)S衅脚_(tái)。在本教程中,我們演示了一個(gè)簡(jiǎn)單而靈活的替代方案:使用BleuIO作為USB BLE網(wǎng)關(guān)將BLE廣告數(shù)據(jù)直接發(fā)送到Ardu...

關(guān)鍵字: Arduino云 藍(lán)牙低功耗 Python

在物聯(lián)網(wǎng)與邊緣計(jì)算興起的今天,單板計(jì)算機(jī)(如樹(shù)莓派、Jetson Nano等)憑借其低功耗、高集成度的特性,成為開(kāi)發(fā)者探索硬件編程的理想平臺(tái)。而Python憑借其簡(jiǎn)潔的語(yǔ)法和豐富的庫(kù)支持,成為單板計(jì)算機(jī)開(kāi)發(fā)的首選語(yǔ)言。本...

關(guān)鍵字: 單板計(jì)算機(jī) Python

物聯(lián)網(wǎng)(IoT)和工業(yè)互聯(lián)網(wǎng)快速發(fā)展,MQTT協(xié)議因其輕量級(jí)、低帶寬消耗和發(fā)布/訂閱模式,成為設(shè)備間通信的核心協(xié)議。然而,隨著MQTT應(yīng)用場(chǎng)景的復(fù)雜化,手動(dòng)測(cè)試已難以滿(mǎn)足高效驗(yàn)證需求,尤其是在多設(shè)備并發(fā)、異常場(chǎng)景模擬和性...

關(guān)鍵字: Python MQTT

在之前的博客文章中,我們已經(jīng)看到了如何使用AMD DSP庫(kù)在AMD Versal ae - ml架構(gòu)上快速實(shí)現(xiàn)FFT。與任何項(xiàng)目一樣,我們可能希望模擬生成的圖形,以確保我們獲得正確的行為。

關(guān)鍵字: AI引擎 Python FFT

在Python 3教程的這一部分中,我們將探索Python函數(shù)語(yǔ)法、參數(shù)處理、返回值和變量作用域。在此過(guò)程中,我們還將介紹一些通用函數(shù),如range()、map、filter和lambda函數(shù)。

關(guān)鍵字: Python 深度學(xué)習(xí) 人工智能

下面的說(shuō)明記錄了一種新的方法,可以立即開(kāi)始使用Xilinx Vitis AI v2.5硬件加速機(jī)器學(xué)習(xí)推理。它還使Python能夠控制和執(zhí)行Vitis AI Xilinx深度學(xué)習(xí)處理單元(DPU)。現(xiàn)在還支持VART a...

關(guān)鍵字: Python PYNQ DPU

ExoLab是一項(xiàng)STEM教育計(jì)劃,通過(guò)提供動(dòng)手的、基于項(xiàng)目的學(xué)習(xí)體驗(yàn),將學(xué)生與國(guó)際空間站(ISS)上的實(shí)驗(yàn)聯(lián)系起來(lái),學(xué)生可以在專(zhuān)門(mén)的生長(zhǎng)室ExoLab中進(jìn)行植物生物學(xué)實(shí)驗(yàn),并將其結(jié)果與國(guó)際空間站上發(fā)生的類(lèi)似實(shí)驗(yàn)進(jìn)行比較...

關(guān)鍵字: ExoLab 樹(shù)莓派 Python

掌握機(jī)械臂運(yùn)動(dòng)的藝術(shù)!該項(xiàng)目演示了如何在AgileX PIPER機(jī)械臂上實(shí)現(xiàn)連續(xù)軌跡記錄和重放。無(wú)論您是構(gòu)建教學(xué)演示還是自動(dòng)化復(fù)雜操作,這本全面的指南都將引導(dǎo)您完成從設(shè)置到部署的每一步。

關(guān)鍵字: 機(jī)械臂 Linux Python
關(guān)閉