第一部分 半导体工艺/半导体器件TCAD仿真工具及使用第1章 半导体工艺仿真工具TSUPREM-4 3
1.1 TSUPREM-4基本命令介绍 3
1.1.1 符号及变量说明 3
1.1.2 命令类型 4
1.1.3 常用命令的基本格式与用法 4
1.2 双极晶体管结构的一维仿真示例 18
1.2.1 TSUPREM-4输入文件的顺序 18
1.2.2 初始有源区仿真 19
1.2.3 网格生成 20
1.2.4 模型选择 20
1.2.5 工艺步骤 20
1.2.6 保存结构 21
1.2.7 绘制结果 21
1.2.8 打印层信息 23
1.2.9 完成有源区仿真 23
1.2.10 最终结果 25
第2章 半导体器件仿真工具MEDICI 26
2.1 器件仿真工具MEDICI简介 26
2.1.1 MEDICI的特性 26
2.1.2 MEDICI的语法概览 27
2.2 教学实例1——NMOS器件仿真 28
2.3 教学实例2——NPN三极管仿真 38
第3章 工艺及器件仿真工具ISE-TCAD 45
3.1 工艺仿真工具DIOS 45
3.1.1 关于DIOS 45
3.1.2 各种命令说明 46
3.1.3 实例说明 49
3.2 器件描述工具MDRAW 56
3.2.1 关于MDRAW 56
3.2.2 MDRAW的边界编辑 57
3.2.3 掺杂和优化编辑 68
3.2.4 MDRAW软件基本使用流程 74
3.3 器件仿真工具DESSIS 79
3.3.1 关于DESSIS 79
3.3.2 设计实例 82
3.3.3 混合模式仿真 84
3.3.4 主要模型简介 87
3.3.5 小信号AC分析 93
第4章 工艺及器件仿真工具SILVACO-TCAD 96
4.1 使用ATHENA的NMOS工艺仿真 96
4.1.1 概述 96
4.1.2 创建一个初始结构 96
4.1.3 定义初始衬底 99
4.1.4 运行ATHENA并且绘图 99
4.1.5 栅极氧化 101
4.1.6 提取栅极氧化层的厚度 101
4.1.7 栅氧厚度的最优化 102
4.1.8 完成离子注入 106
4.1.9 在TONYPLOT中分析硼掺杂特性 107
4.1.10 多晶硅栅的淀积 109
4.1.11 简单几何刻蚀 109
4.1.12 多晶硅氧化 111
4.1.13 多晶硅掺杂 112
4.1.14 隔离氧化层淀积 114
4.1.15 侧墙氧化隔离的形成 114
4.1.16 源/漏极注入和退火 115
4.1.17 金属的淀积 118
4.1.18 获取器件参数 120
4.1.19 半个NMOS结构的镜像 121
4.1.20 电极的确定 122
4.1.21 保存ATHENA结构文件 123
4.2 使用ATLAS的NMOS器件仿真 124
4.2.1 ATLAS概述 124
4.2.2 NMOS结构的ATLAS仿真 126
4.2.3 创建ATLAS输入文档 126
4.2.4 模型命令组 126
4.2.5 数字求解方法命令组 129
4.2.6 解决方案命令组 130
第5章 设计实例——用TCAD软件对ESD防护器件的设计验证 140
5.1 利用TCAD软件仿真ESD防护器件的总体流程 140
5.1.1 半导体工艺级仿真流程 140
5.1.2 从工艺级仿真向器件级仿真的过渡流程 143
5.1.3 半导体器件级仿真流程 144
5.2 其他TCAD仿真工具仿真流程简介 148
5.3 ESD仿真验证中的瞬态仿真和静态仿真简介 154
5.4 利用TCAD对ESD防护器件综合性能评估实例 155
5.4.1 TCAD评估基本设置 156
5.4.2 有效性评估 156
5.4.3 敏捷性评估 156
5.4.4 鲁棒性评估 157
5.4.5 透明性评估 161
5.4.6 ESD总体评估 162
第二部分 模拟集成电路设计工具及使用 166
第6章 电路仿真工具软件 166
6.1 Cadence电路仿真工具包 166
6.1.1 Cadence设计环境简介 166
6.1.2 电路图输入工具Virtuoso Schematic Composer 169
6.1.3 仿真环境工具Analog Design Environment 170
6.1.4 仿真结果的显示以及处理 173
6.1.5 建立子模块 174
6.1.6 示例(D触发器) 175
6.2 Hspice的使用 179
6.2.1 Hspice简介 179
6.2.2 *.sp文件的生成 179
6.2.3 Hspice的运行与仿真 180
6.3 Spectre-Verilog混合信号仿真 182
6.3.1 Spectre-Verilog仿真简介 182
6.3.2 创建模拟模块 182
6.3.3 创建数字模块 183
6.3.4 设置仿真配置文件 184
6.3.5 设置和检查模块划分 186
6.3.6 设置数模接口 187
6.3.7 设置仿真菜单及仿真结果 188
第7章 设计实例——基准源、噪声、开关电容设计及验证 189
7.1 电压基准源设计 189
7.1.1 电压基准源简介 189
7.1.2 电压基准源分类 189
7.1.3 实现带隙基准源的原理 190
7.1.4 基准源启动电路 192
7.1.5 基准源噪声 193
7.1.6 基准源输出驱动 194
7.1.7 基准源计算机仿真 194
7.1.8 基准源的版图设计 198
7.2 CMOS集成电路噪声分析及仿真 199
7.2.1 噪声类型 200
7.2.2 噪声分析方法 202
7.2.3 Cadence噪声仿真步骤 203
7.3 开关电容电路仿真 205
7.3.1 开关电容电路背景知识 205
7.3.2 开关电容电路的精度 208
7.3.3 使用双相无交叠时钟的开关电容电路的分析方法 208
7.3.4 开关电容电路的Cadence仿真方法 210
7.3.5 开关电容电路Cadence仿真方法的验证 213
第8章 版图绘制及Virtuoso工具软件 217
8.1 典型CMOS工艺流程简介 217
8.2 Design Rule简介 221
8.3 Virtuoso软件简介及使用 223
8.3.1 Virtuoso软件启用 223
8.3.2 Virtuoso下快捷键的使用 226
8.3.3 反相器绘制举例(0.6μm工艺) 228
8.4 版图设计中的相关主题 230
8.4.1 天线效应 230
8.4.2 Dummy的设计 231
8.4.3 Guard Ring的设计 233
8.4.4 Match的设计 234
第9章 版图验证与后仿真 236
9.1 版图验证和后仿真简介 236
9.2 DIVA验证工具 237
9.2.1 Diva DRC规则文件 237
9.2.2 Diva版图提取文件 240
9.2.3 LVS文件的介绍 241
9.2.4 寄生参数提取文件 241
9.2.5 Diva的使用 242
9.3 CALIBRE验证工具 247
9.3.1 Calibre规则文件 249
9.3.2 Calibre的用法 250
第10章 DIVA规则文件的详细说明 253
10.1 完整的Diva DRC Extract LVS规则文件 253
10.1.1 Diva DRC规则文件 253
10.1.2 Diva Extract规则文件 255
10.1.3 Diva LVS规则文件 256
10.2 DIVA层次处理语句的图文解释 257
10.2.1 逻辑命令 257
10.2.2 关系命令 259
10.2.3 选择命令 263
10.2.4 尺寸命令 265
10.2.5 层生成命令 267
10.2.6 存储命令 267
10.3 DIVA中DRC和寄生参数提取语句 268
10.3.1 Diva DRC语句 268
10.3.2 Diva寄生元件提取语句 271
第三部分 数字集成电路设计工具及使用 275
第11章 系统级仿真与MATLAB 275
11.1 MATLAB简介 275
11.2 MATLAB的TOOLBOXES 276
11.2.1 数字信号处理 276
11.2.2 滤波器设计 276
11.2.3 Link For ModelSim 277
11.3 MATLAB的编程 282
11.4 SIMULINK仿真基础 283
11.4.1 Simulink简介 283
11.4.2 Simulink的模块 284
11.4.3 Simulink仿真参数的设定 284
11.4.4 Simulink系统仿真的简单实例 285
第12章 数字电路设计与Verilog 291
12.1 HDL设计方法学简介 291
12.1.1 数字电路设计方法 291
12.1.2 硬件描述语言 291
12.1.3 设计方法学 292
12.1.4 Verilog HDL简介 292
12.2 Verilog HDL建模概述 294
12.2.1 模块 294
12.2.2 时延 296
12.2.3 三种建模方式 297
12.3 Verilog HDL基本语法 300
12.3.1 标识符 300
12.3.2 注释 301
12.3.3 格式 301
12.3.4 数字值集合 301
12.3.5 数据类型 303
12.3.6 运算符和表达式 304
12.3.7 条件语句 308
12.3.8 case语句 309
12.4 结构建模 310
12.4.1 模块定义 310
12.4.2 模块端口 311
12.4.3 实例化语句 311
12.5 数据流建模 313
12.5.1 连续赋值语句 313
12.5.2 阻塞赋值语句 314
12.5.3 非阻塞赋值语句 315
12.5.4 数据流建模具体实例 316
12.6 行为建模 316
12.6.1 简介 316
12.6.2 顺序语句块 317
12.6.3 过程赋值语句 317
12.7 可综合设计 319
12.7.1 设计准则 319
12.7.2 进程划分准则 319
12.7.3 可综合子集 320
12.7.4 可综合设计中的组合电路设计 320
12.7.5 可综合设计中的时序电路设计 320
第13章 硬件描述语言的软件仿真与FPGA硬件验证 321
13.1 Modelsim的使用 321
13.1.1 Modelsim的启动 321
13.1.2 Modelsim仿真流程 322
13.1.3 编译工艺资源库 324
13.1.4 调试debug 325
13.1.5 Modelsim仿真小结 326
13.2 NC-Verilog的使用 326
13.2.1 ncvlog 327
13.2.2 ncelab 329
13.2.3 ncsim 331
13.2.4 NC-Verilog仿真小结 332
13.3 用DEBUSSY调试仿真结果 332
13.4 HDL仿真总结 334
13.5 FPGA硬件验证 334
13.5.1 FPGA基本组成 334
13.5.2 FPGA设计流程 336
13.5.3 FPGA设计总结 339
第14章 逻辑综合与Design Compiler 341
14.1 逻辑综合综述 341
14.2 用Design Compiler综合电路 342
14.2.1 Design Analyzer的启动 343
14.2.2 设计读入 344
14.2.3 链接(link) 347
14.2.4 实例唯一化(uniquify) 348
14.2.5 设计环境 350
14.2.6 设计约束 355
14.2.7 设计的逻辑综合 361
14.2.8 逻辑综合结果的分析 363
14.2.9 逻辑综合结果保存 365
14.2.10 时序文件的导出 365
14.3 Synplify的使用方法 367
14.3.1 Synplify概述 368
14.3.2 Synplify设计流程 368
14.3.3 synplify文件类型总结 371
14.4 逻辑综合总结 371
第15章 基于SE软件的布局布线和时序验证 372
15.1 一些概念及文件的准备 373
15.1.1 LEF(Library Exchange Format)文件 373
15.1.2 网表文件 373
15.1.3 TLF(Timing Library Format)文件 373
15.1.4 GCF(General Constraint Format)文件 373
15.1.5 PAD位置描述文件.ioc 373
15.1.6 DEF(Design Exchange Format)网表 373
15.2 SE使用流程 374
15.2.1 文件的导入 375
15.2.2 芯片形状、面积的确定 375
15.2.3 Place Block 376
15.2.4 Place IO 376
15.2.5 Plan Power 377
15.2.6 Place Cell 378
15.2.7 Clock Tree Generate 378
15.2.8 Connect Ring 380
15.2.9 布线 381
15.2.10 寄生参数提取 381
15.2.11 静态时序分析 382
15.2.12 布线后优化 383
15.2.13 版图的验证 386
15.2.14 导出GDSⅡ文件 386
15.2.15 导出Verilog网表和SDF文件 386
第16章 基于Encounter软件的布局布线和时序验证 389
16.1 Encounter简介 389
16.2 设计的布局 390
16.2.1 设计的导入 390
16.2.2 芯片的布局(Floorplan) 393
16.2.3 标准单元放置(Place) 400
16.2.4 时钟树综合(Clock Tree Synthesis) 401
16.3 设计的布线 406
16.3.1 全局布线(Wroute) 406
16.3.2 规则检查(Verify connectivity and geometry) 407
16.4 设计的时序分析 410
16.4.1 提取寄生参数(Extract RC) 410
16.4.2 计算时延(Calculate Delay) 410
16.4.3 时序分析(Setup and hold time slack analysis) 411
16.5 设计的版图处理 412
16.5.1 导出GDSⅡ文件 412
16.5.2 版图的DRC和LVS 412
第17章 可测性设计及DFT软件使用 417
17.1 DFT基础 417
17.1.1 测试 417
17.1.2 DFT(Design for Test) 417
17.1.3 故障模型 417
17.1.4 ATPG(Automatic test pattern generator) 419
17.1.5 DFT的常用方法 419
17.2 使用DFTC进行可测性设计 421
17.2.1 Synopsys的DFT流程 421
17.2.2 DFT扫描链插入 423
17.3 使用TetraMAX进行ATPG生成 425
17.3.1 TetraMAX的图形界面 426
17.3.2 TetraMAX的基本流程 427
17.3.3 ATPG测试向量生成 427
17.4 DFT设计实例 429
17.4.1 设计代码编写 429
17.4.2 综合并插入扫描链的过程 431
17.4.3 ATPG自动测试矢量生成 434
参考文献 440