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

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

3天内不再提示

基于FPGA的DDR3读写测试

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

本文介绍一个FPGA开源项目:DDR3读写。该工程基于MIG控制器IP核对FPGA DDR3实现读写操作。

MIG控制器支持两种接口:(1)简单用户控制逻辑接口;(2)AXI接口。该工程采用前者,后面会整理DDR3的AXI总线访问方法。

下面简单介绍一下MIG控制器IP核的使用以及FPGA板上测试结果。

01软硬件平台

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

02IP核参数配置

MIG(Memory Interface Generator)IP核提供了用户接口逻辑,以便于实现对DDR的访问。有关MIG的详细描述,可以参考官方文档:ug586。这里不展开介绍。

图片

接口配置界面,保持默认选项。

图片

  • Clock Period:配置主时钟频率,这里选择400M。由于DDR是双沿工作,所以读写速率为400M2Data Width(16bits);
  • 时钟频率和用户时钟频率比例:4:1,因此生成的用户时钟为100M;
  • Memory Part:配置DDR参数,根据实际情况选择;
  • Data Mask:如果选用的DDR带有data mask就选上,并将信号拉低,表示不屏蔽数据接口;

图片

Input Clock Period:输入时钟,这里选择200M。

图片

  • System Clock:No Buffer;
  • Reference Clock:使用系统时钟;
  • 系统复位信号:低电平有效;

图片

读取XDC文件管脚配置,并点击validate,进行校验。

图片

系统信号选择不用配置,保持默认选项即可。

03用户接口 & 读写时序

MIG IP产生的用户接口信号是以app_*格式命名:

input  [127:0] app_rd_data;      //读数据
input          app_rd_data_end;  //读数据结束
input          app_rd_data_valid;//读数据有效
input          app_rdy;          //MIG控制器准备好读写
input          app_wdf_rdy;      //MIG控制器准备好写
output [27:0]  app_addr;         //读写地址
output [2:0]   app_cmd;          //读写命令
output         app_en;           //控制命令使能
output [127:0] app_wdf_data;     //写数据
output         app_wdf_end;      //写数据结束 
output         app_wdf_wren;     //写数据使能

DDR写时序如下图所示。逻辑比较简单,将所有信号严格对齐即可。但有一个需要注意的地方,就是当 app_rdy 和 app_wdf_rdy 都为高的时候,才能同时拉高 app_en ,这时写入的数据才有效。

图片

DDR读时序如下图所示。app_cmd、app_addr、app_en、app_rdy信号严格对齐即可,但是同样需要在 app_rdy 拉高的情况下,才能拉高 app_en 。另外,数据读出会略有延迟。

图片

04Vivado工程源码结构

本工程源码结构如下图所示。

图片

  • ddr_ctrl:ddr用户接口读写控制模块;
  • clk_wiz_0:产生200M时钟供MIG IP使用;
  • time_ref:系统时间基准模块,以1s为周期计数;

05实现功能 & 测试结果

该Vivado工程主要用于FPGA DDR3读写功能测试。基于用户控制逻辑接口,以1s为周期,每周期内完成1次读写操作。板上测试1次读写操作的结果如下图所示。

图片

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

    关注

    1629

    文章

    21736

    浏览量

    603201
  • 控制器
    +关注

    关注

    112

    文章

    16351

    浏览量

    177969
  • DDR3
    +关注

    关注

    2

    文章

    276

    浏览量

    42263
  • 接口
    +关注

    关注

    33

    文章

    8591

    浏览量

    151111
  • AXI
    AXI
    +关注

    关注

    1

    文章

    127

    浏览量

    16630
收藏 人收藏

    评论

    相关推荐

    基于FPGADDR3多端口读写存储管理系统设计

    本文以Kintex-7系列XC7K410T FPGA芯片和两片MT41J128M16 DDR3 SDRAM芯片为硬件平台,设计并实现了基于FPGA的视频图形显示系统的DDR3多端口存储
    发表于 04-07 15:52 1.3w次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>DDR3</b>多端口<b class='flag-5'>读写</b>存储管理系统设计

    基于Digilent的Arty Artix-35T FPGA开发板的DDR3读写控制

    将通过五篇文章来给大家讲解xilinx FPGA 使用mig IP对DDR3读写控制,旨在让大家更快的学习和应用DDR3。 本实验和工程基于Digilent的Arty Artix-3
    的头像 发表于 12-15 16:45 2852次阅读
    基于Digilent的Arty Artix-35T <b class='flag-5'>FPGA</b>开发板的<b class='flag-5'>DDR3</b><b class='flag-5'>读写</b>控制

    基于Arty Artix-35T FPGA开发板的DDR3和mig介绍

    讲解xilinx FPGA 使用mig IP对DDR3读写控制,旨在让大家更快的学习和应用DDR3。 本实验和工程基于Digilent的Arty Artix-35T
    的头像 发表于 01-01 10:09 4224次阅读
    基于Arty Artix-35T <b class='flag-5'>FPGA</b>开发板的<b class='flag-5'>DDR3</b>和mig介绍

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

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

    基于FPGADDR3多端口读写存储管理设计

    今天给大侠带来《基于FPGADDR3多端口读写存储管理设计》,话不多说,上货。 摘要 为了解决视频图形显示系统中多个端口访问DDR3时出现的数据存储冲突问题,设计了一种基于
    发表于 06-26 18:13

    基于FPGADDR3六通道读写防冲突设计

    读写防冲突设计,能有效地解决在期货行情数据处理中多通道同时访问DDR3的冲突问题,在现有的Kintex-7系列FPGA平台期货行情数据处理系统中取得了良好的应用效果。测试结果表明该防
    发表于 08-02 09:32

    基于FPGADDR3 SDRAM控制器的设计与优化

    控制器的编写,并在Kintex-7 FPGA芯片上完成了功能测试及实现。1 DDR3连续读写操作的FPGA 实现设计选用8片Mircon公司
    发表于 08-02 09:34

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

    ,设计的DDR3存储管理系统简化了多端口读写DDR3的复杂度,提高并行处理的速度。引言机载视频图形显示系统主要实现2D图形的绘制,构成各种飞行参数画面,同时叠加实时的外景视频。由于FPGA
    发表于 08-02 11:23

    关于FPGA外部的DDR3 DRAM怎么回事

    我是一名labview FPGA程序员,使用的是NI 7975 fpga模块,它具有kintex 7 fpga。该模块具有外部DDR3 DRAM 0f 2GB以及kintex 7
    发表于 05-20 14:42

    ddr3读写分离方法有哪些?

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

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

    为了解决视频图形显示系统中多个端口访问DDR3的数据存储冲突,设计并实现了基于FPGADDR3存储管理系统。DDR3存储器控制模块使用MIG生成D
    发表于 11-18 18:51 7136次阅读
    基于<b class='flag-5'>FPGA</b>的<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 1920次阅读

    FPGA学习-DDR3

    一、DDR3简介         DDR3全称double-data-rate 3 synchronous dynamic RAM,即第三代双倍速率同步动态随机存储器。所谓同步,是指DDR3
    的头像 发表于 12-21 18:30 3304次阅读

    基于AXI总线的DDR3读写测试

    本文开源一个FPGA项目:基于AXI总线的DDR3读写。之前的一篇文章介绍了DDR3简单用户接口的读写方式:《
    的头像 发表于 09-01 16:20 4530次阅读
    基于AXI总线的<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 1073次阅读
    阐述<b class='flag-5'>DDR3</b><b class='flag-5'>读写</b>分离的方法