DDRPHY数字IC后端设计实现系列专题

在对 LPDDR3 物理层接口模块进行后端设计之前,需要对该模块的功能结 构以及后端物理设计流程的相关理论进行深入的分析和研究。本章第一节详细分 析了本次 LPDDR3 物理层接口模块的结构,为该模块的布图布局的合理规划奠 定了理论基础,并且分析了 DDR PHY 的读写通路路径,结合该模块前端设计的 时序要求,加强对后端时序分析的理解。本章第二节分析了整个后端设计流程理论,后续章节后端详细设计提供理论基础。

2.1 LPDDR3 物理层接口模块理论

为了能够更好实现 LPDDR3 物理层接口模块,我们需要对该模块的功能结 构有一个深入的认知。掌握该模块内 IP 、IO、Memory 之间的数据流向,能更好 实现设计的收敛。另外 DDR 具有特殊的读写信号要求,对后端设计提出了更多的挑战,需要把rise和fall都做balance。本节将主要介绍和分析 LPDDR3 PHY 的结构和读写通路。

2.1.1 LPDDR3 物理层接口模块的结构

本次课题实现的模块包括DDR PHY 及内存控制器(memory controller,MC), 该模块作为整个芯片的物理层接口,最大数据传输速率为 1866Mb/s 。

DDR PHY 是存储颗粒和存储控制器的连接部分,在本次设计中主要包括以下部分:4 个 Data PHY ( DDRPHYDATX8 ,DATX8 ), 主要负责数据的串并转换; 1 个 Address/Command PHY(DDRPHYAC,AC),主要负责地址信号的转换;195 个 SSTL(Series Stub Terminated Logic 短截线串联端接逻辑[34])IO,与存储颗粒进 行交互的输入输出端口;3 个 PLL,主要负责时钟频率转换;1 个物理层接口通 用模块(PHY Utility Block,PUB),主要负责为 PHY 支持生产测试,以及为 PHY 提供 DFI 接口。其中 DATX8,AC,SSTLIO,PLL 模块为硬核 IP,PUB 和 memory controller 为软核 IP。图 2.1 为内存控制器与 DDR PHY 的结构连接图。
图2.1 DDR结构图
图2.1 DDR结构图

由图 2.1 可以看到,数据总线接口被设计成多个字节通道,一个数据字节通 道(Data Byte Lanes)包括一个 Data PHY ,一个 PLL 和相关的 SSTLIO;一个地 址命令字节通道(Address Command Lanes)包括一个 Address/Command PHY , 一个 PLL 和相关的 SSTLIO。值得注意的是,在本次设计中两个数据字节通道共 用一个 PLL。将数据信号分割成离散的数据通道,有如下两个优点:

1)有利于减小 pin 与 pin 之间的时钟偏移

2)有利于匹配 SDRAM 引脚

DDRPHY Innovus版图布局

除了数据传输通道,DDR PHY 还需要有一个地址命令通道来与外部的内存 进行控制信号与地址信号的传输,命令通道也是通过 PHY 内部的拼接来实现连 接的,一个 DDR PHY 一般有 1 到 9 条字节通道和一条命令通道。本次 LPDDR3 物理层接口模块采用了 4 条字节通道和一条命令通道,并且该模块采用的是 Synopsys 的 IP,在 floorplan 阶段需要遵守 Synopsys 的 DDR PHY Implementation Guide,该部分内容将在第三章中详细分析。

2.2 DDR 物理层接口读写通路的分析

DDR 主要包括以下信号:时钟信号,数据信号(Data Signal,DQ),数据选 通信号(Data Strobe Signal ,DQS),数据掩模信号,地址信号,控制信号等。这 里主要根据时钟信号,数据选通信号,数据信号来分析 DDR 的读写通路。

数据选通信号的主要作用是在一个时钟周期内准确区分出每个传输周期来 接受数据[35] 。DQS 信号是一个双向信号,写入和读取数据时,分别接收和发送 数据选通信号。

