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

當(dāng)前位置:首頁(yè) > > ZYNQ
		


實(shí)驗(yàn)背景

Xilinx DMA IP核是開(kāi)發(fā)中常用的IP核,在ZYNQ開(kāi)發(fā)中經(jīng)常用到,通常的示例都是在Microblaze或者ZYNQ等帶有處理器的工程中演示,使用封裝好的函數(shù)來(lái)進(jìn)行調(diào)用。為了對(duì)IP核有一個(gè)較為全面的了解,現(xiàn)在使用官方的HDL仿真示例對(duì)該IP的一些特性進(jìn)行分析,達(dá)到較為全面理解該IP核的特性與功能的目的,從而在調(diào)用函數(shù)時(shí)能夠明白這些函數(shù)到底進(jìn)行了什么樣的操作。

實(shí)驗(yàn)內(nèi)容

Xilinx DMA IP核(Enable Micro DMA)官方示例仿真分析。

實(shí)驗(yàn)步驟

創(chuàng)建工程,添加DMA IP核,配置如下:

使能Enable Micro DMA

打開(kāi)官方仿真示例

打開(kāi)后運(yùn)行仿真,在Scope頁(yè)面下有如下模塊:

在文檔PG021中有如下框圖解釋各模塊的功能

從以上描述可以得知,仿真的大致過(guò)程如下:

1. 產(chǎn)生時(shí)鐘

2. 配置DMA IP核

3. MM2S通道讀取AXI Bram Ctrl(在時(shí)鐘穩(wěn)定后進(jìn)行填充)中的數(shù)據(jù),并檢查數(shù)據(jù)正確性。

4. S2MM通道通過(guò)DMA向AXI Bram Ctrl中寫(xiě)入數(shù)據(jù),并檢查數(shù)據(jù)正確性。

由于這里沒(méi)有使能SG模式,所以沒(méi)有SG相關(guān)的操作,后面的分享會(huì)分析SG模式的DMA。

下面開(kāi)始分析波形,分析的步驟就是上述說(shuō)明的仿真步驟。首先查看配置模塊的波形。

配置過(guò)程由AXI Traffic Generator IP實(shí)現(xiàn),該IP核的操作可以參考以下文章

王小二苕:AXI Traffic Generator IP核使用(一)9 贊同 · 2 評(píng)論文章

王小二苕:AXI Traffic Generator IP核使用(二)3 贊同 · 0 評(píng)論文章

王小二苕:AXI Traffic Generator IP核使用(三)3 贊同 · 2 評(píng)論文章

從波形可以看到,配置過(guò)程對(duì)幾個(gè)寄存器進(jìn)行了配置,如下

0x00_00_00_00寄存器配置值為:0x00_00_70_01(32’b111_0000_0000_0001)

bit0為MM2S DMA通道的開(kāi)啟與停止控制位,bit12-14為三種類型中斷的使能控制位。

該配置值就是開(kāi)啟MM2S通道,使能三種中斷。

0x00_00_00_18寄存器配置值為:

0x00_00_00_00

該寄存器為DMA讀取system memory 的源地址(Source address),即MM2S通道讀取Bram中的數(shù)據(jù)的起始地址為0x00_00_00_00。

0x00_00_00_28寄存器配置值為:

0x0C_00_00_40

該寄存器為DMA讀取system memory中數(shù)據(jù)的字節(jié)數(shù),由于高26-31為保留部分,所以有效數(shù)據(jù)為0x40,十進(jìn)制數(shù)為64,即從system memory中讀取64字節(jié)的數(shù)據(jù)。

0x00_00_00_30寄存器配置值為:

0x00_00_70_01(32’b111_0000_0000_0001)

與0x00_00_00_00寄存器功能類似,通道為S2MM。

0x00_00_00_48寄存器配置值為:

0x00_00_00_00

該寄存器為S2MM通道寫(xiě)數(shù)據(jù)到system memory中的目的地址。

0x00_00_00_58寄存器配置值為:

0x0c_00_00_40

該寄存器為S2MM通道寫(xiě)數(shù)據(jù)到system memory中的數(shù)據(jù)長(zhǎng)度,長(zhǎng)度以字節(jié)為單位,即64字節(jié)的數(shù)據(jù)。

以上為配置過(guò)程,下面查看AXI Bram數(shù)據(jù)填充與MM2S通道讀數(shù)據(jù)。(System Memory to Stream)。

當(dāng)時(shí)鐘穩(wěn)定后,axi4_write_master模塊向axi_bram_ctrl_0模塊寫(xiě)入數(shù)據(jù),模塊連接圖如下:

查看axi4_write_master波形

從波形可知,寫(xiě)數(shù)據(jù)分為兩次進(jìn)行,第一次地址為0x00_00_00_00,第二次地址為0x00_00_00_80,突發(fā)length均為0x1f,突發(fā)size為2,突發(fā)類型為INCR,即一次寫(xiě)操作寫(xiě)入128字節(jié)的數(shù)據(jù)。關(guān)于AXI4的突發(fā)操作,可以參考如下文章:

王小二苕:Xilinx AXI Bram Ctrl IP核使用(一)6 贊同 · 0 評(píng)論文章

下面查看axi_bram_ctrl_0模塊,需要說(shuō)明的是該模塊是具有存儲(chǔ)數(shù)據(jù)功能的,Bram在內(nèi)部例化,該IP核的配置頁(yè)面如下:

查看該IP核寫(xiě)數(shù)據(jù)相關(guān)信號(hào)

依據(jù)DMA配置的信息,MM2S需要從axi_bram_ctrl_0模塊中讀取64字節(jié)數(shù)據(jù),起始地址為0x00_00_00_00,下面查看讀取數(shù)據(jù)相關(guān)信息,如下:

讀取的數(shù)據(jù)字節(jié)數(shù),以及起始地址與配置信息一致,讀取的數(shù)據(jù)也是正確的。

由于配置時(shí),使能了中斷,下面查看中斷信號(hào)波形,

可以看到,MM2S通道從axi_bram_ctrl_0讀取數(shù)據(jù)完成后,mm2s_introut信號(hào)拉高。

MM2S通道操作完成后,再來(lái)分析S2MM通道,當(dāng)S2MM通道對(duì)應(yīng)的寄存器配置完成后,axis_write_master通過(guò)DMA向axi_bram_ctrl_1寫(xiě)入數(shù)據(jù),RTL連接圖如下:

axis_write_master模塊信號(hào)如下:

寫(xiě)入數(shù)據(jù)長(zhǎng)度為64字節(jié),下面查看DMA模塊S2MM通道信號(hào)

可以看到,寫(xiě)入地址為0x00_00_00_00,寫(xiě)入長(zhǎng)度為64字節(jié),與配置信息一致。

S2MM通道傳輸完成后,s2mm_introut中斷信號(hào)拉高。

axis_data_read和axi_s2mm_read模塊為數(shù)據(jù)檢驗(yàn)?zāi)K,即檢查寫(xiě)入與讀出的數(shù)據(jù)是否一致。

至此,DMA IP核(Enable Micro Mode)MM2S通道和S2MM通道傳輸數(shù)據(jù)仿真分析完成??梢钥吹?,對(duì)于該IP核,只要弄清楚寄存器的作用以及數(shù)據(jù)傳輸方向,就可以基本掌握其使用方法。在ZYNQ或者M(jìn)icroblaze中通過(guò)封裝好的函數(shù)對(duì)該IP核進(jìn)行操作,本質(zhì)也是配置寄存器。在后面的分享中,將會(huì)介紹SG模式的DMA IP核的仿真分析。

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