XILINX FPGA DDR 学习笔记(一)

server/2024/9/24 6:47:33/

DDR 内存的本质是数据的存储器,首先回到数据的存储上,数据在最底层的表现是地址。为了给每个数据进行存放并且在需要的时候读取这个数据,需要对数据在哪这个抽象的概念进行表述,我们科技树发展过程中把数据在哪用地址表示。一个数据单元表示一个地址,通常一个数据单元是一个字节(8Bit)、二个字节等。
一:DDR数据最底层的结构抽象
这里数据表现的最小单元是一个数据储存单元
在这里插入图片描述
上图假设是一个DDR储存芯片内的储存数据的结构。有4行6列一共24个储存单元,每个储存单元里面有4X6=16个小方格。这里一个小方格代表数据的最小物理储存形式bit。所以上图的一个储存单元是16bit。
这个时候计算这个DDR储存芯片的容量为 24X16=320 bit。如果一个芯片内面有6个这样的储存块那么内存条容量就是320X6=1920bit。
这个储存块叫做BANK。其实就是像三明治一样叠起来。
到这里我们会计算DDR 的容量:
行数 X 列数 X 储存单元bit数 X BANK数

二:数据的交互
数据必须进行交互,也就是读写,首先需要解决的是储存单元在哪,数据如何传输。
储存单元在哪:地址 ,行、列、BANK 决定存储单元在哪,通常就是地址线
数据的传输: 往一个储存单元写数据,数据线位宽和储存单元大小一致,一次就写一个储存单元,数据线

三:DDR 框图
在这里插入图片描述
说了这么多终于要接触到真正的器件了。

1.储存单元
在这里插入图片描述
memory arry 就是储存单元上图表示的是32678行 ,128列,每个储存单元有128个bit,有0~7 一共8个BANK。

列32768 为2^15 为32K
行 128为2^7为 128

容量为 32768128128*8(行、列、单元、BANK)=4,294,967,296=4Gb
在这里插入图片描述
18位的地址线可以看到是行列共用。其中行ROW有15位 32768行,列地址是10位中的7位 128列

2.读写换成,预取
在这里插入图片描述
32768X128X128其中最后一个128表示一个存储单元的位宽所以DDR内部的数据位宽是128位。显然我们一般的应用很少用到128Bit的位宽,一般是8bit、16bit所以两种位宽是无法进行直接通信的需要一个缓冲区域,这个就是内部FIFO。也就是说当DDR外部需要16bit数据的时候内部其实已经一口气拿了128bit数据(一次操作就是按照位宽来),称为预取8(128/16).

显然DDR储存单元一次操作需要外部8次操作才跟的上,两边的时钟频率是需要成倍数关系的,DDR一个时钟操作两次。
所以8/2=4,所以DDR内部操作一次,外部需要4次。因此FIFO右边的clk是FIFO左边clk的4倍。

3,OTD
在这里插入图片描述
有时候用到菊花链或者其他方式取连接多个DDR,在信号上为了减少反射会增加终端电阻,ODT用来控制电阻导通。这部分了解即可。


http://www.ppmy.cn/server/43016.html

相关文章

JVM-调优之-高内存占用问题排查

排查思路 1)检查jvm内存的分配情况 2)检查jvm的gc情况 3) 找出占用量比较大的对象 第一步:jmap -heap PID 查看jvm内存使用情况 jmap -heap 2525 可以看到老年代年轻代等其他内存区域内存使用率百分比 第二步:jsta…

算法训练营第三十九天 | LeetCode 738 单调递增的数字、LeetCode 968 监控二叉树

LeetCode 738 单调递增的数字 这题类似模拟,可以找出如下规律: 先将数字按位数从高位到低位存到一个整型数组中。在这个数组中,从左往右遍历,如果遇到一个两数相等,并且记录的这个变量之前没有赋过值,那么…

MySQL-----事务(详解)

目录 一.事务简介: 二.事务操作: 未控制事务: 事务的控制方法一: 事务的控制方法二: 三:事务的四大特性: 四.并发事务问题: 五.事务的隔离级别: 一.事务简介&#…

Docker | 基础指令

环境:centos8 参考: 安装 Docker | Docker 从入门到实践https://vuepress.mirror.docker-practice.com/install/ 安装Docker 卸载旧版本,安装依赖包,添加yum软件源,更新 yum 软件源缓存,安装 docker-ce…

H3CNE-6-ICMP数据包分析

ICMP:Internet Control Message Protocol ICMP用来传递差错、控制、查询等信息 Wireshark抓包 Wireshark下载国内镜像 ICMP数据包格式 Type:表示ICMP消息类型 Code:表示同一消息类型中的不同信息 ICMP消息类型和编码类型 ICMP应用 &…

如何在Ubuntu上安装NVIDIA显卡驱动并禁止自动更新

在Ubuntu上安装NVIDIA显卡驱动后,有时为了避免兼容性问题或驱动稳定性问题,可能需要禁止自动更新显卡驱动。本文将逐步介绍如何在Ubuntu上安装NVIDIA显卡驱动,并配置系统以禁止驱动的自动更新。 1. 准备工作 在开始之前,请确保你…

世界上首位AI程序员诞生,AI将成为人类的对手吗?

3月13日,世界上第一位AI程序员Devin诞生,不仅能自主学习新技术,自己改Bug,甚至还能训练和微调自己的AI模型,表现已然远超GPT-4等“顶流选手”。 AI的学习速度如此之快,人类的教育能否跟上“机器学习”的速…

云界洞见:移动云服务开启技术创新与问题解决的新篇章

一、什么是移动云 移动云以“央企保障、安全智慧、算网一体、属地服务”为品牌支撑,聚焦智能算力建设,打造一朵智能、智慧、安全可信可控的云,提供更优质的算力服务,引领云计算产业发展。 那么下面博主带领大家了解移动云的优势所…