在执行读操作时,DDR SDRAM 同时发送 DQ 信号与 DQS 信号,两者边沿 对齐。但是在接收的时候,却不能以 DQS 的上下沿来进行读取数据信号。因为芯片读取 DDR SDRAM 的数据时是预取,所以难以对 DQS 的上下沿进行同步。 因此为了能够保证同步接收,接收方将 DQS 信号延迟为 DQSD 信号,使 DQSD 信号的边沿作为数据周期的选取分割点。这样 DQS 信号的上下沿总能在数据 DQ 信号的逻辑电平稳定的周期内,保证数据接收触发的高准确性。读操作数据选通 脉冲与数据关系图 2.2 所示:

在这里插入图片描述

图 2.2 读操作 DQS 与 DQ 信号关系图

在执行写操作时,DQ 信号的周期分割点为 DQS 信号电平的中部,但仍在 DQS 信号的上下沿作为数据接受的触发沿[35]。写操作时数据选通脉冲与数据信 号的关系如图 2.3 所示。由读写通路分析知,DDR 物理层接口模块对DQS 和 DQ 信号的路径对齐有着较高的要求。
在这里插入图片描述

图 2.3 写操作 DQS 与 DQ 信号关系图

2.3 数字后端设计流程

随着芯片设计能力的不断提高,EDA 工具的更新换代,芯片后端设计流程 也不断的进步与发展。高度自动化的后端设计, 减少了手工操作带来的误差,也 缩短了设计的开发周期。本小节将主要讨论后端设计的主要流程。

在这里插入图片描述

2.3.1 数字后端物理设计相关文件

(A)门级网表

门级网表 netlist 是 RTL 综合后的设计网表,网表中有所有逻辑单元的类型 和连接信息。后端设计就是从 netlist 到 GDS 版图数据的工作。

(B)设计约束文件

设计约束文件 sdc 由前端综合所产生,是芯片的时序,功耗和面积约束的集 合,其中包括对时钟,延时,输入输出驱动等的定义。

(C)时序库文件

时序库 lib 文件中包含了逻辑单元的时序,功耗和面积信息。前部分主要是 对库名称,库单元 PVT,电压电容等的定义,后部分主要包括库中逻辑单元的功 耗,传输时间,转换时间等信息。

(D)物理库文件

物理库 lef 文件定义了各逻辑单元的单元尺寸,结构,pin 位置,金属层信 息,通孔信息以及单元信号,电源和地的连线信息以及电迁移和天线效应的规则信息。

(E)寄生电阻电容参数提取模型文件

寄生电阻电容参数提取模型文件 spef 包含了精确的寄生参数信息,保证时 序分析和计算的准确性。

2.3.2 标准单元的布局

布局(Placement)阶段主要进行标准单元(Standard cell)的布局和优化,布 局的质量对芯片的时序,功耗和布通性有着重要影响。

布局阶段除了对 place 标准单元外,还将自动摆放 Scan cell ,Spare cell ,Tie cell ,Filler cell 等。一个单元的布局状态主要分为以下几种:

Unplaced:该单元未被摆放。

Placed:该单元已被摆放,并能被移动。

Fixed:该单元已被摆放,并且不能被移动,只能调尺寸。

Legalize_Only:该单元已被摆放,只能在合理化布局阶段移动。

2.3.3 时钟树综合

(一)基本概念

(A)时钟树级数 由图 2.5 可知:

root pin:时钟根节点,由 create_clock 命令定义; sink pin:时钟最后到达的寄存器的 ck 端;

leaf net:时钟最后到达寄存器和前一级单元之间的net; trunk net:除去 leaf net 后的所有的线

(B)时序路径端口类型

时钟树的端口的类型主要包括 Sink Pin ,Ignore Pin 及 Through Pin。

Sink Pin:该类型端口主要指有时序信息的叶子单元时钟端口,如触发器的 CK 端;

Ignore Pin:如非时钟树网络的组合逻辑和无时钟信息的时序单元时钟端会 被设为 Ignore Pin,时钟树综合不会对该端口进行时序优化,但会进行 DRC 修复 和优化。

