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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用AXI-Full接口的IP進(jìn)行DDR的讀寫(xiě)測(cè)試

FPGA之家 ? 來(lái)源:CSDN ? 作者:Vuko-wxh ? 2022-07-18 09:53 ? 次閱讀

學(xué)習(xí)內(nèi)容

本文首先進(jìn)行自定義IP的AXI總線IP的設(shè)計(jì),然后在SDK下編寫(xiě)代碼進(jìn)行DDR的讀寫(xiě)數(shù)據(jù)的測(cè)試。

開(kāi)發(fā)環(huán)境

vivado 18.3&SDKPYNQ-Z2開(kāi)發(fā)板

系統(tǒng)框圖

首先對(duì)本次工程進(jìn)行簡(jiǎn)要說(shuō)明:本次工程使用AXI-Full接口的IP進(jìn)行DDR的讀寫(xiě)測(cè)試。在我們的DDR讀寫(xiě)IP中,我們把讀寫(xiě)完成和讀寫(xiě)錯(cuò)誤信號(hào)關(guān)聯(lián)到PL端的LED上,用于指示DDR讀寫(xiě)IP的讀寫(xiě)運(yùn)行狀態(tài)。然后使用PL部分消抖處理后的按鍵進(jìn)行啟動(dòng)AXI總線工作,控制數(shù)據(jù)寫(xiě)入。通過(guò)AXI互聯(lián)模塊連接到AXI_HP0端口,由PS端口進(jìn)行數(shù)據(jù)的讀取操作,并通過(guò)串口進(jìn)行讀寫(xiě)數(shù)據(jù)的監(jiān)控。pYYBAGLUvaaAO6XJAADNvLJIgRs591.jpg

自定義IP設(shè)計(jì)

首先打開(kāi)Vivado軟件,在Tasks這里選擇New IP lacation

pYYBAGLUvd-ACdbiAABua1bs3Q0706.jpg

點(diǎn)擊next,對(duì)IP的信息進(jìn)行設(shè)置,這里我們使用默認(rèn)配置即可。設(shè)置好我們IP要保存的位置。

pYYBAGLUvfeAFFyrAACnp8gLUGw995.jpg

點(diǎn)擊Tools中的創(chuàng)建和封裝新的IP選項(xiàng),

poYBAGLUvhuAeE9FAAEoh3_cWvg980.jpg

點(diǎn)擊NEXT ,選擇我們的封裝類型。因?yàn)檫@里我們是直接進(jìn)行打開(kāi)IP設(shè)計(jì)的界面,前兩個(gè)選項(xiàng)是可以在我們的vivado當(dāng)前工程下面進(jìn)行封裝設(shè)計(jì),這里我們只進(jìn)行了IP設(shè)計(jì)沒(méi)有建立工程,所以前兩個(gè)選項(xiàng)是無(wú)法選中的。我們也可以通過(guò)工程界面,進(jìn)入點(diǎn)擊Tools中的創(chuàng)建和封裝新的IP選項(xiàng)。

poYBAGLUvkiABDIMAADAe_CgTXQ316.jpg

這里是用DDR讀寫(xiě)IP來(lái)做主機(jī),控制數(shù)據(jù)寫(xiě)入,PS作為從機(jī)進(jìn)行讀取IP中寫(xiě)入的數(shù)據(jù)。

poYBAGLUvmGAYs8sAACvY_BPA7Q036.jpg

可以直接選中進(jìn)行編輯IP,用戶可以根據(jù)自己的設(shè)計(jì)進(jìn)行修改編輯IP的功能,這里沒(méi)有對(duì)IP進(jìn)行修改處理,所以可以直接保存選擇第一個(gè)添加到IP庫(kù)中即可。poYBAGLUvniAYb5jAADUz1w-kew197.jpg

若修改相應(yīng)的邏輯功能打開(kāi)IP,在對(duì)應(yīng)位置編輯添加代碼即可。

poYBAGLUvpKAEv8jAAC-SdZJ3ag510.jpg

