图书目录

目录

第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