Through Pin:一般是在非叶子单元的节点处,时序弧将穿过 through pin,到 达时钟树 Sink 端。

在这里插入图片描述

图 2.5 时钟树级数
(二)时序分析基本理论

(A)时钟延滞 Clock Latency

时钟延滞或者叫插入延迟(insertion delay),即时钟源(clock source)到时 钟汇点(clock sink)的延迟时间。主要包括两个部分,时钟源插入延迟(source latency)和时钟网络延迟(network latency)[36]。source latency:时钟源点到时钟 定义点的延迟,即时钟源到当前芯片时钟根节点(clock root pin)之间的延迟[37] 。 network latency:指从时钟定义点到时钟汇点的延迟。在时钟树综合阶段,我们 通过设置时钟延滞来影响时钟偏斜的计算。一般希望能有较小的时钟延滞,时钟 延滞过大,时钟网络中需要插入更多反相器和缓冲器用来满足时钟平衡,这会增 加芯片的面积和功耗,而且时钟延滞值过大更容易受到片上误差的影响。时钟源 延迟和网络延迟如图 2.6 所示:

在这里插入图片描述

图 2.6 时钟源延迟和网络延迟
(B)时钟偏斜 clockskew

时钟偏斜或叫时钟偏差,指同一时钟信号到不同寄存器的时间差值, skew=max(|ta-tb|),ta 和 tb 分别指时钟源点到时钟汇点 FF1 CK 端和 FF2 CK 端 的时间。根据时钟信号与数据信号的流向的关系, 可以分为 positive skew 时钟— —与数据信号在相同的方向,negetive skew 时钟信号——与数据信号方向不同。 另外根据时钟域及路径关系,时钟偏斜可以分为全局偏斜 global skew 和局部偏 斜 local skew 。Global skew 是指同一时钟域内任意两个路径的最大的 skew , 时 钟树综合时工具更加考虑的是 global skew,尽可能降低 global skew;local skew 是指同一时钟域内,有逻辑关系的路径之间的最大时钟偏斜,在分析时序的时候, 主要关注 local skew。时钟偏斜示意图如图 2.7 所示:

在这里插入图片描述

图 2.7 时钟偏斜
(C)有用偏斜 useful skew

有用偏斜或叫有用偏差。随着时钟树综合技术的发展, 可以利用某些偏斜来 优化电路性能,解决部分时序违例,这些偏差被称为有用偏差[38]。如图 2.8 所示, D2 路径原本不满足建立时间的要求,通过借用前一级路径的余量,来使前路径 满足建立时间的时序要求。这个方法可能会对其他路径的时序造成影响, 也可能 会引起保持时间的违例,所以需要保证其他路径有足够的时间余量。在实际的后 端实现项目中,不建议优先选择有用偏斜来修复时序问题。

在这里插入图片描述

图 2.8 useful skew

(D)时钟转换时间 clock transition time

时钟转换时间也称为 clock slew。通常指电压从 10%上升到90%需要的时间, 或者是从 90%下降到 10%需要的时间。如图 2.9 所示:

在这里插入图片描述

图 2.9 时钟转换时间transition
在时钟树综合阶段,一般会设定一个最大的 transition 值来控制各路径单元 的转换时间,该值太大容易造成时钟树综合后的转换时间过大,引起过多时序违 例,该值过小可能会导致时钟树综合时在时钟路径上上插入过多的缓冲器和反相 器,从而影响到偏差平衡及面积和功耗。另外为了保证时钟路径上的上升和下降 转换时间对称,标准单元库会提供 CLK 类型的缓冲器和反相器。

(E)时钟不确定性 clock uncertainty

时钟不确定性是指时钟信号可能过早或者过晚到达时序单元时钟端的时间 [39],通过设置该值来降低时钟抖动对时序的影响。建立时间检查:clock uncertainty 代表降低时钟的有效周期;保持时间检查:clock uncertainty 表示额外需要的余 量。

(F)片上误差分析