添加完成綜合后對(duì)IP進(jìn)行重新打包。DDR讀寫(xiě)IP設(shè)計(jì)完成,創(chuàng)建的 IP 核將通過(guò) AXI4 Master 端口向 Slave 端指定的 4K 存儲(chǔ)空間中連續(xù)寫(xiě)入 1024 個(gè)數(shù)據(jù), 寫(xiě)入的數(shù)值從 1 累加到 1024, 每個(gè)數(shù)據(jù)占 32bit。然后進(jìn)行硬件平臺(tái)的構(gòu)建。

硬件平臺(tái)構(gòu)建

首先,添加ZYNQ7 IP核,以及添加已經(jīng)完成設(shè)計(jì)的ddr讀寫(xiě)IP核。

添加用戶自定義IP

用戶自定義的IP可通過(guò)以下步驟完成添加。點(diǎn)擊Settings,

poYBAGLUv6iAFPyfAAD4DSU52ZE818.jpg

在project settings選擇IP,依次點(diǎn)擊,在IP庫(kù)那里點(diǎn)擊加號(hào),把對(duì)應(yīng)的IP目錄文件夾添加后,點(diǎn)擊OK或者Apply即可完成添加,在IP庫(kù)中就可以找到用戶設(shè)計(jì)的IP。

poYBAGLUv7-AVlyxAADZpe6vJnU483.jpg

完成IP和ZYNQ7 IP的導(dǎo)入后,如下圖:

pYYBAGLUv9SADRg_AACmGmBsULY185.jpg

雙擊打開(kāi)zynq刪除多余的接口,這里只需要保留uart,并打開(kāi)Slave HP0端口、時(shí)鐘、復(fù)位端口。

pYYBAGLUv-mAMZ-LAAD5l36TuIA990.jpg
poYBAGLUwACAW9nYAAEaUjbSIYE282.jpg
pYYBAGLUwBWAOl4qAAEGuRUv9Vk221.jpg

配置完,選擇自動(dòng)連接接口,完成部分連接設(shè)計(jì)。

pYYBAGLUwCiAXfUlAACZ8qfpjpo680.jpg

整體設(shè)計(jì)圖如下,

pYYBAGLUwDuAErT7AACuhz9p7N4226.jpg

添加按鍵消抖IP

pYYBAGLUwFOAFkGuAACHbMdxz4c065.jpg

由于ddr讀寫(xiě)IP的axi_init_axi_txn接入的是按鍵,這里按鍵按下會(huì)產(chǎn)生抖動(dòng),axi_init_axi_txn與好多讀寫(xiě)信號(hào)關(guān)聯(lián),如果不添加消抖IP,在按鍵按下的時(shí),產(chǎn)生的毛刺會(huì)進(jìn)行影響后續(xù)的操作,從而導(dǎo)致讀寫(xiě)操作的錯(cuò)誤,也就是讀寫(xiě)操作的指示燈會(huì)亮起。

pYYBAGLUwGuALaHZAACeCniyL-E421.jpg

系統(tǒng)復(fù)位后, 狀態(tài)機(jī)處于初始狀態(tài),在該狀態(tài)下等待外部輸入的啟動(dòng)傳輸脈沖 init_txn_pulse。一旦檢測(cè)到 init_txn_pulse 為高電平,狀態(tài)機(jī)跳轉(zhuǎn)到 INIT_WRITE 狀態(tài)。在 INIT_WRITE 狀態(tài)下, 狀態(tài)機(jī)拉高 start_single_burst_write 信號(hào), 來(lái)不斷地啟動(dòng) AXI4 Master 接口對(duì)Slave 端大小為 4KB 的存儲(chǔ)空間進(jìn)行突發(fā)寫(xiě)操作。寫(xiě)操作完成后, write_done 信號(hào)會(huì)拉高,狀態(tài)機(jī)進(jìn)入INIT_READ 狀態(tài)。在 INIT_READ 狀態(tài)下, 狀態(tài)機(jī)拉高 start_single_burst_read 信號(hào), 不斷地啟動(dòng) AXI4 Master 接口對(duì) Slave端同一存儲(chǔ)空間進(jìn)行突發(fā)讀操作, 同時(shí)將讀出的數(shù)據(jù)與寫(xiě)入的數(shù)據(jù)進(jìn)行對(duì)比。讀操作完成后, read_done 信號(hào)拉高,狀態(tài)機(jī)進(jìn)入 INIT_COMPARE 狀態(tài)。在 INIT_COMPARE 狀態(tài)下, 判斷 AXI4 接口在讀寫(xiě)過(guò)程中的是否發(fā)生錯(cuò)誤, 并將錯(cuò)誤狀態(tài)賦值給ERROR 信號(hào), 然后將 compare_done 信號(hào)拉高,表示一次讀寫(xiě)測(cè)試完成。最后跳轉(zhuǎn)到 IDLE 狀態(tài),等待下一次讀寫(xiě)操作的啟動(dòng)信號(hào)。這里的消抖模塊直接添加之前寫(xiě)過(guò)的按鍵消抖模塊即可,這里給出我的設(shè)計(jì):

