0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AXI总线的DDR3读写测试

CHANBAEK 来源:FPGA Zone 作者:FPGA Zone 2023-09-01 16:20 次阅读

本文开源一个FPGA项目:基于AXI总线的DDR3读写。之前的一篇文章介绍了DDR3简单用户接口的读写方式:《DDR3读写测试》,如果在某些项目中,我们需要把DDR挂载到AXI总线上,那就要通过MIG IP核提供的AXI接口来读写DDR。

下面围绕Vivado BD工程的搭建以及各个IP的使用简单介绍一下该项目。

01软硬件平台

  • 软件平台:Vivado 2017.4;
  • 硬件平台:XC7A35TFTG256-1;

02创建Vivado BD工程

2.1 Clocking Wizard

首先在BD工程中添加Clocking Wizard IP核,用于给MIG IP核提供200M时钟以及复位信号

图片

2.2 MIG IP

添加MIG IP核,接口已经默认配置成AXI接口。

图片

  • Clock Period:这里配置成400Mhz;
  • Data Width:采用16bits;

图片

  • AXI参数配置:Data Width 配置成128 bits。DDR3是双沿工作,并且工作频率和用户时钟频率为4:1,因此这里AXI总线位宽最大可配置为16bits42=128bits;

图片

  • MIG IP核输入时钟:200MHz;

图片

  • 系统时钟:No Buffer;
  • 参考时钟:选择Use System Clock;

图片

配置好MIG IP后,将其与时钟模块(Clocking Wizard)进行连接。

图片

2.3 FDMA

FDMA 是米联客基于AXI4总线协议设计的一个DMA控制器,将其挂载到AXI4总线上,可以方便地对PL或者PS端DDR进行读写。

  • FDMA写时序

FDMA写时序如下图所示。将fdma_wready拉高,当fdma_wbusy为低的时候表示总线空闲,此时可以拉高fdma_wreq,同时设置起始地址和数据长度。当fdma_wvalid为高时,写入有效数据。最后一个数据写完,fdma_wvalid和fdma_wbusy会拉低。

图片

  • FDMA读时序

FDMA读时序如下图所示。将fdma_rready拉高,当fdma_rbusy为低的时候表示总线空闲,此时可以拉高fdma_rreq,同时设置起始地址和数据长度。当fdma_rvalid为高时,输出有效数据。最后一个数据读完,fdma_rvalid和fdma_rbusy会拉低。

图片

对FDMA IP参数进行配置:这里采用32位宽地址线以及64位宽数据线进行测试。

图片

然后,将FDMA连接到AXI总线上,并通过axi_smc IP进行数据位宽转换。将需要调用的接口接出来,得到以下BD工程。

图片

配置起始地址为0x0000_0000,令DDR的读写地址从0开始。

图片

最后在顶层文件中添加用户逻辑,并生成bit文件。

03功能测试

该Vivado工程实现的功能是基于AXI总线对DDR3进行连续读写测试,每次突发读写长度为512*64bits,地址范围为0~100M。FPGA板上测试结果如下图所示。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1624

    文章

    21597

    浏览量

    601009
  • DDR3
    +关注

    关注

    2

    文章

    274

    浏览量

    42149
  • 接口
    +关注

    关注

    33

    文章

    8422

    浏览量

    150665
  • IP核
    +关注

    关注

    4

    文章

    324

    浏览量

    49365
  • AXI总线
    +关注

    关注

    0

    文章

    66

    浏览量

    14241
