从原理上解释什么是DDR的ZQ校准?

2023-05-16

前言

     首先我们我们看下下图的电路,在DDR的电路中通常有ZQ部分的电路,外接1%高精度的240ohm电阻,那么这个240ohm电阻究竟是做什么用的呢?很多做了硬件或者驱动开发很多年的工程师仍然是一知半解,今天我们就来仔细的探讨一下这个问题!

     首先我们以DDR3作为例子,如下图所示,在DDR2中,所有的DQ以及其它的信号PIN采用了分离式驱动器电路设计方案(die内端接),而在DDR3中,为了提高系统工作的鲁棒性,对这一设计方案做了优化,所有的输出驱动器采用同一个设计电路。

    合并驱动器的概念是使用多个240ohm的电阻结构实现上拉和下拉网络,通过允许相同240ohm电阻的不同组合来实现不同的端接值,对于DDR3来说,全强度输出时驱动器的输出阻抗为默认为34ohm(打开所有的240ohm电阻)。

     为了达到DDR设计的数据传输速率,必须要特别注意信号完整性,将内存控制器和DDR的信号传输通道上阻抗mismatch减小到最小,将有助于减少信号上的反射和振铃。为了减小这种阻抗不连续性,必须在DDR的设计中引入相应的校准(calibration)方案。

 

NOTE:ZQ校准的目的

      为了提高信号完整性,并增强输出信号的强度,DDR内存中引入了终端电阻和输出驱动器,而为了在温度和电压发生变化的场景下仍然能够保持信号完整性,就需要对这些终端电阻和输出驱动器进行校准;

     未经校准的终端电阻会直接影响到信号质量,而调整不当的输出驱动器则会使得有效信号跃迁偏离参考电平,从而导致数据和选通信号之间出现偏差。

 

校准方式

     DDR3中的ZQ校准用于输出驱动器和ODT,每个DRAM的ZQ pin都被连接到外部的±1%精度的240ohm电阻,该电阻是可以在所有的Device之间共享的。

pull-up 校准

校准控制模块由如下几个部分组成:

1、ADC

2、比较器

3、majority filter-择多滤波器

4、内部参考电压发生器

5、近似寄存器-approximation register.

 

      校准控制模块的240ohm leg和输出驱动器和终端的pull-up leg是匹配的,pull-up leg是使用多晶硅电阻的240ohm电阻(阻值略大于240ohm),在这部分电路中,采用了P-channel的电路去降低legs的阻抗,从而去调节上拉部分电路达到精确的240ohm。

 

综合上述的分析,我们可以知道,在DDR设置ODT的时候,就是通过使能相同的240ohm电阻的不同组合来实现不同的端接值。

如上图所示,当进行ZQ校准时,首先进行的步骤是将Vpull-up拉高,将Vpull-up leg的电压拉高到VDDQ,此时校准控制模块会不断的控制P-channel部分的电路,通过Xres部分的电压和VDDQ/2进行比较并反馈,最终使得上拉部分的电压达到较为精确的240ohm。

校准控制模块是通过VOH[0:4]对P-channel进行控制的,校准后的值会保存在approximation register中,并会在所有的输出驱动器和终端中共享。

ZQ校准功能框图:

ZQ校准的设置

在DDR中校准(包括ZQ校准、VrefDQ校准等),在设置上可以概括为两类:

1、periodic calibration

2、WDT time out calibration

即可以设置为每间隔一段时间校准一次,也可以设置为当看门狗WDT timeout之后再进行校准。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从原理上解释什么是DDR的ZQ校准? 的相关文章

  • 《大厂算法面试》小书

    算法面试是大多数小伙伴的弱势 xff0c 但是大厂几乎都会考算法 xff0c 如果在面试过程中不刻意准备一下算法 xff0c 很大概率被挂 其实对于前端和移动端来说 xff0c 算法要求的并不是很高 xff0c 只要把一些常见的算法题刷完

