微电子与集成电路设计系列规划教材 SoC设计方法与实现 第3版
作者:郭炜,魏继增,郭筝等编著
出版时间:2017年版
丛编项: 微电子与集成电路设计系列规划教材
内容简介
本书是普通高等教育十一五”国家级规划教材、普通高等教育精品教材。本书结合SoC设计的整体流程,对SoC设计方法学及如何实现进行了全面介绍。全书共15章,主要内容包括:SoC设计绪论、SoC设计流程、SoC设计与EDA工具、SoC系统结构设计、IP复用的设计方法、RTL代码编写指南、同步电路设计及其与异步信号交互的问题、综合策略与静态时序分析方法、SoC功能验证、可测性设计、低功耗设计、后端设计、SoC中数模混合信号IP的设计与集成、I/O环的设计和芯片封装、课程设计与实验。书中不仅融入了很多来自于工业界的实践经验,还介绍了SoC设计领域的*新成果,可以帮助读者掌握工业化的解决方案,使读者能够及时了解SoC设计方法的*新进展。本书提供中英文电子课件。
目录
目 录
第1章 SoC设计绪论\t1
1.1 微电子技术概述\t1
1.1.1 集成电路的发展\t1
1.1.2 集成电路产业分工\t2
1.2 SoC概述\t3
1.2.1 什么是SoC\t3
1.2.2 SoC的优势\t4
1.3 SoC设计的发展趋势及面临的
挑战\t5
1.3.1 SoC设计技术的发展与挑战\t5
1.3.2 SoC设计方法的发展与挑战\t10
1.3.3 未来的SoC\t12
本章参考文献\t12
第2章 SoC设计流程\t13
2.1 软硬件协同设计\t13
2.1.1 软硬件协同设计方法\t13
2.2 基于太阳城
单元的SoC设计流程\t15
2.3 基于FPGA的SoC设计流程\t19
2.3.1 FPGA的结构\t20
2.3.2 基于FPGA的设计流程\t23
本章参考文献\t27
第3章 SoC设计与EDA工具\t28
3.1 电子系统级设计与工具\t28
3.2 验证的分类及相关工具\t28
3.2.1 验证方法的分类\t29
3.2.2 动态验证及相关工具\t29
3.2.3 静态验证及相关工具\t30
3.3 逻辑综合及综合工具\t31
3.3.1 EDA工具的综合流程\t32
3.3.2 EDA工具的综合策略\t32
3.3.3 优化策略\t32
3.3.4 常用的逻辑综合工具\t33
3.4 可测性设计与工具\t33
3.4.1 测试和验证的区别\t33
3.4.2 常用的可测性设计\t33
3.5 布局布线与工具\t36
3.5.1 EDA工具的布局布线流程\t36
3.5.2 布局布线工具的发展趋势\t36
3.6 物理验证及参数提取与相关的
工具\t36
3.6.1 物理验证的分类\t37
3.6.2 参数提取\t37
3.7 著名EDA公司与工具介绍\t39
3.8 EDA工具的发展趋势\t40
本章参考文献\t41
第4章 SoC系统结构设计\t42
4.1 SoC系统结构设计的总体目标
与各个阶段\t42
4.1.1 功能设计阶段\t43
4.1.2 应用驱动的系统结构设计
阶段\t43
4.1.3 平台导向的系统结构设计
阶段\t43
4.2 SoC中常用的处理器\t43
4.2.1 通用处理器\t44
4.2.2 处理器的选择\t45
4.3 SoC中常用的总线\t45
4.3.1 AMBA总线\t46
4.3.2 CoreConnect总线\t47
4.3.3 Wishbone总线\t48
4.3.4 开放核协议\t48
4.3.5 复杂的片上总线结构\t49
4.4 SoC中典型的存储器\t50
4.4.1 存储器分类\t50
4.4.2 静态随机存储器SRAM\t51
4.4.3 动态随机存储器DRAM\t52
4.4.4 闪存Flash\t54
4.4.5 新型存储器\t54
4.5 多核SoC的系统结构设计\t57
4.5.1 可用的并发性\t57
4.5.2 多核SoC设计中的系统
结构选择\t57
4.5.3 多核SoC的性能评价\t59
4.5.4 几种典型的多核SoC系统
结构\t60
4.6 SoC中的软件结构\t62
4.7 电子系统级(ESL)设计\t64
4.7.1 ESL发展的背景\t64
4.7.2 ESL设计基本概念\t65
4.7.3 ESL设计的流程\t66
4.7.4 ESL设计的特点\t67
4.7.5 ESL设计的核心――事务级
建模\t69
4.7.6 事务级建模语言简介及设计
实例\t78
4.7.7 ESL设计的挑战\t91
本章参考文献\t91
第5章 IP复用的设计方法\t92
5.1 IP的基本概念和IP分类\t92
5.2 IP设计流程\t94
5.2.1 设计目标\t94
5.2.2 设计流程\t94
5.3 IP的验证\t99
5.4 IP核的选择\t100
5.5 IP市场\t101
5.6 IP复用技术面临的挑战\t103
5.7 IP太阳城
组织\t104
5.8 基于平台的SoC设计方法\t105
5.8.1 平台的组成与分类\t106
5.8.2 基于平台的SoC设计方法
流程与特点\t106
5.8.3 基于平台的设计实例\t107
本章参考文献\t108
第6章 RTL代码编写指南\t109
6.1 编写RTL代码之前的准备\t109
6.1.1 与团队共同讨论设计中
的问题\t109
6.1.2 根据芯片架构准备设计
说明书\t109
6.1.3 总线设计的考虑\t110
6.1.4 模块的划分\t110
6.1.5 对时钟的处理\t113
6.1.6 IP的选择及设计复用的
考虑\t113
6.1.7 对可测性的考虑\t114
6.1.8 对芯片速度的考虑\t115
6.1.9 对布线的考虑\t115
6.2 可综合RTL代码编写指南\t115
6.2.1 可综合RTL代码的编写
准则\t115
6.2.2 利用综合进行代码质量
检查\t118
6.3 调用Synopsys DesignWare来
优化设计\t119
本章参考文献\t120
第7章 同步电路设计及其与异步信号
交互的问题\t121
7.1 同步电路设计\t121
7.1.1 同步电路的定义\t121
7.1.2 同步电路的时序收敛问题\t121
7.1.3 同步电路设计的优点与
缺陷\t122
7.2 全异步电路设计\t123
7.2.1 异步电路设计的基本原理\t123
7.2.2 异步电路设计的优点与缺点\t125
7.3 异步信号与同步电路交互的
问题及其解决方法\t125
7.3.1 亚稳态\t126
7.3.2 异步控制信号的同步及其
RTL实现\t129
7.3.3 异步时钟域的数据同步
及其RTL实现\t133
7.4 SoC设计中的时钟规划策略\t137
本章参考文献\t138
第8章 综合策略与静态时序分析
方法\t139
8.1 逻辑综合\t139
8.1.1 流程介绍\t139
8.1.2 SoC设计中常用的综合
策略\t141
8.2 物理综合的概念\t142
8.2.1 物理综合的产生背景\t142
8.2.2 操作模式\t143
8.3 实例――用Synopsys的工具
Design Compiler (DC)进行逻
辑综合\t144
8.3.1 指定库文件\t144
8.3.2 读入设计\t145
8.3.3 定义工作环境\t145
8.3.4 设置约束条件\t146
8.3.5 设定综合优化策略\t148
8.3.6 设计脚本举例\t148
8.4 静态时序分析\t150
8.4.1 基本概念\t150
8.4.2 实例――用Synopsys的工具
PrimeTime进行时序分析\t153
8.5 统计静态时序分析\t159
8.5.1 传统的时序分析的局限\t160
8.5.2 统计静态时序分析的概念\t160
8.5.3 统计静态时序分析的步骤\t161
本章参考文献\t161
第9章 SoC功能验证\t162
9.1 功能验证概述\t162
9.1.1 功能验证的概念\t162
9.1.2 SoC功能验证的问题\t163
9.1.3 SoC功能验证的发展趋势\t163
9.2 功能验证方法与验证规划\t163
9.3 系统级功能验证\t165
9.3.1 系统级的功能验证\t165
9.3.2 软硬件协同验证\t167
9.4 仿真验证自动化\t168
9.4.1 激励的生成\t169
9.4.2 响应的检查\t170
9.4.3 覆盖率的检测\t170
9.5 基于断言的验证\t171
9.5.1 断言语言\t173
9.5.2 基于断言的验证\t174
9.5.3 断言的其他用途\t175
9.6 UVM验证方法学\t176
本章参考文献\t179
第10章 可测性设计\t180
10.1 集成电路测试概述\t180
10.1.1 测试的概念和原理\t180
10.1.2 测试及测试矢量的分类\t180
10.1.3 自动测试设备\t181
10.2 故障建模及ATPG原理\t182
10.2.1 故障建模的基本概念\t182
10.2.2 常见故障模型\t182
10.2.3 ATPG基本原理\t185
10.2.4 ATPG的工作原理\t185
10.2.5 ATPG工具的使用步骤\t186
10.3 可测性设计基础\t186
10.3.1 可测性的概念\t186
10.3.2 可测性设计的优势和
不足\t188
10.4 扫描测试(SCAN)\t188
10.4.1 基于故障模型的可测性\t188
10.4.2 扫描测试的基本概念\t189
10.4.3 扫描测试原理\t190
10.4.4 扫描设计规则\t192
10.4.5 扫描测试的可测性设计
流程及相关EDA工具\t193
10.5 存储器的内建自测\t194
10.5.1 存储器测试的必要性\t194
10.5.2 存储器测试方法\t195
10.5.3 BIST的基本概念\t196
10.5.4 存储器的测试算法\t197
10.5.5 BIST模块在设计中的
集成\t199
10.6 边界扫描测试\t201
10.6.1 边界扫描测试原理\t201
10.6.2 IEEE 1149.1太阳城
\t201
10.6.3 边界扫描测试策略和
相关工具\t205
10.7 其他DFT技术\t205
10.7.1 微处理器核的可测性
设计\t205
10.7.2 Logic BIST\t207
10.8 DFT技术在SoC中的应用\t208
10.8.1 模块级的DFT技术\t208
10.8.2 SoC中的DFT应用\t209
本章参考文献\t210
第11章 低功耗设计\t211
11.1 为什么需要低功耗设计\t211
11.2 功耗的类型\t212
11.3 低功耗设计方法\t216
11.4 低功耗技术\t217
11.4.1 静态低功耗技术\t217
11.4.2 动态低功耗技术\t219
11.4.3 门级优化技术\t222
11.4.4 低功耗SoC系统的
动态管理\t225
11.4.5 低功耗SoC设计技术的
综合考虑\t226
11.5 低功耗分析和工具\t226
11.6 UPF及低功耗设计实现\t227
11.6.1 基于UPF的设计流程\t228
11.6.2 UPF功耗描述文件举例\t228
11.7 低功耗设计趋势\t229
本章参考文献\t230
第12章 后端设计\t231
12.1 时钟树综合\t231
12.2 布局规划\t235
12.3 布线\t237
12.4 ECO技术\t239
12.5 功耗分析\t240
12.6 信号完整性的考虑\t241
12.6.1 信号完整性的挑战\t241
12.6.2 压降和电迁移\t243
12.6.3 信号完整性问题的预防、
分析和修正\t244
12.7 物理验证\t245
12.8 可制造性设计/面向良品率
的设计\t246
12.8.1 DFM/DFY的基本概念\t246
12.8.2 DFM/DFY方法\t247
12.8.3 典型的DFM/DFY问题
及解决方法\t247
12.8.4 DFM/DFY技术的发展
趋势\t250
12.9 后端设计技术的发展趋势\t250
本章参考文献\t251
第13章 SoC中数模混合信号IP的
设计与集成\t252
13.1 SoC中的数模混合信号IP\t252
13.2 数模混合信号 IP的设计
流程\t252
13.3 基于SoC复用的数模混合
信号(AMS)IP包\t254
13.4 数模混合信号(AMS)IP
的设计及集成要点\t254
13.4.1 接口信号\t254
13.4.2 模拟与数字部分的整体
布局\t255
13.4.3 电平转换器的设计\t255
13.4.4 电源的布局与规划\t256
13.4.5 电源/地线上跳动噪声
的消除\t257
13.4.6 其他方面的考虑\t257
13.5 数模混合IP在SoC设计中
存在的问题和挑战\t258
13.6 SoC混合集成的新趋势\t258
本章参考文献\t261
第14章 I/O环的设计和芯片封装\t262
14.1 I/O单元介绍\t262
14.2 高速I/O的噪声影响\t262
14.3 静电保护\t263
14.3.1 ESD的模型及相应的
测试方法\t264
14.3.2 ESD保护电路的设计\t266
14.4 I/O环的设计\t269
14.4.1 考虑对芯片的尺寸的
影响\t269
14.4.2 考虑对芯片封装的影响\t270
14.4.3 考虑对噪声的影响\t271
14.4.4 考虑对芯片ESD的影响\t271
14.5 SoC芯片封装\t271
14.5.1 微电子封装的功能\t271
14.5.2 微电子封装的发展趋势\t272
14.5.3 当前的封装技术\t272
14.5.4 封装技术发展的驱动力\t274
本章参考文献\t275
第15章 课程设计\t276
15.1 基于ESL设计方法的Motion-
JPEG视频解码器设计\t276
15.1.1 实验内容\t276
15.1.2 实验准备工作\t277
15.1.3 SoCLib ESL仿真平台及
MJPEG解码流程的介绍\t279
15.1.4 实验1 构建基于SoCLib
的单核SoC\t280
15.1.5 实验2 构建基于SoCLib
的MPSoC\t287
15.1.6 实验3 系统软件开发――
嵌入式操作系统及设备驱
动设计\t293
15.1.7 实验4 面向MJPEG解码
的MPSoC系统优化\t294
15.2 实验――基于ARM7TDMI
处理器的SoC设计\t296
15.2.1 任务目标\t296
15.2.2 设计参考\t296
15.2.3 建议使用的EDA工具\t297
15.2.4 基本SoC设计方案\t297
15.2.5 实验要求\t299
15.3 项目进度管理\t299
15.3.1 项目任务与进度阶段\t299
15.3.2 进度的管理\t300
本章参考文献\t306
附录A Pthread多线程编程接口\t307
附录B SoCLib系统支持包\t310