模拟集成电路与数字集成电路设计工具实用教程
出版时间: 2017
内容简介
本书结合多年的集成电路设计和CAD/EDA工具使用经验编写,辅以不同的设计实例和流程,介绍相应的典型工具的使用。本书分为三个部分,共18章。第一部分(第1~5章)是模拟集成电路设计工具及使用,主要内容包括:电路仿真工具软件使用,设计实例――基准源、噪声、开关电容设计及验证,版图绘制及其工具软件,版图验证与后仿真,设计所需规则文件的详细说明。第二部分(第6~13章)是数字集成电路设计工具及使用,主要内容包括:系统级建模与数模混合仿真,数字电路设计与Verilog HDL,硬件描述语言的软件仿真与FPGA硬件验证,逻辑综合与Design Compiler,自动布局布线及Astro,布局布线工具IC Compiler,数字集成电路设计的验证方法,可测性设计及可测性设计软件使用。第三部分(第14~18章)是Linux操作系统及其他相关知识,主要内容包括:Linux系统常用命令,Memory Compiler软件Embed-It Integrator使用方法,数字IC功耗分析工具PTPX使用方法,流片前的Check List,集成电路设计领域常用英文缩略语。本书提供配套电子课件、仿真程序源文件等。本书可以作为微电子及相关专业的研究生和高年级本科生的集成电路课程的参考教材,也适合于作为集成电路领域的科研人员和工程师的参考资料。
目 录
第一部分 模拟集成电路设计工具及使用\t1
第1章 电路仿真工具软件使用\t3
1.1 Cadence电路仿真工具包\t3
1.1.1 Cadence设计环境简介\t3
1.1.2 电路图输入工具Virtuoso Schematic Composer\t5
1.1.3 仿真环境工具Analog Design Environment\t6
1.1.4 仿真结果的显示及处理\t9
1.1.5 建立子模块\t10
1.1.6 示例(D触发器)\t11
1.2 Hspice的使用\t13
1.2.1 Hspice简介\t13
1.2.2 *.sp文件的生成\t14
1.2.3 Hspice的运行与仿真\t14
1.3 Ultrasim仿真技术\t15
1.3.1 Ultrasim技术简介\t15
1.3.2 Ultrasim仿真环境设置\t16
1.4 芯片封装的建模与带封装信息的仿真\t19
1.4.1 Modeling RF IC Packages简介\t19
1.4.2 PKG的具体使用\t19
第2章 设计实例――基准源、噪声、开关电容设计及验证\t24
2.1 电压基准源设计\t24
2.1.1 电压基准源简介\t24
2.1.2 电压基准源分类\t24
2.1.3 实现带隙基准源的原理\t25
2.1.4 基准源启动电路\t26
2.1.5 基准源噪声\t27
2.1.6 基准源输出驱动\t27
2.1.7 基准源计算机仿真\t28
2.1.8 基准源的版图设计\t31
2.2 CMOS集成电路噪声分析及仿真\t31
2.2.1 噪声类型\t32
2.2.2 噪声分析方法\t33
2.2.3 连续时间系统的噪声仿真步骤\t34
2.3 开关电容电路仿真\t36
2.3.1 开关电容电路背景知识\t36
2.3.2 开关电容电路的精度\t37
2.3.3 使用双相无交叠时钟的开关电容电路的分析方法\t38
2.3.4 开关电容电路的Cadence仿真方法\t39
2.3.5 开关电容电路频率响应仿真\t40
2.3.6 开关电容电路的噪声仿真\t42
第3章 版图绘制及其工具软件\t49
3.1 典型CMOS工艺流程简介\t49
3.2 设计规则简介\t52
3.3 Virtuoso软件简介及使用\t53
3.3.1 Virtuoso软件启用\t53
3.3.2 Virtuoso中快捷键的使用\t56
3.3.3 反相器版图绘制举例\t57
3.3.4 PDK简介\t59
3.4 Laker软件简介及使用\t62
3.4.1 Laker使用时需要的文件\t62
3.4.2 Laker软件启用及主窗口\t63
3.4.3 Laker基本的版图编辑功能介绍\t63
3.4.4 Laker特有的高级版图编辑功能介绍\t66
3.4.5 原理图驱动的版图编辑\t67
3.4.6 设计实例\t68
3.5 版图设计中的相关主题\t73
3.5.1 天线效应\t73
3.5.2 Dummy的设计\t73
3.5.3 Guard Ring的设计\t75
3.5.4 Match的设计\t76
第4章 版图验证与后仿真\t78
4.1 版图验证与后仿真简介\t78
4.2 Diva验证工具\t79
4.2.1 Diva DRC规则文件\t79
4.2.2 Diva版图提取文件\t81
4.2.3 LVS文件的介绍\t83
4.2.4 寄生参数提取文件\t83
4.2.5 Diva的使用\t84
4.3 Calibre验证工具\t88
4.3.1 Calibre规则文件\t88
4.3.2 Calibre的用法\t89
4.3.3 数模混合电路LVS的操作方法\t94
第5章 设计所需规则文件的详细说明\t96
5.1 完整的Diva DRC、Extract、LVS规则文件\t96
5.1.1 Diva DRC规则文件\t96
5.1.2 Diva Extract规则文件\t97
5.1.3 Diva LVS规则文件\t98
5.2 Diva 层次处理语句的图文解释\t99
5.2.1 逻辑命令\t99
5.2.2 关系命令\t101
5.2.3 选择命令\t104
5.2.4 尺寸命令\t105
5.2.5 层生成命令\t106
5.2.6 存储命令\t107
5.3 Diva中DRC和寄生参数提取语句\t107
5.3.1 Diva DRC语句\t107
5.3.2 Diva寄生参数提取语句\t110
第二部分 数字集成电路设计工具及使用\t113
第6章 系统级建模与数模混合仿真\t116
6.1 MATLAB简介\t117
6.2 MATLAB的Toolboxes\t117
6.2.1 数字信号处理\t118
6.2.2 滤波器设计\t118
6.2.3 Link For ModelSim\t119
6.3 MATLAB的编程\t122
6.4 Simulink仿真基础\t123
6.4.1 Simulink简介\t123
6.4.2 Simulink的模块\t124
6.4.3 Simulink仿真参数的设定\t124
6.4.4 Simulink系统仿真的简单实例\t125
6.5 Verilog-A简介\t130
6.6 Verilog-A的编程\t130
6.6.1 基本语法\t131
6.6.2 基本表达式\t132
6.6.3 模拟运算符\t132
6.6.4 Verilog-A仿真\t133
6.7 Verilog-A建模实例\t133
6.7.1 反相器\t133
6.7.2 利用Cadence中的向导产生模拟模块\t136
6.8 SpectreVerilog混合信号仿真\t137
6.8.1 SpectreVerilog仿真简介\t137
6.8.2 创建模拟模块\t137
6.8.3 创建数字模块\t138
6.8.4 设置仿真配置文件\t138
6.8.5 设置和检查模块划分\t139
6.8.6 设置数模接口\t141
6.8.7 设置仿真菜单及仿真结果\t141
第7章 数字电路设计与Verilog HDL\t143
7.1 HDL设计方法学简介\t143
7.1.1 数字电路设计方法\t143
7.1.2 硬件描述语言\t143
7.1.3 设计方法学\t144
7.1.4 Verilog HDL简介\t144
7.2 Verilog HDL建模概述\t146
7.2.1 模块\t146
7.2.2 时延\t148
7.2.3 三种建模方式\t148
7.3 Verilog HDL基本语法\t151
7.3.1 标识符\t151
7.3.2 注释\t152
7.3.3 格式\t152
7.3.4 数字值集合\t152
7.3.5 数据类型\t154
7.3.6 运算符及表达式\t155
7.3.7 条件语句\t159
7.3.8 case语句\t160
7.4 结构建模\t161
7.4.1 模块定义\t161
7.4.2 模块端口\t161
7.4.3 实例化语句\t161
7.5 数据流建模\t162
7.5.1 连续赋值语句\t163
7.5.2 阻塞赋值语句\t163
7.5.3 非阻塞赋值语句\t164
7.5.4 数据流建模具体实例\t165
7.6 行为建模\t166
7.6.1 简介\t166
7.6.2 顺序语句块\t166
7.6.3 过程赋值语句\t166
7.7 可综合设计\t168
7.7.1 设计准则\t168
7.7.2 进程划分准则\t169
7.7.3 可综合子集\t169
7.7.4 可综合设计中的组合电路设计\t169
7.7.5 可综合设计中的时序电路设计\t169
第8章 硬件描述语言的软件仿真与FPGA硬件验证\t170
8.1 ModelSim的使用\t170
8.1.1 ModelSim的启动\t170
8.1.2 ModelSim仿真流程\t171
8.1.3 编译工艺资源库\t173
8.1.4 调试\t173
8.1.5 ModelSim仿真小结\t174
8.2 NC-Verilog的使用\t174
8.2.1 ncvlog命令\t174
8.2.2 ncelab命令\t176
8.2.3 ncsim命令\t177
8.2.4 NC-Verilog仿真小结\t178
8.3 用Debussy调试仿真结果\t178
8.4 HDL仿真总结\t180
8.5 FPGA硬件验证\t180
8.5.1 FPGA基本组成\t180
8.5.2 FPGA设计流程\t181
8.5.3 FPGA下载配置\t184
第9章 逻辑综合与Design Compiler\t191
9.1 逻辑综合综述\t191
9.2 用Design Compiler综合电路\t192
9.2.1 Design Analyzer的启动\t193
9.2.2 设计读入\t194
9.2.3 链接\t196
9.2.4 实例唯一化\t197
9.2.5 设计环境\t197
9.2.6 设计约束\t202
9.2.7 设计的逻辑综合\t206
9.2.8 逻辑综合结果的分析\t207
9.2.9 逻辑综合结果保存\t209
9.2.10 时序约束文件的导出\t210
9.3 Synplify的使用方法\t210
9.3.1 Synplify概述\t210
9.3.2 Synplify设计流程\t210
9.3.3 Synplify文件类型总结\t213
9.4 逻辑综合总结\t213
第10章 自动布局布线及Astro\t214
10.1 Astro简介\t214
10.2 数据准备\t214
10.2.1 库文件\t214
10.2.2 工艺文件\t217
10.2.3 设计文件\t217
10.3 利用Astro进行布局布线的设计流程\t218
10.3.1 工具启动\t219
10.3.2 创建设计库\t219
10.3.3 读入网表文件\t220
10.3.4 打开设计库和设计单元\t221
10.3.5 布图规划\t222
10.3.6 布局\t229
10.3.7 时钟树综合\t235
10.3.8 布线前的电源/地线检查\t240
10.3.9 布线\t240
10.3.10 可制造性设计处理\t246
10.3.11 版图验证\t246
10.3.12 数据输出\t247
第11章 布局布线工具IC Compiler\t249
11.1 IC Compiler简介\t249
11.2 ICC后端设计须知\t250
11.2.1 后端设计中常用文件的格式说明\t250
11.2.2 I/O库与太阳城
单元库中的特殊单元\t251
11.2.3 ICC中的静态时序分析\t252
11.2.4 ICC中的MCMM\t256
11.3 利用ICC进行布局布线的设计流程\t258
11.3.1 设计准备\t258
11.3.2 布图规划\t265
11.3.3 布局\t276
11.3.4 时钟树综合\t279
11.3.5 布线\t286
11.3.6 DFM(可制造性设计)\t289
11.3.7 版图验证\t295
11.3.8 数据输出\t296
11.3.9 ECO\t297
第12章 数字集成电路设计的验证方法\t299
12.1 OVM验证方法学介绍\t299
12.2 验证工具QuestaSim软件介绍\t302
12.3 使用OVM搭建验证环境\t307
12.4 随机验证\t315
12.5 形式验证及Formality软件使用方法\t318
12.5.1 设置Reference Design\t320
12.5.2 设置Implementation Design\t322
12.5.3 设置环境\t323
12.5.4 Match\t324
12.5.5 Verify\t324
12.5.6 Debug\t325
12.5.7 形式验证中所用的脚本及代码\t325
12.6 静态时序验证及PrimeTime软件使用方法\t328
12.6.1 静态时序验证\t328
12.6.2 静态时序分析原理\t329
12.6.3 基于PrimeTime的静态时序分析\t330
第13章 可测性设计及可测性设计软件使用\t336
13.1 可测性设计基础\t336
13.1.1 测试\t336
13.1.2 可测性设计\t336
13.1.3 故障模型\t336
13.1.4 自动测试矢量生成\t338
13.1.5 可测性设计的常用方法\t338
13.2 使用DFTC进行可测性设计\t340
13.2.1 Synopsys的DFT流程\t340
13.2.2 DFT扫描链插入\t342
13.2.3 Synopsys Adaptive Scan压缩\t344
13.3 使用TetraMAX进行ATPG生成\t344
13.3.1 TetraMAX的图形界面\t344
13.3.2 TetraMAX的基本流程\t345
13.3.3 ATPG测试向量生成\t346
13.4 DFT设计实例\t348
13.4.1 设计代码编写\t348
13.4.2 综合并插入扫描链的过程\t349
13.4.3 ATPG自动测试矢量生成\t351
第三部分 Linux操作系统及其他相关知识\t356
第14章 Linux系统常用命令\t357
14.1 服务器基本操作\t357
14.2 Linux文件名称\t358
14.3 Linux文件存取权限\t358
14.4 Linux文件系统常用命令\t359
14.5 程序进程\t364
14.6 vi的使用\t365
第15章 Memory Compiler软件Embed-It Integrator使用方法\t367
第16章 数字IC功耗分析工具PTPX使用方法\t373
16.1 PTPX中的功耗分析技术\t373
16.2 PTPX功耗分析所需的文件\t373
16.3 PTPX中的功耗分析模式及功耗分析流程\t374
16.3.1 平均功耗分析模式\t375
16.3.2 无矢量功耗分析模式\t375
16.3.3 基于时间的功耗分析模式\t376
16.3.4 PTPX功耗分析报告\t377
第17章 流片前的Check List\t379
17.1 检查事项\t379
17.2 特殊的Cell和Ring的说明\t381
第18章 集成电路设计领域常用英文缩略语\t386
参考文献\t390