Allegro-DDR3实战-差分对-等长设置-区域规则

本章内容:

一)Allegro之DDR3设计    (实操干货)

二)规则设置具体步骤


DDR3信号表:                (eg:镁光MT41J256M16HA-15E)

数据信号

DQ[15:0]

DQS[1:0]

DM[1:0]

DQ:双向数据总线

DQS:数据选通,用于同步数据传输

(两组DQS差分,分别对应DQ的高/低8位)

DM:数据掩码,屏蔽不需要的数据位

地址信号

A[14:0]

BA[2;0]

A:地址线

BA:是BANK地址线,3位BA就是8个BANK

控制信号

#CS

#RAS

#CAS

#WE

CKE

ODT

CS:片选

RAS:行地址选通

CAS:列地址选通

WE:写使能

CKE:时钟使能

ODT:动态电阻调节

时钟信号CLKCLK:差分时钟(CK,/CK)
其他ZQ

用于芯片内部的校准,

通常外接 240 欧姆电阻到地,无需控制

电源

VDD(核电压)

VDDQ(IO电压与核电压一致)

DDR2:1V8  

DDR3:1V5   √

DDR4:1V2

DDR5:1V1

 


一)DDR3的Allegro设计    (实操干货)

你需要掌握:

  1. 设置差分对+设置相位误差
  2. 设置区域规则
  3. 计算阻抗-线宽/距
  4. 设置等长规则(下文为相对等长设置)

实例(2片DDR3):

(FPGA_U33-->DDR_U31-->DDR_U32)

等长规则:
1.数据线以DQS为基准等长;地址线、控制线、时钟线以时钟线为基准等长
2.数据线最大长度尽量不超过2500mil,组内长度误差范围控制在+/- 25ml,DQS与时钟线长度误差控制在+/-250mil。
3.地址线误差范围控制在±100mil。DQS、时钟差分对内误差范围控制在+/-5mil


 

 

二)规则设置具体步骤:

 1.先设置Net class

①地址线+控制线

地址线Pin Pair时候,我分了两段等长,U33-U31 和U31-U32.

②四组数据线

同理手动Pin Pair,数据线Pin pair我直接U31-U33.

2.数据线等长 

组内信号成员: D0~7, DQS0(差分), DM0

相对等长基准:DQS_P/N  (P和N任选一个)

数据线误差:50mil  (注意是相对基准信号DQS ±25mil,或者苛刻些±12.5mil)

如果你级联了四片DDR3,数据线误差想设置苛刻些,可以控25mil误差(即0mil:12.5mil)

3.地址线

组内信号成员:A0~A14, BA0~2, CAS,RAS,WE,CS,ODT,CKE,CLK(差分)

相对等长基准:CLK_P/N

地址线误差:200mil (DDR3误差通常±100mil,或者苛刻些±50mil)

由于地址线我Pin Pair了两段,故有两组等长 Match Group:

地址线控±100mil(误差200mil就行了),U31-U32两个DDR间比较好走,我这里就控了±50mil,

当然两段等长都设置±100mil也可以。

(地址线+DATA0+DATA2)

(地址线)

(DATA1+DATA3)

布线注意:

1.数据线走线,尽量要做到同组同层。地址线不要求,一层也走不完。

2.地址线和数据线的相邻参考面要完整,不要断分割。

 

4. 差分对组间等长 (差分对和差分对)

你可能看过:DQS 以 CLK 时钟走线长度为参照进行走线,走线长度相对于 CLK ±250mil。

这个条件不强制,有时候CLK接近2000mil,DQS可能不足1000mil,不可能舍本逐末的去吧整组数据线都绕长。

我一般是不设置,不放心的话,具体看芯片规格书有没有要求。

我记得赛灵思要求的是CLK比DQS长,最大可长10000mil, 但是如果短的话最多只能短800mil 。

而且,在赛灵思 DDR3 设计中,对于不同字节通道的 DQS 信号,如 DQS1 和 DQS0 之间,通常没有严格规定固定的误差范围。(还是得看不同芯片的要求)

冷知识:

  • DDR3:CK/CK# 与 DQS/DQS# 之间允许的偏移必须在 0 到 1600ps 之间。以信号传播速度 6mil/ps 换算,长度偏移范围在 0 到 9600mil 之间。同时,DQS 和 DQ 之间的时延差异应控制在 ±5ps 以内,换算成长度约为 ±30mil。

(大概看一下长度,符合要求即可)

 

6.差分对-对内等长(相位误差)

相位误差口诀:苛刻:2mil,常规5mil,宽松12mil。

 