module key_filter(
Clk,      //50M時(shí)鐘輸入
Rst_n,    //模塊復(fù)位
key_in,   //按鍵輸入
key_flag, //按鍵標(biāo)志信號(hào)
key_state //按鍵狀態(tài)信號(hào)
);

input Clk;
input Rst_n;
input key_in;

output reg key_flag;
output reg key_state;

localparam
IDEL= 4'b0001,
FILTER0= 4'b0010,
DOWN= 4'b0100,
FILTER1 = 4'b1000;

reg [3:0]state;
reg [19:0]cnt;
reg en_cnt;//使能計(jì)數(shù)寄存器

//對(duì)外部輸入的異步信號(hào)進(jìn)行同步處理
reg key_in_sa,key_in_sb;
always@(posedge Clk or negedge Rst_n)
if(!Rst_n)begin
key_in_sa <= 1'b0;
key_in_sb <= 1'b0;
end
else begin
key_in_sa <= key_in;
key_in_sb <= key_in_sa;
end

reg key_tmpa,key_tmpb;
wire pedge,nedge;
reg cnt_full;//計(jì)數(shù)滿標(biāo)志信號(hào)

//使用D觸發(fā)器存儲(chǔ)兩個(gè)相鄰時(shí)鐘上升沿時(shí)外部輸入信號(hào)(已經(jīng)同步到系統(tǒng)時(shí)鐘域中)的電平狀態(tài)
always@(posedge Clk or negedge Rst_n)
if(!Rst_n)begin
key_tmpa <= 1'b0;
key_tmpb <= 1'b0;
end
else begin
key_tmpa <= key_in_sb;
key_tmpb <= key_tmpa;
end

//產(chǎn)生跳變沿信號(hào)
assign nedge = !key_tmpa & key_tmpb;
assign pedge = key_tmpa & (!key_tmpb);

always@(posedge Clk or negedge Rst_n)
if(!Rst_n)begin
en_cnt <= 1'b0;
state <= IDEL;
key_flag <= 1'b0;
key_state <= 1'b1;
end
else begin
case(state)
IDEL :
begin
key_flag <= 1'b0;
if(nedge)begin
state <= FILTER0;
en_cnt <= 1'b1;
end
else
state <= IDEL;
end

FILTER0:
if(cnt_full)begin
key_flag <= 1'b1;
key_state <= 1'b0;
en_cnt <= 1'b0;
state <= DOWN;
end
else if(pedge)begin
state <= IDEL;
en_cnt <= 1'b0;
end
else
state <= FILTER0;

DOWN:
begin
key_flag <= 1'b0;
if(pedge)begin
state <= FILTER1;
en_cnt <= 1'b1;
end
else
state <= DOWN;
end

FILTER1:
if(cnt_full)begin
key_flag <= 1'b1;
key_state <= 1'b1;
state <= IDEL;
en_cnt <= 1'b0;
end
else if(nedge)begin
en_cnt <= 1'b0;
state <= DOWN;
end
else
state <= FILTER1;

default:
begin 
state <= IDEL; 
en_cnt <= 1'b0;
key_flag <= 1'b0;
key_state <= 1'b1;
end

endcase
end



always@(posedge Clk or negedge Rst_n)
if(!Rst_n)
cnt <= 20'd0;
else if(en_cnt)
cnt <= cnt + 1'b1;
else
cnt <= 20'd0;