分析模式三个要素包括工艺(process ,P)、电压(voltage ,V)和温度 (temperature,T)。在工艺库中 PVT 是一个点,但在实际芯片中,由于工艺制造 的误差,PVT 会出现在一个范围内。这样就导致在该范围中, 不同位置的单元的 PVT 可能存在差异,这个时候就需要利用片上误差(on chipvariation ,OCV)模 式进行时序分析。OCV 是一种更加严格的时序分析模式,其检查方式如下:

建立时间检查: 发射时钟路径(launch Clock path) ,数据路径(Datapath)使 用最晚路径延迟,捕获时钟路径(Capture Clock path)使用最早路径延迟。

保持时间检查:发射时钟路径,数据路径使用最早路径延迟,捕获时钟路径 使用最晚路径延迟。

在 OCV 检查模式下,可以通过对 set_timing_derate 的-late 和-early 来时设置 时序增减因子。例如:

建立时间检查

Datapath:set_timing_derate -late 1.1

Capture Clock path:set_timing_derate -early 0.9

保持时间检查

Datapath:set_timing_derate -early 0.9

launch Clock path:set_timing_derate -late 1.1

则在 OCV 模式下,其建立时间和保持时间的检查公式分别如下:

Tsetup < Tcapture−early + Tcycle − Tlaunch−early − Tdata−max−early (2-1)

Thold < Tlaunch−early + Tdata−min−early − Tcapture−late (2-2)

其中,Tsetup 建立时间,Tcapture-early 表示捕获时钟路径延时乘以-early 值,Tcycle 表示周期,Tlaunch-late 表示发射路径延时乘以-late 值,Tdata-max-late 表示最大数据路 径延时乘以-late 值;Thold 表保持时间,Tlaunch-early 表示发射路径延时乘以以-early 值,Tdata-min-early 表示最小数据路径延时乘以-early 值,Tcapture-late 表示捕获时钟路 径延时乘以-late 值。

从上面的分析中,当在建立时间分析时,在 launch clock path 上乘以-late 的 时序因子,在 capture clock path 上乘以-early 的时序因子,这会导致 OCV 在时钟 共同路径上处理相对悲观,为了消除这种悲观,时序分析中中引入了共同路径悲 观消除(Clock Path Pessimism Removal ,CPPR),该技术会将时钟共同路径上的 timing derate 差值补偿。

为什么做CTS时,每个clock的common path要尽量长?应该如何理解呢?
1 赞同 · 1 评论回答

随着工艺的进步,我们发现 OCV 模式中给数据或时钟路径上设定单一的 timing derate 值,过于悲观,导致时序也难以收敛。既然 OCV 是片上误差,代表 一条路径上的单元的延迟可能小于标准值也可能大于标准值,那么不能单一的去 增加或减少延迟来模拟片上误差。

因此引入了一种更加高阶的时序分析模式(AdvancedOCV ,AOCV),不同 于 OCV 用相同的 derate 参数,AOCV 将会根据专门的 aocv table 来设定时序因 子,时序分析更加乐观。
在这里插入图片描述

(三)时钟树综合目标:

当今越来越复杂的设计中,时序要求要求越来越难以满足,时钟树综合越来 越重要,时钟树综合的主要目标包括:

(A)满足时钟树设计规则约束是时钟树综合的首要目标,即满足最大转换 时间,最大扇出,最大负载等参数要求。

(B)实现较小时钟延滞和时钟偏差和尽可能小的时钟单元功耗时钟树综合 的次要目标。

2.3.4 布线

在数字后端设计中,布线主要完成各单元的实际绕线,自动化程度较髙,是 一个需要根据其时序和布通性结果进行迭代的过程。对布线类型, 以及预防及修 复串扰和天线效应等问题的研究将在第四章中进行详细讨论。

2.3.5 芯片验证

芯片验证主要包括芯片时序验证,功耗验证和物理验证。验证修复工作需要 利用手工和工具进行迭代,直至验证成功,并达到签核标准。关于芯片验证部分的研究分析将在本文中的第五章详细分析。

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

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

相关文章

【笔记】数据结构与算法

