国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

【ZYNQ Ultrascale+ MPSOC FPGA教程】第二十九章PL端AXI GPIO的使用

FPGA技術專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-01 10:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原創(chuàng)聲明:

本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權歸本公司所有,如需轉載,需授權并注明出處。

適用于板卡型號:

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

實驗Vivado工程目錄為“ps_axi_gpio /vivado”。

實驗vitis工程目錄為“ps_axi_gpio /vitis”。

可能有些人就會問,怎么又在講GPIO,LED燈,覺得太繁瑣,但是GPIO是ZYNQ的基本操作,本教程力求把各種方法分享給大家,PS端的MIO,EMIO,PL端的axi gpio,包括輸入輸出兩個方向,以及PS與PL的基本操作,所以還是希望大家耐心學習。

前面講過如何用的是PS端的EMIO點亮PL端LED燈,但是并沒有與PL端產生交互。本章介紹另外一種控制方法,在ZYNQ當中可以使用AXI GPIO,通過AXI總線控制PL端的LED燈。同時也介紹了PL端按鍵的使用。

使用zynq最大的疑問就是如何把PS和PL結合起來使用,在其他的SOC芯片中一般都會有GPIO,本實驗使用一個AXI GPIO的IP核,讓PS端通過AXI總線控制PL端的LED燈,實驗雖然簡單,不過可以讓我們了解PL和PS是如何結合的。

1. 原理介紹

一個AXI GPIO模塊有兩個GPIO,分別是GPIO和GPIO2,也就是channel1和channel2,為雙向IO。

o4YBAGAKMzKAY6pDAACmFyv6F58317.jpgAXI GPIO結構

FPGA工程師工作內容

以下為FPGA工程師負責內容。

2. Vivado工程建立

1)打開“ps_hello”另存為一個名為“ps_axi_gpio”Vivado工程,表示PS通過AXI總線控制gpio

pIYBAGAKMzOAGeCGAAA59aDj8iY856.jpg

“Create project subdirectory”勾選后會在目錄下創(chuàng)建子目錄,勾選“Include run results”會包含編譯后的結果

o4YBAGAKMzOAOXfTAAA8FI_NQ9c110.jpg

2)雙擊xx.bd打開block design

pIYBAGAKMzSAfyqRAACcpUntlPc415.jpg

添加AXI GPIO

3) 添加一個AXI GPIO的IP 核

pIYBAGAKMzSAQGKGAACdVkRTz8g117.jpg

4)雙擊剛才添加的“axi_gpio_0”配置參數

pIYBAGAKMzWAaKLaAABInvRCIFA965.jpg

5)選擇“All Outputs”,因為這里控制LED,只要輸出就可以了,“GPIO Width”填1,控制1顆LED,點擊OK。如果想使用channel2,需要把”Enable Dual Channel”打開,也就使能了GPIO2。

o4YBAGAKMzWAJlJ_AACA_2-QQxQ387.jpg

6)點擊“Run Connection Automation”,可以完成部分自動連線

pIYBAGAKMzaAJsGRAABPqHHFHJ0030.jpg

7)選擇要自動連接的端口,這里全選,點擊OK

o4YBAGAKMzeABI1QAABSVmWmSWA453.jpg

8)點擊“Optimize Routing”,可以優(yōu)化布局,同時可以看到多了兩個模塊,一個是Processor System Reset模塊,為同步復位模塊,提供同一時鐘域的復位信號。AXI Interconnect模塊為AXI總線互聯(lián)模塊,用于AXI模塊的交叉互聯(lián)。

pIYBAGAKMzeAY6DoAABbSSSffDA584.jpg

在這個應用中,我們可以看到用到了ZYNQ的HPM0_LPD口,此接口用于訪問PL端數據,大部分應用中是為了配置PL端模塊的寄存器

o4YBAGAKMziAZM--AABQUi9JHns252.jpg

復位信號由ZYNQ的復位輸出提供,最好是每個時鐘域都加一個復位模塊,可以根據模塊下面的名稱搜索添加。

pIYBAGAKMziAGZlyAABOYBnbw-w751.jpg

9)修改GPIO端口的名稱

o4YBAGAKMzmAKvYPAACPr-eO3Vc697.jpg

10)名稱修改為leds

pIYBAGAKMzqAAJJvAACNtJrXWOo194.jpg

11)再添加一個AXI GPIO,連接PL端按鍵,配置GPIO參數,都為輸入,寬度為1,使能中斷