always@(posedge Clk or negedge Rst_n)
if(!Rst_n)
cnt_full <= 1'b0;
else if(cnt == 20'd999_999)
cnt_full <= 1'b1;
else
cnt_full <= 1'b0;

endmodule

添加完模塊后系統(tǒng)設(shè)計(jì)如下:注:axi_init_axi_txn是上升沿有效,這里為了保證系統(tǒng)上電后是初始默認(rèn)隨機(jī)狀態(tài),要確保按鍵未按下給啟動(dòng)脈沖時(shí),是低電平。因?yàn)镻YNQZ2開(kāi)發(fā)板按鍵默認(rèn)電位是低,按下為高,這里不用進(jìn)行處理,若按鍵按下后為低,默認(rèn)拉高,這里可以對(duì)按鍵進(jìn)行添加非邏輯的IP進(jìn)行取反。(使用 utility vector logic IP完成配置)

pYYBAGLUwIaALS_fAAD68Czzad8486.jpg

雙擊DDR讀寫(xiě)的IP核進(jìn)行配置,這里沒(méi)有用到user的接口所以都設(shè)置為0,如圖:

pYYBAGLUwJqAJ5MsAADn9RQGLk4990.jpg

對(duì)于Base address,我們可以查看下接口的地址范圍,避免數(shù)據(jù)操作超過(guò)可操作范圍,這里我們就取中間值0X10000000。

poYBAGLUwK2AYJ35AACMfjhmlww326.jpg

然后我們進(jìn)行g(shù)enerate output product 然后生成HDL封裝。接著就對(duì)應(yīng)引腳進(jìn)行引腳約束即可(PYNQ的粉色開(kāi)發(fā)板可以直接引用這個(gè)約束):

##LEDs
set_property -dict { PACKAGE_PIN R14   IOSTANDARD LVCMOS33 } [get_ports { m0_axi_error_0 }]; #IO_L6N_T0_VREF_34 Sch=led[0]
set_property -dict { PACKAGE_PIN P14   IOSTANDARD LVCMOS33 } [get_ports { m0_axi_txn_done_0}]; #IO_L6P_T0_34 Sch=led[1]

##Buttons
set_property -dict { PACKAGE_PIN D19   IOSTANDARD LVCMOS33 } [get_ports { key }]; #IO_L4P_T0_35 Sch=btn[0]

完成約束后進(jìn)行綜合布局布線,等待生成bit流文件。

poYBAGLUwMSAco7DAACV94ZYr9Y653.jpg

bit文件生成后在FILE處,點(diǎn)擊導(dǎo)出硬件資源(包含bit流文件),接著launch SDK。

SDK軟件部分

打開(kāi)SDK后,新建application project。在main.c中輸入以下代碼:

#include "stdio.h"
#include "xil_cache.h"
#include "xil_printf.h"
#include "xil_io.h"
int main(){
int i;
char chardata;
Xil_DCacheDisable();
printf("AXI4-FULL RW TEST~

");
while(1){
scanf("%c",chardata);
if(chardata="y"){
printf("start
");
for(i=0;i<4096;i=i+4){
printf("%d is %d
",i,(int)(Xil_In32(0x10000000+i)));
}
}
}
return 0;
}

代碼簡(jiǎn)要說(shuō)明

這里使用的IP我們?cè)O(shè)定成不需要進(jìn)行緩存的,所以在main函數(shù)中調(diào)用Xil_DCacheDisable();。使用Xil_In32(),對(duì)DDR對(duì)應(yīng)位置的數(shù)據(jù)進(jìn)行讀取。參數(shù)只需要傳遞所要讀取的地址即可。因?yàn)橐淮螌?xiě)入的數(shù)據(jù)是32位的,每個(gè)地址的數(shù)據(jù)位寬是8位,所以在for循環(huán)中使用了i=i+4。

在串口中使用printf("%d is %d ",i,(int)(Xil_In32(0x10000000+i)));對(duì)相應(yīng)地址的數(shù)據(jù)進(jìn)行讀取顯示。

運(yùn)行效果

當(dāng)按鍵未按下時(shí),也就是未進(jìn)行寫(xiě)入操作直接讀取數(shù)據(jù),DDR中的數(shù)據(jù)是默認(rèn)的隨機(jī)狀態(tài),如下所示:

pYYBAGLUwOCASjXAAACEo9Cvmvs368.jpg

當(dāng)按鍵按下后,IP完成數(shù)據(jù)寫(xiě)入操作,數(shù)據(jù)是從1-1024自增的

