目录
第1章概述1
1.1集成电路自动设计流程1
1.2VLSI版图模式及分类4
1.2.1全定制版图模式4
1.2.2门阵列设计模式6
1.2.3标准单元设计模式7
1.2.4可编程逻辑器件7
1.2.5不同设计方法的比较13
1.3EDA的主要领域14
1.3.1硬件描述语言14
1.3.2模拟验证15
1.3.3综合技术17
1.3.4数字系统形式验证17
1.3.5测试诊断18
1.3.6版图设计19
1.3.7数据库21
1.3.8人工智能与EDA22
1.4集成电路快速发展对EDA的挑战22
第2章硬件描述语言24
2.1硬件描述与模型24
2.1.1电路模型的描述24
2.1.2硬件描述语言简介26
2.2VHDL的基本结构28
2.2.1VHDL模块模型28
2.2.2对象及其数据类型30
2.2.3表达式37
2.2.4子程序——过程与函数41
2.2.5程序包与设计库432.3VHDL的层次化结构44
2.3.1实体声明44
2.3.2元件例化46
2.3.3配置指定48
2.4顺序行为与并行行为53
2.4.1进程53
2.4.2顺序信号赋值语句54
2.4.3变量赋值语句55
2.4.4条件控制语句55
2.4.5循环控制语句56
2.4.6顺序断言语句57
2.4.7顺序过程调用58
2.4.8返回语句58
2.4.9空语句58
2.4.10并行信号赋值语句59
2.4.11并行断言语句60
2.4.12并行过程调用语句61
2.4.13决断信号61
2.4.14复合并行语句——block语句63
2.4.15复合并行语句——生成语句64
2.5电路设计举例66
2.5.1交通灯控制器66
2.5.2用有限自动机描述系统行为66
目录〖3〗第3章模拟验证69
3.1模拟验证概述69
3.1.1验证在设计过程中的作用69
3.1.2模拟系统的基本组成70
3.2逻辑模拟73
3.2.1逻辑模拟内部电路模型73
3.2.2事件驱动模拟算法77
3.2.3三值模拟与竞争冒险检测85
3.3VHDL模拟88
3.3.1VHDL模拟系统的组成88
3.3.2VHDL内部模型91
3.3.3VHDL模拟算法93
小结98
第4章高层次综合100
4.1高层次综合概述100
4.1.1高层次综合的概念101
4.1.2高层次综合的优点101
4.1.3高层次综合的流程101
4.2编译与转换102
4.2.1词法及语法分析103
4.2.2中间表示格式104
4.2.3代码优化转换技术107
4.3调度技术109
4.3.1调度的基本问题109
4.3.2调度算法的分类113
4.3.3ASAP调度算法与ALAP调度算法115
4.3.4列表调度算法117
4.3.5整数线性规划调度119
4.3.6动态调度算法120
4.3.7调度中控制结构的处理120
4.4分配技术126
4.4.1分配的基本问题126
4.4.2分配算法128
4.5高层次综合中的优化技术136
4.5.1具有分支控制结构时操作的移动136
4.5.2高层次综合设计空间探索138
4.5.3人工智能驱动的高层次综合138
第5章逻辑综合140
5.1概述140
5.2布尔表示和推理的数据结构141
5.2.1无量化和量化布尔公式142
5.2.2布尔函数操作144
5.2.3布尔函数表示145
5.3组合逻辑最小化155
5.3.1两级逻辑最小化155
5.3.2SOP最小化157
5.3.3多级逻辑最小化159
5.4工艺映射169
5.4.1工艺库170
5.4.2图覆盖170
5.4.3原子模式集的选择170
5.4.4树覆盖近似171
5.4.5最优树覆盖172
5.5时序分析与时序优化173
5.5.1拓扑时序分析175
5.5.2功能性时序分析176
5.5.3与工艺无关的时序优化177
5.6小结178
第6章形式验证180
6.1形式验证概述180
6.1.1形式验证的意义180
6.1.2形式验证的基本方法181
6.2定理证明184
6.2.1形式逻辑184
6.2.2高阶逻辑定理证明系统HOL187
6.2.3用HOL验证硬件电路191
6.3模型检验193
6.3.1模型检验概述193
6.3.2系统建模: Kripke结构194
6.3.3性质表示: 时态逻辑196
6.3.4显式模型检验198
6.4符号模型检验202
6.4.1时态逻辑的固定点特性202
6.4.2布尔函数的表示方法——二叉判别图204
6.4.3用BDD隐式表示有限状态机207
6.5定界模型检验209
6.5.1可满足性问题210
6.5.2时态逻辑的定界语义212
6.5.3定界模型检验问题到SAT问题的转换213
第7章电路系统的划分216
7.1超图与超图划分216
7.2目标函数与限制条件218
7.3解决划分问题的基本方法218
7.3.1KL算法218
7.3.2FM启发式算法220
7.3.3多级划分算法222
7.3.4局部搜索算法223
7.3.5谱划分算法223
7.3.6遗传算法224
7.4开源划分工具简介224
第8章布图规划225
8.1布图规划问题描述225
8.2解决布图规划问题的方法概述226
8.3基于布图表示的求解方法227
8.3.1布图结构的表示227
8.3.2布图结构的扩展表示方法233
8.3.3模拟退火算法235
8.4解析法238
8.5当前布图规划的挑战与研究热点241
第9章布局244
9.1问题描述244
9.2代价函数与约束245
9.2.1线长估计245
9.2.2总线长最小化247
9.2.3最大割线数目最小化248
9.2.4最大密度最小化248
9.2.5性能最大化248
9.2.6其他约束249
9.3解决布局问题的方法249
9.3.1基于划分的方法250
9.3.2启发式最小割算法254
9.3.3解析方法256
9.3.4模拟退火262
9.3.5神经网络263
9.3.6遗传算法265
9.3.7其他268
第10章布线269
10.1布线与总体布线、详细布线269
10.2布线分类270
10.2.1基本的布线分类270
10.2.2总体布线问题270
10.2.3总体布线的分类272
10.3迷宫算法与线探索法273
10.3.1基本的迷宫算法——Lee算法273
10.3.2迷宫法的改进276
10.3.3迷宫算法的比较278
10.3.4迷宫算法中提高布线效率的方法279
10.3.5多端线网布线283
10.3.6多层布线283
10.3.7线探索法284
10.4斯坦纳树算法与其他算法286
10.4.1基于最短路径的斯坦纳树算法286
10.4.2基于最小代价生成树的斯坦纳树算法286
10.4.3基于可分离性的斯坦纳树算法287
10.4.4基于非矩形边的斯坦纳树算法289
10.4.5基于动态规划的斯坦纳树算法290
10.4.6最小最大权重边的斯坦纳树算法292
10.4.7基于加权的斯坦纳树算法293
10.4.8基于整数规划的方法293
10.4.9基于网络流的总体布线算法296
10.4.10基于拥挤度分析的并行层次迭代布线算法302
10.5布线顺序的影响及其处理304
第11章时钟树与电源地306
11.1概述306
11.2设计约束307
11.2.1时序约束307
11.2.2偏差和抖动309
11.2.3电压降和电流噪声312
11.2.4功耗313
11.2.5电迁移313
11.3时钟网络设计314
11.3.1时钟网络拓扑314
11.3.2时钟网络建模与分析318
11.3.3时钟树合成320
11.3.4时钟树优化326
11.4电源/接地网络设计330
11.4.1传统电源/接地拓扑结构330
11.4.2电源/接地网络分析332
11.4.3电源/接地网络综合334