o4YBAGAKMzuAVULcAAB_vG_zTWE596.jpg

12)使用自動連接

pIYBAGAKMzuARiKZAABT03zt0qs818.jpg

13)再把端口名稱改為keys

o4YBAGAKMzyAf4bZAACbeOzydCM968.jpg

14)由于是PL端過來的中斷,在這里需要配置ZYNQ處理器的中斷,設置IRQ0[0-7]為1

pIYBAGAKMz2ACrd3AABtCiLEb1Y810.jpg

15)連接ip2intc_irpt到pl_ps_irq

o4YBAGAKMz2ANcVFAABiV68BooM572.jpg

16)保存設計,點擊xx.bd,右鍵Generate Output Products

pIYBAGAKMz6APLO7AABXhXKoK1Y716.jpg

17)在生成的Verilog文件中,可以看到有個“l(fā)eds_tri_o”和”keys_tri_i”的端口,要為他們分配管腳,在綁定引腳時,以這個文件里的引腳名稱為準。

o4YBAGAKMz6AJadHAAClZPOBlyU065.jpg

3. XDC文件約束PL管腳

1)創(chuàng)建一個新的xdc約束文件

pIYBAGAKMz-ASDKcAABpvMGo0_c795.jpg

2)文件名稱為led

o4YBAGAKMz-AV41rAABzXm6E7ow848.jpg

3)led.xdc添加一下內容,端口名稱一定要和頂層文件端口一致

##################CompressBitstream############################set_propertyBITSTREAM.GENERAL.COMPRESSTRUE[current_design]set_propertyIOSTANDARDLVCMOS33[get_ports{leds_tri_o[0]}]set_propertyPACKAGE_PINAE12[get_ports{leds_tri_o[0]}]set_propertyIOSTANDARDLVCMOS33[get_ports{keys_tri_i[0]}]set_propertyPACKAGE_PINAF12[get_ports{keys_tri_i[0]}]

4)生成bit文件

pIYBAGAKMz-APW9RAAAKb9wKyjA709.jpg

5)導出硬件FileExportExport Hardware

o4YBAGAKM0CAYq31AACDny6BInc626.jpg

6)因為要用到PL,所以選擇“Include bitstream”,點擊“OK”

pIYBAGAKM0GAfb5bAAA-hieL5ac498.jpg

軟件工程師工作內容

以下為軟件工程師負責內容。

4. Vitis程序編寫

4.1 AXI GPIO點亮PL端LED燈

1)創(chuàng)建一個platform,創(chuàng)建過程參考“PS端RTC中斷實驗”一章

o4YBAGAKM0GASiB4AAAiaLMuMXQ266.jpg

2)面對一個不熟悉AXI GPIO,我們如何控制呢?我們可以嘗試一下Vitis自帶的例程

3)雙擊“system.mss”,找到“axi_gpio_0”,這里可以點擊“Documentation”來看相關文檔,這里就不演示,點擊“Import Examples”

o4YBAGAKM0GACiQIAACgMps8tic756.jpg

4)在彈出的對話框中有多個例程,從名稱中可以猜個大概,這里選第一個“xgpio_example”

pIYBAGAKM0KAGYIfAABMUDOZmfI824.jpg

5)可以看到例程比較簡單,短短幾行代碼,完成了AXI GPIO的操作

o4YBAGAKM0KAUIScAACcXBjD06M572.jpg

里面用到很多GPIO相關的API函數,通過文檔可以了解詳細,也可以選中該函數,按“F3”查看具體定義。如果有了這些信息你還不能理解如何使用AXI GPIO,說明你需要補充C語言基礎。

其實這些函數都是在操作GPIO的寄存器,AXI GPIO的寄存器也不多,主要是兩個channel的數據寄存器GPIO_DATA和GPIO2_DATA,兩個channel的方向控制GPIO_TRI和GPIO2_TRI,以及全局中斷使能寄存器GIER,IP的中斷使能IP IER和中斷狀態(tài)寄存器ISR,具體的功能可以看AXI GPIO的文檔pg144。

pIYBAGAKM0OAahdsAAB2VzDb7Xo566.jpg

比如進入到設置GPIO方向的函數中,就可以看到是在向GPIO的GPIO_TRI寄存器寫數據,從而控制方向。

o4YBAGAKM0OAJjzuAAAbLV_eD0s369.jpg

其他的函數也可以按此法自行研究。

4.2 下載調試

