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

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

3天内不再提示

浅入浅出DDR的容量规格

Spinal FPGA 来源:Spinal FPGA 2023-02-12 15:06 次阅读

作为一个FPGA开发者,之前对于DDR的使用,一直仅限于对厂商接口的使用,像无论是Xilinx还是Intel,在使用DDR时甚至IP配置参数都不需要了解,直接从老的工程里把IP拷贝过来就可以,而在使用DDR时只需要会使用AXI4/AvalonMm标准总线接口就行了。混了这么多年,本着够用即可,再往下稍微了解些。

个人总结,浅入浅出。让我设计一个控制器那可是难为我了。

DDR——无非大的数组

对于DDR的理解,最初简单的以为无非一个大的数组,我会接口使用就OK了。不管各种概念天花乱坠,其总归最终还是要归还到DDR颗粒芯片上来吧。我们常说DDR容量大小,某款DDR颗粒手册上写的规格容量如下图所示:

57f1603c-aaa3-11ed-bfe3-dac502259ad0.png

看完之后一开始我只看懂了这个DDR颗粒手册上写的DDR容量是8Gb,剩下的我就能看懂的不多了~这也是为什么决定花点儿功夫好好了解下DDR的基础知识。后面我们再来Review这张表。

这款芯片的512Mb x 16的引脚有这么几个:

BG:1bit(GB0)

BA:2bit(BA0~BA1)

ROW:16 bit(A0~A15)

Column:10 bit(A0~A9)

DQ: 16 bit(DQ0~DQ1)

看完之后简单总结一句话:对于DDR颗粒,Bank是读写地址动作的最小单元。像上面的512Mb x 16模式下,颗粒内部有两个Bank Group,每个Bank Group内部有四个Bank,而每个Bank内部的“存储矩阵(二维数组)”对应的行地址16 bit,列地址10 bit,每个存储单元存储16 bit数据。先不管对错,这么算起来的话:

2**(1+2+10+16)*16=2**(33)=8Gb

容量是对上了,然而这看起来和上面的表格里的有些东西却并对不上。

在上面的表格中,关于Configuration一行,512Mbx16意味着该DDR颗粒寻址能力为512Mb,每个地址对应16 bit。由于对于DDR4列地址的低三bit并不参与译码,故寻址范围大小的计算方式为:

2**(1(BG)+2(BA)+16(COL)+(10-3)COL)=2**26=512 Mb

如果你在Quartus进行配置的话,也会发现给使用者的接口AvalonMm总线地址位宽也恰好为26 bit。

Page Size

按照上面文章里面的解释,prefetch相当于在DRAMCore与外面的IO建立了8多条通道,而Burst Fetch Length则是对于DDR颗粒可以在指定行,列地址后可连续读取在该行指定列地址之后的多个列地址对应的内容。DDR4 prefetch和burst fetch length一般均为8,以上面的512Mbx16则意味着当发起一个读指令时,将会返回8x16=128 bit=16 Byte字节数据。

Page Size所定义的为一行ROW所对应的数据量大小,如前所属,参与寻址的列地址位宽为7,每个cell对应16 bits,对应burst fetch length为8,故Page Size的计算方式为:

2**7*16*8=2*14 bits=16 Kb=2 KB
颗粒堆叠

像上面的单个颗粒容量大小为8Gb。在FPGA使用里,DDR常见的配置有x64/x32这样的模式。

如果在板卡上使用DDR颗粒,以x64的形式来组织板卡DDR架构,那就是这样的结构。

5805975a-aaa3-11ed-bfe3-dac502259ad0.png

x64模式下,用到4片DDR,4片DDR的地址总线共用,数据总线则分成四份连接到四路DDR上。故此当你在IP上发起64字节读写请求时每个DDR分别承担了16 Byte字节的读写,恰好为一次Burst Length。

而当你如果要是能ECC时,则需要5片DDR:

581de7c4-aaa3-11ed-bfe3-dac502259ad0.png
此时第五个DDR 8bit专门用于存储ECC校验结果。在ECC模式下,x72bit模式下,若非64字节读取/写入,则需将数据先读取出来再更新写入,效率有一定的降低~





审核编辑:刘清

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

    关注

    1620

    文章

    21471

    浏览量

    597976
  • 控制器
    +关注

    关注

    112

    文章

    15755

    浏览量

    174601
  • DDR
    DDR
    +关注

    关注

    11

    文章

    692

    浏览量

    64788
  • ECC
    ECC
    +关注

    关注

    0

    文章

    91

    浏览量

    20439

原文标题:FPGAer浅入浅出DDR——容量规格篇(一)

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

收藏 人收藏

    评论

    相关推荐

    深入浅出AVR

    深入 浅出AVR,一本书。
    发表于07-15 12:02

    深入浅出玩转FPGA

    深入 浅出玩转FPGA
    发表于07-21 09:21

    深入浅出Android

    深入 浅出Android
    发表于08-20 10:14

    深入浅出Android

    深入 浅出Android
    发表于04-26 10:48

    深入浅出AVR

    深入 浅出AVR
    发表于08-23 10:10

    深入浅出Cortex-M0学习资料

    深入 浅出Cortex-M0学习资料
    发表于06-18 10:50 0次下载
    深入<b class='flag-5'>浅出</b>Cortex-M0学习资料

    深入浅出Node.js迷你书

    [InfoQ]深入 浅出Node.js迷你书
    发表于11-04 15:50 0次下载

    深入浅出数据分析

    深入 浅出数据分析,有需要的朋友下来看看。
    发表于01-15 14:22 0次下载

    深入浅出谈多层面板布线技巧

    深入 浅出谈多层面板布线技巧
    发表于12-13 22:20 0次下载

    深入浅出Android—Android开发经典教材

    深入 浅出Android—Android开发经典教材
    发表于10-24 08:52 15次下载
    深入<b class='flag-5'>浅出</b>Android—Android开发经典教材

    深入浅出数字信号处理

    深入 浅出数字信号处理
    发表于12-07 20:14 477次阅读

    深入浅出的理解阻抗匹配

    深入 浅出理解阻抗匹配
    的头像 发表于02-03 15:14 3909次阅读

    深入浅出学习250个通信原理资源下载

    深入 浅出学习250个通信原理资源下载
    发表于04-12 09:16 28次下载

    深入浅出学习低功耗蓝牙协议栈

    深入 浅出学习低功耗蓝牙协议栈
    发表于06-23 10:35 56次下载

    FPGAerDDR

    对于 DDR的理解,最初简单的以为无非一个大的数组,我会接口使用就OK了。
    发表于06-28 15:36 734次阅读
    FPGAer<b class='flag-5'>浅</b><b class='flag-5'>入</b><b class='flag-5'>浅</b><b class='flag-5'>出</b><b class='flag-5'>DDR</b>