电子设计自动化(EDA)工具主要是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术新成果而研制成的电子辅助软件包。该软件包可以使设计者在虚拟的计算机环境中进行早期的设计验证,有效缩短电路实体迭代验证的时间,提高集成电路芯片设计的成功率。一款成功的集成电路芯片源于无数工程师成功的设计,而成功的设计在很大程度上又取决于有效、成熟的集成电路EDA设计工具。本书根据普通高校微电子学与固体电子学(集成电路设计)专业的课堂教学和实验要求,以提高实际工程设计能力为目的,采取循序渐进的方式,介绍进行CMOS集成电路设计的EDA工具。主要分为EDA设计工具概述、模拟集成电路EDA技术和数字集成电路EDA技术三大部分。在模拟集成电路方面,依据模拟集成电路:电路前仿真—物理版图设计—参数提取及后仿真的设计流程,详细介绍了包括电路设计及仿真工具CadenceSpectre、版图设计工具CadenceVirtusuo、版图验证及参数提取工具MentorCalibre在内各工具的基本知识和使用方法。数字集成电路方面,根据代码仿真、逻辑综合、数字后端物理层设计流程,依次介绍RTL仿真工具Modelsim、逻辑综合工具DesignCompiler、数字后端版图工具ICCompiler和Encounter四大类设计工具。
前言
第1章CMOS集成电路EDA技术1
1.1CMOS集成电路EDA技术概述1
1.2CMOS模拟集成电路设计流程3
1.3CMOS模拟集成电路EDA工具分类5
1.4CMOS数字集成电路设计流程8
1.5CMOS数字集成电路EDA工具分类11
1.6小结13
第2章模拟电路设计及仿真工具Cadence Spectre14
2.1Spectre的特点14
2.2Spectre的仿真设计方法16
2.3Spectre与其他EDA软件的连接17
2.4Spectre的基本操作18
2.4.1Cadence Spectre启动设置18
2.4.2Spectre主窗口和选项介绍19
2.4.3设计库管理器介绍22
2.4.4电路图编辑器介绍25
2.4.5模拟设计环境介绍29
2.4.6波形显示窗口介绍32
2.4.7波形计算器介绍37
2.5Spectre库中的基本器件42
2.5.1无源器件42
2.5.2有源器件42
2.5.3信号源43
2.6低压差线性稳压器的设计与仿真45
2.7小结53
第3章Cadence Virtuoso版图设计工具54
3.1Virtuoso界面介绍54
3.1.1窗口标题栏56
3.1.2状态栏57
3.1.3菜单栏57
3.1.4图标菜单65
3.1.5设计区域67
3.1.6光标和指针67
3.1.7鼠标状态68
3.1.8提示栏69
3.1.9层选择窗口69
3.2Virtuoso基本操作71
3.2.1创建矩形71
3.2.2创建多边形72
3.2.3创建路径73
3.2.4创建标识名74
3.2.5创建器件和阵列74
3.2.6创建接触孔76
3.2.7创建圆形图形76
3.2.8移动命令78
3.2.9复制命令79
3.2.10拉伸命令79
3.2.11删除命令80
3.2.12合并命令80
3.2.13选择和放弃选择命令81
3.2.14改变层次关系命令82
3.2.15切割命令84
3.2.16旋转命令85
3.2.17属性命令86
3.2.18分离命令87
3.3运算放大器版图设计实例88
3.3.1NMOS晶体管版图设计88
3.3.2运算放大器的版图设计94
3.4小结102
第4章模拟版图验证及参数提取工具Mentor Calibre103
4.1Mentor Calibre版图验证工具调用103
4.1.1Virtuoso Layout Editor工具启动103
4.1.2采用Calibre图形界面启动106
4.1.3采用Calibre View查看器启动106
4.2Mentor Calibre DRC验证108
4.2.1Calibre DRC验证简介108
4.2.2Calibre DRC界面介绍110
4.2.3Calibre DRC验证流程举例116
4.3Mentor Calibre LVS验证125
4.3.1Calibre LVS验证简介125
4.3.2Calibre LVS界面介绍126
4.3.3Calibre LVS验证流程举例137
4.4Mentor Calibre寄生参数提取146
4.4.1Calibre PEX验证简介146
4.4.2Calibre PEX界面介绍147
4.4.3Calibre PEX流程举例157
4.5小结163
第5章数字电路设计及仿真工具 Modelsim164
5.1数字电路设计及仿真概述164
5.2数字电路设计方法164
5.2.1硬件描述语言Verilog的特点及规范165
5.2.2硬件描述语言Verilog的可综合设计173
5.2.3硬件描述语言设计实例174
5.3数字电路仿真工具Modelsim179
5.3.1Modelsim特点与应用179
5.3.2Modelsim的基本使用182
5.3.3Modelsim的进阶使用192
5.4小结207
第6章数字逻辑综合及Design Compiler208
6.1逻辑综合概述208
6.1.1逻辑综合的定义及发展历程208
6.1.2逻辑综合的流程209
6.2Design Compiler简介210
6.2.1Design Compiler的功能210
6.2.2Design Compiler的使用模式211
6.2.3DC-Tcl简介212
6.3Design Compiler综合设计216
6.3.1启动工具及初始环境配置216
6.3.2综合库218
6.3.3Design Compiler综合流程219
6.4静态时序分析与设计约束227
6.4.1静态时序分析227
6.4.2亚稳态229
6.4.3时钟的约束229
6.4.4输入输出路径的约束231
6.4.5组合逻辑路径的约束232
6.4.6时间预算233
6.4.7设计环境约束234
6.4.8多时钟同步设计约束237
6.4.9异步设计约束239
6.4.10多时钟的时序约束240
6.5基于状态机的交通灯综合242
6.6小结246
第7章数字电路物理层设计工具IC Compiler247
7.1IC Compiler简介247
7.2ICC物理层设计的数据准备249
7.2.1逻辑层数据249
7.2.2物理层数据250
7.2.3设计数据250
7.3创建设计数据库与后端数据的设置251
7.3.1逻辑库设置251
7.3.2物理库设置251
7.3.3其他文件设置252
7.3.4创建设计数据库252
7.3.5库文件检查252
7.3.6网表导入252
7.3.7Tlu+文件设置与检查253
7.3.8电源网络设置253
7.3.9TIE单元设置254
7.3.10导入SDC文件并进行时序约束检查254
7.3.11定时序优化参数255
7.4不同PVT角下综合优化的设置方法257
7.4.1scenario的建立258
7.4.2PVT角设定258
7.5宏单元与IO布局260
7.5.1IO布局与芯片布局空间创建260
7.5.2宏单元的摆放261
7.6电源网络的设计与分析262
7.6.1设计电源和地环262
7.6.2设计电源和地条262
7.6.3连接宏单元和标准单元263
7.7标准单元的布局与优化264
7.7.1检查是否需要添加tap cell265
7.7.2spare cell的标识265
7.7.3检查设计输入文件与约束265
7.7.4确认所有路径已经被正确地设置265
7.8时钟树综合与优化267
7.8.1综合前的检查267
7.8.2时钟树综合设置267
7.8.3执行时钟树综合核心命令270
7.9芯片布线与优化271
7.9.1布线前的检查271
7.9.2ICC布线相关设置271
7.9.3天线效应简介与设置273
7.9.4执行布线命令274
7.10芯片ECO与设计文件导出275
7.10.1Freeze silicon ECO275
7.10.2unconstrained ECO275
7.10.3设计结果导出276
7.11小结276
第8 章数字电路物理层设计工具Encounter277
8.1Encounter工具发展历史277
8.2Encounter设计流程介绍278
8.3数据准备279
8.3.1设计数据279
8.3.2逻辑库数据280
8.3.3物理库数据281
8.3.4数据准备常用的指令与流程281
8.4布图规划与布局285
8.4.1布图与IO排布285
8.4.2电源网络设计287
8.4.3标准单元的布局与优化 287
8.4.4布图规划与布局常用指令与流程288
8.5时钟树综合295
8.5.1时钟树综合简介295
8.5.2时钟树流程与优化297
8.6芯片布线299
8.6.1芯片布线工具简介299
8.6.2特殊布线299
8.6.3一般布线300
8.6.4芯片布线流程与优化300
8.7芯片ECO与DFM302
8.7.1ECO流程与优化302
8.7.2DFM流程与优化305
8.8小结305