首先編譯APP工程,編譯方法前面的例程已經介紹過了。雖然Vitis可以提供一些例程,但有一部分例程是需要自己修改的,這個簡單的LED例程就不修改了,嘗試運行一下,發(fā)現(xiàn)不能達到預期效果,甚至提示一些錯誤。下載后可以看到開發(fā)板LED1快速閃爍。

pIYBAGAKM0SAdW1xAAC_csBgRVY911.jpg

4.3 寄存器方式實現(xiàn)

如果覺得Xilinx提供的API函數比較繁瑣,效率低,也可以采取操作寄存器的方式實現(xiàn)LED的控制。

比如下面我們新建了axi_led的工程,修改helloworld.c如下。

pIYBAGAKM0WAB3F9AABDfR8nAdw689.jpgpIYBAGAKM0WALDWrAAA15AgtgqI249.jpg

其中定義的基地址GPIO_BASEADDR可以在xx.xsa中里找到

o4YBAGAKM0WAQ4A1AABi_Jzlb2c941.jpg

由于我們只啟用了channel1,因此定義了下面的寄存器地址

pIYBAGAKM0aALJ51AAAXiX8MhsU330.jpg

這樣直接操作寄存器的方式效率會比調用Xilinx API函數高,而且更直觀,對于理解程序如何運行有很大幫助。但是對于大工程來講,這種方式使用起來就比較復雜,主要依據個人需求選擇。

4.4 AXI GPIO之PL端按鍵中斷

前面的定時器中斷實驗的中斷屬于PS內部的中斷,本實驗中斷來自PL,PS最大可以接收16個來自PL的中斷信號,都是上升沿或高電平觸發(fā)。

1)和前面的教程一樣,在不熟悉Vitis程序編寫的情況下,我們盡量使用Vitis自帶例程來修改,選擇“xgpio_intr_tapp_example”

o4YBAGAKM0aAFQlpAAB3XOk_30w049.jpg

2)需要修改部分代碼,按鍵的axi gpio模塊叫做axi_gpio_1,在xparameters.h中找到它的device id

pIYBAGAKM0eAUIDAAABWIRtSooI638.jpgo4YBAGAKM0iATRxhAAAmYl7qMTA304.jpg

3)然后可以修改GPIO和中斷號的宏定義如下

pIYBAGAKM0iAWNLOAAAl0B0P3jA244.jpg

4)修改測試延時時間,讓我們有足夠的時間去按按鍵

o4YBAGAKM0iAVlPVAAB2JSy1cfo247.jpg

4.5 下載調試

保存文件,編譯工程,打開串口終端,下載程序。如果一直不按按鍵,串口顯示“No button pressed.”,如果按下“KEY1”按鍵顯示“Successfully ran Gpio Interrupt Tapp Example”。

pIYBAGAKM0mAa4BbAAB8ElSAtVI039.jpg

5. 實驗總結

通過實驗我們了解到PS可以通過AXI總線控制PL,但幾乎沒有體現(xiàn)出ZYNQ的優(yōu)勢,因為對于控制LED燈,無論是ARM還是FPGA,都可以輕松完成,但是如果把LED換成串口呢,控制100路串口通信,8路以太網等應用,我想還沒有哪個SOC能完成這種功能,只有ZYNQ可以,這就是ZYNQ和普通SOC的不同之處。

PL端可以給PS發(fā)送中斷信號,這提高了PL和PS數據交互的效率,在需要大數量、低延時的應用中需要用到中斷處理。

到本章結束已經把ZYNQ的PS端MIO、EMIO,PL端GPIO如何使用講完了,包括輸入和輸出以及中斷處理,這些都是最基礎的操作,大家還是要多多思考,理解清楚。

6. 知識點分享

1)在設計好后,可以看到Address Editor中,已經為AXI外設分配好了地址空間,其中偏移地址和空間大小是可以修改的。

o4YBAGAKM0qAaIH9AABQWEJpwqI771.jpg

但是修改偏移地址是有限制的,詳情參考UG1085文檔System Address一章, AXI外設連接到了M_AXI_HPM0_LPD口,在8000_0000到9FFF_FFFF地址空間內修改。

pIYBAGAKM0uActWwAAC6Ru0YDSg577.jpg

2)在使用一個模塊時,需要配套的文檔輔助開發(fā),但是這些文檔該如何去找呢,例如XILINX的IP,打開模塊的配置,在左上角點擊Documentation,再點擊Product Guide,如果在安裝Vivado的時候安裝了DocNav,就會跳轉過去打開文檔。

