集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2049|回复: 5

Artix-7-50T EVM 试用日志(三)——MicroBlaze测试DDR3

[复制链接]
zxopenhl 发表于 2018-5-22 18:22:53 | 显示全部楼层 |阅读模式
我们在平常的调试过程中尤其在进行大批量数据处理时,经常需要缓存大量的数据,虽然较高级别的FPGA都用于大量的片内BlockRAM,但是在算法较为复杂时,BlockRAM依然显得捉襟见肘,外置的SDRAM容量大成本低,为FPGA扩容提供了良好的平台。Xilinx系列FPGA随软件拥有免费的SDRAM控制器,可以很方便的让用户对FPGA进行缓存扩容,而不用费神于如何控制SDRAM的读写时序和自刷新等繁杂的操作。

我们手中这块A7-50T的开发板上便集成了位宽为16bit,容量位256MB的DDR3-SDRAM。这次我们就着手测试一下开发板的DDR3存储。

测试内容为将DDR3扩展为MicroBlaze软核的存储空间。这样不但省掉我们用HDL语言去编辑整个用户时序,还可以在生成MicroBlaze软核时配置较小的片上缓存,而将较大的程序空间分配如DDR3内,从而可以节省出有限的片上缓存空间用于数据接口的缓存。

测试步骤:
1.        新建一个工程,在其内部新建一个Block Design,将我们需要的IP核加入到Block Design中,分别为UART核和MIG,新建完工程如图1。



2.        修改clk_wizard,增加一个输出clk_out2,如图2



3.        修改MIG,修改系统时钟为no buffer如图3,分配sys_rst为MIG的复位信号,如图4





4.        在SDK中编辑测试代码如下,对存储空间为0x80000000起始地址的64K DDR3存储空间进行存取校验

#include
#include "xparameters.h"
#include "xil_cache.h"
int main()
{
Xil_ICacheEnable();
Xil_DCacheEnable();
print("---Entering main---\n\r");

unsigned int *test_val;
test_val=( unsigned int * ) 0x84000000;
for(unsigned int i = 0;i<65535;i++)
{
test_val = i;
}
for(unsigned int j = 0;j<65535;j++)
{
if (test_val[j] != j)
{
print("ddr3 test failed!\n\r");
break;
}

}

print("---Exiting main---\n\r");
Xil_DCacheDisable();
Xil_ICacheDisable();
return 0;
}

5.        Terminal 输出如图5,DDR3内存图为图6。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
zhangyukun 发表于 2018-5-23 09:10:16 | 显示全部楼层
Artix-7-50T EVM 试用日志(三)——MicroBlaze测试DDR3
容壮壮 发表于 2019-3-12 16:33:34 | 显示全部楼层
磊哥 有详细一点的microblaze相关的资料吗
容壮壮 发表于 2019-3-12 16:35:23 | 显示全部楼层
ISE环境下的
大鹏 发表于 2019-3-17 11:37:59 | 显示全部楼层
容壮壮 发表于 2019-3-12 16:33
磊哥 有详细一点的microblaze相关的资料吗

这是基于vivado的
大鹏 发表于 2022-3-11 16:49:27 | 显示全部楼层
Artix-7-50T EVM 试用日志(三)——MicroBlaze测试DDR3
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-25 00:14 , Processed in 0.062574 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表