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

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

3天内不再提示

Vivado中DDRX控制器(mig)ip核配置中关于命令序号选择和地址映射说明

FPGA技术江湖 来源:FPGA技术江湖 2024-11-27 09:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇主要讨论Vivado中DDRX控制器(mig)ip核配置中关于命令序号选择和地址映射说明(一)

利用Xilinx 7系列FPGA开发时,经常需要驱动外部存储器--DDRX。Xilinx提供了mig(存储器接口生成器)这个ip用以驱动外部存储器。

502d1754-a3af-11ef-93f3-92fbcf53809c.png

在配置中有一项命令序号模式的选择:

503f3bfa-a3af-11ef-93f3-92fbcf53809c.png

mig这个ip可以接收多个命令(在第一个命令还没有执行时,就可以接收后续的几个命令。并不是接收一个命令,执行完后才可以接收下一个命令)。

上述选择两个模式的区别为:

正常模式允许存储器控制器重新编序收到的命令的顺序,以或者更高的性能(例:收到的命令顺序为A1,A2,A3,但是发现按照A1,A3,A2的顺序执行,不妨碍功能,并且拥有更高的性能)。

严格模式强制要求控制器按照收到的命令顺序去执行。

在配置时,还有一项地址映射模式选择:

50431928-a3af-11ef-93f3-92fbcf53809c.png

DDRXSDRAM是一种按照M行,N列凑成一个片(BANK),然后多个片构成的一个存储器。在使用时需要提供BANK地址,行地址,列地址,才能够指定对应的访问位置(特别注意:每个位置存储一个字(需要看存储器的宽度),并不是一个字节(8个bit))。

504e7f34-a3af-11ef-93f3-92fbcf53809c.png

注:此图为SDR SDRAM的内部结构图,只为方便理解。

在使用mig时,我们需要提供一个地址,那么这个地址的各个位对应的DDRX SDRAM的bank地址,行地址,列地址的模式是按照上述选择的。

例:(不考虑RANK地址),假设行地址13位,列地址10位,BANK地址3位,无论我们选择哪一种模式,我们的地址都是给一个26位的地址。如果选择ROW,BANK,COL的模式,那么地址的25:13位会给到行地址,12:10会给到BANK地址,9:0会给到列地址。如果选择BANK,ROW,COL的模式,那么地址的25:23位会给到BANK地址,22:10会给到行地址,9:0会给到列地址。

那么这两个地方我们应该选择哪个呢?

这个和内部结构以及工作原理有关系,并且也和我们平时使用的方式 有一定的关系。

内部结构在上述已经简单的叙述过了,下面简述一下工作原理:

在访问时,我们首先需要激活访问地址对应的BANK里面的对应的那一行,然后才可以进行读写。

下面给出SDRAM中的几个特性:

· 在SDRAM中某一行激活了,是需要关闭的(有时间的限制)。

·在SDRAM中如果第二个操作和第一个操作是同一个bank,同一行,那么第一个操作完成后,可以不关闭此行,第二个操作也不用激活,此时提高了访问效率。

50629604-a3af-11ef-93f3-92fbcf53809c.png

. 在SDRAM中同一个BANK只能激活一行。例:如果第二个操作和第一个操作是同一个bank,但是不同行,那么就只能将第一个操作的行关闭,然后再将第二个行激活。

506ff09c-a3af-11ef-93f3-92fbcf53809c.png

. 在SDRAM中,不同的BANK是可以同时激活使用者想要访问的行。例:如果第二个操作和第一个操作不在同一个bank,那么就可以在关闭第一个操作对应的bank的同时,激活第二个操作对应的BANK,那么此时相当于节省了一段时间,提高了访问的效率。

507a58a2-a3af-11ef-93f3-92fbcf53809c.png

知道了这几个特性,我们来考虑上述的两个选择项的问题:

首先考虑命令是否允许重新编号;假设第一个操作为BANK A,ROW A,第二个操作为BANK A, ROW B, 第三个操作为BANK A, ROW A。如果按照严格顺序执行,那么只能够进行激活、操作一,关闭,激活、操作二、关闭、激活、操作三、关闭。共需要九步完成所有的命令。如果把操作二和操作三对调,那么将执行激活、操作一、操作三、关闭、激活、操作二、关闭。共需要七步即可完成,提高了一定的效率,所以此选项建议选择正常模式。

下面考虑地址映射的选项:

这个需要考虑一个使用者的方式:一般我们使用时,是一段连续的地址;例:0到10000。

如果选择BANK,ROW,COL的模式,就是利用第一个bank的第一行,然后第二行,第三行,········, 直到第一个bank利用完毕,才可以利用下一个bank。

如果选择ROW,BANK,COL的模式,就是利用第一个bank的第一行,完事后,利用第二个bank的第一行,然后是第三个bank的第一行····直到所有的bank的第一行全部利用完事后,才会利用第二行。

那么在当一行利用完毕时,BANK,ROW,COL的模式下一个用的是第二行就必须等第一行关闭后,才可以激活第二行。如果选择ROW,BANK,COL的模式下一个用的是其他的bank的行,所以不需要等待关闭就可以激活,相当于节省了一段时间,提高了访问效率。

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

    关注

    1664

    文章

    22502

    浏览量

    639165
  • 控制器
    +关注

    关注

    114

    文章

    17877

    浏览量

    195104
  • 地址映射
    +关注

    关注

    0

    文章

    6

    浏览量

    2250