7.芯片内部误差补偿

像我用的紫光FPGA,规格书内明确有芯片内部走线延迟(Time Delay),

我们在做等长的时候,需要把芯片内部的误差加进去,才能真正做到时序等长。

如下图,单位皮秒,你可能需要换算成ns或者mil。

(图片引用自紫光同创的PGL50H)

Pin delay可以从官方demo的PCB中导出获得,也可以直接跟原厂/FAE要,导出Pin delay 步骤

记得打开Pin delay,不然设置都白费~

 


8.拓扑结构

等长拓扑:菊花链,T型拓扑,Fly-by

图片来源:高速电路中菊花链、fly-by与T点拓扑

我认知里,菊花链和Fly-by,好像没啥区别。  (反正Fly-by也是菊花链,算分支)

Fly-by 拓扑要求连接到每个DDR的 Stub 分支长度远小于信号的波长(Stub短就对了),近乎为零,主信号线保持阻抗的连续性。(常见DDR3及以上)

 

  • 信号传输
    • 菊花链拓扑:信号从源端开始,依次经过每一个器件,前一个器件的输出直接连接到下一个器件的输入,每个器件都相当于一个中继器,会对信号进行接收和转发。这种方式可能会导致信号衰减和延迟累积,信号完整性相对较差。
    • Fly-by 拓扑:信号沿着阻抗匹配的主干线传播,通过短支路将信号耦合到各个器件,每个器件从主干线获取信号,无需经过其他器件转发,能有效减少信号反射,提高信号完整性。不过,Fly-by 拓扑中负载之间有延时差,导致信号不能同时到达接收端,但可以通过如 Write Leveling 等动态校准机制进行补偿。

(T型拓扑)

这位写的很好:PCB设计笔记(二)——DDR3的布局布线设计


9.阻抗控制

(反正我数据线误差是±25mil,没出过问题,上图写的是±10mil有点苛刻)

 相关资料推荐:资料来自博客园

 

喜欢谢工碎碎念~点个关注~

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/94706.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/94706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七牛云OSS空间复制迁移到另外一个空间

