电子与嵌入式系统设计译丛 综合与时序分析的设计约束:Synopsys设计约束(SDC)实用指南
作者: (美)斯里达尔·甘加达兰 著,韩德强等译
出版时间: 2018年版
内容简介
本书为集成电路时序约束设计的指南,指导读者通过指定的时序要求,充分发挥IC设计的性能。本书内容包括受时序约束的关键环节的设计流程、综合时序分析、静态时序分析和布局布线等。本书首先详细讲解时序要求的概念,然后详细解释如何将其应用于设计流程中的特定阶段,后通过实践介绍在Synopsys约束设计下(SDC)业界领先约束的格式。
目录
目 录
译者序
推荐序
前言
致谢一
致谢二
第1章 绪论 1
1.1 ASIC设计流程 1
1.2 FPGA设计流程 4
1.3 ASIC和FPGA设计流程中的时序约束 6
1.4 纳米级设计中的时序约束问题 6
1.5 小结 7
第2章 综合的基础知识 8
2.1 综合的解释 8
2.2 时序约束在综合中的作用 8
2.2.1 优化 9
2.2.2 输入重排序 9
2.2.3 输入缓冲 10
2.2.4 输出缓冲 11
2.3 综合中面临的普遍问题 11
2.3.1 设计划分 11
2.3.2 更新约束 12
2.3.3 多时钟设计 12
2.4 小结 12
第3章 时序分析与约束 14
3.1 静态时序分析 14
3.2 时序约束在STA中的作用 15
3.2.1 约束作为声明 16
3.2.2 约束作为断言 16
3.2.3 约束作为指令 16
3.2.4 约束作为异常 17
3.2.5 约束的角色变化 17
3.3 STA中的常见问题 18
3.3.1 无功能检查 18
3.3.2 无声明检查 18
3.3.3 要求正确 18
3.3.4 约束中的常见错误 19
3.3.5 好约束的特征 20
3.4 延迟计算与STA 21
3.5 时序路径 21
3.5.1 起点和终点 22
3.5.2 打断路径 23
3.5.3 功能路径与时序路径 23
3.5.4 时钟路径与数据路径 23
3.6 建立与保持 24
3.6.1 建立分析 24
3.6.2 保持分析 24
3.6.3 其他分析 25
3.7 裕度 25
3.8 片上变化 26
3.9 小结 27
第4章 通过Tcl扩展SDC 28
4.1 时序约束的历史 28
4.2 Tcl基础知识 29
4.2.1 Tcl变量 29
4.2.2 Tcl列表 30
4.2.3 Tcl表达式与运算符 31
4.2.4 Tcl的控制流语句 31
4.2.5 其他Tcl命令 33
4.3 SDC综述 33
4.3.1 时序约束 34
4.3.2 面积与功率约束 34
4.3.3 设计规则约束 34
4.3.4 接口约束 34
4.3.5 特定模式和配置约束 34
4.3.6 设计约束异常 35
4.3.7 其他命令 35
4.4 SDC中的设计查询 35
4.5 SDC作为标准 36
4.6 小结 36
第5章 时钟 37
5.1 时钟周期和频率 37
5.2 时钟沿和占空比 38
5.3 creat_clock 39
5.3.1 定义时钟周期 39
5.3.2 标识时钟源 39
5.3.3 命名时钟 40
5.3.4 指定占空比 40
5.3.5 同源多时钟 41
5.3.6 注释时钟 42
5.4 虚拟时钟 42
5.5 其他时钟特征 43
5.6 时钟规格的重要性 43
5.7 小结 44
第6章 生成时钟 45
6.1 时钟分频器 45
6.2 时钟乘法器 46
6.3 时钟门控 46
6.4 create_generated_clock 47
6.4.1 定义生成时钟的对象 47
6.4.2 定义生成时钟的源 48
6.4.3 时钟命名 48
6.4.4 设定生成时钟的特性 48
6.4.5 时钟沿位移 51
6.4.6 多个同源时钟 52
6.4.7 使能组合电路路径 53
6.5 生成时钟相关的注意事项 54
6.6 小结 54
第7章 时钟组 55
7.1 建立和保持时序检查 55
7.1.1 高速至低速时钟 56
7.1.2 低速至高速时钟 57
7.1.3 多个时钟于不同周期内同步 57
7.1.4 异步时钟 58
7.2 逻辑和物理独立时钟 58
7.3 串扰 59
7.4 set_clock_group 60
7.5 时钟组相关的注意事项 62
7.6 小结 62
第8章 其他时钟特性 63
8.1 过渡时间 63
8.2 set_clock_transition 64
8.3 偏斜和抖动 65
8.4 set_clock_uncertainty 65
8.4.1 内部时钟不确定度 66
8.4.2 交互时钟不确定度 66
8.5 时钟延迟 67
8.6 set_clock_latency 68
8.7 时钟路径的单边性 70
8.8 set_clock_sense 71
8.9 理想网络 72
8.10 小结 73
第9章 端口延迟 74
9.1 输入有效 74
9.1.1 最小和最大有效时间 75
9.1.2 多时钟 75
9.1.3 理解输入信号的到达时间 76
9.2 输出要求 77
9.2.1 最小和最大要求时间 78
9.2.2 多个参考事件 78
9.2.3 理解输出要求时间 79
9.3 set_input_delay 79
9.3.1 时钟规格 79
9.3.2 -level_sensitive 80
9.3.3 rise/fall 限定符 80
9.3.4 min/max限定符 81
9.3.5 -add_delay 81
9.3.6 时钟延迟 82
9.3.7 完成输入延迟约束 83
9.4 set_output_delay 83
9.4.1 时钟规格 83
9.4.2 -level_sensitive 83
9.4.3 rise/fall限定符 84
9.4.4 min/max限定符 84
9.4.5 -add_delay 84
9.4.6 时钟延迟 84
9.4.7 完成输出延迟约束 84
9.5 输入延迟和输出延迟之间的关系 84
9.6 时序分析实例 85
9.6.1 输入延迟:最大输入延迟 86
9.6.2 输入延迟:最小输入延迟 87
9.6.3 输出延迟:最大输出延迟 87
9.6.4 输出延迟:最小输出延迟 88
9.7 负延迟 89
9.8 小结 90
第10章 完整的端口约束 91
10.1 驱动能力 91
10.2 驱动单元 93
10.3 输入过渡 97
10.4 扇出数 98
10.5 扇出负载 98
10.6 负载 99
10.6.1 净电容 99
10.6.2 调整引脚负载 99
10.6.3 负载类型 100
10.6.4 负载和扇出负载 100
10.6.5 输入负载 101
10.7 小结 101
第11章 虚假路径 102
11.1 简介 102
11.2 set_false_path 102
11.3 路径规格 103
11.4 过渡过程规格 105
11.5 建立/保持规格
......