参考链接&#xff1a;数据结构(全) 参考链接&#xff1a;数据结构与算法学习笔记 一些PPT的整理&#xff0c;思路很不错&#xff0c;主要是理解角度吧&#xff0c;自己干啃书的时候结合一下会比较不错 0.总论 1.数据 注&#xff1a;图是一种数据结构&#xff01;&#xff01;…

无人机救援系统基本组成

无人机救援系统基本组成 1. 源由2. 组成2.1 无人机载具2.1.1 多旋翼2.1.2 垂起固定翼2.1.3 智能避障2.1.4 物资投递 2.2 智能吊舱2.2.1 云台2.2.2 高清摄像2.2.3 红外热成像2.2.4 激光测距2.2.5 目标跟踪 2.3 通讯链路2.3.1 超长距离通信2.3.2 长距离通信2.3.3 中等距离通信 2.…

拍拍贷鸿蒙版H5容器之路

背景介绍 业务背景 2024年1月18日华为宣布&#xff1a;HarmonyOS NEXT 将不再支持 Android系统&#xff0c;基于以上背景及国内信贷业务现状&#xff0c;公司决定启动借款App鸿蒙化项目。 下图是2024年6月华为HDC大会上&#xff0c;华为宣布 HarmonyOS NEXT 将面向开发者和先…

微信小程序服务通知

项目中用到了小程序的服务消息通知&#xff0c;通知订单状态信息&#xff0c;下边就是整理的一下代码&#xff0c;放到项目中&#xff0c;把项目的小程序appid和小程序的secret写进去&#xff0c;直接运行即可 提前申请好小程序服务信息通知短信模板&#xff0c;代码需要用到模…

3000字帮你彻底搞懂Java抽象类与接口的区别(含JDK8接口新增三种方法与丰富案例)

Java-OOP 1-Final 1.1简介 final关键字是最终的意思&#xff0c;可以修饰&#xff1a;类、方法、变量。 修饰类&#xff1a;该类被成为最终类&#xff0c;特点是不能被继承了。修饰方法&#xff1a;该方法被称为最终方法&#xff0c;特点是不能被重写了。修饰变量&#xff…

有没有噪音低的宠物空气净化器推荐?希喂、IAM性能PK

有一说一&#xff0c;随着清洁家电市场的不断发展&#xff0c;市面上的各种清洁家电品类也是越来越多&#xff0c;像是吸尘器、洗地机、扫地机等等这些产品估计大家都很熟悉了。 但&#xff01;如果你家也跟我家一样也是养了几只猫猫狗狗&#xff0c;那你就会发现到&#xff0…

vscode摸鱼学习插件开发

不知道大家在摸鱼的时候&#xff0c;会不会想要学习&#xff1f; 或者有没有考公人&#xff0c;下班要学习的&#xff1f; 上班时间摸鱼&#xff0c;下班时间不够学习&#xff1f; 为此&#xff0c;我决定开发一个vscode插件&#xff0c;来刷粉笔题 粉笔插件名称&#xff1a;…

hive将包含逗号的字段拆分为多列

目录 一、概述 二、行动 1.准备数据 2.数据清洗 3.substring_index函数 4.split函数实现 一、概述 想将hive表中包含逗号的字段按逗号做分隔符进行分列操作 二、行动 1.准备数据 --1 select {1,2,3,4,5,6,7,8} as num_str --使用的数据2.数据清洗 --2 select num_s…

文心一言 VS 讯飞星火 VS chatgpt (381)-- 算法导论24.5 1题

一、给出图24-2的与图中两棵最短路径树不同的另外两棵最短路径树。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在图论中&#xff0c;最短路径树&#xff08;Shortest Path Tree, SPT&#xff09;是一种从单个源点到所有其他节点的最短路径形成的树。给定一个…

故障诊断 | MTF-TLSSA-DarkNet-GRU-MSA迁移学习故障识别程序(t分布+莱维飞行改进麻雀优化)

故障诊断 | 故障诊断实例代码 目录 故障诊断 | 故障诊断实例代码效果一览基本介绍程序设计参考资料 效果一览 基本介绍 利用了迁移学习和多项技术改进&#xff0c;包括麻雀搜索法、DarkNet19、GRU、多头注意力机制等&#xff0c;以提高故障识别的准确性和效率 模型框架&#x…

