本书系统介绍集成电路设计的基本方法,在体系结构上分为四部分。第一部分为集成电路设计概述和集成电路设计方法,主要讲述集成电路的发展历史、发展方向,集成电路EDA的基本概念,集成电路正向和反向、自底向上和自顶向下的设计方法,以及全定制、半定制集成电路的设计方法。第二部分为集成电路模拟与SPICE及半导体器件模型,详细介绍SPICE语句,以及二极管、双极晶体管、MOS场效应管的SPICE模型。第三部分为Verilog硬件描述语言、逻辑综合及版图设计,结合实例讲述利用Verilog硬件描述语言对电路进行建模及仿真测试的方法,利用Design Compiler进行逻辑综合的过程和方法,以及全定制版图和基于标准单元的版图设计方法。第四部分为可测性设计和低功耗设计,讲述了典型的可测性设计方法,以及各个设计层次上的低功耗设计技术。
本书注重实践,用具体的实例介绍集成电路设计的基本方法,各章均附有适量的习题,以帮助读者学习和理解各章的内容。
样章试读
目录
- 目录
第1章 绪论 1
1.1 集成电路发展简史 1
1.2 集成电路产业的分工细化 3
1.3 集成电路走向系统芯片 3
1.3.1 SoC片上总线 3
1.3.2 IP核 4
1.3.3 嵌入式微处理器 4
1.4 电子设计自动化技术 5
1.4.1 EDA发展简史 5
1.4.2 主流EDA厂商及其EDA工具简介 6
习题 8
第2章 集成电路设计方法 9
2.1 集成电路的层次化设计 9
2.1.1 层次化设计方法 9
2.1.2 规则化、模块化和局域化 11
2.2 集成电路设计流程 11
2.2.1 正向设计和反向设计 11
2.2.2 自底向上设计和自顶向下设计 12
2.3 集成电路设计方法概述 14
2.3.1 全定制集成电路设计方法 14
2.3.2 半定制集成电路设计方法 15
习题 30
第3章 集成电路模拟与SPICE 31
3.1 SPICE简介 31
3.1.1 通用电路模拟程序的基本组成 32
3.1.2 电路模拟的流程 33
3.1.3 SPICE软件的功能 33
3.2 SPICE程序结构 36
3.2.1 SPICE简单程序举例 36
3.2.2 节点描述 37
3.2.3 标题语句、注释语句和结束语句 38
3.2.4 基本元件描述语句 38
3.2.5 电源描述语句 39
3.2.6 半导体器件描述语句 42
3.2.7 模型描述语句 44
3.2.8 子电路描述语句 44
3.2.9 库文件调用语句 44
3.2.10 文件包含语句 44
3.3 SPICE分析与控制语句 45
3.3.1 分析语句 45
3.3.2 控制语句 48
3.4 SPICE分析及仿真举例 49
习题 52
第4章 半导体器件模型 53
4.1 二极管模型 53
4.1.1 二极管直流模型 53
4.1.2 二极管瞬态模型 54
4.1.3 二极管噪声模型 54
4.1.4 二极管语句及模型参数 54
4.2 双极晶体管模型 55
4.2.1 双极晶体管EM1模型 56
4.2.2 双极晶体管EM2模型 56
4.2.3 双极晶体管EM3模型 58
4.2.4 双极晶体管GP模型 60
4.2.5 双极晶体管语句及模型参数 60
4.3 MOSFET模型 61
4.3.1 MOSFET模型等效电路 62
4.3.2 MOSFET语句与模型参数 67
习题 68
第5章 Verilog硬件描述语言 69
5.1 HDL设计方法 69
5.2 Verilog模块及层次化设计 70
5.2.1 4比特行波进位加法器层次化设计 70
5.2.2 Verilog模块 71
5.3 Verilog测试模块及仿真验证 74
5.3.1 1比特全加器测试模块 75
5.3.2 1比特全加器仿真验证 77
5.3.3 4比特行波进位加法器测试模块及仿真 78
5.4 Verilog HDL句法约定 79
5.5 数据类型 84
5.5.1 值集合和线网数据类型 84
5.5.2 变量数据类型 85
5.5.3 有符号的线网和变量 85
5.5.4 存储器 86
5.5.5 线网和变量的多维数组 87
5.5.6 参数 87
5.6 表达式 91
5.6.1 操作符 91
5.6.2 操作数 97
5.7 编译指令、系统任务和函数 99
5.7.1 编译指令 99
5.7.2 系统任务和函数 100
5.8 Verilog HDL建模方式 112
5.9 门级建模 113
5.9.1 多输入逻辑门 113
5.9.2 多输出逻辑门 114
5.9.3 三态逻辑门 114
5.9.4 门实例数组 115
5.9.5 门延时 115
5.9.6 门级建模示例 116
5.10 数据流建模 116
5.10.1 连续赋值语句 117
5.10.2 赋值延时 117
5.10.3 数据流建模示例 118
5.11 行为级建模 121
5.11.1 initial语句 121
5.11.2 过程时序控制 123
5.11.3 事件控制中的敏感列表 124
5.11.4 wait语句 124
5.11.5 always语句 125
5.11.6 块语句 127
5.11.7 过程赋值语句 129
5.11.8 条件语句if-else 132
5.11.9 多分支语句case 139
5.11.10 循环语句 146
5.12 层次化建模 148
5.12.1 模块实例化 149
5.12.2 模块端口的连接规则 150
5.12.3 模块实例数组 150
5.12.4 生成构造 151
5.13 混合建模 154
5.14 任务和函数 154
5.14.1 任务 154
5.14.2 函数 156
5.15 组合逻辑电路建模 158
5.15.1 组合逻辑电路设计示例 158
5.15.2 三态缓冲器及双向总线 159
5.16 RAM建模 160
5.16.1 FPGA中的块RAM 160
5.16.2 单时钟简单双端口同步RAM 160
5.17 ROM建模 162
5.17.1 异步ROM 162
5.17.2 同步ROM 163
5.18 常规时序逻辑电路建模 165
5.18.1 同步时序逻辑电路的结构 165
5.18.2 触发器和寄存器的HDL描述 166
5.18.3 常规时序逻辑电路设计示例 169
5.19 有限状态机建模 175
5.19.1 有限状态机的结构 175
5.19.2 状态转换图 175
5.19.3 有限状态机设计实例 176
5.20 带数据通路的有限状态机 183
5.20.1 FSMD概述 183
5.20.2 FSMD设计实例 185
习题 191
第6章 逻辑综合 193
6.1 逻辑综合的基本步骤和流程 193
6.2 综合工具Design Compiler 194
6.3 指定库文件 195
6.4 读入设计 196
6.5 DC中的设计对象 196
6.6 定义工作环境 197
6.6.1 定义工作条件 197
6.6.2 定义线负载模型 198
6.6.3 定义系统接口 199
6.7 定义设计约束 200
6.7.1 定义设计规则约束 200
6.7.2 定义设计优化约束 201
6.8 选择编译策略 203
6.9 优化设计 207
6.10 综合举例 207
6.11 静态时序分析 213
6.12 系统分割 213
习题 215
第7章 版图设计 216
7.1 版图设计规则 216
7.2 版图设计方法 221
7.3 版图检查与验证 221
7.4 全定制版图设计 222
7.4.1 反相器原理图设计 222
7.4.2 反相器版图设计 226
7.4.3 设计规则检查 232
7.4.4 LVS 233
7.5 基于标准单元的版图设计 236
7.5.1 准备门级网表和时序约束文件 236
7.5.2 添加焊盘单元 239
7.5.3 定义I/O约束文件 240
7.5.4 数据准备 242
7.5.5 布局规划 246
7.5.6 标准单元自动布局 252
7.5.7 时钟树综合 254
7.5.8 自动布线 256
7.5.9 设计输出 258
习题 263
第8章 可测性设计 264
8.1 集成电路测试概述 264
8.1.1 集成电路测试的概念和基本原理 264
8.1.2 测试及测试向量的分类 265
8.1.3 自动测试设备 266
8.2 故障建模及ATPG工作原理 266
8.2.1 故障建模的基本概念 266
8.2.2 常见的故障模型 266
8.2.3 ATGP工作原理 267
8.3 集成电路可测性设计 267
8.3.1 可测性设计概述 267
8.3.2 专用可测性设计技术 268
8.3.3 扫描路径测试技术 269
8.3.4 边界扫描测试技术 271
8.3.5 内建自测试技术 272
8.4 SoC可测性设计 273
习题 274
第9章 低功耗设计 275
9.1 低功耗设计的意义 275
9.2 功耗的类型 275
9.3 在各设计层次降低功耗 276
9.4 系统级低功耗技术 277
9.4.1 软硬件划分 277
9.4.2 低功耗软件 279
9.4.3 低功耗IP的选择 279
9.4.4 系统级时钟分配 280
9.5 体系结构级低功耗技术 280
9.5.1 多电压设计技术 280
9.5.2 电源门控技术 283
9.5.3 动态电压频率调节技术 285
9.5.4 低功耗计算结构和基于缓存的体系结构 285
9.5.5 多阈值电压 285
9.5.6 并行结构与流水线技术 286
9.6 寄存器传输级低功耗技术 288
9.6.1 门控时钟 288
9.6.2 操作数隔离 289
9.6.3 资源共享与状态编码 290
9.7 物理级低功耗设计 291
9.8 低功耗设计趋势 291
习题 292
参考文献 293