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
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593195
  • DDR3
    +关注

    关注

    2

    文章

    268

    浏览量

    41790
  • 接口
    +关注

    关注

    33

    文章

    7639

    浏览量

    148486
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49043
  • AXI总线
    +关注

    关注

    0

    文章

    65

    浏览量

    14158
收藏 人收藏

    评论

    相关推荐

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

    首先对本次工程进行简要说明:本次工程使用AXI-Full接口的IP进行DDR读写测试。在我们的DDR
    的头像 发表于 07-18 09:53 4051次阅读
    使用<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

    基于FPGA的DDR3六通道读写防冲突设计

    设计的基于AXI4的DDR3多端口方案虽然传输速率有所提高,但由于AXI4协议本身的复杂性增加了开发使用的难度。本文实现并验证了期货行情数据加速处理中基于FPGA的DDR3六通道UI接
    发表于 08-02 09:32

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

    ,只需通过用户接口信号就能完成DDR3读写操作。DDR3用户接口仲裁控制模块将中断请求分成多个子请求,实现视频中断和图形中断的并行处理。帧地址控制模块确保当前输出帧输出的是最新写满的帧。结果表明
    发表于 08-02 11:23

    玩转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

    DDR3芯片读写控制及调试总结

    DDR3芯片读写控制及调试总结,1. 器件选型及原理图设计(1) 由于是直接购买现成的开发板作为项目前期开发调试使用,故DDR3芯片已板载,其型号为MT41J256M16HA-125,美光公司生产的4Gb容量
    发表于 07-22 08:33

    【FPGA DEMO】Lab2:DDR3读写实验

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

    怎样对DDR3芯片进行读写控制呢

    怎样对DDR3芯片进行读写控制呢?如何对DDR3芯片进行调试?
    发表于 08-12 06:26

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

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

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

    4 总线协议 ➢一个 AXI4 256 bit Host Port ➢支持 Self_refresh,Power down ➢支持 Bypass DDRC ➢支持 DDR3 Write Leveling
    发表于 05-31 17:45

    ddr3读写分离方法有哪些?

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

    基于FPGA的DDR3读写测试

    本文介绍一个FPGA开源项目:DDR3读写。该工程基于MIG控制器IP核对FPGA DDR3实现读写操作。
    的头像 发表于 09-01 16:23 856次阅读
    基于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 580次阅读
    阐述<b class='flag-5'>DDR3</b><b class='flag-5'>读写</b>分离的方法

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

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