第1章 绪论 1
1.1 系统芯片是微电子技术发展的必然 1
1.2 电子设计自动化技术和硬件描述语言 3
1.2.1 电子设计自动化技术发展概述 3
1.2.2 Top-Down设计方法 4
1.2.3 硬件描述语言 6
第2章 CMOS数字集成电路 8
2.1 引言 8
2.2 集成电路的主要生产工艺 8
2.2.1 晶片准备 9
2.2.2 制版 9
2.2.3 光刻 9
2.2.4 氧化 9
2.2.5 淀积 10
2.2.6 腐蚀 10
2.2.7 扩散 10
2.2.8 导体和电阻 10
2.3 CMOS反相器及其版图 11
2.3.1 MOS晶体管及其版图 11
2.3.2 CMOS反相器的结构及其版图 12
2.4 设计规则与工艺参数 16
2.4.1 设计规则的内容与作用 16
2.4.2 几何规则 16
2.4.3 电学规则 17
2.5 CMOS数字电路的特征 25
2.5.1 标准逻辑电平 25
2.5.2 逻辑扇出特性 25
2.5.3 容性负载及其影响 26
2.5.4 CMOS电路的噪声容限 26
2.6 CMOS逻辑门 28
2.6.1 CMOS或非门 28
2.6.2 CMOS与非门 30
2.6.3 多输入CMOS逻辑门 31
2.7 NMOS传输晶体管与CMOS传输门 31
2.7.1 NMOS传输晶体管 31
2.7.2 CMOS传输门 32
习题 32
第3章 硬件描述语言VHDL 34
3.1 引言 34
3.2 VHDL的基础知识 35
3.2.1 VHDL程序的结构 35
3.2.2 VHDL常用资源库中的程序包 42
3.2.3 VHDL的词法单元 48
3.2.4 数据对象和类型 50
3.2.5 表达式与运算符 57
3.3 VHDL结构体的描述方式 59
3.3.1 结构体的行为描述 59
3.3.2 结构体的RTL描述 61
3.3.3 结构体的结构化描述 63
3.4 结构体的子结构形式 66
3.4.1 进程 66
3.4.2 复杂结构体的多进程组织方法 69
3.4.3 块 70
3.4.4 子程序 72
3.5 顺序语句和并发语句 75
3.5.1 顺序语句 76
3.5.2 并发语句 85
3.6 VHDL中的信号和信号处理 91
3.6.1 信号的驱动源 91
3.6.2 信号的延迟 92
3.6.3 仿真周期和信号的δ延迟 94
3.6.4 信号的属性函数 96
3.6.5 带属性函数的信号 98
3.7 VHDL的其他语句 103
3.7.1 ATTRIBUTE描述与定义语句 103
3.7.2 ASSERT语句 110
3.7.3 TEXTIO 110
3.8 多值逻辑 112
3.8.1 三态数值模型 112
3.8.2 多值逻辑 113
3.9 元件例化 116
3.9.1 设计通用元件 116
3.9.2 构造程序包 119
3.9.3 元件的调用 120
3.10 配置 121
3.10.1 默认配置 121
3.10.2 元件的配置 123
3.10.3 块的配置 126
3.10.4 结构体的配置 128
习题 129
第4章 基本数字逻辑单元的设计 131
4.1 组合逻辑电路设计 131
4.1.1 门电路 131
4.1.2 三态缓冲器和总线缓冲器 133
4.1.3 编码器、译码器和选择器 135
4.1.4 运算器的设计 138
4.1.5 算术逻辑运算单元 143
4.2 时序逻辑电路设计 145
4.2.1 触发器 145
4.2.2 锁存器 149
4.2.3 寄存器 149
4.2.4 计数器 151
4.3 存储器 153
4.3.1 概述 153
4.3.2 只读存储器 154
4.3.3 随机存取存储器 155
4.3.4 先进后出堆栈 156
4.4 有限状态机 157
习题 162
第5章 数字系统的层次结构设计 163
5.1 硬件的算法模型 163
5.1.1 先进先出堆栈的算法模型 163
5.1.2 布思一位补码乘法器的算法模型 166
5.2 芯片系统的划分 168
5.2.1 并行接口8255 169
5.2.2 布思二位补码乘法器的结构化设计 175
5.3 系统间互连的表示 183
5.4 系统的仿真和测试 191
5.4.1 概述 191
5.4.2 仿真程序的设计方法 191
5.4.3 TEXTIO建立测试程序 195
习题 197
第6章 SOC的体系结构 198
6.1 SOC的结构 198
6.1.1 引言 198
6.1.2 SOC的硬件结构 198
6.1.3 嵌入式软件 200
6.2 SOC中的嵌入式精简指令集处理器 201
6.2.1 概述 201
6.2.2 RISC的定义与特点 202
6.2.3 RISC的指令特点 204
6.2.4 RISC的并行处理技术 206
6.2.5 RISC/DSP结构 208
6.2.6 RISC核的设计 212
6.3 嵌入式处理器ARM的体系结构 212
6.3.1 概述 212
6.3.2 ARM7系列处理器 215
6.3.3 ARM9系列处理器 222
6.3.4 ARM9E系列处理器 224
6.3.5 ARM10系列处理器 225
6.3.6 ARM11系列处理器 226
6.4 嵌入式处理器MIPS32 4Kc的体系结构 227
6.4.1 概述 227
6.4.2 MIPS32 4Kc嵌入式处理器 229
6.5 SOC的互连机制 236
6.5.1 概述 236
6.5.2 AMBA总线 238
6.5.3 CoreConneet总线 244
6.5.4 Wishbone总线 245
6.5.5 OCP总线 246
6.5.6 虚拟元件接口 247
6.6 带ARM核的嵌入式系统芯片举例 251
6.6.1 LPC2100系列高性能微控制器 251
6.6.2 AT91SAM7X系列高性能微控制器 253
6.6.3 AT91RM9200高性能微控制器 257
6.7 嵌入式实时操作系统 259
6.7.1 实时操作系统 259
6.7.2 嵌入式实时操作系统概述 260
6.7.3 实时多任务调度 261
6.7.4 信号与信号量 262
习题 263
第7章 可编程逻辑器件 264
7.1 概述 264
7.1.1 可编程逻辑器件的发展 264
7.1.2 用户再构造电路和可编程ASIC电路 264
7.1.3 可编程逻辑器件的分类 265
7.2 可编程逻辑器件的编程元件 267
7.2.1 熔丝型开关 267
7.2.2 反熔丝开关 267
7.2.3 浮栅编程技术 268
7.3 PAL与GAL器件的电路结构 270
7.3.1 PLD的电路表示方法 270
7.3.2 PLD的基本电路结构 273
7.3.3 PAL器件的电路结构 276
7.3.4 通用阵列逻辑GAL 278
7.4 ispLSI系列CPLD 287
7.4.1 概述 287
7.4.2 ispLSI1000系列CPLD的结构特点 288
7.4.3 ispLSI CPLD的测试和编程特性 299
7.4.4 ispLSI 2000系列CPLD的结构 301
7.4.5 ispLSI 3000系列CPLD 301
7.4.6 ispLSI 5000V系列CPLD的结构和工作原理 306
7.4.7 ispLSI 8000/V系列CPLD的结构和工作原理 313
7.5 现场可编程门阵列 318
7.5.1 概述 318
7.5.2 XC4000系列FPGA的结构和工作原理 320
7.5.3 Spartan系列FPGA 344
7.6 基于HDPLD的系统设计实现 346
7.6.1 设计实现概述 346
7.6.2 器件的选择 347
7.6.3 HDPLD的设计流程 348
习题 348
第8章 可编程系统芯片 350
8.1 可编程系统芯片概述 350
8.2 Virtex-Ⅱ系列FPGA的结构和性能 351
8.2.1 概述 351
8.2.2 Virtex-Ⅱ系列FPGA的总体结构 352
8.2.3 Virtex-Ⅱ系列FPGA的可构造逻辑模块 353
8.2.4 18Kbit可选RAM模块 360
8.2.5 嵌入式乘法器 361
8.2.6 全局时钟多路缓冲器 362
8.2.7 数字时钟管理器 363
8.2.8 输入输出模块 364
8.2.9 有源互连技术 367
8.3 嵌入式RISC处理器软核MicroBlaze 368
8.3.1 嵌入式处理器软核MicroBlaze概况 368
8.3.2 嵌入式处理器软核MicroBlaze的结构 369
8.3.3 嵌入式处理器软核MicroBlaze的接口信号 370
8.4 Virtex-Ⅱ Pro系列可编程片上系统芯片 372
8.4.1 Virtex-Ⅱ Pro系列SOPC概况 372
8.4.2 嵌入式PowerPC 405处理器核 373
8.4.3 极速双向串行传送器 385
习题 390
第9章 专用集成电路设计 391
9.1 引言 391
9.2 门阵列和门海阵列设计 392
9.2.1 门阵列设计 392
9.2.2 门海阵列 393
9.2.3 门阵列和门海阵列的设计流程 395
9.3 标准单元设计 395
9.4 设计检验 397
9.4.1 设计规则检查 398
9.4.2 电学规则检查 398
9.4.3 版图与电路图一致性检查 400
9.5 后仿真 401
习题 402
第10章 可测试性结构设计 403
10.1 大规模集成电路可测试设计的意义 403
10.2 可测试性基础 404
10.2.1 故障模型 404
10.2.2 可测试性分析 406
10.2.3 测试矢量生成 411
10.2.4 故障模拟 418
10.3 集成电路的可测试性结构设计 420
10.3.1 专门测试设计 421
10.3.2 扫描测试设计 422
10.3.3 内建自测试技术 424
10.3.4 系统级测试技术——边界扫描测试技术 425
习题 429
附录 430
附录A VHDL标准包集合文件 430
附录B IP核一览表 460
参考文献 473