《IC芯片设计中的静态时序分析实践》深度介绍了芯片设计中用静态时序分析进行时序验证的基本知识和应用方法,涉及了包括互连线模型、时序计算和串扰等影在内的响纳米级电路设计的时序的重要问题,并详细解释了在不同工艺、环境、互连工艺角和片上变化(OCV)下进行时序检查的方法。详细介绍了层次化块(Block)、全芯片及特殊IO接口的时序验证,并提供了SDC、SDF及SPEF格式的完整介绍。
《IC芯片设计中的静态时序分析实践》适合从事芯片设计和ASIC时序验证领域的专业人士,以及逻辑和芯片设计专业的学生和教师阅读。不管是刚开始使用静态时序分析,还是精通静态时序分析的专业人士,本书都是优秀的教材或参考资料。
译者的话
原书前言
第1章 引言
1.1 纳米级芯片(Nanometer Designs)
1.2 什么是STA
1.3 为什么要进行STA
串扰和噪声
1.4 设计流程
1.4.1 CMOS数字设计
1.4.2 FPGA设计
1.4.3 异步设计(Asynchronous Designs)
1.5 不同阶段的STA
1.6 STA的局限性
1.7 功耗考虑
1.8 可靠性考虑
1.9 本书概要
第2章 STA概念
2.1 CMOS逻辑设计
2.1.1 基本MOS结构
2.1.2 CMOS逻辑门
2.1.3 标准单元
2.2 CMOS单元建模
2.3 电平翻转波形(Switching Waveform)
2.4 传播延迟(Propagation Delay)
2.5 波形的转换率
2.6 信号之间的偏移
2.7 时序弧和单调性(Unateness)
2.8 最小和Z大时序路径
2.9 时钟域
2.10 工作条件
第3章 标准单元库
3.1 引脚电容(Pin Capacitance)
3.2 时序建模
3.2.1 线性时序模型
3.2.2 非线性延迟模型
非线性延迟模型的查表示例
3.2.3 阈值规范和转换率减免(Slew Derating)
3.3 时序模型 - 组合逻辑单元
3.3.1 延迟和转换率模型
正单调性(Positive Unate)或负单调性(Negative Unate)
3.3.2 常用组合逻辑块(Combinational Block)
3.4 时序模型 – 时序单元
3.4.1 同步检查:建立时间和保持时间
建立时间检查和保持时间检查的例子
建立时间检查和保持时间检查里的负值
3.4.2 异步检查
恢复时间和移除时间检查(Recovery and Removal Check)
脉冲宽度检查(Pulse Width Check)
恢复时间,移除时间以及脉冲宽度检查的例子
3.4.3 传播延迟
3.5 状态相关的时序模型
异或门,异或非门和时序单元
3.6 黑箱(Black Box)的接口时序模型
3.7 先进时序建模
3.7.1 接收引脚电容(Receiver Pin Capacitance)
在引脚级别指定电容
在时序弧级别指定电容
3.7.2 输出电流
3.7.3 串扰噪声分析模型
直流电流
输出电压
传播噪声
两级单元的噪声模型
多级单元和时序单元的噪声模型
3.7.4 其他噪声模型
3.8 功耗建模
3.8.1 动态功耗(Active Power)
时钟引脚的功耗是否被重复计算了?
3.8.2 漏电功耗(Leakage Power)
3.9 单元库中的其他属性
面积规范
功能规范
SDF条件
3.10 特征化和工作条件
什么是工艺变量?
3.10.1 用K系数来减免
3.10.2 库单位
第4章 互连寄生参数
4.1 互连线RLC(Resistance Inductance and Capacitance)
T模型
Pi模型
4.2 线负载模型(Wireload Model)
4.2.1 互连树
4.2.2 指定线负载模型
4.3 提取的寄生参数的表示方法
4.3.1 详细标准寄生参数格式
4.3.2 精简标准寄生参数格式
4.3.3 标准寄生参数交换格式
4.4 耦合电容的表示方法
4.5 层次化设计方法
布局中的块复用(Block Replicated)
4.6 减少关键线(Nets)的寄生参数
减少互连电阻
增加走线间距
关联走线的寄生参数
第5章 延迟计算
5.1 概述
5.1.1 延迟计算的基础
5.1.2 带有互连线的延迟计算
预布局时序
布局后时序
5.2 使用有效电容的单元延迟
5.3 互连线延迟
Elmore延迟模型
高阶互连线延迟估计
整个芯片延迟计算
5.4 转换率融合(Slew Merging)
5.5 不同的转换率阈值
5.6 不同的电压域(Voltage Domains)
5.7 路径延迟计算
5.7.1 组合逻辑路径计算
5.7.2 到触发器的路径
输入到触发器路径
触发器到触发器路径
5.7.3 多路径
5.8 裕量(Slack)计算
第6章 串扰和噪声
6.1 概述
6.2 串扰毛刺分析
6.2.1 基础
6.2.2 毛刺(Glitch)的类型
上升和下降毛刺
过冲(Overshoot)和下冲(Undershoot)毛刺
6.2.3 毛刺的阈值和传播
直流阈值(DC Threshold)
交流阈值(AC Threshold)
6.2.4 多侵害者的噪声累计
6.2.5 侵害者的时序相关性
6.2.6 侵害者的功能相关性
6.3 串扰延迟分析
6.3.1 基础
6.3.2 正向串扰和负向串扰
6.3.3 多侵害者的累积
6.3.4 侵害者和受害者的时序相关性
6.3.5 侵害者和受害者的功能相关性
6.4 考虑串扰延迟的时序分析
6.4.1 建立时间分析
6.4.2 保持时间分析
6.5 计算复杂度
层次化设计与分析
耦合电容的过滤
6.6 避免噪声的技术
第7章 配置STA环境
7.1 什么是STA环境
7.2 指定时钟
7.2.1 时钟不确定性(Clock Uncertainty)
7.2.2 时钟延迟(Clock Latency)
7.3 生成时钟(Generated Clock)
时钟门控单元输出端上的主时钟实例
使用invert选项生成时钟
生成时钟的时钟延迟
典型的时钟生成场景
7.4 约束输入路径
7.5 约束输出路径
例子A
例子B
例子C
7.6 时序路径组
7.7 外部属性建模
7.7.1 驱动能力建模
7.7.2 电容负载建模
7.8 设计规则检查
7.9 虚拟时钟(Virtual Clocks)
7.10 完善时序分析
7.10.1 指定无效信号(Inactive Signals)
7.10.2 中断单元内部的时序弧
7.11 点对点约束(Point-to-Point Specification)
7.12 路径分割
第8章 时序验证
8.1 建立时间检查
8.1.1 触发器到触发器的路径
8.1.2 输入到触发器的路径
具有真实时钟的输入路径
8.1.3 触发器到输出的路径
8.1.4 输入到输出的路径
8.1.5 频率直方图
8.2 保持时间检查
8.2.1 触发器到触发器的路径
保持时间裕量计算
8.2.2 输入到触发器的路径
8.2.3 触发器到输出的路径
具有真实时钟的触发器到输出的路径
8.2.4 输入到输出的路径
8.3 多周期路径(Multicycle Paths)
跨时钟域
8.4 伪路径(False Path)
8.5 半周期路径(Half-Cycle Path)
8.6 移除时间检查
8.7 恢复时间检查
8.8 跨时钟域的时序
8.8.1 慢速时钟域到快速时钟域
8.8.2 快速时钟域到慢速时钟域
8.9 实例
半周期 – 例子1
半周期 – 例子2
快速时钟域到慢速时钟域
慢速时钟域到快速时钟域
8.10 多倍时钟
8.10.1 整数倍
8.10.2 非整数倍
8.10.3 相移
第9章 接口分析
9.1 IO接口
9.1.1 输入接口
在输入端口的波形约束
输入端口的路径延迟约束
9.1.2输出接口
输出波形约束
输出外部路径延迟
9.1.3 时序窗口内的输出变化
9.2 SRAM接口
9.3 DDR SDRAM接口
9.3.1 读周期
9.3.2 写周期
情况1:内部2倍频时钟
情况2:内部1倍频时钟
9.4 视频DAC接口
第10章 鲁棒性验证
10.1 OCV
在最差PVT情况下带有OCV分析
保持时间检查的OCV
10.2 时序借用
没有时序借用的例子
有时序借用的例子
有时序违例的例子
10.3 数据到数据检查(Data to Data Checks)
10.4 非时序路径检查
10.5 门控时钟检查(Clock Gating Check)
高电平有效时钟门控
低电平有效时钟门控
用多路复用器进行时钟门控
带时钟反相的时钟门控
10.6 功耗管理
10.6.1 时钟门控
10.6.2 电源门控
10.6.3 多种阈值单元
高活跃度的高性能模块
低活跃度的高性能模块
10.6.4 阱偏置328
10.7 反标(Backannotation)
10.7.1 SPEF
10.7.2 SDF
10.8 签核(Sign-Off)方法
工作模式
PVT工艺角
多模式多工艺角分析
10.9 统计静态时序分析
10.9.1 工艺和互连偏差
全局工艺偏差
局部工艺偏差
互连线偏差
10.9.2 统计分析
什么是SSTA?
统计时序库
统计互连偏差
SSTA结果
10.10 违例路径的时序?
找不到路径
跨时钟域
反相的生成时钟
虚拟时钟延迟丢失
很大的I/O延迟
不正确的I/O缓冲器延迟
不正确延迟值
半周期路径
大延迟和大转换时间
多周期保持时间约束丢失
路径没有被优化
仍不满足时序的路径
如果时序还是不满足?
10.11 验证时序约束
检查路径例外
检查跨时钟域
验证IO和时钟约束
附录A SDC
A.1 基础命令
A.2 对象访问命令
A.3 时序约束
A.4 环境命令
A.5 多电压命令
附录B 标准延迟格式(Standard Delay Format,SDF)
B.1 这是什么
B.2 格式
延迟
时序检查
标签
时序环境
B.2.1 例子
全加器(Full-adder)
十进制计数器
B.3 反标过程
B.3.1 Verilog HDL
B.3.2 VHDL
B.4 映射例子
传播延迟
输入建立时间
输入保持时间
输入建立时间和保持时间
输入恢复时间
输入移除时间
周期
脉冲宽度
输入偏移时间
不变化的建立时间
不变化的保持时间
端口延迟
线延迟
互连路径延迟
器件延迟
B.5 完整语法
附录C 标准寄生参数交换格式 (Standard Parasitic Exchange Format,SPEF)
C.1 基础
C.2 格式
C.3 完整语法
参考书目