色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何在Vitis HLS中使用C語言代碼創建AXI4-Lite接口

OpenFPGA ? 來源:XILINX開發者社區 ? 作者:賽靈思開發者 ? 2022-07-08 09:40 ? 次閱讀

您是否想創建自己帶有 AXI4-Lite 接口的 IP 卻感覺無從著手?本文將為您講解有關如何在 Vitis HLS 中使用 C 語言代碼創建 AXI4-Lite 接口的基礎知識。

在本教程中,我們將來聊一聊有關如何在 Vitis HLS 中使用 AXI4-Lite 接口創建定制 IP 的基礎知識。如果您是 AXI 初學者,并且想要熟悉一下相關的基本術語和背景知識,請參閱教程 AXI 基礎第 1 講。(后臺回復AXI 1,可查看本篇文章)

注:在 Vivado HLS 中使用 AXI 創建 IP 的過程與使用 Vitis HLS 的過程不同。如果您想要在 Vivado HLS 中創建 AXI IP,請參閱UG902

https://china.xilinx.com/support/documentation/sw_manuals/xilinx2020_1/c_ug902-vivado-high-level-synthesis.pdf

AXI4-Lite 屬于基本 AXI 通信協議。它常用于簡單的低吞吐量存儲器映射通信(例如,往來于控制寄存器和狀態寄存器的通信)。

31642b1a-fe56-11ec-ba43-dac502259ad0.png

如上圖所示,AXI4-Lite 接口可設置為只讀(僅包含 2 條讀取通道)或只寫(僅包含 3 條寫入通道)。

在本教程中,我們將創建以下 IP,并使用 s_axi_BUS_A 作為我們的 AXI4-Lite 接口:

31860d34-fe56-11ec-ba43-dac502259ad0.png

本教程結束時,您將能夠

  • 了解在 Vitis HLS 中創建 AXI4-Lite 接口的相關基礎知識。

  • 了解 Vitis HLS 中的編譯指示相關信息,此類編譯指示用于定義所使用的 AXI 接口。

打開 AXI4-Lite 設計示例

在 Vitis HLS 中提供了 AXI4-Lite 的設計示例。要打開 AXI4-Lite 的設計示例,請遵循以下步驟進行操作:

1. 打開 Vitis HLS GUI。在首頁屏幕中,選擇“克隆示例 (Clone Examples)”選項以便從 GitHub 復制 Vitis HLS 設計示例:

31b27b30-fe56-11ec-ba43-dac502259ad0.png

2. 在彈出選項卡中,選擇示例的保存位置,然后單擊“確定 (OK)”:

31d360de-fe56-11ec-ba43-dac502259ad0.png

3. 在下一個屏幕中,設計示例將顯示在左下角。選中“HLS 微教程 (HLS Tiny Tutorials)”和“工作樹結構 (Working Tree)”旁的箭頭即可查看所有可用示例。

31f08d08-fe56-11ec-ba43-dac502259ad0.png

4. 向下滾動,找到 interface_axi_lite 示例。右鍵單擊文件夾名稱,然后選中“運行并打開 HLS 工程 (Run and Open HLS Project)”選項。

321298e4-fe56-11ec-ba43-dac502259ad0.png

5. 完成此操作后,將在左側選項卡中打開此工程。雙擊 example.cpp 和 example_test.cpp 以查看源代碼和測試激勵文件。

源代碼詳解

此示例包含 2 個主要文件:

Example.cpp - 此代碼將綜合到 RTL 中以創建“簡介”中所示的 IP。此 IP 將與 Vivado Design Suite 中的其它 IP 相結合,并最終被放置到您的硬件上。

Example_test.cpp - 此測試激勵文件將用于確保 example.cpp 按期望方式運行。Example.cpp 算法將通過如下方式進行檢查:將該算法的輸出與測試激勵文件中執行的“期望數據 (golden data)”計算結果進行比較。只要黃金數據與 example.cpp 的返回結果相匹配,HLS 中的測試激勵文件就會返回 0。

32360874-fe56-11ec-ba43-dac502259ad0.png