收藏 人收藏

    评论

    相关推荐

    基于FPGA的DDR3多端口读写存储管理系统设计

    DDR3只有一组控制、地址和数据总线,因此同一时刻只能有一个设备在访问。##帧地址控制模块主要是将DDR3空间进行划分,同时控制帧地址的切换。
    发表于 04-07 15:52 1.3w次阅读
    基于FPGA的<b class='flag-5'>DDR3</b>多端口<b class='flag-5'>读写</b>存储管理系统设计

    【紫光同创国产FPGA教程】【第十章】DDR3读写测试实验

    本实验为后续使用DDR3内存的实验做铺垫,通过循环读写DDR3内存,了解其工作原理和DDR3控制器的写法,由于DDR3控制复杂,控制器的编写
    的头像 发表于 02-05 13:27 9198次阅读
    【紫光同创国产FPGA教程】【第十章】<b class='flag-5'>DDR3</b><b class='flag-5'>读写</b><b class='flag-5'>测试</b>实验

    使用AXI-Full接口的IP进行DDR读写测试

    首先对本次工程进行简要说明:本次工程使用AXI-Full接口的IP进行DDR读写测试。在我们的DDR
    的头像 发表于 07-18 09:53 4957次阅读
    使用<b class='flag-5'>AXI</b>-Full接口的IP进行<b class='flag-5'>DDR</b>的<b class='flag-5'>读写</b><b class='flag-5'>测试</b>

    cyclone V控制DDR3读写,quartusII配置DDR3 ip核后,如何调用实现DDR3读写呢,谢谢

    DDR3的IP核配置完毕后,产生了好多文件,请问如何调用这些文件实现DDR3读写呢?看了一些文章,说是要等到local_init_done为高电平后,才能进行读写操作。请问
    发表于 01-14 18:15

    玩转Zynq连载37——[ex56] 基于Zynq的AXI HP总线读写实例

    HP总线。PL作为AXI HP主机,可以通过这4条总线实现对内存(DDR3)的读写访问,这4条总线
    发表于 11-26 09:47

    如何避免AXI_hp总线锁死?

    `1、在开发zynq工程时遇到多个axi_hp总线读写ddr时,总线锁死。现象就是axi_hp的
    发表于 04-15 21:57

    【FPGA DEMO】Lab2:DDR3读写实验

    `本开发板板载了一片高速 DDR3 SDRAM, 型号:MT41J128M16JT-093, 容量:256MByte(128M*16bit),16bit 总线。开发板上 FPGA 和 DDR3
    发表于 07-30 11:23

    紫光同创FPGA入门指导:DDR3 读写——紫光盘古系列50K开发板实验教程

    ➢支持裁剪的 AXI4 总线协议 ➢一个 AXI4 256 bit Host Port ➢支持 Self_refresh,Power down ➢支持 Bypass DDRC ➢支持 DDR
    发表于 05-19 14:28

    ddr3读写分离方法有哪些?

    DDR3是目前DDR的主流产品,DDR3读写分离作为DDR最基本也是最常用的部分,本文主要阐述DDR3
    的头像 发表于 11-06 13:44 8771次阅读
    <b class='flag-5'>ddr3</b>的<b class='flag-5'>读写</b>分离方法有哪些?

    基于FPGA的DDR3多端口读写存储管理的设计与实现

    读写操作。DDR3用户接口仲裁控制模块将中断请求分成多个子请求,实现视频中断和图形中断的并行处理。帧地址控制模块确保当前输出帧输出的是最新写满的帧。
    发表于 11-18 18:51 6987次阅读
    基于FPGA的<b class='flag-5'>DDR3</b>多端口<b class='flag-5'>读写</b>存储管理的设计与实现

    关于期货行情数据加速处理中基于FPGA的DDR3六通道读写防冲突设计详解

    SDRAM成为首选方法。但由于DDR3只有一套数据访问通道,不能满足多个通道同时访问的需求。此前的对于SDRAM的多通道解决方案中,比如曹一江等设计的基于NPI总线的片外存储器,最大带宽可达743 Mb/s
    发表于 08-01 15:25 3383次阅读
    关于期货行情数据加速处理中基于FPGA的<b class='flag-5'>DDR3</b>六通道<b class='flag-5'>读写</b>防冲突设计详解

    Virtex7上DDR3测试例程

      这篇文章我们讲一下Virtex7上DDR3测试例程,Vivado也提供了一个DDR的example,但却是纯Verilog代码,比较复杂,这里我们把DDR3的MIG的IP Cor
    的头像 发表于 08-16 10:28 1809次阅读

    基于FPGA的DDR3读写测试

    本文介绍一个FPGA开源项目:DDR3读写。该工程基于MIG控制器IP核对FPGA DDR3实现读写操作。
    的头像 发表于 09-01 16:23 1499次阅读
    基于FPGA的<b class='flag-5'>DDR3</b><b class='flag-5'>读写</b><b class='flag-5'>测试</b>

    阐述DDR3读写分离的方法

    DDR3是2007年推出的,预计2022年DDR3的市场份额将降至8%或以下。但原理都是一样的,DDR3读写分离作为DDR最基本也是最常用
    的头像 发表于 10-18 16:03 937次阅读
    阐述<b class='flag-5'>DDR3</b><b class='flag-5'>读写</b>分离的方法

    FPGA通过AXI总线读写DDR3实现方式

    AXI总线由一些核心组成,包括AXI主处理器接口(AXI4)、AXI处理器到协处理器接口(AXI
    发表于 04-18 11:41 1179次阅读