XLINX系列之Zynq-7000系列DDR内存控制器详解

article/2025/10/1 8:17:13

1DDR内存控制器介绍

DDR内存控制器支持DDR2,DDR3,DDR3L和LPDDR2设备,包括三个主要块:AXI存储器端口接口(DDRI),带有交易调度器(DDRC)的核心控制器和具有数字PHY(DDRP)的控制器。

它具有四个64位同步AXI接口的DDRI块接口,可同时为多个AXI主机提供服务,每个AXI接口都有自己的专用交易FIFO。

DDRC包含两个32输入内容可寻址存储器(CAM),以执行DDR数据服务调度,以最大限度地提高DDR内存效率。它还包含用于低延迟通道的飞频通道,以允许访问DDR存储器而不通过凸轮。

PHY处理来自控制器的读/写请求,并将它们转换为目标DDR内存的时序约束中的特定信号,来自控制器的信号由PHY使用,以产生通过数字物理的连接到引脚的内部信号, DDR引脚通过PCB信号迹线直接连接到DDR设备。

系统通过其四个64位AXI内存端口通过DDRI访问DDR,一个AXI端口专用于CPU和ACP的L2-Cache,两个端口专用于AXI_HP接口,第四端口由AXI互连上的所有其他主控器共享。

DDR接口(DDRI)仲裁来自八个端口的请求(四个读取和四个写入),仲裁器选择请求并将其传递给DDR控制器和事务调度程序(DDRC),仲裁基于请求等待的长度,请求的紧迫性以及作为先前请求的同一页面中的组合基础。

DDRC通过单个接口从DDRI接收请求,读取和写入流通过此接口,读取请求包括使用DDR的数据返回的标记字段,DDR控制器PHY(DDRP)驱动DDR交易。

2DDR内存控制器特点

DDR控制器系统界面(DDRI)

DDR Controller系统界面具有以下功能:

  • 四个相同的64位AXI端口支持Incr和Wrap Burst类型

  • 四个64位AXI接口,具有单独的读/写端口和32位寻址

  • 写入数据字节为每个数据击穿支持支持

  • 复杂的仲裁计划,以防止数据饥饿

  • 使用紧急比特来绕过仲裁逻辑的低延迟路径

  • 深度读写命令验收能力

  • 使用不同主设备ID的请求返回的无序读取数据

  • 所有端口上的9位AXI ID信号

  • 突发长度支持从1到16个数据节拍

  • 突发大小为1,2,4,8(每个节拍的字节)

  • 不支持来自任何AXI端口的锁定访问

  • 使用HPR队列的低延迟读取机制

  • 每个端口的特殊紧急信令

  • 在64 MB边界上可编程的TrustZone区域

  • 每个端口的两个不同ID的独占访问

DDR控制器PHY(DDRP)

DDR Controller PHY具有以下功能:

  • 兼容DDR I / O.

    • 1.2V LPDDR2.

    • 1.8V DDR2.

    • 1.5V DDR3和1.35V DDR3L

  • 可选择的16位和32位数据总线宽度

  • 16位数据宽度配置中的可选ECC

  • 软件命令的自刷新条目和命令到达时自动退出

  • 基于可编程空闲时段的自主DDR递减输入和退出

  • 数据读取选通自动校准

DDR控制器核心和事务调度程序(DDRC)

DDR控制器核心和事务调度程序具有以下功能:

  • 高效事务调度以优化数据带宽和延迟

  • 高级重新订购引擎,以最大限度地提高内存访问效率,以实现连续读取和写入以及随机读取和写入

  • 写入 - 读取地址碰撞检测以避免数据损坏

  • obeys axi订购规则

3DDR内存控制器框图

DDR内存控制器的框图如图所示,DDR内存控制器由仲裁器,具有事务调度器的核心组成,以及DDR存储器信号的物理排序。

DDR内存控制器块图

控制器核心和事务调度程序包含两个32输入凸轮,以执行DDR数据服务重新订购以最大限度地提高DDR内存访问效率,它还包含一个逐个通道,用于低延迟访问DDR存储器而不通过凸轮。

PHY处理来自控制器的读/写请求,并将它们转换为目标DDR内存的时序约束中的特定信号,来自控制器的信号由PHY使用,以产生使用PHY连接到PS焊盘的内部信号,焊盘通过PCB信号迹线直接连接到外部存储器设备。

仲裁器仲成四个AXI端口以访问DDR内核, 仲裁是基于优先权的,并且还通过紧急机制促进优先事项。

4DDR内存控制器工作原理

SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。

 


http://chatgpt.dhexx.cn/article/bd0GfavP.shtml

相关文章

3. 内存控制器与SDRAM