選中左側列中“源代碼 (Source)”下的 example.cpp 即可打開源代碼。接下來我們來詳細看下代碼:

函數實參

void example(char *a, char *b, char *c)

進入庫之后首先可看到的是 example(); 函數。只要您熟悉基于 C 語言的設計,就不難發現,通過形參(如上述示例中的 char *a、char *b 和 char*c)即可瞬間執行所有輸入和輸出操作。

在 RTL 設計中,數據通過端口進出 IP。這些端口可使用特定 I/O 協議(例如,AXI4-Lite、AXI4-Stream 等)來進行操作,這樣即可保證 IP 塊之間能夠進行標準化的通信。

對于進出 IP 的每一條數據,都應將其指定為主源文件中的一個獨立函數實參。稍后,該函數實參將被綜合成硬件 (RTL) 中的一個“端口”。

注:端口實際上可通過 3 種不同方法來創建,但本教程將主要講解采用函數實參的方法。

端口衍生自:

  • 指定的任意函數級協議。

  • 函數實參。

  • 全局變量(供頂層函數訪問,在其作用域范圍外定義)。

注:由于 AXI4-Lite 接口中的變量為函數實參,因此在 C 語言代碼中無法為其指定默認值。因此,無法為 AXI4-Lite 接口中的任何寄存器指定默認值。這些寄存器可通過 config_rtl 命令進行復位來實現,但不能為其指定任何其它默認值。(請參閱控制復位行為以了解詳細信息)。

https://china.xilinx.com/html_docs/xilinx2020_1/vitis_doc/programmingvitishls.html

接口編譯指示

接下來,我們來看看編譯指示接口。

首先逐一了解下其中每個組件:

#pragma HLS INTERFACE s_axilite port=a bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=b bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=c register bundle=BUS_A

#pragma HLS INTERFACE s_axilite port=return bundle=BUS_A

我們需要把 IP 的輸入/輸出定義為 s_axilite,這樣才能使用 AXI4-Lite 協議。如果我們的代碼中不包含此行,那么數據輸入/輸出將綜合到基本連線中,并且將不含關聯的握手信號。在此情況下,輸入將保持穩定狀態直至執行讀取輸入操作為止,一旦未謹慎執行此操作,就可能導致錯誤。

接口編譯指示格式如下:

#pragma HLS interface port= (register) bundle=

其中:

:用于指定函數實參的接口協議模式。在此例中,我們選擇的是 s_axilite。

port=:用于指定 INTERFACE 編譯指示所應用到的函數實參名稱。

(register):這是可選關鍵字,用于寄存(即存儲)信號和所有關聯的協議信號。它會導致信號保持直至至少完成函數執行的最后一個周期為止。

bundle=:此關鍵字支持您將端口信號手動組合到單一數據總線內。如果函數返回指定為 AXI4-Lite 接口(即代碼示例中的第 25 行),那么所有數據端口都將被自動捆綁到單一總線中。如果未在此處明確提供捆綁名稱,那么 Vitis HLS 將使用默認捆綁名稱control。當使用其它器件(例如,CPU)來配置和控制塊的啟動和停止操作時,這是常見的做法。

s_axilite port=return:用于設置類型為 s_axilite 的函數實參,端口名稱“return”將在 IP 塊中創建中斷信號。您可通過 AXI4-Lite 接口和 C 語言驅動程序文件來完成中斷編程。如需了解更多信息,請參閱此處

https://china.xilinx.com/html_docs/xilinx2020_1/vitis_doc/programmingvitishls.html#auo1539734222936

注:如果任意頂層函數實參指定為 AXI4-Lite 接口,則函數返回也必須指定為 AXI4-Lite 接口。

注 2:默認情況下,HLS 會為分組到同一個 AXI4-Lite 接口的每個端口分配地址。Vitis HLS 在C 驅動程序文件(如下鏈接)中提供了分配的地址。要顯式定義地址,可使用 offset 選項。在 AXI4-Lite 接口中,Vitis HLS 保留地址 0x0000 到 0x000C,用于塊級 I/O 協議信號和中斷控制。

https://china.xilinx.com/html_docs/xilinx2020_1/vitis_doc/programmingvitishls.html#auo1539734222936

