在对 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 可以看到,数据总线接口被设计成多个字节通道,一个数据字节通 道(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 芯片验证
芯片验证主要包括芯片时序验证,功耗验证和物理验证。验证修复工作需要 利用手工和工具进行迭代,直至验证成功,并达到签核标准。关于芯片验证部分的研究分析将在本文中的第五章详细分析。