第1章 SoC设计绪论 1
1.1 微电子技术概述 1
1.1.1 集成电路的发展 1
1.1.2 集成电路产业分工 2
1.2 SoC概述 3
1.2.1 什么是SoC 3
1.2.2 SoC的构成 3
1.2.3 SoC的优势 4
1.3 SoC设计的发展趋势及面临的挑战 5
1.3.1 SoC设计技术的发展与挑战 5
1.3.2 SoC设计方法的发展与挑战 10
1.3.3 未来的SoC 12
本章参考文献 13
第2章 SoC设计流程 14
2.1 软、硬件协同设计 14
2.1.1 软、硬件协同设计方法 14
2.2 基于标准单元的SoC芯片设计流程 16
2.2.1 设计流程 16
本章参考文献 20
第3章 SoC设计与EDA工具 21
3.1 电子系统级设计与工具 21
3.2 验证的分类及相关工具 21
3.2.1 验证方法的分类 22
3.2.2 动态验证及相关工具 22
3.2.3 静态验证及相关工具 24
3.3 逻辑综合及综合工具 25
3.3.1 EDA工具的综合流程 25
3.3.2 EDA工具的综合策略 25
3.3.3 优化策略 26
3.3.4 常用的逻辑综合工具 26
3.4 可测性设计与工具 27
3.4.1 测试和验证的区别 27
3.4.2 常用的可测性设计 27
3.5 布局布线与工具 30
3.5.1 EDA工具的布局布线流程 30
3.5.2 布局布线工具的发展趋势 30
3.6 物理验证/参数提取与相关的工具 31
3.6.1 物理验证的分类 31
3.6.2 参数提取 31
3.7 著名EDA公司与工具介绍 33
3.8 EDA工具的发展趋势 35
本章参考文献 36
第4章 SoC架构设计及电子系统级设计 37
4.1 SoC中常用的处理器和DSP 37
4.2 SoC中常用的总线 41
4.3 SoC中典型的存储器 45
4.4 多核SoC的架构设计 46
4.4.1 可用的并发性 46
4.4.2 多处理器SoC设计中的架构选择 47
4.4.3 一种典型的多核SoC——TI的开放式多媒体应用平台架构 48
4.5 SoC中的软件结构 49
4.6 电子系统级(ESL)设计 50
4.6.1 ESL发展的背景 50
4.6.2 ESL设计基本概念 51
4.6.3 ESL设计阶段及目标 51
4.6.4 ESL设计的流程 53
4.6.5 ESL设计的特点 54
4.6.6 ESL设计的核心——事务级建模 57
4.6.7 事务级建模语言简介及设计实例 64
4.6.8 ESL设计的挑战 75
本章参考文献 76
第5章 IP复用的设计方法 77
5.1 IP的基本概念和IP分类 77
5.1.1 IP的定义 77
5.1.2 IP的分类 77
5.1.3 基于IP的可重用平台 79
5.2 IP设计流程 80
5.2.1 设计目标 81
5.2.2 设计流程 81
5.3 IP的验证 86
5.4 IP核的选择 88
5.5 IP市场 89
5.6 IP复用技术面临的挑战 91
5.7 IP标准组织 93
本章参考文献 94
第6章 RTL代码编写指南 95
6.1 编写RTL代码之前的准备 95
6.1.1 与团队共同讨论设计中的问题 95
6.1.2 根据芯片结构准备设计说明书 96
6.1.3 总线设计的考虑 96
6.1.4 模块的划分 97
6.1.5 对时钟的处理 100
6.1.6 IP的选择及设计复用的考虑 100
6.1.7 对可测性的考虑 101
6.1.8 对芯片速度的考虑 101
6.1.9 对布线的考虑 102
6.2 可综合RTL代码编写指南 102
6.2.1 可综合RTL代码的编写准则 102
6.2.2 利用综合进行代码质量检查 106
6.3 调用Synopsys DesignWare来优化设计 106
本章参考文献 107
第7章 同步电路设计及其与异步信号交互的问题 108
7.1 同步电路设计 108
7.1.1 同步电路的定义 108
7.1.2 同步电路的时序收敛问题 108
7.1.3 同步电路设计的优点与缺陷 109
7.2 全异步电路设计 110
7.2.1 异步电路设计的基本原理 111
7.2.2 异步电路设计的优点与缺点 112
7.3 异步信号与同步电路交互的问题及其解决方法 113
7.3.1 亚稳态 113
7.3.2 异步控制信号的同步及其RTL实现 116
7.3.3 异步时钟域的数据同步及其RTL实现 122
7.4 SoC设计中的时钟规划策略 126
本章参考文献 127
第8章 综合策略与静态时序分析方法 128
8.1 逻辑综合 128
8.1.1 什么是逻辑综合 128
8.1.2 流程介绍 128
8.1.3 SoC设计中常用的综合策略 131
8.2 物理综合的概念 132
8.2.1 物理综合的产生背景 132
8.2.2 操作模式 133
8.3 实例——用Synopsys的工具Design Compiler(DC)进行逻辑综合 133
8.3.1 指定库文件 134
8.3.2 读入设计 135
8.3.3 定义工作环境 135
8.3.4 设置约束条件 136
8.3.5 设定综合优化策略 139
8.3.6 设计脚本举例 139
8.4 静态时序分析 141
8.4.1 基本概念 141
8.4.2 实例——用Synopsys的工具PrimeTime进行时序分析 144
8.5 统计时序分析 151
8.5.1 传统的时序分析的局限 152
8.5.2 统计时序分析的概念 152
8.5.3 统计时序分析的步骤 153
本章参考文献 153
第9章 SoC功能验证 154
9.1 SoC功能验证基础知识 154
9.1.1 SoC功能验证的概念 154
9.1.2 SoC功能验证的问题 154
9.1.3 SoC功能验证的发展趋势 155
9.2 系统级验证 155
9.2.1 系统级的功能验证 155
9.2.2 软、硬件协同验证 157
9.2.3 仿真与验证过程的自动化 159
9.3 形式验证 160
9.3.1 形式验证的理论基础 161
9.3.2 相等性检查在SoC中的应用 162
9.4 基于断言的验证 163
9.4.1 断言语言 164
9.4.2 基于断言的验证 166
9.4.3 混合验证 167
9.4.4 断言的其他用途 167
本章参考文献 169
第10章 可测性设计 170
10.1 集成电路测试概述 170
10.1.1 测试的概念和原理 170
10.1.2 测试及测试矢量的分类 170
10.1.3 自动测试设备 171
10.2 故障建模及ATPG原理 172
10.2.1 故障建模的基本概念 172
10.2.2 常见故障模型 173
10.2.3 ATPG基本原理 175
10.2.4 ATPG的工作原理 176
10.2.5 ATPG工具的使用步骤 176
10.3 可测性设计基础 177
10.3.1 可测性的概念 177
10.3.2 可测性设计的优势和不足 179
10.4 扫描测试(SCAN) 179
10.4.1 基于故障模型的可测性 179
10.4.2 扫描测试的基本概念 180
10.4.3 扫描测试原理 181
10.4.4 扫描设计规则 183
10.4.5 扫描测试的可测性设计流程及相关EDA工具 185
10.5 存储器的内建自测 186
10.5.1 存储器测试的必要性 186
10.5.2 存储器测试方法 186
10.5.3 BIST的基本概念 188
10.5.4 存储器的测试算法 188
10.5.5 BIST模块在设计中的集成 191
10.6 边界扫描测试 193
10.6.1 边界扫描测试原理 193
10.6.2 IEEE1149.1标准 193
10.6.3 边界扫描测试策略和相关工具 198
10.7 其他DFT技术 199
10.7.1 微处理器核的可测性设计 199
10.7.2 Logic BIST 201
10.8 DFT技术在SoC中的应用 202
10.8.1 模块级的DFT技术 202
10.8.2 SoC中的DFT应用 203
本章参考文献 204
第11章 低功耗设计 205
11.1 为什么需要低功耗设计 205
11.2 功耗的类型 207
11.3 低功耗设计方法 211
11.4 低功耗技术 212
11.4.1 工艺优化 212
11.4.2 电压优化 213
11.4.3 门控时钟技术 214
11.4.4 门级优化技术 218
11.4.5 低功耗SoC系统的动态管理 220
11.4.6 低功耗SoC设计技术的综合考虑 222
11.5 低功耗分析和工具 222
11.6 低功耗设计趋势 224
本章参考文献 225
第12章 后端设计 226
12.1 时钟树综合 226
12.2 布局规划 228
12.3 布线 231
12.4 ECO技术 232
12.5 功耗分析 234
12.6 信号完整性的考虑 236
12.6.1 信号完整性的挑战 236
12.6.2 压降和电迁移 238
12.6.3 信号完整性问题的预防、分析和修正 239
12.7 物理验证 239
12.8 可制造性设计/面向良品率的设计 241
12.8.1 DFM/DFY的基本概念 241
12.8.2 DFM/DFY方法 241
12.8.3 典型的DFM/DFY问题及解决方法 242
12.8.4 DFM/DFY技术的发展趋势 245
12.9 后端设计技术的发展趋势 245
本章参考文献 246
第13章 SoC中数模混合信号IP的设计与集成 248
13.1 SoC中的数模混合信号IP 248
13.2 数模混合信号IP的设计流程 249
13.3 基于SoC复用的数模混合信号(AMS)IP包 250
13.4 数模混合信号(AMS)IP的设计及集成要点 251
13.4.1 接口信号 251
13.4.2 模拟与数字部分的整体布局 251
13.4.3 电平转换器的设计 252
13.4.4 电源的布局与规划 253
13.4.5 电源/地线上跳动噪声的消除 253
13.4.6 其他方面的考虑 254
13.5 数模混合IP在SoC设计中存在的问题和挑战 255
本章参考文献 255
第14章 I/O环的设计和芯片封装 257
14.1 I/O单元介绍 257
14.2 高速I/O的噪声影响 258
14.3 静电保护 259
14.3.1 ESD的模型及相应的测试方法 259
14.3.2 ESD保护电路的设计 263
14.4 I/O环的设计 265
14.4.1 考虑对芯片的尺寸的影响 266
14.4.2 考虑对芯片封装的影响 267
14.4.3 考虑对噪声的影响 267
14.4.4 考虑对芯片ESD的影响 268
14.5 SoC芯片封装 268
14.5.1 微电子封装的功能 268
14.5.2 微电子封装的发展趋势 268
14.5.3 当前的封装技术 269
14.5.4 封装技术发展的驱动力 271
本章参考文献 272
附录A 实验——基于ARM7TDMI处理器的SoC设计 273
附录B 项目进度管理 278
附录C 嵌入式系统设计 286