创新新的空间时存储地区必须一致 访问控制必须选择公开 1、下载七牛的同步工具并解压 qshell(http://developer.qiniu.com/docs/v6/tools/qshell.html) 2、解压文件 3、运行cmd登录到七牛账号 qshell account 你的七牛AK 你的七牛SK 你的账号 4、测…

windows中Qwen3‑Coder 与 Claude Code 搭配使用

claude安装命令 npm install -g anthropic-ai/claude-code环境变量配置 set ANTHROPIC_BASE_URLhttps://dashscope.aliyuncs.com/api/v2/apps/claude-code-proxy set ANTHROPIC_AUTH_TOKENyour-dashscope-apikey可能还需要配置自己的git环境变量 查看git安装位置 按下Win S打…

thunar 文件管理器实现双击使用 nvim打开

archlinux 中thunar 文件管理器,如何实现双击使用 nvim打开查看。我用的是kitty 终端。 在 Arch Linux Thunar kitty nvim 的环境里,要实现 双击文件 -> 用 nvim 打开,你可以这样配置:设置为默认应用 如果你想 双击直接用 n…

深度学习----卷积神经网络实现数字识别

一、准备工作 导入库,导入数据集,划分训练批次数量,规定训练硬件(这部分 import torch from torch import nn # 导入神经网络模块 from torch.utils.data import DataLoader # 数据包管理工具,打包数据 from torch…

鸿蒙Harmony-从零开始构建类似于安卓GreenDao的ORM数据库(四)

目录 一,查询表的所有数据 二,根据条件查询数据 三,数据库升级 前面章节已经讲解了数据库的创建,表的创建,已经增删改等操作。下面我们来讲解一下数据库的查询以及升级操作。 一,查询表的所有数据 先来看看官方文档: query(predicates: RdbPredicates, callback: Asy…

20250829_编写10.1.11.213MySQL8.0异地备份传输脚本+在服务器上创建cron任务+测试成功

0.已知前提条件: 10.1.11.213 堡垒机访问 mysql 8.0 版本 密码在/root/.my.cnf 备份脚本:/data/backup_mysql/mysql_backup.sh alarm_system:动环数据库 exit_and_entry:出入境数据库 logs:备份日志 project_cg_view_prod:采购跟踪系统 all :数据库整体备份 imip_ecb…

PostgreSQL 流复制与逻辑复制性能优化与故障切换实战经验分享

PostgreSQL 流复制与逻辑复制性能优化与故障切换实战经验分享 在高可用和数据安全愈发受到重视的生产环境中,PostgreSQL 复制技术是保障业务连续性的重要手段。本文结合真实生产场景,分享流复制(Physical Replication)与逻辑复制&…

Django开发规范:构建可维护的AWS资源管理应用

引言 在现代Web开发中,遵循一致的开发规范对于项目的可维护性和团队协作至关重要。本文基于实际的AWS资源管理项目,分享一套经过实践检验的Django开发规范,涵盖模型设计、Admin配置、管理命令和工具类开发等方面。 模型开发规范 数据模型设计原则 良好的数据模型设计是应…

机器学习可解释库Shapash的快速使用教程(五)

文章目录1 快速使用1.1 安装1.2 三个简单步骤快速入门1.2.1 步骤 1:准备模型和数据1.2.2 步骤 2:声明并编译 SmartExplainer1.2.3 步骤 3:可视化和探索1.2.4 启动 Web 应用1.2.5 将解释结果导出为数据2 Shapash的后端集成2.1 方法一&#xff…

如何在emacs中添加imenu插件

在配置文件中添加: ;; 删除现有的包管理器配置(如果有),然后添加以下:;; 初始化包管理器 (require package);; 清除现有的仓库列表 (setq package-archives nil);; 添加正确的仓库(注意:使用 H…

Linux下的网络编程SQLITE3详解

常用数据库关系型数据库将复杂的数据结构简化为二维表格形式大型:Oracle、DB2中型:MySql、SQLServer小型:Sqlite非关系型数据库以键值对存储,且结构不固定JSONRedisMongoDBsqlite数据库特点开源免费,C语言开发代码量少…

适配openai

openai 脚本 stream脚本import os from openai import OpenAIclient OpenAI(base_url"http://127.0.0.1:9117/api/v1",api_keyos.environ["ACCESS_TOKEN"], )stream client.chat.completions.create(model "Qwen/Qwen2-7B-Instruct",messages…

一天认识一个神经网络之--CNN卷积神经网络

CNN 是一种非常强大的深度学习模型,尤其擅长处理像图片这样的网格结构数据。你可以把它想象成一个系统,它能像我们的大脑一样,自动从图片中学习并识别出各种特征,比如边缘、角落、纹理,甚至是更复杂的物体部分&#xf…

13 SQL进阶-InnoDB引擎(8.23)

一、逻辑存储结构(1)表空间(ibd文件):一个mysql实例可以对应多个表空间,用于存储记录、索引等数据。cd /var/lib/mysql(2)段,分为数据段(leaf node segment&a…

MTK Linux DRM分析(二十四)- MTK mtk_drm_plane.c

一、代码分析 mtk_drm_plane.h 和 mtk_drm_plane.c 两个文件,并生成基于文本的函数调用图,我将首先解析文件中的主要函数及其功能,然后根据代码中的调用关系整理出调用图。由于文件内容较长,我会专注于关键函数及其相互调用关系,并以清晰的文本形式呈现。 文件分析 1. …

滚珠导轨如何赋能精密制造?

在智能制造发展的趋势下,新兴行业对高精度、高稳定性的运动控制需求激增。作为直线传动领域的“精密纽带”,滚珠导轨凭借低摩擦、长寿命、高刚性优势,广泛应用于精密传动领域,成为产业升级的关键。新能源汽车制造领域:…

医疗 AI 的 “破圈” 时刻:辅助诊断、药物研发、慢病管理,哪些场景已落地见效?

一、引言在科技迅猛发展的当下,医疗领域正经历着深刻变革,人工智能(AI)技术宛如一颗璀璨新星,强势 “破圈” 闯入,为医疗行业带来了前所未有的机遇与活力。从辅助医生精准诊断病情,到助力药企高…

【项目思维】编程思维学习路线(推荐)

本篇博客是一份系统性、分阶段的 编程思维学习路线图推荐,从零基础小白到系统架构级别,帮助你全面建立和提升编程思维能力。 🚦 阶段 0:思维准备(理解编程是什么) 🎯 学习目标: 理…

vue3+antd实现华为云OBS文件拖拽上传详解

1、文件上传核心流程 选择文件​​:用户通过拖拽或点击选择文件手动触发上传​​:点击"确定"按钮后开始上传(阻止自动上传)​​获取上传凭证​​:从后端获取华为云OBS的上传配置构建表单数据​​&#xff1…

Mac 开发环境与配置操作速查表

Mac 开发环境与配置操作速查表 安装和配置 nvm / Node 安装 Homebrew Homebrew 安装参考文章 如果没有VPN,不要使用此命令安装! /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew --v…