poYBAGLUwPaALuQFAADuMKaD0XY062.jpg

如何波形進(jìn)行debug?

這里我們選中要進(jìn)行DEBUG的數(shù)據(jù)信號(hào)右擊選中debug


poYBAGLUwQyAU7ulAACFBd-cCPc264.jpg

然后點(diǎn)擊自動(dòng)連接,完成debug功能搭建

pYYBAGLUwSGAH797AACUjZ-uvnQ516.jpg

綜合后會(huì)多出ILA的IP進(jìn)行波形分析幫助DEBUG。

poYBAGLUwTaAfPOLAAA10xprmRg156.jpg

然后打開(kāi)硬件設(shè)備,如下圖在ila界面即可看到我們debug的波形數(shù)據(jù)了。

poYBAGLUwU2AWu4-AAF0R7VMSXE599.jpg

添加觸發(fā)條件,標(biāo)號(hào)2是單次觸發(fā),標(biāo)號(hào)1是一直運(yùn)行debug抓取波形。

pYYBAGLUwVyAOqXOAAGcBZHMWR4164.jpg


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    712

    瀏覽量

    65340
  • AXI總線
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    14261
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1036

    瀏覽量

    45940
  • AXI
    AXI
    +關(guān)注

    關(guān)注

    1

    文章

    127

    瀏覽量

    16631

