目录 1
第1章 EDA工程概论 1
1.1 概论 1
1.2 EDA工程发展历程 3
1.3 EDA工程概念 5
1.3.1 EDA工程的实现载体 6
1.3.2 EDA工程的设计语言 7
1.3.3 EDA系统的框架结构 8
1.4 EDA工程的基本特征 8
1.5.1 全定制设计方法 10
1.5 集成电路设计方法 10
1.5.2 符号法版图设计 11
1.5.3 半定制设计方法 12
1.5.4 可编程器件设计方法 14
1.5.5 不同集成电路设计方法的比较 15
1.6 EDA工程的范畴 15
1.6.1 EDA工程的硬件产品设计方法学 15
1.6.2 EDA工程的软件工具设计方法学 16
1.6.3 EDA工程的应用范畴 17
1.7 EDA工程的设计流程 18
1.8.1 EDA工程学科与微电子技术的关系 20
1.8 EDA工程和微电子技术 20
1.8.2 其他学科与微电子结合诞生新的技术 22
第2章 EDA工程设计方法 24
2.1 IC设计描述法 24
2.1.1 集成电路设计的描述方法 24
2.1.2 行为描述法 26
2.2 IP复用方法 28
2.2.1 问题的提出 28
2.2.2 软IP核与硬IP核 31
2.2.3 设计复用方法 33
2.2.4 基于IP模块的设计技术 36
2.2.5 硬件参数提取提高IP利用率 40
2.3 ASIC设计法 42
2.3.1 ASIC设计概述 42
2.3.2 用可编程逻辑器件设计ASIC 43
2.3.3 用门阵列设计ASIC(半定制法) 46
2.3.4 用标准单元设计ASIC(半定制法) 52
2.4 大规模集成电路(VLSI)设计方法 53
2.5 以集成平台为基础的设计方法 55
2.5.1 集成平台的概念 56
2.5.2 集成平台的结构 58
2.5.3 集成平台的发展 59
2.6 集成系统设计方法 60
2.6.1 片上系统概念 60
2.6.2 片上系统的一般设计方法 65
2.6.3 片上系统的分层设计方法 67
2.6.4 片上系统的集成设计方法 71
2.6.5 片上系统设计的关键问题 78
2.6.6 片上系统面向对象的设计方法 81
2.6.7 可编程系统级芯片的结构 83
2.6.8 可编程系统级芯片的设计方法 86
2.6.9 片上系统的测试方法 88
2.6.10 片上系统的设计实例(一)——单片微处理器系统芯片 93
2.6.11 片上系统的设计实例(二)——32位微处理器系统芯片 97
2.6.12 片上系统的设计实例(三)——多处理器系统芯片 98
2.6.13 系统芯片展望 101
2.7 EDA工程集成设计环境IDE 103
2.7.1 集成设计环境的概念 104
2.7.2 趋向集成化的EDA工具平台 105
2.7.3 EDA工程的框架结构 111
2.8 虚拟器件协同设计环境 115
2.8.3 行为级虚拟器件建模 116
2.8.2 设计流程 116
2.8.1 一个从系统到芯片的完整设计流程 116
2.8.4 结构级虚拟器件建模 118
2.8.5 行为级到结构级映射 119
2.8.6 系统级设计和实现的无缝连接 119
2.9 软硬件协同设计方法 120
2.9.1 软硬件协同设计语言 120
2.9.2 软硬件划分的问题 121
2.9.3 软硬件协同设计的划分方法 122
2.9.4 限制满足性问题 122
2.9.5 软硬件协同设计工具 123
2.9.6 推导指令 124
2.9.7 统一的表述 125
2.9.8 设计指令的建立 125
2.10 EDA工程的分层设计方法 128
2.11 e-DA网上设计方法 138
2.11.1 网上设计环境 138
2.11.2 远程IC设计环境 139
2.12 EDA工程的仿生学方法 141
2.12.1 概述 141
2.12.2 进化硬件 142
2.12.3 POE模型 142
2.12.4 电子胚胎结构模型 143
2.12.5 仿生SoC芯片模型 144
第3章 EDA工程建模方法 146
3.1 模型的概念 146
3.2 VHDL建模 147
3.3 组合电路模型 148
3.3.1 编码器的设计 148
3.3.2 译码器的设计 150
3.3.3 选择器的设计 154
3.3.4 运算器的设计 155
3.4.1 时钟边沿的描述 157
3.4 时序电路建模 157
3.4.2 时序电路中复位信号Reset的VHDL描述方法 159
3.5 状态机模型 162
3.5.1 状态机建模 162
3.5.2 优化性能 164
3.5.3 资源利用 166
3.5.4 Std match函数 167
3.5.5 消除锁存器 168
3.6 微处理器模型 168
3.6.1 寄存器级模型特点 168
3.6.2 寄存器级数据流模型的特点 170
3.6.3 集成系统的划分 171
3.6.4 精简指令集计算机 173
3.6.5 URSIC处理器级程序设计 176
3.7 PLD的物理模型 180
3.7.1 互连引发的问题 181
3.7.2 高度可预测 183
3.8 数字电子系统模型 183
3.9 并行建模环境 185
3.10 深亚微米建模 189
4.1 综合的概念 193
第4章 EDA工程综合方法 193
4.2 逻辑综合 194
4.2.1 单输出函数的综合 194
4.2.2 多输出函数的综合 195
4.3 时序电路逻辑综合 196
4.3.1 时序状态机的模型 197
4.3.2 时序电路的综合 198
4.3.3 时序电路状态机的最小化 198
4.3.4 时序电路状态划分 199
4.3.5 不完全确定的时序电路状态机的化简 201
4.3.6 时序电路的状态分配 203
4.4 用EDA工具进行自动综合 205
4.5 算法综合 206
4.6 调度技术 207
4.6.1 调度函数与时间变量和资源变量的关系 208
4.6.2 操作的调度类型 208
4.6.3 调度中控制结构的处理 209
4.6.4 调度算法的分类 210
4.6.5 调度中控制结构的处理 212
4.6.6 功能单元库 215
4.7 分配技术 216
4.7.1 分配问题 216
4.7.2 分配算法 217
4.8 设计规划综合方法 219
4.8.1 设计规划综合 220
4.8.2 模块设计方法 221
4.8.3 模块的实现 222
4.9 分层物理综合方法 223
4.9.1 物理综合边界 223
4.9.2 模块规模的影响 224
4.9.3 分层结构的优点 225
4.9.4 底层规划 225
5.1 概述 228
第5章 EDA工程仿真方法 228
5.2 仿真方法 229
5.2.1 仿真的级别 229
5.2.2 仿真系统的基本组成 230
5.2.3 常用仿真方法 232
5.3 功能仿真 233
5.3.1 功能仿真的概念 233
5.3.2 功能仿真的模型 234
5.3.3 信号状态值 235
5.3.4 延迟模型 239
5.3.5 元件模型 242
5.4 逻辑仿真 245
5.4.1 仿真过程 245
5.4.2 事件表驱动仿真算法 247
5.4.3 三值仿真算法与竞争冒险检测 252
5.5 开关级仿真 254
5.5.1 开关级电路模型 254
5.5.2 计算节点信号状态的强度比较算法 256
5.5.3 等效阻容网络算法 260
5.5.4 信号延迟的计算 261
5.6 高层次仿真 266
5.5.5 门、功能块级和开关级的混合仿真处理 266
5.6.1 VHDL仿真系统的组成 267
5.6.2 VHDL内部模型的确立 269
5.7 VHDL仿真算法 277
5.8 仿真工具实例——Saber 282
第6章 FDA工程可测试设计方法 288
6.1 概述 288
6.1.1 可测试设计 288
6.1.2 内建自测试 290
6.1.4 可测试设计技术的发展 292
6.1.3 可测试设计中的功耗优化问题 292
6.2 测试方法的范畴 294
6.3 可测试性分析 295
6.4 测试矢量生成 296
6.4.1 组合电路测试 297
6.4.2 时序电路测试 298
6.5 可测试性结构设计 300
6.5.1 分块测试 300
6.5.2 扫描测试设计 301
6.5.3 内建自测试(BIST) 306
6.6.1 测试平台的搭建 310
6.6 测试(平台)程序的设计方法 310
6.6.2 不同仿真目的对测试平台设计的要求 311
6.6.3 用子程序方式建立测试平台 312
6.7 测试程序设计 314
6.7.1 表格式测试程序设计 314
6.7.2 文件I/O式测试程序设计 318
6.8 测试方法应用(一)——片上存储器测试 325
6.9 测试方法应用(二)——ASIC测试 326
6.10 测试方法应用(三)——嵌入式系统测试 331
6.10.1 测试方法 332
6.10.2 测试的步骤 333
6.10.3 UML测试结构 335
6.10.4 测试的执行 336
6.10.5 测试方法的推广 337
6.11 可制造设计/可测试设计(DFM/DFT) 338
6.11.1 面向制造的设计 339
6.11.2 实现CIM(计算机集成制造) 340
6.11.3 集成化工序 340
6.11.4 测试和设计部门之间的沟通 341
第7章 EDA工程时序分析方法 342
7.1 静态时序的分析(STA)方法 342
7.1.2 耦合问题 343
7.1.1 考虑分布参数的建模 343
7.1.3 分析邻线耦合 344
7.1.4 门级延迟问题 345
7.1.5 解决方案 346
7.2 关键路径的时序分析方法 347
7.2.1 静态时序分析工具的基本概念 348
7.2.2 时序分析工具的使用 349
7.2.3 注意事项 350
7.3 深亚微米工艺的时序分析方法 351
7.3.1 动态模型 352
7.3.2 行为模式 353
7.4 面向ASIC的时序分析方法 354
7.4.1 超级芯片建模结构 355
7.4.2 单元库的开发 356
7.5 通过噪声分析发现时序错误的方法 358
7.5.1 串扰效应 358
7.5.2 噪声时序分析方法的应用 360
第8章 EDA工程故障测试方法 362
8.1 故障测试概述 362
8.2 故障模型 363
8.3 故障仿真 364
8.4 信号完整性分析 365
8.4.1 IBIS模型 368
8.4.2 PSPICE模型 369
8.4.3 SPICE模型和IBIS模型比较 372
8.5 故障测试方法——JTAG法 373
8.5.1 集成电路测试标准 375
8.5.2 标准模块描述 375
8.5.3 集成电路在系统编程标准 379
8.5.4 JTAG接口应用于PLD器件编程 383
9.1 概述 384
第9章 EDA工程验证方法 384
9.2 组合电路和时序电路的验证方法 385
9.2.1 组合电路的逻辑验证 386
9.2.2 时序电路的逻辑验证 387
9.3 基于符号处理的形式验证方法 387
9.4 基于时序逻辑的验证方法 390
9.5 用状态迁移表的验证方法 392
9.6 归纳断言法 393
9.6.1 工作原理 393
9.6.2 寄存器传输语言及其公理定义 396
9.6.3 验证实例 399
9.7 形式验证的HDL方法 400
9.8 用测试平台语言实现自动验证 406
9.9 在深亚微米设计中借助等效检验进行形式验证 409
9.10 硬/软件并行设计与SoC验证 413
9.11 深亚微米工艺条件下的验证工具 419
9.12 大型FPGA器件仿真验证 421
9.13 嵌入式处理器验证环境 425
9.14 验证工具应用实例和验证方法进展 430
9.14.1 应用实例 430
9.14.2 验证方法的进展 433
10.1.1 EDA工程方法与设计流程 434
第10章 EDA工程流程规划方法 434
10.1 流程的概念 434
10.1.2 集成电路产业流程 435
10.1.3 系统层与算法层设计流程 436
10.1.4 高层次综合设计流程 437
10.1.5 ASIC设计流程 437
10.2 混合信号设计环境与开发流程 439
10.2.1 SPECTRE电路仿真器 440
10.2.2 SPECTRE RF电路仿真工具 441
10.2.3 其他模块的功能 443
10.3 自建系统级芯片验证流程(COT) 444
10.4 基于模块的设计流程 449
10.4.1 设计环境 450
10.4.2 设计工具 452
10.4.3 设计流程 453
10.5 基于FPGA的硬宏(IP)设计流程 455
10.5.1 问题的提出 455
10.5.2 解决方法 456
10.5.3 进一步的讨论 458
10.6 设计流程应用实例 458
10.6.1 实现载体的选择 458
10.6.2 设计语言的选择 459
10.6.3 验证工具的选择 460
10.6.4 IC设计参考流程 461
第11章 EDA工程的实现方法 463
11.1 设计实现的概念 463
11.1.1 设计实现初步 463
11.1.2 设计实现与逻辑综合的区分 465
11.2 EDA工程的CPLD实现方法 466
11.2.1 可编程技术 467
11.2.2 专用集成电路(ASIC) 469
11.2.3 复杂可编程器件(CPLD) 475
11.2.4 现场可编程门阵列(FPGA) 478
11.2.5 百万门级FPGA的设计方法 484
11.3 EDA工程的物理实现方法 489
11.3.1 物理设计 489
11.3.2 设计规则 491
11.3.3 CMOS电路加工工艺 493
11.3.4 集成电路版图全定制设计方法 498
11.3.5 物理综合(版图综合Layout Synthesis) 498
11.3.6 深亚微米条件下物理设计方法 500
11.4.1 半导体产业模式的转变 504
11.4 EDA工程的工业实现方法 504
11.4.2 无晶圆厂ASIC公司(Fabless) 505
11.4.3 芯片代工厂(Foundry) 506
11.4.4 IP设计公司(Chipless) 508
11.4.5 设计代工厂(Design Foundry) 508
11.4.6 设计服务公司(Design Service) 509
11.5 多晶圆服务(MPW) 513
11.5.1 MPW服务业务的重要性 513
11.5.2 多项目晶圆(MPW)介绍 520
11.5.3 国际多项目晶圆计划综述 523
11.5.4 多项目晶圆(MPW)费用支出 527
11.5.5 国内外MPW计划的比较 529
11.5.6 芯片设计生产率的度量 532
第12章 EDA工程方法学进展 536
12.1 IC设计方法学进展 536
12.1.1 自顶向下设计方法受到挑战 536
12.1.2 C语言用于IC系统级设计 537
12.1.3 物理设计转向COT设计方法 537
12.1.4 EDA向EDO的转变 537
12.1.5 IC设计技术的发展 538
12.1.6 共享RTL设计方法 541
12.1.7 设计复用方法 541
12.2.1 动态可重构技术原理 542
12.2 动态可重构技术 542
12.2.2 动态可重构技术应用 543
12.2.3 动态可重构技术有待解决的问题 544
12.2.4 动态可重构芯片列举 545
12.3 EDA设计工具的进展 546
12.4 实现载体的发展 548
12.4.1 系统级可重编程芯片 551
12.4.2 集成高带宽互连技术 551
英汉名词缩略语对照表 553
参考文献 558