o4YBAGAKM0yAR41PAACHr0PmB2c539.jpgo4YBAGAKM02AfQ-TAACelNpSYck497.jpg

此功能需要電腦聯(lián)網,DocNav會從網站加載文檔。可以點擊下載按鈕下載到本地。

還有一種方法是在Xilinx官網根據模塊的名稱搜索資料下載(頁面可能會有所變化)

pIYBAGAKM06APpN3AABgU45cy-w830.jpg

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

    關注

    1660

    文章

    22408

    瀏覽量

    636199
  • Xilinx
    +關注

    關注

    73

    文章

    2200

    瀏覽量

    131115
  • GPIO
    +關注

    關注

    16

    文章

    1328

    瀏覽量

    56215
  • Zynq
    +關注

    關注

    10

    文章

    630

    瀏覽量

    49447
  • MPSoC
    +關注

    關注

    0

    文章

    203

    瀏覽量

    25171
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    第二代AMD Kintex UltraScale+ FPGA的亮點

    第二代 AMD Kintex UltraScale+ FPGA 可有效賦能專業(yè)音視頻、廣播、醫(yī)療、機器視覺、機器人技術及測試測量等領域的開發(fā)者,助力其打造兼具卓越性能和可靠性的強大系統(tǒng),即使是面對
    的頭像 發(fā)表于 03-03 11:32 ?464次閱讀
    <b class='flag-5'>第二</b>代AMD Kintex <b class='flag-5'>UltraScale+</b> <b class='flag-5'>FPGA</b>的亮點

    AMD 推出第二代 Kintex UltraScale+FPGA,助力智能高性能系統(tǒng)

    第二代AMD Kintex UltraScale+ FPGA 系列 , 對于依賴中FPGA 為性能關鍵型系統(tǒng)提供支持的設計人員而言,可謂
    的頭像 發(fā)表于 02-04 16:11 ?4.9w次閱讀
    AMD 推出<b class='flag-5'>第二</b>代 Kintex <b class='flag-5'>UltraScale+</b> 中<b class='flag-5'>端</b><b class='flag-5'>FPGA</b>,助力智能高性能系統(tǒng)

    使用Aurora 6466b協(xié)議實現(xiàn)AMD UltraScale+ FPGA與AMD Versal自適應SoC的對接

    在本博客中,我們將介紹使用 Aurora 6466b 協(xié)議實現(xiàn) AMD UltraScale+ FPGA 與 AMD Versal 自適應 SoC 的對接。我們還將涵蓋有關 IP 配置、FPGA 之間的連接、時鐘設置以及復位拓撲
    的頭像 發(fā)表于 01-13 14:04 ?3371次閱讀
    使用Aurora 6466b協(xié)議實現(xiàn)AMD <b class='flag-5'>UltraScale+</b> <b class='flag-5'>FPGA</b>與AMD Versal自適應SoC的對接

    如何在Zynq UltraScale+ MPSoC平臺上通過JTAG啟動嵌入式Linux鏡像

    流程教程)。本文則進一步講解如何在 Zynq UltraScale+ MPSoC 平臺上通過 JTAG 逐步啟動 Linux,并提供了完整的過程與關鍵命令。只要按步驟操作,即使是復雜的 Linux 鏡像也能成功通過 JTAG 啟
    的頭像 發(fā)表于 01-13 11:45 ?4339次閱讀

    如何在ZYNQ本地部署DeepSeek模型

    一個將最小號 DeepSeek 模型部署到 AMD Zynq UltraScale+ MPSoC 處理系統(tǒng)的項目。
    的頭像 發(fā)表于 12-19 15:43 ?7569次閱讀
    如何在<b class='flag-5'>ZYNQ</b>本地部署DeepSeek模型

    AMD UltraScale架構:高性能FPGA與SoC的技術剖析

    AMD UltraScale架構:高性能FPGA與SoC的技術剖析 在當今的電子設計領域,高性能FPGAMPSoC/RFSoC的需求日益增長。AMD的
    的頭像 發(fā)表于 12-15 14:35 ?552次閱讀

    現(xiàn)已上市:AMD Spartan UltraScale+ FPGA SCU35 評估套件——面向所有開發(fā)人員的經濟實惠平臺

    AMD Spartan UltraScale+ FPGA SCU35 評估套件現(xiàn)已開放訂購。 該平臺由 AMD 構建,為客戶提供了一條利用 Spartan UltraScale+ FPGA
    的頭像 發(fā)表于 11-27 10:52 ?444次閱讀

    Zynq MPSoC PS側PCIe高速DMA互連解決方案

    在涉及Xilinx Zynq UltraScale+ MPSoC的項目中,實現(xiàn)設備間高速、低延遲的數據傳輸往往是核心需求之一。PCIe(尤其PS側)結合DMA(直接內存訪問)正是滿足這類需求的理想技術方案。
    的頭像 發(fā)表于 10-22 13:53 ?3847次閱讀
    雙<b class='flag-5'>Zynq</b> <b class='flag-5'>MPSoC</b> PS側PCIe高速DMA互連解決方案

    AMD Spartan UltraScale+ FPGA的優(yōu)勢和亮點

    AMD Spartan UltraScale+ FPGA 集小型封裝、先進的 I/O 功能與低功耗等優(yōu)勢于一體。該系列 FPGA 配備高速 16.3 Gb/s 收發(fā)器、內置的外部內存控制器以及
    的頭像 發(fā)表于 10-17 10:16 ?782次閱讀
    AMD Spartan <b class='flag-5'>UltraScale+</b> <b class='flag-5'>FPGA</b>的優(yōu)勢和亮點

    第二十九章 W55MH32 Modbus_TCP_Server示例

    本文講解了如何在 W55MH32?芯片上實現(xiàn) Modbus TCP?協(xié)議的服務器模式,通過實戰(zhàn)例程展示了從初始化 LED?相關函數、主循環(huán)調用處理函數到解析處理接收到的報文的完整過程。文章詳細介紹了 Modbus TCP?的概念、基本原理、優(yōu)勢、注意事項、應用場景、報文結構和常用功能碼,幫助讀者理解其在工業(yè)通信中的實際應用價值。
    的頭像 發(fā)表于 07-24 16:18 ?945次閱讀
    <b class='flag-5'>第二十九章</b> W55MH32 Modbus_TCP_Server示例

    第二十九章 讀寫內部FLASH

    本文介紹了W55MH32內部FLASH,其含主存儲、系統(tǒng)存儲等,可存儲代碼及掉電保存數據。讀寫需解鎖、擦除頁等步驟,標準庫提供相關函數。還展示了擦除編程測試及模擬EEPROM讀寫的實驗。
    的頭像 發(fā)表于 06-20 14:09 ?1211次閱讀
    <b class='flag-5'>第二十九章</b> 讀寫內部FLASH

    AMD Spartan UltraScale+ FPGA 開始量產出貨

    邊緣應用而設計,為業(yè)經驗證的 UltraScale+ FPGA 和自適應 SoC 產品組合帶來了現(xiàn)代化的連接、后量子密碼等功能。 三款最低
    的頭像 發(fā)表于 06-18 10:32 ?2315次閱讀
    AMD Spartan <b class='flag-5'>UltraScale+</b> <b class='flag-5'>FPGA</b> 開始量產出貨

    蔡司亮相第二十九屆中國國際口腔設備材料展覽會,邀您共探口腔行業(yè)未來

    作為亞太地區(qū)最具影響力的口腔專業(yè)展會,第二十九屆中國國際口腔設備材料展覽會即將盛大開幕。本屆展會預計將吸引來自中國、德國、日本、美國等30多個國家和地區(qū)的800余家企業(yè)參展,超13萬名專業(yè)人士
    發(fā)表于 06-09 13:42 ?1388次閱讀
    蔡司亮相<b class='flag-5'>第二十九</b>屆中國國際口腔設備材料展覽會,邀您共探口腔行業(yè)未來

    上汽大眾5月終端銷售8.7萬輛

    6月伊始,上汽大眾便攜旗下明星陣容亮相第二十九屆粵港澳大灣區(qū)車展,備受消費者關注。
    的頭像 發(fā)表于 06-06 17:59 ?943次閱讀

    Xilinx Ultrascale系列FPGA的時鐘資源與架構解析

    Ultrascale是賽靈思開發(fā)的支持包含步進功能的增強型FPGA架構,相比7系列的28nm工藝,Ultrascale采用20nm的工藝,主要有2個系列:Kintex和Virtex
    的頭像 發(fā)表于 04-24 11:29 ?2603次閱讀
    Xilinx <b class='flag-5'>Ultrascale</b>系列<b class='flag-5'>FPGA</b>的時鐘資源與架構解析