函數主體

*c += *a + *b;

在該函數中,可以精確定義希望此 IP 執行的操作,此 IP 將導入 2 個值(a 和 b)并將結果 (c) 存儲在寄存器中。為測試功能,測試激勵文件將為 a 和 b 提供 example() 函數,并將其與自己計算 a+b 所得的值進行比較。如果結果相匹配,那么測試激勵文件應始終返回 0,并且 c 仿真即可通過。

在下一篇 AXI 基礎系列文章中,我們將學習如何將 IP 導出到 Vivado Design Suite 中以便通過 AXI4-Lite 接口將其連接到其它 IP 或連接到 PS。

審核編輯:湯梓紅


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

    關注

    33

    文章

    8575

    瀏覽量

    151015
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136685
  • AXI4
    +關注

    關注

    0

    文章

    20

    瀏覽量

    8887
  • Vitis
    +關注

    關注

    0

    文章

    146

    瀏覽量

    7421

原文標題:開發者分享 | AXI 基礎第 5 講-Vitis HLS 中的 AXI4-Lite 簡介-上

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Zynq中AXI4-LiteAXI-Stream功能介紹

    Zynq中AXI4-Lite功能 AXI4-Lite接口AXI4的子集,專用于和元器件內的控制寄存器進行通信。AXI-Lite允許構建簡單
    的頭像 發表于 09-27 11:33 ?8893次閱讀
    Zynq中<b class='flag-5'>AXI4-Lite</b>和<b class='flag-5'>AXI</b>-Stream功能介紹

    創建AXI Sniffer IP以在Vivado IP Integrator中使用教程

    在某些情況下,通過嗅探 AXI 接口來分析其中正在發生的傳輸事務是很有用的。在本文中,我將為大家演示如何創建基本 AXI4-Lite Sniffer IP 以對特定地址上正在發生的讀寫
    發表于 07-08 09:35 ?1030次閱讀

    可以在EDK中使Axi4Stream接口/總線嗎?

    你好,我正在EDK中使axi4stream。有人可以幫助我如何使用通過Vivado高級綜合(HLS)生成的ap_fifo / axi4stream
    發表于 02-28 13:47

    AXI4-lite端口可以保持未連接狀態嗎?

    我必須通過AXI4-lite接口配置Jesd204b核心,或者我可以簡單地將AXI4-lite端口保持未連接狀態(強制接地)?Jesd204核心示例top沒有提供有關AXI4-Lite
    發表于 05-15 09:30

    【正點原子FPGA連載】第四章呼吸燈實驗-領航者ZYNQ之HLS 開發指南

    ap_none接口的IP核。在本章我們將通過呼吸燈實驗,來學習如何使用Vivado HLS工具生成一個帶有AXI4-Lite總線接口的IP核,并學習Vivado
    發表于 10-10 17:01

    使用Vitis HLS創建屬于自己的IP相關資料分享

    HLS 采用 CC++ 描述并將它們轉換為自定義硬件 IP,完成后我們就可以在 Vivado 項目中使用該IP。Vitis
    發表于 09-09 16:45

    將DSP設計融入嵌入式系統的AXI4-Lite接口

    了解System Generator如何提供AXI4-Lite抽象,從而可以將DSP設計融入嵌入式系統。 完全支持包括集成到IP目錄,接口連接自動化和軟件API。
    的頭像 發表于 11-27 07:24 ?3249次閱讀

    如何創建基本AXI4-Lite Sniffer IP以對特定地址上正在發生的讀寫傳輸事務進行計數

    這將創建一個附帶 BD 的 Vivado 工程,此 BD 包含 AXI VIP (設置為 AXI4-Lite接口) 和 AXI GPIO
    的頭像 發表于 04-30 16:24 ?2349次閱讀
    如何<b class='flag-5'>創建</b>基本<b class='flag-5'>AXI4-Lite</b> Sniffer IP以對特定地址上正在發生的讀寫傳輸事務進行計數

    何在Vitis HLS中使C語言代碼創建AXI4-Lite接口

    在本教程中,我們將來聊一聊有關如何在 Vitis HLS 中使AXI4-Lite 接口
    的頭像 發表于 09-13 10:04 ?6425次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b><b class='flag-5'>中使</b>用<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>代碼</b><b class='flag-5'>創建</b><b class='flag-5'>AXI4-Lite</b><b class='flag-5'>接口</b>

    如何導出IP以供在Vivado Design Suite中使用?

    AXI 基礎第 6 講 - Vitis HLS 中的 AXI4-Lite 簡介中,使用 C 語言
    的頭像 發表于 04-26 17:32 ?4150次閱讀
    如何導出IP以供在Vivado Design Suite<b class='flag-5'>中使</b>用?

    Vitis HLS工具簡介及設計流程

    Vitis HLS 是一種高層次綜合工具,支持將 CC++ 和 OpenCL 函數硬連線到器件邏輯互連結構和 RAM/DSP 塊上。Vitis
    的頭像 發表于 05-25 09:43 ?2375次閱讀

    AXI4AXI4-LiteAXI4-Stream接口

    AXI4 是一種高性能memory-mapped總線,AXI4-Lite是一只簡單的、低通量的memory-mapped 總線,而 AXI4-Stream 可以傳輸高速數據流。從字面意思去理解
    的頭像 發表于 07-04 09:40 ?8572次閱讀

    使用AXI4-LiteVitis HLS創建的IP連接到PS

    AXI 基礎第 6 講 - Vitis HLS 中的 AXI4-Lite 簡介中,使用 C 語言
    發表于 08-02 09:43 ?823次閱讀
    使用<b class='flag-5'>AXI4-Lite</b>將<b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b><b class='flag-5'>創建</b>的IP連接到PS

    自定義AXI-Lite接口的IP及源碼分析

    在 Vivado 中自定義 AXI4-Lite 接口的 IP,實現一個簡單的 LED 控制功能,并將其掛載到 AXI Interconnect 總線互聯結構上,通過 ZYNQ 主機控制,后面對 Xilinx 提供的整個
    發表于 06-25 16:31 ?3326次閱讀
    自定義<b class='flag-5'>AXI-Lite</b><b class='flag-5'>接口</b>的IP及源碼分析

    何在Vitis HLS GUI中使用庫函數?

    Vitis? HLS 2023.1 支持新的 L1 庫向導,本文將講解如何下載 L1 庫、查看所有可用功能以及如何在 Vitis HLS G
    的頭像 發表于 08-16 10:26 ?1193次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>Vitis</b> <b class='flag-5'>HLS</b> GUI<b class='flag-5'>中使</b>用庫函數?
    主站蜘蛛池模板: A级毛片高清免费网站不卡| 伊人久久精品中文字幕| 污污内射在线观看一区二区少妇| 色柚视频网站ww色| 午夜福利32集云播| 亚洲中文久久久久久国产精品| 在线观看国产高清免费不卡| 91精品国产色综合久久不| oldgrand欧洲老妇人| 国产不卡一卡2卡三卡4卡网站| 国产亚洲精品影视在线| 久久精品亚洲国产AV涩情| 男人J桶女人P视频无遮挡网站| 漂亮妈妈中文字幕版| 午夜看片福利在线观看| 一级做a爰片久久毛片免费| 99国内偷揿国产精品人妻| 动漫美女无衣| 黑人操白逼| 浓毛BWBWBWBWBW日本| 婷婷色色狠狠爱| 永久精品免费影院在线观看网站| 99久久免热在线观看6| 国产精品久久久久久日本| 久久成人免费观看全部免费 | 处女座历史名人| 国产精品一区二区人妻无码| 久久久久久久久人体| 人人做人人干| 亚洲免费大全| a在线视频免费观看| 国产喷水1区2区3区咪咪爱AV| 巨胸美女狂喷奶水www网麻豆| 日本在线免费| 亚洲综合色婷婷在线影院| xxxx18动漫| 久久久午夜精品福利内容| 四虎4hu亚洲精品| 中文人妻熟妇精品乱又伦| 古代荡女丫鬟高H辣文纯肉| 久久不射网|