在Bash脚本中 set -e 是什么意思

问题 我正在研究这个预安装(preinst)脚本的内容&#xff0c;该脚本会在从 Debian 软件包(.deb)文件解压该包之前执行。 脚本包含以下代码&#xff1a; #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" install ]; thenif [ -d /usr/share…

使用yolov3配置文件训练自己的数据

目录 前言 一、准备数据集 二、创建文件结构 三、格式化文件 1.data文件夹 2.config文件夹 四、修改yolo的配置文件 1.train文件 2.json2yolo文件 3.datasets文件 前言 使用yolov3框架训练自己的数据大致分为这四步&#xff1a; 准备数据集创建文件结构格式化文件 …

【小白学机器学习29】 概率统计与图形 ( hist, bar, pie , box ,scatter ,line)

目录 1 频度/次数 1.1 频度统计表&#xff1a;频度分布表 1.2 频数分布图直方图 histogram / hist 1.3 对比&#xff0c;柱状图 bar graph /column chart 2 饼图 pie chart 2.1饼图特点 3 南丁格尔玫瑰图 4 茎叶图 stem-and-leaf display 5 箱型图 box plot 6 …

springboot098基于web的网上摄影工作室的开发与实现(论文+源码)_kaic

网上摄影工作室 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了网上摄影工作室的开发全过程。通过分析网上摄影工作室管理的不足&#xff0c;创建了一个计算机管理网上摄影工作室的方案。文章介绍了网上摄影工…

【再谈设计模式】单例模式~唯一性的守护者

一、引言 在软件工程中&#xff0c;软件开发&#xff0c;设计模式是提高代码复用性和可维护性的有效工具。单例模式&#xff08;Singleton Pattern&#xff09;作为一种创建型设计模式&#xff0c;旨在确保一个类只有一个实例&#xff0c;并提供对该实例的全局访问。这一模式在…

UDP-鼠李糖合成酶基因的克隆与鉴定-文献精读76

何首乌中UDP-鼠李糖合成酶基因FmRHM1/2的克隆与鉴定 摘要 UDP-鼠李糖是一种由UDP-鼠李糖合酶&#xff08;RHM&#xff09;催化合成的鼠李糖供体&#xff0c;而鼠李糖是鼠李糖苷化合物的重要组成部分&#xff0c;植物中只有少数基因编码的酶参与UDP-鼠李糖生物合成。本研究基于…

创建多维数组的全部元素的索引np.indices

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 创建多维数组的 全部元素的索引 np.indices [太阳]选择题 根据题目代码&#xff0c;执行的结果是&#xff1f; import numpy as np arr np.arange(6).reshape((2, 3)) print(&quo…

C/C++ 矩阵的QR分解

#include <iostream> #include <vector> using namespace std;int main() /* 矩阵A的QR分解*/ {// 动态分配内存int m 3; // 行数int n 3; // 列数// 初始化矩阵Adouble A[3][3] {{1, 2, 2},{2, 1, 2},{1, 2, 1}};double R[3][3] { 0 };double Q[3][3] { 0 };…

2023-2024年教育教学改革、教学成果奖等项目申请书合集-最新出炉 附下载链接

2023-2024年教育教学改革、教学成果奖等项目申请书合集 下载链接-点它&#x1f449;&#x1f449;&#x1f449;&#xff1a;2023-2024年教育教学改革、教学成果奖等项目申请书合集-最新出炉.zip 资源介绍 本资源展示了2023-2024年高等教育领域的教育教学改革项目以及教学成…

某大型建设集团有限公司信息化技术方案(250页WORD)

方案介绍&#xff1a; 本信息化技术方案旨在构建一个集成度高、功能全面、操作简便的信息化系统&#xff0c;涵盖公司管理、业务运营、项目监控、数据分析等多个方面。通过引入云计算、大数据、物联网、人工智能等先进技术&#xff0c;实现资源的优化配置、流程的高效协同和数…