图书简介:
目 录
第一部分 模拟集成电路设计工具及使用 1
第1章 电路仿真工具软件使用 3
1.1 Cadence电路仿真工具包 3
1.1.1 Cadence设计环境简介 3
1.1.2 电路图输入工具Virtuoso Schematic Composer 5
1.1.3 仿真环境工具Analog Design Environment 6
1.1.4 仿真结果的显示及处理 9
1.1.5 建立子模块 10
1.1.6 示例(D触发器) 11
1.2 Hspice的使用 13
1.2.1 Hspice简介 13
1.2.2 *.sp文件的生成 14
1.2.3 Hspice的运行与仿真 14
1.3 Ultrasim仿真技术 15
1.3.1 Ultrasim技术简介 15
1.3.2 Ultrasim仿真环境设置 16
1.4 芯片封装的建模与带封装信息的仿真 19
1.4.1 Modeling RF IC Packages简介 19
1.4.2 PKG的具体使用 19
第2章 设计实例——基准源、噪声、开关电容设计及验证 24
2.1 电压基准源设计 24
2.1.1 电压基准源简介 24
2.1.2 电压基准源分类 24
2.1.3 实现带隙基准源的原理 25
2.1.4 基准源启动电路 26
2.1.5 基准源噪声 27
2.1.6 基准源输出驱动 27
2.1.7 基准源计算机仿真 28
2.1.8 基准源的版图设计 31
2.2 CMOS集成电路噪声分析及仿真 31
2.2.1 噪声类型 32
2.2.2 噪声分析方法 33
2.2.3 连续时间系统的噪声仿真步骤 34
2.3 开关电容电路仿真 36
2.3.1 开关电容电路背景知识 36
2.3.2 开关电容电路的精度 37
2.3.3 使用双相无交叠时钟的开关电容电路的分析方法 38
2.3.4 开关电容电路的Cadence仿真方法 39
2.3.5 开关电容电路频率响应仿真 40
2.3.6 开关电容电路的噪声仿真 42
第3章 版图绘制及其工具软件 49
3.1 典型CMOS工艺流程简介 49
3.2 设计规则简介 52
3.3 Virtuoso软件简介及使用 53
3.3.1 Virtuoso软件启用 53
3.3.2 Virtuoso中快捷键的使用 56
3.3.3 反相器版图绘制举例 57
3.3.4 PDK简介 59
3.4 Laker软件简介及使用 62
3.4.1 Laker使用时需要的文件 62
3.4.2 Laker软件启用及主窗口 63
3.4.3 Laker基本的版图编辑功能介绍 63
3.4.4 Laker特有的高级版图编辑功能介绍 66
3.4.5 原理图驱动的版图编辑 67
3.4.6 设计实例 68
3.5 版图设计中的相关主题 73
3.5.1 天线效应 73
3.5.2 Dummy的设计 73
3.5.3 Guard Ring的设计 75
3.5.4 Match的设计 76
第4章 版图验证与后仿真 78
4.1 版图验证与后仿真简介 78
4.2 Diva验证工具 79
4.2.1 Diva DRC规则文件 79
4.2.2 Diva版图提取文件 81
4.2.3 LVS文件的介绍 83
4.2.4 寄生参数提取文件 83
4.2.5 Diva的使用 84
4.3 Calibre验证工具 88
4.3.1 Calibre规则文件 88
4.3.2 Calibre的用法 89
4.3.3 数模混合电路LVS的操作方法 94
第5章 设计所需规则文件的详细说明 96
5.1 完整的Diva DRC、Extract、LVS规则文件 96
5.1.1 Diva DRC规则文件 96
5.1.2 Diva Extract规则文件 97
5.1.3 Diva LVS规则文件 98
5.2 Diva 层次处理语句的图文解释 99
5.2.1 逻辑命令 99
5.2.2 关系命令 101
5.2.3 选择命令 104
5.2.4 尺寸命令 105
5.2.5 层生成命令 106
5.2.6 存储命令 107
5.3 Diva中DRC和寄生参数提取语句 107
5.3.1 Diva DRC语句 107
5.3.2 Diva寄生参数提取语句 110
第二部分 数字集成电路设计工具及使用 113
第6章 系统级建模与数模混合仿真 116
6.1 MATLAB简介 117
6.2 MATLAB的Toolboxes 117
6.2.1 数字信号处理 118
6.2.2 滤波器设计 118
6.2.3 Link For ModelSim 119
6.3 MATLAB的编程 122
6.4 Simulink仿真基础 123
6.4.1 Simulink简介 123
6.4.2 Simulink的模块 124
6.4.3 Simulink仿真参数的设定 124
6.4.4 Simulink系统仿真的简单实例 125
6.5 Verilog-A简介 130
6.6 Verilog-A的编程 130
6.6.1 基本语法 131
6.6.2 基本表达式 132
6.6.3 模拟运算符 132
6.6.4 Verilog-A仿真 133
6.7 Verilog-A建模实例 133
6.7.1 反相器 133
6.7.2 利用Cadence中的向导产生模拟模块 136
6.8 SpectreVerilog混合信号仿真 137
6.8.1 SpectreVerilog仿真简介 137
6.8.2 创建模拟模块 137
6.8.3 创建数字模块 138
6.8.4 设置仿真配置文件 138
6.8.5 设置和检查模块划分 139
6.8.6 设置数模接口 141
6.8.7 设置仿真菜单及仿真结果 141
第7章 数字电路设计与Verilog HDL 143
7.1 HDL设计方法学简介 143
7.1.1 数字电路设计方法 143
7.1.2 硬件描述语言 143
7.1.3 设计方法学 144
7.1.4 Verilog HDL简介 144
7.2 Verilog HDL建模概述 146
7.2.1 模块 146
7.2.2 时延 148
7.2.3 三种建模方式 148
7.3 Verilog HDL基本语法 151
7.3.1 标识符 151
7.3.2 注释 152
7.3.3 格式 152
7.3.4 数字值集合 152
7.3.5 数据类型 154
7.3.6 运算符及表达式 155
7.3.7 条件语句 159
7.3.8 case语句 160
7.4 结构建模 161
7.4.1 模块定义 161
7.4.2 模块端口 161
7.4.3 实例化语句 161
7.5 数据流建模 162
7.5.1 连续赋值语句 163
7.5.2 阻塞赋值语句 163
7.5.3 非阻塞赋值语句 164
7.5.4 数据流建模具体实例 165
7.6 行为建模 166
7.6.1 简介 166
7.6.2 顺序语句块 166
7.6.3 过程赋值语句 166
7.7 可综合设计 168
7.7.1 设计准则 168
7.7.2 进程划分准则 169
7.7.3 可综合子集 169
7.7.4 可综合设计中的组合电路设计 169
7.7.5 可综合设计中的时序电路设计 169
第8章 硬件描述语言的软件仿真与FPGA硬件验证 170
8.1 ModelSim的使用 170
8.1.1 ModelSim的启动 170
8.1.2 ModelSim仿真流程 171
8.1.3 编译工艺资源库 173
8.1.4 调试 173
8.1.5 ModelSim仿真小结 174
8.2 NC-Verilog的使用 174
8.2.1 ncvlog命令 174
8.2.2 ncelab命令 176
8.2.3 ncsim命令 177
8.2.4 NC-Verilog仿真小结 178
8.3 用Debussy调试仿真结果 178
8.4 HDL仿真总结 180
8.5 FPGA硬件验证 180
8.5.1 FPGA基本组成 180
8.5.2 FPGA设计流程 181
8.5.3 FPGA下载配置 184
第9章 逻辑综合与Design Compiler 191
9.1 逻辑综合综述 191
9.2 用Design Compiler综合电路 192
9.2.1 Design Analyzer的启动 193
9.2.2 设计读入 194
9.2.3 链接 196
9.2.4 实例唯一化 197
9.2.5 设计环境 197
9.2.6 设计约束 202
9.2.7 设计的逻辑综合 206
9.2.8 逻辑综合结果的分析 207
9.2.9 逻辑综合结果保存 209
9.2.10 时序约束文件的导出 210
9.3 Synplify的使用方法 210
9.3.1 Synplify概述 210
9.3.2 Synplify设计流程 210
9.3.3 Synplify文件类型总结 213
9.4 逻辑综合总结 213
第10章 自动布局布线及Astro 214
10.1 Astro简介 214
10.2 数据准备 214
10.2.1 库文件 214
10.2.2 工艺文件 217
10.2.3 设计文件 217
10.3 利用Astro进行布局布线的设计流程 218
10.3.1 工具启动 219
10.3.2 创建设计库 219
10.3.3 读入网表文件 220
10.3.4 打开设计库和设计单元 221
10.3.5 布图规划 222
10.3.6 布局 229
10.3.7 时钟树综合 235
10.3.8 布线前的电源/地线检查 240
10.3.9 布线 240
10.3.10 可制造性设计处理 246
10.3.11 版图验证 246
10.3.12 数据输出 247
第11章 布局布线工具IC Compiler 249
11.1 IC Compiler简介 249
11.2 ICC后端设计须知 250
11.2.1 后端设计中常用文件的格式说明 250
11.2.2 I/O库与标准单元库中的特殊单元 251
11.2.3 ICC中的静态时序分析 252
11.2.4 ICC中的MCMM 256
11.3 利用ICC进行布局布线的设计流程 258
11.3.1 设计准备 258
11.3.2 布图规划 265
11.3.3 布局 276
11.3.4 时钟树综合 279
11.3.5 布线 286
11.3.6 DFM(可制造性设计) 289
11.3.7 版图验证 295
11.3.8 数据输出 296
11.3.9 ECO 297
第12章 数字集成电路设计的验证方法 299
12.1 OVM验证方法学介绍 299
12.2 验证工具QuestaSim软件介绍 302
12.3 使用OVM搭建验证环境 307
12.4 随机验证 315
12.5 形式验证及Formality软件使用方法 318
12.5.1 设置Reference Design 320
12.5.2 设置Implementation Design 322
12.5.3 设置环境 323
12.5.4 Match 324
12.5.5 Verify 324
12.5.6 Debug 325
12.5.7 形式验证中所用的脚本及代码 325
12.6 静态时序验证及PrimeTime软件使用方法 328
12.6.1 静态时序验证 328
12.6.2 静态时序分析原理 329
12.6.3 基于PrimeTime的静态时序分析 330
第13章 可测性设计及可测性设计软件使用 336
13.1 可测性设计基础 336
13.1.1 测试 336
13.1.2 可测性设计 336
13.1.3 故障模型 336
13.1.4 自动测试矢量生成 338
13.1.5 可测性设计的常用方法 338
13.2 使用DFTC进行可测性设计 340
13.2.1 Synopsys的DFT流程 340
13.2.2 DFT扫描链插入 342
13.2.3 Synopsys Adaptive Scan压缩 344
13.3 使用TetraMAX进行ATPG生成 344
13.3.1 TetraMAX的图形界面 344
13.3.2 TetraMAX的基本流程 345
13.3.3 ATPG测试向量生成 346
13.4 DFT设计实例 348
13.4.1 设计代码编写 348
13.4.2 综合并插入扫描链的过程 349
13.4.3 ATPG自动测试矢量生成 351
第三部分 Linux操作系统及其他相关知识 356
第14章 Linux系统常用命令 357
14.1 服务器基本操作 357
14.2 Linux文件名称 358
14.3 Linux文件存取权限 358
14.4 Linux文件系统常用命令 359
14.5 程序进程 364
14.6 vi的使用 365
第15章 Memory Compiler软件Embed-It Integrator使用方法 367
第16章 数字IC功耗分析工具PTPX使用方法 373
16.1 PTPX中的功耗分析技术 373
16.2 PTPX功耗分析所需的文件 373
16.3 PTPX中的功耗分析模式及功耗分析流程 374
16.3.1 平均功耗分析模式 375
16.3.2 无矢量功耗分析模式 375
16.3.3 基于时间的功耗分析模式 376
16.3.4 PTPX功耗分析报告 377
第17章 流片前的Check List 379
17.1 检查事项 379
17.2 特殊的Cell和Ring的说明 381
第18章 集成电路设计领域常用英文缩略语 386
参考文献 390
展开
前 言
集成电路是电子工业的基础,以集成电路为基础的电子信息产业的发展,对国民经济发展、产业技术创新能力提高及现代国防建设都具有极其重要的作用,而集成电路设计业则是集成电路产业链中的核心。随着集成电路技术的发展,集成电路设计的手段也经历了从手工设计、到计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE),在20世纪90年代开始逐步发展到电子设计自动化(Electronics Design Automation,EDA)阶段。CAD/EDA工具已经成为当今集成电路设计和制造流程中的必不可少的工具。
技术进步伴随着设计复杂性的增加,导致了CAD/EDA工具的功能也越来越强大,对集成电路设计工程师和科研人员提出了更高的要求。他们不但要有足够的数学、物理、器件、电路、工艺的知识,还要投入相当的精力学习、熟悉CAD/EDA工具和系统的使用。不同CAD/ EDA工具提供的手册因其系统的复杂性及不是用中文阅读者母语编写的,会给没有相应经验指导的初学者带来很大的困难。已经出版的CAD/EDA书籍大多都是关于电子系统级应用或是针对超大规模集成电路的设计方法学,而针对模拟集成电路设计、数字/模拟及数模混合集成电路设计和生产制造相关的CAD/EDA工具的指导书籍却很少。基于这个原因,编著者结合多年的集成电路设计和CAD/EDA工具使用经验,编写了本书,辅以不同的设计实例和流程,介绍相应的典型工具的使用。
本书分为三个部分,共18章。第一部分(第1~5章)以不同的设计实例介绍了模拟集成电路设计工具的应用,以Cadence设计流程中的工具为主,同时也介绍业界常用的Synopsys的Hspice电路仿真工具、Mentor Graphics的Calibre版图验证工具及SpringSoft公司的Laker软件的使用。第二部分(第6~13章)为数字集成电路的设计工具使用教程,分别介绍了用MATLAB进行系统级验证、使用ModelSim和NC-Verilog进行HDL描述和仿真、使用Xilinx ISE进行FPGA验证设计、使用Synopsys的Design Compiler工具进行综合及使用Astro进行后端设计,最后介绍了数字IC设计的验证方法学及可测性设计的基本概念和流程。本书与上一版相比,增加了第11章布局布线工具IC Compiler的使用方法,在第12章中增加了形式验证及静态时序分析的内容和相关工具的使用方法。同时本书在上一版教程的基础上新增了第三部分(第14~18章)——Linux操作系统及其他相关知识,主要讲解在集成电路设计过程中一些需要掌握的服务器Linux操作系统知识、第三方存储单元的嵌入方法、数字集成电路功耗分析流程及相关工具的使用方法、芯片流片前需要检查和注意的事项,最后给出了集成电路设计领域常用的英文缩略语。
本书出版前的讲义多年来一直作为浙江大学微电子相关专业“集成电路课程设计”研究生课程的教材,不断积累并更新。本书在写作方式上,尽量从应用的角度引导读者学习、掌握软件的使用。选取了典型的工具,每部分的主体设计流程均经过了流片和测试验证,所选的例子也都是取自实际的科研和教学项目,具有一定的代表性和实用性。本书可以作为微电子及相关专业的研究生和高年级本科生的集成电路相关课程的参考教材,也适合作为集成电路领域的科研人员和工程师的参考资料。
本书提供配套电子课件、仿真程序源文件等,请登录华信教育资源网(http://www.hxedu.com.cn)注册下载。
全书架构及内容由浙江大学微电子学院韩雁教授总负责并审稿定稿,同时负责第一部分的编写;韩晓霞讲师负责第二部分的编写;第三部分由张世峰助理研究员编写。本书在编写过程中得到了浙江大学微电子学院微纳电子研究所多名研究生的大力帮助,有马绍宇、洪慧、陈金龙、霍明旭、黄小伟、周海峰、崔强、付文、韩成功、黄大海、陈磊、蔡友、陈茗、罗豪、张斌、程维维、廉玉平、张艳、张昊、彭成、范镇琪、蔡坤明、斯瑞珺、彭洋洋、张吉皓、曾才赋、杜宇禅、梁筱、周骞、陈雅雅和乔志通等,他们在文档翻译、实例的仿真验证、文稿录入、图表制作等方面都做了大量工作。作者在编写过程中也参考了大量的文献、资料、手册。在此一并表示真诚的感谢。
由于编者学识和水平有限,加之CAD/EDA工具的版本也在不断更新发展,错漏之处敬请读者批评指正。
作 者
2017年08月于浙大求是园
展开