原文标题:Vivado中DDRX控制器(mig)ip核配置中关于命令序号选择和地址映射说明(一)

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    组态屏变量地址映射 / 数据类型不匹配解决方法

    在工业自动化领域,组态屏作为人机交互的核心设备,其与控制器(如PLC、单片机)之间的数据交换依赖于准确的变量地址映射与数据类型匹配。然而,实际工程,因
    的头像 发表于 04-22 10:41 114次阅读
    组态屏变量<b class='flag-5'>地址</b><b class='flag-5'>映射</b> / 数据类型不匹配解决方法

    VivadoIP核被锁定的解决办法

    当使用不同版本的Vivado打开工程时,IP核被锁定的情况较为常见。不同版本的VivadoIP核的支持程度和处理方式有所不同。
    的头像 发表于 02-25 14:00 530次阅读
    <b class='flag-5'>Vivado</b><b class='flag-5'>中</b><b class='flag-5'>IP</b>核被锁定的解决办法

    DDRX SDRAM的预取技术说明

    DDRX SDRAM外部接口数据传输率需要不断提高(从DDR到DDR5),内存芯片内部的DRAM存储单元(电容阵列)的物理访问速度有上限,无法随着接口速度的线性增长。
    的头像 发表于 01-13 11:39 1835次阅读
    <b class='flag-5'>DDRX</b> SDRAM<b class='flag-5'>中</b>的预取技术<b class='flag-5'>说明</b>

    利用蜂鸟E203搭建SoC【4】——DDR200T内存扩展

    由于FPGA内部存储资源有限,很多时候不能满足需求,因此可以利用DDR对系统进行存储扩展。由于DDR3内部控制十分复杂,因此可以基于AXI总线,利用Vivado提供的MIG IP对DD
    发表于 10-29 07:16

    DDR存储拓展教程

    文件夹内,打开文件夹。阅读readme说明文档,我们能够知道,原作者采用了vivado MIG IP控制开发板上的DDR3,由于芯来科技的
    发表于 10-28 07:25

    E203分享之DDR扩展方案实施流程(

    综合时不需要,直接注释掉),并在design source添加ddr3_model.sv和ddr3_model_parameters.vh文件。 在IP Source右键点击mig
    发表于 10-24 07:25

    Vivado浮点数IP核的一些设置注意点

    Vivado浮点数IP核的一些设置注意点 我们在vivado2018.3使用了Floating-point(7.1)IP核,可以自定义其
    发表于 10-24 06:25

    基于FPGA的DDR控制器设计

    可以在Xilinx公司MIG(Memory Interface Generators)IP核的基础上设计得到的。IG IP核是Xilinx公司针对DDR存储开发的
    发表于 10-21 14:30

    FPGA搭建DDR控制模块

    公司MIG(Memory Interface Generators)IP核的基础上设计得到的。IG IP核是Xilinx公司针对DDR存储开发的I
    发表于 10-21 10:40

    用FPGA实现DDR控制模块介绍

    Xilinx公司MIG(Memory Interface Generators)IP核的基础上设计得到的。IG IP核是Xilinx公司针对DDR存储开发的
    发表于 10-21 08:43

    PCB过孔STUB对DDRX地址信号的影响

    最近直播的时候大家都在问过孔stub对DDRx信号的影响,到底要不要背钻,今天我们就来看看!
    的头像 发表于 09-04 10:48 799次阅读
    PCB过孔STUB对<b class='flag-5'>DDRX</b><b class='flag-5'>地址</b>信号的影响

    Zynq-7000 SoC与7系列设备内存接口解决方案数据手册

    技术手册,适用于使用LogiCORE IP核(如DDR3/DDR2 SDRAM、RLDRAM II、QDRII+)进行存储接口设计26。核心功能:IP核配置与时序:详细
    发表于 07-28 16:17 3次下载

    强实时运动控制内核MotionRT750(一):驱动安装、内核配置与使用

    强实时运动控制内核MotionRT750的驱动安装与内核配置
    的头像 发表于 07-03 15:48 3898次阅读
    强实时运动<b class='flag-5'>控制</b>内核MotionRT750(一):驱动安装、内<b class='flag-5'>核配置</b>与使用

    EtherNet IP转Profinet网关连接FANUC机器人配置指南(PROFIENT组态篇)

    据缓冲区,确保与PLC和机器人网络的兼容性。最后,通过数据映射配置界面,将PLC的输出区映射至EtherNet/IP的输入寄存,反之亦然,
    的头像 发表于 05-18 14:43 1211次阅读
    EtherNet <b class='flag-5'>IP</b>转Profinet网关连接FANUC机器人<b class='flag-5'>配置</b>指南(PROFIENT组态篇)

    NVMe控制器IP设计之接口转换

    转换为控制器内部信号(addr、en、data_out)。命令执行结束后,完成信息通过AXI PCIe IP模块的AXI4接口传输至完成信息解析模块。这个过程需要通过AXI4写转换模块将读地址
    发表于 05-10 14:33