DDRPHY数字IC后端设计实现系列专题
DDRPHY数字IC后端设计实现系列专题
在对LPDDR3物理层接口模块进行后端设计之前,需要对该模块的功能结构以及后端物理设计流程的相关理论进行深入的分析和研究。本文将详细介绍LPDDR3物理层接口模块的结构、DDR物理层接口读写通路的分析以及数字后端设计流程,为该模块的布图布局的合理规划奠定理论基础。
LPDDR3物理层接口模块理论
为了能够更好实现LPDDR3物理层接口模块,我们需要对该模块的功能结构有一个深入的认知。掌握该模块内IP、IO、Memory之间的数据流向,能更好实现设计的收敛。另外DDR具有特殊的读写信号要求,对后端设计提出了更多的挑战,需要把rise和fall都做balance。本节将主要介绍和分析LPDDR3 PHY的结构和读写通路。
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短截线串联端接逻辑)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,该部分内容将在第三章中详细分析。
DDR物理层接口读写通路的分析
DDR主要包括以下信号:时钟信号,数据信号(Data Signal,DQ),数据选通信号(Data Strobe Signal,DQS),数据掩模信号,地址信号,控制信号等。这里主要根据时钟信号,数据选通信号,数据信号来分析DDR的读写通路。
数据选通信号的主要作用是在一个时钟周期内准确区分出每个传输周期来接受数据。DQS信号是一个双向信号,写入和读取数据时,分别接收和发送数据选通信号。
在执行读操作时,DDR SDRAM同时发送DQ信号与DQS信号,两者边沿对齐。但是在接收的时候,却不能以DQS的上下沿来进行读取数据信号。因为芯片读取DDR SDRAM的数据时是预取,所以难以对DQS的上下沿进行同步。因此为了能够保证同步接收,接收方将DQS信号延迟为DQSD信号,使DQSD信号的边沿作为数据周期的选取分割点。这样DQS信号的上下沿总能在数据DQ信号的逻辑电平稳定的周期内,保证数据接收触发的高准确性。读操作数据选通脉冲与数据关系图2.2所示:
图2.2 读操作DQS与DQ信号关系图
在执行写操作时,DQ信号的周期分割点为DQS信号电平的中部,但仍在DQS信号的上下沿作为数据接受的触发沿。写操作时数据选通脉冲与数据信号的关系如图2.3所示。由读写通路分析知,DDR物理层接口模块对DQS和DQ信号的路径对齐有着较高的要求。
图2.3写操作DQS与DQ信号关系图
数字后端设计流程
随着芯片设计能力的不断提高,EDA工具的更新换代,芯片后端设计流程也不断的进步与发展。高度自动化的后端设计,减少了手工操作带来的误差,也缩短了设计的开发周期。本小节将主要讨论后端设计的主要流程。
数字后端物理设计相关文件
(A)门级网表
门级网表netlist是RTL综合后的设计网表,网表中有所有逻辑单元的类型和连接信息。后端设计就是从netlist到GDS版图数据的工作。
(B)设计约束文件
设计约束文件sdc由前端综合所产生,是芯片的时序,功耗和面积约束的集合,其中包括对时钟,延时,输入输出驱动等的定义。
(C)时序库文件
时序库lib文件中包含了逻辑单元的时序,功耗和面积信息。前部分主要是对库名称,库单元PVT,电压电容等的定义,后部分主要包括库中逻辑单元的功耗,传输时间,转换时间等信息。
(D)物理库文件
物理库lef文件定义了各逻辑单元的单元尺寸,结构,pin位置,金属层信息,通孔信息以及单元信号,电源和地的连线信息以及电迁移和天线效应的规则信息。
(E)寄生电阻电容参数提取模型文件
寄生电阻电容参数提取模型文件spef包含了精确的寄生参数信息,保证时序分析和计算的准确性。
标准单元的布局
布局(Placement)阶段主要进行标准单元(Standard cell)的布局和优化,布局的质量对芯片的时序,功耗和布通性有着重要影响。
布局阶段除了对place标准单元外,还将自动摆放Scan cell,Spare cell,Tie cell,Filler cell等。一个单元的布局状态主要分为以下几种:
- Unplaced:该单元未被摆放。
- Placed:该单元已被摆放,并能被移动。
- Fixed:该单元已被摆放,并且不能被移动,只能调尺寸。
- Legalize_Only:该单元已被摆放,只能在合理化布局阶段移动。
时钟树综合
(一)基本概念
(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)。
- source latency:时钟源点到时钟定义点的延迟,即时钟源到当前芯片时钟根节点(clock root pin)之间的延迟。
- 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
有用偏斜或叫有用偏差。随着时钟树综合技术的发展,可以利用某些偏斜来优化电路性能,解决部分时序违例,这些偏差被称为有用偏差。如图2.8所示,D2路径原本不满足建立时间的要求,通过借用前一级路径的余量,来使前路径满足建立时间的时序要求。这个方法可能会对其他路径的时序造成影响,也可能会引起保持时间的违例,所以需要保证其他路径有足够的时间余量。在实际的后端实现项目中,不建议优先选择有用偏斜来修复时序问题。
图2.8useful skew
(D)时钟转换时间clocktransition time
时钟转换时间也称为clock slew。通常指电压从10%上升到90%需要的时间,或者是从90%下降到10%需要的时间。如图2.9所示:
图2.9时钟转换时间transition
在时钟树综合阶段,一般会设定一个最大的transition值来控制各路径单元的转换时间,该值太大容易造成时钟树综合后的转换时间过大,引起过多时序违例,该值过小可能会导致时钟树综合时在时钟路径上上插入过多的缓冲器和反相器,从而影响到偏差平衡及面积和功耗。另外为了保证时钟路径上的上升和下降转换时间对称,标准单元库会提供CLK类型的缓冲器和反相器。
(E)时钟不确定性clockuncertainty
时钟不确定性是指时钟信号可能过早或者过晚到达时序单元时钟端的时间,通过设置该值来降低时钟抖动对时序的影响。建立时间检查:clockuncertainty代表降低时钟的有效周期;保持时间检查:clockuncertainty表示额外需要的余量。
(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
Thold < Tlaunch-early + Tdata-min-early - Tcapture-late
其中,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)实现较小时钟延滞和时钟偏差和尽可能小的时钟单元功耗时钟树综合的次要目标。
布线
在数字后端设计中,布线主要完成各单元的实际绕线,自动化程度较髙,是一个需要根据其时序和布通性结果进行迭代的过程。对布线类型,以及预防及修复串扰和天线效应等问题的研究将在第四章中进行详细讨论。
芯片验证
芯片验证主要包括芯片时序验证,功耗验证和物理验证。验证修复工作需要利用手工和工具进行迭代,直至验证成功,并达到签核标准。关于芯片验证部分的研究分析将在本文中的第五章详细分析。
本文原文来自ppmy.cn