随机推荐

  • ROS通信架构上——Topic和Msg

    Topic 异步通信方式 Node间通过publish subscribe机制通信 相关的命令 xff1a rostopic rostopic list 列出当前所有topicrostopic info topic name 显示某个top
  • Type-C显示器是什么,Type-C显示器的5大优势

    在显示器领域内 xff0c USB Type C接口还处于发展阶段 xff0c 目前已经在新推出的一些高端显示器和旗舰显示器中有配置 USB Type C接口的出现 xff0c 将会形成以显示器为核心的桌面解决方案 xff0c 用户可以把任
  • SLAM综述

    SLAM综述 前言一 概述二 Lidar SLAM激光雷达传感器激光雷达SLAM系统 xff08 Lidar SLAM System xff09 2D SLAM3D SLAM深度学习与激光雷达Feature amp Detection xf
  • VisionPro使用 C# 开发

    VisionPro 常用控件的说明 工具设置窗体 CogPMAlignEditV2 模版匹配设置窗体控件 CogPMAlignEditV2 Subject 工具关联对象 如 xff1a CogPMAlignEditV2 Subject 61
  • rosdep update 失败及解决办法

    一 问题 reading in sources list data from etc ros rosdep sources list d Hit https raw githubusercontent com ros rosdistro m
  • 在STM32上运行ROS节点——rosserial&stm32开发及调试方法

    近期接手了一些ROS机器人项目 xff0c 这里将开发中遇到的问题和解决方法记录下来 stm32强大的外设资源为机器人底层设备控制带来了极大的便利 xff0c 本文简述借助rosserial项目在stm32中运行ROS节点的方法 基本原理
  • 动态存储区、静态存储区、堆和栈的区别

    C c 43 43 程序经过编译连接后形成的二进制映像文件 xff0c 这文件包含 xff1a 栈 xff0c 堆 xff0c 数据段 xff08 只读数据段 xff0c 已经初始化读写数据段 xff0c 未初始化数据段即BBS xff09
  • kubemini-基础使用

    起始 minikube 是一个本地的 k8s 专注于为 k8s 创建一个简单的学习和开发环境 你只需要一个 Docker 或者类似兼容的 容器 xff0c 或者一个虚拟机环境 xff0c k8s 只需要一个单独的命令 xff1a minik
  • 详解信号量和互斥锁之间的区别和联系

    一 xff1a 信号量与互斥锁之间的区别 xff1a 1 xff1a 互斥量用于线程的互斥 xff0c 信号线用于线程的同步 这是互斥量和信号量的根本区别 xff0c 也就是互斥和同步之间的区别 2 xff1a 互斥量值只能为0 1 xff
  • python基础学习(十二)——python中代码的执行顺序以及if __name__ ==‘__main__‘作用和原理

    xff08 1 xff09 代码执行顺序 python程序是顺序执行的 xff0c Python中首先执行最先出现的非函数定义和非类定义的没有缩进的代码 python程序执行时 按照自上而下的顺序 xff1a 首先执行没有缩进的代码 xff
  • c学习--不同c文件中的同名全局变量及同名函数53

    如果在不同的c文件中定义了同名的全局变量 xff0c 则它们会占用相同的内存空间 xff0c 而且编译链接时不会报错 xff01 这可以参考全局变量的内存初始化顺序 对于局部变量而言 xff0c 内存分配的顺序和代码的顺序是一样的 全局变量
  • 基于STM32的FreeRTOS学习之任务基础知识(六)

    记录一下 xff0c 方便以后翻阅 RTOS系统的核心是任务管理 xff0c 初学RTOS系统必须先掌握任务的创建 删除 挂起和恢复等操作 1 什么是多任务系统 玩裸机一般都是在main函数里用while 1 做一个死循环完成所有处理 xf
  • git 推送出现 “fatal: The remote end hung up unexpectedly“ 解决方案

    https blog csdn net qq 41241767 article details 98181952 git 推送出现 34 fatal The remote end hung up unexpectedly 34 解决方案 h
  • 操作系统的设计指导思想——主奴机制

    在学习操作系统的过程中我们会发现一个问题 xff1a 应用程序是应用程序 xff0c 操作系统也是程序 xff0c 操作系统程序凭什么能对应用程序进行组织 管理和协调而不受应用程序损害呢 xff1f 我们认为凭的是特权机制 要想让操作系统做
  • VScode如何配置Git

    注意 xff1a 食用本篇博客的前提是你已经安装好了Git xff0c 并且也有一定的Git基础 因为有些git中比较常用的功能我会略过 第一步 xff1a 配置Git环境变量 右键 我的电脑 xff0c 选择 属性 xff0c 在弹出的对
  • FMC/FSMC/EXMC总线NORFlash/PSRAM接口(异步-复用-不突发/同步-复用-突发)

    请勿转载 目录 1 简介 1 1 框图 1 2 接口定义 1 3 读写时序图 时序配置参数 1 4 PSRAM控制器异步工作模式分类 1 5 PSRAM寄存器配置 1 5 1 控制寄存器BCR 1 5 2 片选时序寄存器BTR 1 5 3
  • 开平方_复数有效值+角度的verilog代码

    1 逐位比较法 二进制 FPGA篇 xff08 一 xff09 基于verilog的定点开方运算 1 逐次逼近算法 该篇文章中有详细描述 假设被开方数rad i 7 0 xff0c 则结果qout 3 0 位宽为4位 xff0c 从最高位到
  • GOOSE报文分析_详解GOOSE服务

    https www cnblogs com software4y p 10017602 html http blog sina com cn s blog af8298410102wnvm html https www cnblogs co
  • 循环冗余校验(CRC)之verilog实现

    有一个网站在这一方面做的特别好 xff0c 直接生成代码 链接 xff1a http www easics com webtools crctool 循环冗余校验 xff0c 也称为CRC检验 xff0c 这是一个很常见的 xff0c 很成
  • 从原理上解释什么是DDR的ZQ校准?

    前言 首先我们我们看下下图的电路 xff0c 在DDR的电路中通常有ZQ部分的电路 xff0c 外接1 高精度的240ohm电阻 xff0c 那么这个240ohm电阻究竟是做什么用的呢 xff1f 很多做了硬件或者驱动开发很多年的工程师仍然