原文標(biāo)題:如何波形進(jìn)行debug?

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用AXI VIP在AXI4(Full)主接口中執(zhí)行驗(yàn)證和查找錯(cuò)誤

    AXI 基礎(chǔ)第 2 講 一文中,曾提到賽靈思 Verification IP (AXI VIP) 可用作為 AXI 協(xié)議檢查工具。在本次第4講中,我們將來(lái)了解下如何使用它在
    發(fā)表于 07-08 09:31 ?2911次閱讀

    XILINX FPGA IPAXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4和AXI4-Stream互連以及其他AXI4系統(tǒng)外設(shè)上生成特定序列(流量)。
    的頭像 發(fā)表于 11-23 16:03 ?2587次閱讀
    XILINX FPGA <b class='flag-5'>IP</b>之<b class='flag-5'>AXI</b> Traffic Generator

    例說(shuō)FPGA連載41:DDR控制器集成與讀寫(xiě)測(cè)試DDR2 IP接口描述

    `例說(shuō)FPGA連載41:DDR控制器集成與讀寫(xiě)測(cè)試DDR2 IP接口描述特權(quán)同學(xué),版權(quán)所有配
    發(fā)表于 10-27 16:36

    ZYNQ調(diào)用XDMA PCIE IP同時(shí)讀寫(xiě)PS DDR,導(dǎo)致藍(lán)屏問(wèn)題。

    你好!我在ZYNQ 7015里(或者7035)調(diào)用XDMA PCIE IP 從上位機(jī)HOST PC通過(guò)PCIE接口給ZYNQ的PS DDR發(fā)送數(shù)據(jù)(XDMA PCIE IP接到了PS的
    發(fā)表于 11-21 10:35

    如何用zedboard創(chuàng)建一個(gè)AXI接口應(yīng)用程序?

    FULL支持突發(fā)傳輸)。在我的vivado設(shè)計(jì)中,我使用AXI CDMA作為DDR RAM,BRAM以及定制從AXI的主設(shè)備。zynq為AXI
    發(fā)表于 08-12 10:37

    【正點(diǎn)原子FPGA連載】第九章AXI4接口DDR讀寫(xiě)實(shí)驗(yàn)--摘自【正點(diǎn)原子】達(dá)芬奇之Microblaze 開(kāi)發(fā)指南

    Vivado中實(shí)現(xiàn)一個(gè)AXI4接口IP核,用于對(duì)DDR3進(jìn)行讀寫(xiě)
    發(fā)表于 10-22 15:16

    XILINX MIG(DDR3) IPAXI接口與APP接口的區(qū)別以及優(yōu)缺點(diǎn)對(duì)比

    XILINX MIG(DDR3) IPAXI接口與APP接口的區(qū)別以及優(yōu)缺點(diǎn)對(duì)比
    發(fā)表于 11-24 21:47

    AXI接口簡(jiǎn)介_(kāi)AXI IP核的創(chuàng)建流程及讀寫(xiě)邏輯分析

    本文包含兩部分內(nèi)容:1)AXI接口簡(jiǎn)介;2)AXI IP核的創(chuàng)建流程及讀寫(xiě)邏輯分析。 1AXI簡(jiǎn)
    的頭像 發(fā)表于 06-29 09:33 ?1.6w次閱讀
    <b class='flag-5'>AXI</b><b class='flag-5'>接口</b>簡(jiǎn)介_(kāi)<b class='flag-5'>AXI</b> <b class='flag-5'>IP</b>核的創(chuàng)建流程及<b class='flag-5'>讀寫(xiě)</b>邏輯分析

    FPGA程序設(shè)計(jì):如何封裝AXI_SLAVE接口IP

    M_AXI接口對(duì)數(shù)據(jù)進(jìn)行讀取操作,此時(shí)設(shè)計(jì)一個(gè)基于AXI-Slave接口IP
    的頭像 發(fā)表于 10-30 12:32 ?4397次閱讀
    FPGA程序設(shè)計(jì):如何封裝<b class='flag-5'>AXI</b>_SLAVE<b class='flag-5'>接口</b><b class='flag-5'>IP</b>

    全面介紹ZYNQ-AXI互聯(lián)IP

    學(xué)習(xí)內(nèi)容 近期設(shè)計(jì)需要用到AXI總線的IP,所以就對(duì)應(yīng)常用的IP進(jìn)行簡(jiǎn)要的說(shuō)明,本文主要對(duì)AXI互聯(lián)IP
    的頭像 發(fā)表于 05-11 14:52 ?6477次閱讀
    全面介紹ZYNQ-<b class='flag-5'>AXI</b>互聯(lián)<b class='flag-5'>IP</b>

    簡(jiǎn)單講解AXI Interconnect IP核的使用方法

    最近需要用到AXI接口的模塊,xilinx的IP核很多都用到了AXI總線進(jìn)行數(shù)據(jù)和指令傳輸。如果有多個(gè)設(shè)備需要使用
    的頭像 發(fā)表于 06-19 15:45 ?1w次閱讀
    簡(jiǎn)單講解<b class='flag-5'>AXI</b> Interconnect <b class='flag-5'>IP</b>核的使用方法

    基于AXI總線的DDR3讀寫(xiě)測(cè)試

    本文開(kāi)源一個(gè)FPGA項(xiàng)目:基于AXI總線的DDR3讀寫(xiě)。之前的一篇文章介紹了DDR3簡(jiǎn)單用戶接口讀寫(xiě)
    的頭像 發(fā)表于 09-01 16:20 ?4564次閱讀
    基于<b class='flag-5'>AXI</b>總線的<b class='flag-5'>DDR</b>3<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>測(cè)試</b>

    基于FPGA的DDR3讀寫(xiě)測(cè)試

    本文介紹一個(gè)FPGA開(kāi)源項(xiàng)目:DDR3讀寫(xiě)。該工程基于MIG控制器IP核對(duì)FPGA DDR3實(shí)現(xiàn)讀寫(xiě)操作。
    的頭像 發(fā)表于 09-01 16:23 ?1666次閱讀
    基于FPGA的<b class='flag-5'>DDR</b>3<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>測(cè)試</b>

    AXI傳輸數(shù)據(jù)的過(guò)程

    AXI4為例,有AXI full/lite/stream之分。 在Xilinx系列FPGA及其有關(guān)IP核中,經(jīng)常見(jiàn)到AXI總線
    的頭像 發(fā)表于 10-31 15:37 ?1145次閱讀
    <b class='flag-5'>AXI</b>傳輸數(shù)據(jù)的過(guò)程

    AXI通道讀寫(xiě)DDR的阻塞問(wèn)題?

    基于vivado2020.1和zcu102開(kāi)發(fā)板(rev1.1)開(kāi)發(fā)項(xiàng)目,工程涉及DDR4(MIG)和PL端多個(gè)讀寫(xiě)接口交互的問(wèn)題,通過(guò)AXI interconnect
    的頭像 發(fā)表于 12-01 09:04 ?1068次閱讀
    <b class='flag-5'>AXI</b>通道<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>DDR</b>的阻塞問(wèn)題?