内存控制器(内存接口设备) 地址处于不同的范围,会发出不同的片选引脚,换句话说,SOC外接的不同内存芯片,会有不同的地址范围。 CPU统一编址包括GPIO,各种协议类接口控制器(UART&…

存储控制器

存储控制器是按照一定的时序规则对存储器的访问进行必要控制的设备,包括地址信号、数据信号以及各种命令信号的控制,使主设备(访问存储器的设备)能够根据自己的要求使用存储器上的存储资源。 存储控制器的作用主要就是进行接口的转换,将主设…

内存控制器

1.内存控制器(Memory Controller) 内存控制器(Memory Controller)是计算机系统内部控制内存并且通过内存控制器使内存与CPU之间交换数据的重要组成部分。内存控制器决定了计算机系统所能使用的最大内存容量、内存BANK数、内存类型…

Java并发包中常用类小结(一)

Java并发包中常用类小结(一) 从JDK1.5以后,Java为我们引入了一个并发包,用于解决实际开发中经常用到的并发问题,那我们今天就来简单看一下相关的一些常见类的使用情况。 1、ConcurrentHashMap ConcurrentHashMap其实就是线程安全版本的has…

java并发包源码分析

java并发包之AbstractQueuedSynchronizer源码分析 分析并发包首先要了解AbstractQueuedSynchronizer(AQS),因为AQS是并发包的基础工具类。本文从ReentrantLock的公平锁出发,分析AbstractQueuedSynchronizer的工作过程。 lock与u…

【Java进阶】Java并发包提供了哪些并发工具类?

通过前面的学习,我们一起回顾了线程、锁等各种并发编程的基本元素,也逐步涉及了 Java 并发包中的部分内容,相信经过前面的热身,我们能够更快地理解 Java 并发包。 今天我要问你的问题是,Java 并发包提供了哪些并发工具…

java---JUC并发包详解

目录 前言 一、atomic包 AtomicInteger类 AtomicReference类 AtomicStampedReference类 二、locks包 接口 Condition Lock ReadWriteLock 实现类 ReentrantLock类 ReentrantReadWriteLock类 三、CountDownLatch 四、Semaphore(信号量) 总结 前言 JUC是java.u…

Java多线程并发编程--Java并发包(JUC)

Java多线程并发–Java并发包(JUC) 前言 前一篇文章中,笔者已经介绍了Java多线程的一些基础知识,但是想要成为一名中高级Java程序员还必须懂得Java并发包(JUC)的知识点,而且JUC现在也是面试中必…

接口测试--apipost如何自定义header中的content-type

使用apipost进行接口测试的时候,有时候会用到一些自定义或者不常见的content-type格式,这个时候就要手动在header头部自定义content-type。 这里我们自定义一个content-type,格式为application/octet-stream 然后body选择的为form-data&…

Type-c引脚定义

Type-c口是什么口,有什么作用? Type-c口在大家的视野中或许比较陌生,但是生活中处处离不开Type-c口的存在。手机,电脑,音箱,小家电,无人机…等等,都存在Type-c接口。 Type-c只是一种…

TYPE-C12PIN接口电路

16PIN封装只有12个PIN脚,所有16/12PIN其实是一种规格 特点,正反插 VBS-VCC A5,B5接电阻拉地 A7,B7串联接电阻成为DN A6,B6串联接电阻成为DP GND拉地 外壳拉地 USB接口介绍

TypeScript-interface接口篇

简介 接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数…

TypeScript(四)接口

目录 前言 定义 用法 基本用法 约定规则 属性控制 任意属性 可选属性 只读属性 定义函数 冒号定义 箭头定义 接口类型 函数接口 索引接口 继承接口 类接口 总结 前言 本文收录于TypeScript知识总结系列文章,欢迎指正! 在介绍TS对象…

Type-C接口简单介绍-面向单片机应用

Type-C接口简单介绍-面向单片机应用 1、绪论 用单片机做一些东西时,Type-C接口逐渐替代了MicroUSB接口。但不像MicroUSB那样只有5V、GND、D、D-、ID五个接口,Type-C接口有24个引脚,比较复杂。大多时候我们用TypeC也用不到USB3.0协议&#x…

CTP_将C++封装为Python可调用接口

目录 写在前面: 前置准备: step 1 与上期所原始代码对比分析源码 td源码 1 配置属性-》常规-》配置类型 要为 “动态库(.dll)” 2 VC目录 -》包含目录 3 VC目录 -》 库目录 4 链接器-》常规-》附加库目录 5 链接器-》输入-》附加依赖项 vnctp.h 的功…

一文读懂USB Type-C接口 <一>:引脚和功能指南

本文将介绍USB Type-C标准的一些最重要的特性。 你知道如何使用USB Type-C接口吗?本文列出了USB Type-C引脚的解剖结构,并简要介绍了其各种模式。 USB Type-C是一种USB连接器系统的规范,它在智能手机和移动设备中越来越受欢迎,能够提供电力和…

VisionPro连接相机步骤

一、修改相机与电脑IP地址在同一网段上 1、修改相机IP地址 在菜单栏找到 “Cognex GigE Vision Configurator” ,可直接输出搜索。 或者在visionPro默认安装目录下 “C:\Program Files\Cognex\VisionPro\bin”,找到“Cognex GigE Vision Configurator…