单元lef
cell lef
定义标准单元,模块单元,I/O单元,特殊单元的物理信息;定义放置区域,对称性,面积大小 供布局使用;定义IO端口布线层,几何形状,不可布线区,工艺天线效应参数 供布线用;
Gate-level Netlist
在具体的工艺(门级)下,描述电路元件相互之间连接关系的文本文件
Synopsys design constraints
标准设计约束,主要由时钟定义 输入延迟 输出延迟组成,顶层设计中约束输入端口的驱动及输出端口的负载等
setup time
在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器
hold time
在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器
在同步电路中,被相同时钟信号驱动的寄存器共同组成一个时钟域
buffer
两个串联的反相器,常用于时钟路径中,使得时钟clock具有良好的上升沿和下降沿,电阻在获得所需的驱动能力时,在功耗延时积上也达到最优。插buffer的方式减少了电路的负载电容,从而增大了电路驱动能力。
[为什么插入buffer能够增加驱动能力]
[数字电路中的buffer一般作用]
最大输出电流。如果负载过大(比如小电阻),则负载电流有可能超过其最大输出电流,这时驱动能力不足。出现驱动能力不足,直接后果是输出电压下降,对逻辑电路来说,就是无法保持其高电平,以致出现逻辑混乱,不能实现预期的效果。
Followpin
followpin
trunk
电源网络布线,时钟树布线要设立更宽的干状结构
Arrival Time
指是信号(data or clock)到达电路某一指定位置的实际时间
Required Time
指期望信号(data or clock)到达电路某一指定位置的时间(通常情况下,该期间是保障电路正常工作的临界值)
Slack
指信号到达的 期望时间 - 到达时间
Precess Voltage Temperature
设计需要满足的工艺 电压,温度条件 operating_conditions
端角/工艺角
process corner
不同PVT下芯片有不同的delay,把NMOS和PMOS晶体管的速度波动范围限制在由四个角所确定的矩形象限内。可得到最好fast,最坏slow,平均typcial条件。
工艺角&&PVT工艺误差
on chip variation
不同PVT条件下,同一个芯片上不同区域的delay
multi mode,multi corner
多模式(timing mode: func/test)多管脚(PVT RC param)(适应不同情境下芯片的性能等)第十章
Power Performance Area
芯片开发的三大目标
Launch Register
Capture Register
数据发出和接受的两个寄存器名,时序相关的概念
Transition
信号翻转时间,翻转20%~80%过程/翻转10~90%过程的时间
fanout
一个门的输出端所驱动同类型门的个数,或称负载能力
block-based design
展平设计中基于模块的设计
power delivery network
电源分配网络
1.物理设计方法 -- 从
RTL逻辑综合
后的
门级网表
到
GDSII数据
的实现
1.
逻辑综合
把Design从RTL映射到Gate-level Netlist,同时满足各种约束。流程:RTL -Translate-> GTECH -optimize+map-> Gate-level Netlist。使用DC(design compiler)和RC(RTL Compiler)
2.
形式验证
比较 RTL 和 Mapped Netlist 在功能上是否等价
3.
物理实现
从门级网表到GDS
- - 时序分析:静态时序分析,寻找最长延时路径及最长延时
- - 功耗分析:静态功耗分析,动态功耗分析,低功耗设计
- - 可制造性分析:可制造性设计DFM及分析,包括设计检验,设计产额和制造,设计质量等
1.4 设计数据库
物理实施LEF,带有物理信息的网表 过程数据DEF,时序数据SPEF和SDF...
PDK(process design kit, 工艺设计包)器件模型,参数化单元Pcell,技术文件(工艺参数,GDSII数据,工艺代码数的映射关系),物理验证规则文件(设计规则检查DRC,电气规模检查LVS)等
2.物理设计建库与验证
2.1 工艺与版图
CMOS制造工艺
闩锁效应(latch-up)
版图(layout)是电路设计的物理几何描述,包括晶体管大小数量位置尺寸,连线尺寸位置等等,并遵循一系列约束
版图设计 根据电路功能和性能要求以及工艺条件限制,设计光刻掩膜版图
GDS(Graphic Design System)GDSII stream format 描述电路版图的格式.gds。记录版图几何图形,拓扑关系,结构,层次及其信息
工艺技术文件(technology file) 晶圆代工厂提供给设计者用于后端版图设计的技术文件,包括图形定义,显示信息,互连线工艺信息,通孔工艺信息
映射文件(mapping file)版图设计数据库(版图功能代号)与GDSII数据库(制造代号)相互转换
2.2 && 2.3 设计规则检查
物理验证
的两项主要工作:
DRC(design rules check,设计规则检查)将版图中集合图形与设计规则规定的尺寸,间距比较,检查版图中所有因违反设计规则(工艺层间集合尺寸最小值规划集合,工艺技术文件part)而引起潜在断路,短路或不良效应
LVS(layout versus schematic,电路规则检查)验证所有信号的电器连接关系(输入/输出/电源/地/连接节点信号)是否一致,器件类型(电阻电容MOS管..)数目尺寸是否一致。由器件提取规则,电路比较规则,器件捆绑规则组成。EDA从版图抽取晶体管级SPICE网表,将门级Verilog网表转化为SPICE网表,两表完全一致通过LVS检查
SPICE(Simulation program with integrated circuit emphasis)电路仿真模拟器,使用电炉网表和器件模型对电路各节点进行直流分析,交流分析,瞬态分析等方针。
2.4 版图寄生参数提取与设计仿真
DRC和LVS后,寄生参数(电阻Resistance/电容Capacitance/电感L/互感K)也会影响电路性能,还要进行LPE/PRE检查
寄生参数提取(LPE,layout parasitic extraction)
寄生电阻提取(PRE,parasitic resistence extraction)
2.5 逻辑单元库建立
建库流程:1方案设计与论证 2电路设计 3版图设计与物理库生成 4标准单元特征化及库生成 5设计验证
芯片设计用到的逻辑单元:
文件格式 Liberty.lib文件,TLF文件,ALF文件
时序库应用的PTV条件:process工艺,temperature温度,voltage电压
线负载模型(WLM,wire load model)用理想的统计值估算芯片电路延时
时序库的单元信息:与物理库LEF中的单元一一对应,内容包括1延迟时间表 2单元面积,静态功耗,端口名称 3端口逻辑关系 4保留噪声的语法
工艺天线效应 PAE process antenna effect
芯片中金属片等导体像天线一样收集空间静电电荷,可能会击穿晶体管,损坏器件。
计算天线比率(链接同一节点的金属面积与门栅面积的比率)过大就有损坏的可能,在布线时进行检查修正。
3.布图规划和布局
3.1 布图规划 floor plan
规划芯片内部结构的完整设计与规划:包含芯片大小(die size)规划,设计输入输出IO单元规划,大量硬核模块规划
布图目标:确定die面积,保证时序收敛,保证芯片稳定(静电保护,供电设计),满足布线要求(方便走线)
IO单元类型,布局,供电
类型:数字输入,数字输出,数字双向输入输出,静电保护,IO供电,芯核供电,数字填充,模拟供电,模拟输入,模拟输出,模拟填充,专用输入输出,角填充单元等
IO单元分为信号接口和电源:信号接口考虑驱动大小;电源考虑电源数量计算和摆放,数量根据功耗 供电电压 电流 驱动能力 开关噪声等考虑,摆放考虑电压降大小,做功耗分析;可利用IO降低噪声。
布图规划方案与延迟预估
布图布局之前(逻辑综合后得到网表)先对芯片时序进行理想情况的零线负载模型(zero WLM, wire-load model)做延迟分析。
展平式设计/层次化设计的布图规划流程
宏模块布放与布线通道
模块布放在布图规划阶段完成,为了进行下一步电源规划。使用EDA工具实现模块自动布局。
EDA读入设计数据,LEF和用户定义die size,在芯片内部自动生成各金属层连续,规则的布线轨道
布线轨道(routing track)用于布线的路径
布线通道(routing channel)多条布线轨道的空间,通道上不可摆放标准单元
晕道(halo)模块四周不允许摆放标准单元的空间
3.2 电源规划
目的:给芯片供电设计出一个均匀的网络
电源网络设计 内容
全局电源 电源环线 电源条线
数字与模拟混合供电
注意电源信号之间的干扰和隔离,应建立不同的电源区域
?3.2.3
多电源供电 MSV,Multi-Supply Voltage
多组电源多组电压供电MSMV,Multi-Supply Multi-Voltage
1电源规划:每一个电压域有完整的电源和地线电源环;2电平转换单元:不同电压区之间要插入电平转换单元(VLS,voltage level shifter);3隔离单元插入:在
被关闭的电压域
所有接口处添加隔离单元。
3.3 布局
IO和宏模块布局在floorplan布图规划就完成,故此处进行标准单元布局。
展平式布局(自动化/手动)
1模块摆放与布局 2标准单元的摆放和优化
层次化布局
1子模块约束类型制定 2子模块大小位置的制定
布局目标预估
拥塞分析 布线空间无法达到实际需要,出现了拥塞,需要对设计/标准单元布局进行优化
时序预估 做建立时间(setup time)预估(CTS后做保持时间(hold time)预估),考虑噪声的影响
供电预估 将标准单元的供电端口连接到电源网格(followpins)中,引用VCD文件,对芯片的功耗,电压降及EM进行评估。
标准单元布局优化算法
布局优化算法 聚类算法,模拟退火等
目标导向的布局优化 基于布线拥塞布局优化,基于时序布局优化,预防噪声布局优化
3.4 扫描链重组
扫描链 scan chain
将普通寄存器替换成带扫描功能的多输入输出寄存器,首尾相连,实现附加的测试功能。
扫描链在逻辑综合后由专门的DFT工具产生。
可测试性设计 DFT Design For Test
指的是在芯片原始设计中阶段即插入各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件逻辑,通过这部分逻辑,生成测试向量,达到测试大规模芯片的目的。
DFT介绍
3.5 物理设计网表文件
设计交换格式 DEF,design exchange format 展平式的设计网表文件,带有物理信息的网表,包含连接信息,各单元物理信息:芯片面积 (布图规划)区域定义 (电源规划后)电压域定义,(布线后)端口位置信息等
4.时钟树综合 CTS,clock tree synthesis
4.1 时钟信号
时钟信号是整个芯片中有最大扇出,通过最长距离,以最高速度运行的信号
系统时钟 控制多个芯片间的时钟结构网络 并控制相互之间时序关系的时钟结构
芯片的时钟信号通过I/O单元与系统时钟相连,单个的芯片时钟称作全局时钟,来自时钟发生器PLL,phase-locked loop
时钟信号生成 外部晶振(石英晶体谐振器)输入,专用锁相环PLL,锁延迟环DLL
时钟信号定义 三要素:时钟周期,时钟延滞,时钟信号不确定性(抖动)
芯片设计时钟分为:
真实时钟:没有延时的
ideal理想时钟
用于逻辑综合,进行布局,布局后进行延时计算建立时钟树,设定时钟属性为
propagated传播时钟
,传播时钟考虑时钟树的门延迟和线延迟
虚拟时钟:相对于系统的参考时钟,如时钟信号来自外部输入,则设此为虚拟时钟
时钟的定义在CTS阶段实现,时钟延迟和抖动通过STA检查
时钟树
时钟信号在物理设计中的实现结果,从树的结构区分有H树,X树,平衡树,流状或脊椎状时钟网。根节点:时钟信号起点;叶节点:寄存器时钟输入或其它
时钟终点
;节点依附的逻辑单元称作根单元 分布单元 叶单元;
时钟树综合
按照芯片时钟网络的约束要求产生时钟树的过程
时钟树约束文件可以由SDC自动产生,定义:名称 周期 时钟根节点 最大/最小插入延迟 最大偏差skew 最大transition(slew) 还可定义专攻CTS选用的时钟
buffer/inverter?
等
4.3 时钟树设计策略
有用偏差:useful skew,利用时钟偏差来满足时序要求,迁就延时长的电路
异步时钟:电路不规则,速度快,功耗低,全局时钟变为多个局部时钟。同步电路 物理实施难,跳变瞬间噪声大。
锁存器时钟树:domino logic 电路设计中,同一时钟周期时许不够用,引入时间借用(time borrowing),锁存器的数据在有效电平区间内传输,寄存器组时钟边沿传输,使用锁存器增大"始终频率",从而实现高频电路。功耗提升,抗噪性差。
门控时钟:目的是降低功耗,即用一个控制信号控制时钟的开启,模块不工作时关闭,模块工作时开启
4.4 时钟树分析
时钟树与时序分析
偏差与建立时间:分析建立时间时,由于skew的存在,导致预留给寄存器之间组合逻辑的延迟时间减小,降低了芯片工作频率
偏差与保持时间:降频可解决skew导致的建立时间违例问题,但无法解决保持时间违例,可增加寄存器间的路径延迟,降低性能
时钟树功耗组成:
静态功耗: 各buffer静态功耗的和,减少buffer上加权数
短路功耗: 与转换时间成正比,降低时钟信号转换时间(时钟树约束文件规定)
跳变功耗: 占50%+,门的加权数值和互连线的总电容有关,降低互连线的长度/节点电容可降低功耗
时钟树与噪声分析
噪声主要来源:耦合电容对寄存器和时钟的效应
降噪方法:局部电源地保护,增加驱动,高层金属多倍间隔走线
将分布在芯片核内的模块,标准单元和接口单元 I/O pad 按逻辑关系进行互连,满足各种约束条件。
5.1 全局布线 global routing
制定全局布线的目标,根据设计特征(芯片or模块,形状,各种要求),做整体规划
全局布线目标:总连接线最短;分散均匀,不局部拥塞;关键路径延时最小,遵守时序约束;信号完整,避免串扰;将BUS总线聚集相连;
全局布线规划:将芯片核区分为若干方块,规定在方块内走多少线
5.2 详细布线 detail/final routing
网表中每个逻辑单元和模块间相互关系是通过接点(pin)实现,每个接点可以有多个连接终端(terminal)。需要连接在一起的一条网线称为net。
详细布线目标:将属于同一个net的所有pin连接上;不同net的终端不能连接;遵守设计规则要求的距离间隔等。
设计规则:布线间距 pitch 水平/垂直方向;通孔和最小面积规则;密度要求;天线效应;串扰的预防和修复;纳米布线规则;对角45度布线规则
布线修正:自动修正;渐进修正;局部修正
5.3 特殊布线
有自己的特殊要求:电源网络布线;时钟树布线(优先进行);总线布线;试验布线/虚拟布线(快,布局后进行,供时序分析使用)
5.4 布线算法
1. 通道布线&&面积布线
- 通道布线:FPGA使用,简单,迷宫法/李氏算法,线性探索算法
- 面积布线:ASIC使用,分为全局+详细布线(前两节内容)
2. 连续布线&&多层次布线
3.模块设计&&模块布线
6.静态时序分析 STA, static timing analysis
6.1 延迟计算与布线参数提取
芯片延时来自 器件延时+互连线延时,器件延时在时序库标定已经算出,时序分析时关注互连线寄生参数RC快速提取(放到SPF文件记录)和延时精确计算(放到SDF文件记录),及延时对时序的影响
延迟计算模型
R电阻参数提取 公
C电容参数提取 式
L电感参数提取 。。。
6.2 寄生参数与延迟格式文件
标准寄生参数格式文件 SPF Standard Parasitic Format 格式:DSPF(detailed), RSPF(reduced), SPEF(exchange)
SPF保存RC提取的结果
标准寄生参数交换格式文件 SPEF
标准延迟格式 SDF
SDF保存延迟计算结果,是对布局布线后的设计状态延时的报告
特定PTV条件下,根据3种端角corner,获得3个相应芯片寄生参数格式SPF+SDF(分fast, typical, slow)
应用:反标 back-annotation 用SDF和布局布线后的网表检查设计的时序是否达到要求 #正标 forward-annotation 把SDF当作时序约束文件使用,若反标发现时序不达标(剩余时间slack为负),拿SDF当时序约束重新布局布线(已经被SDC方法代替)
6.3 静态时序分析
静态时序分析贯穿 RTL逻辑综合,布局,时钟树综合,布线,反标,出带 tape-out,不同阶段互连线延迟也即RC对器件的负载loading和信号转换slew/transition在不断更新与优化,器件(器件延迟由时序库提供)也在跟着变化。不同阶段的静态时序分析的区别在于时序结果与设计约束之间相差的准确性,前期是估算,布线后的结果准确。
时序路径与时序分析
时序分析 将某一段路径的时序与时序约束的要求进行比较。目的是检查在时钟的控制和约束下,与其相关的数据能否符合时序要求被记录存储下来。时序检查就是检查setup建立时间时序和hold保持时间时序。
时序路径与同步 !!
先找时序的起点和终点,再将路径分类。
输入I,输出O,时钟点C
时序的起点可以是I或C,输入终点可以是C或O,共三类路径:I2C / C2C / C2O
当前设计时钟 实际到达 左右系统间的 相互时间差别 受输入延迟的约束,同样 时钟实际出发 对左右系统间的 相互时间差别 受输出延迟的约束。
违例:如果当前设计不能达到输入延迟和输出延迟的约束,则认为是对系统时序要求的违例。
时序分析的建立和保持 !!
建立时间 (setup time) 在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器:条件(D launch + D data < D capture + T cycle)
保持时间 (hold time) 在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器:条件(D launch + D data > D capture)
寄存器的setup和hold time都由时序库标定
setup违例
setup要求同步输入数据D必须在数字信号到达前的某个时段到达而且不发生变化,数据才会被锁存Latched。使用最差条件时序库判断。
出现setup违例要让时钟变慢(增长周期时间),或缩短数据路径的延迟。
hold违例
hold要求同步输入数据D必须在数字信号到达后的某个时段到达而且不发生变化,数据才会被锁存Latched。使用最佳条件时序库判断。
出现hold违例要让时钟加快(减少周期时间),或增大数据路径延迟
时序路径类型
分析时实际数据信号路径的起点和终点是位于寄存器R的到达点D和出发点Q,再加上不含时钟的输入至输出的信号延时情况,故有四种时序类型:I2R, R2R, R2O, I2O
时序分析的环境与时钟特性
输入输出环境参数:驱动set_drive,驱动单元set_driving_cell,负载set_load,扇出set_fanout
时钟相关特性参数:时钟插入延时latency,时钟不确定性/抖动jitter,时钟转换时间transition
锁存器时序分析:实现参考 4.3(锁存器时钟树),分析较复杂
统计静态时序分析
使用概率密度函数描述延时,可以克服工艺参数误差带来的问题。统计静态时序分析的基本思路:根据工艺误差和设计误差进行分析计算。
工艺误差:片间inter-die误差 和 片内intra-dia误差
设计误差:信号延迟,单元库线宽/间距等差异,系统参数电压,系统温度等。OPC PSM可以用RET进行矫正。
6.4 时序优化
时序分析后如果芯片设计不能满足要求,则要进行时序优化以满足SDC的时序指标。
造成违例的因素及解决:
不合理的约束:修改约束文件;
逻辑综合时根据不合理的WLM产生了无法实现的网表:根据当前结果产生“专用WLM CWLM, customized WLM”,再次进行逻辑综合修正网表,也叫做物理综合;
设计太大,互连线相互牵制:修正布局;
布局不合理:修正布局;
原地优化 IPO, in-place optimization
时序检查发现的违例主要是setup和hold。较小的违例/设计规则违例DRV(最大负载,最大扇出,最大转换时间)可通过 原地优化 解决,原地优化仅对当前设计网表进行逻辑优化,不对网表逻辑重组 logic structuring,故经过IPO后做LEC逻辑等效检查很简单。
常用原地优化方法:
挑选驱动能力大小不一样的逻辑单元(re-sizing)
"克隆"法:复制一个逻辑单元去分担负载
加buffer or 用buffer替代两个反相器