第1章 数字系统设计方法 1
1.1 绪言 1
1.1.1 数字系统的基本概念 1
1.1.2 数字系统的基本模型 3
1.1.3 数字系统的基本结构 7
1.2 数字系统设计的一般步骤 8
1.2.1 引例 8
1.2.2 数字系统设计的基本步骤 10
1.2.3 多级系统及其结构 13
1.3.1 自上而下的设计方法 15
1.3 数字系统设计方法论 15
1.3.2 自下而上的设计方法 16
1.3.3 自关键部件开始设计 17
1.3.4 系统信息流驱动设计 17
1.4 数字系统的描述方法之一--算法流程图 19
1.4.1 算法流程图的符号与规则 20
1.4.2 设计举例 21
习题1 23
第2章 数字系统的算法设计和硬件实现 28
2.1 算法设计 28
2.1.1 算法设计综述 28
2.1.2 跟踪法 29
2.1.3 归纳法 31
2.1.4 划分法 34
2.1.5 解析法 36
2.1.6 综合法 37
2.2 算法结构 42
2.2.1 顺序算法结构 42
2.2.2 并行算法结构 42
2.2.3 流水线操作算法结构 45
2.3 系统硬件实现概述 46
2.4.1 器件选择 47
2.4 数据处理单元的设计 47
2.4.2 数据处理单元设计的基本步骤 48
2.4.3 数据处理单元设计实例 48
2.5 控制单元的设计 53
2.5.1 系统控制方式 54
2.5.2 控制器的基本结构和系统同步 56
2.5.3 算法状态机图(ASM图) 58
2.5.4 控制器的硬件逻辑设计方法 61
习题2 72
第3章 硬件描述语言VHDL 78
3.1 概述 78
3.2.1 实体说明 79
3.2 VHDL基本结构 79
3.2.2 结构体 80
3.3 数据对象、类型及运算符 83
3.3.1 对象类别与定义 83
3.3.2 数据类型 83
3.3.3 常数的表示 85
3.3.4 运算符 85
3.4 顺序语句 86
3.4.1 变量与信号赋值语句 86
3.4.2 IF语句 86
3.4.4 LOOP语句 87
3.4.3 CASE语句 87
3.5 并行语句 88
3.5.1 并行信号赋值语句 89
3.5.2 进程语句 90
3.5.3 断言语句 91
3.5.4 生成语句 93
3.6 子程序 94
3.6.1 函数定义与引用 94
3.6.2 过程定义与引用 95
3.6.3 子程序重载 96
3.7.1 程序包 97
3.7 程序包与设计库 97
3.7.2 设计库 98
3.8 元件配置 99
3.8.1 体内配置指定 99
3.8.2 体外配置说明 100
3.8.3 直接例化 101
3.8.4 顶层元件配置 101
3.9 VHDL描述实例 102
3.9.1 组合逻辑电路描述 102
3.9.2 时序逻辑电路描述 103
3.9.3 状态机的描述 106
习题3 107
3.9.4 多谐振荡器的描述 107
第4章 可编程逻辑器件PLD原理和应用 109
4.1 PLD概述 109
4.2 简单PLD原理 111
4.2.1 PLD的基本组成 111
4.2.2 PLD的编程 111
4.2.3 阵列结构 112
4.2.4 PLD中阵列的表示方法 113
4.3 SPLD组成和应用 115
4.3.1 只读存储器ROM 115
4.3.2 可编程逻辑阵列PLA 119
4.3.3 可编程阵列逻辑PAL 121
4.3.4 通用阵列逻辑GAL 125
4.3.5 输出逻辑宏单元OLMC 126
4.3.6 OLMC的输出结构 128
4.3.7 GAL应用举例 130
4.4 采用SPLD设计数字系统 136
4.4.1 采用SPLD实现系统的步骤 136
4.4.2 设计举例 136
4.4.3 采用SPLD设计系统的讨论 139
习题4 140
5.1 HDPLD概述 147
5.1.1 HDPLD的分类 147
第5章 高密度PLD及其应用 147
5.1.2 典型HDPLD器件系列 148
5.2 HDPLD组成 148
5.2.1 阵列扩展型HDPLD 148
5.2.2 单元型CPLD 159
5.2.3 现场可编程门阵列FPGA 166
5.2.4 多路开关型FPGA 171
5.3 HDPLD编程技术 175
5.3.1 isp编程技术(in-system programmablity) 175
5.3.2 icr编程技术(in-circuit reconfiguration) 176
5.3.3 反熔丝(Antifuse)编程技术 179
5.4.1 软件开发系统的基本工作流程 180
5.4 HDPLD软件开发系统综述 180
5.4.2 软件开发系统的库函数 182
习题5 182
第6章 采用HDPLD设计数字系统实例 186
6.1 高速并行乘法器的设计 186
6.1.1 算法设计和结构选择 186
6.1.2 器件选择 186
6.1.3 设计输入 186
6.1.4 芯片引脚定义 187
6.1.5 逻辑仿真 188
6.2.1 交通管理器的功能 189
6.2 十字路口交通管理器的设计 189
6.1.6 目标文件产生和器件下载 189
6.2.2 系统算法设计 190
6.2.3 设计输入 191
6.3 FIFO(先进先出堆栈)的设计 194
6.3.1 FIFO的功能 194
6.3.2 算法设计和逻辑框图 195
6.3.3 数据处理单元和控制器的设计 197
6.3.4 设计输入 199
6.4 九九乘法表系统的设计 200
6.4.1 系统功能和技术指标 200
6.4.3 数据处理单元的实现 201
6.4.2 算法设计 201
6.4.4 设计输入 202
6.4.5 系统的功能仿真 208
6.5 数据采集和反馈控制系统的设计 210
6.5.1 系统设计要求 210
6.5.2 设计输入 211
6.6 FIR有限冲激响应滤波器的设计 214
6.6.1 FIR结构简介 215
6.6.2 设计方案和算法结构 216
6.6.3 模块组成 218
6.6.4 FIR滤波器的扩展应用 220
6.6.5 设计输入 222
6.6.6 设计验证 224
6.7 可编程脉冲延时系统的设计 227
6.7.1 系统功能和技术指标 227
6.7.2 系统设计计算 229
6.7.3 设计输入和实现 231
习题6 238
第7章 全定制集成电路设计技术简介 240
7.1 集成电路制造工艺与全定制电路设计 240
7.1.1 集成电路制造工艺简介 240
7.1.2 全定制电路设计过程 245
7.1.3 深亚微米电路设计 246
7.2 全定制集成电路设计的EDA技术 247
7.2.1 设计输入 248
7.2.2 设计综合 248
7.2.3 设计验证 250
7.2.4 版图编辑 252
7.2.5 版图验证 252
附录 254
附录A HDPLD典型器件介绍 254
A1 器件封装型式说明 254
A2 LATTICE公司典型器件(阵列扩展型CPLD,isp编程技术) 255
A3 ALTERA公司典型器件(单元型CPLD,FPGA,icr编程技术) 257
A4 XILINX公司典型产品(单元型FPGA、CPLD,icr编程技术或isp编程技术) 260
A5 Actel公司典型器件(多路开关型FPGA反熔丝编程技术) 262
附录B 典型软件开发系统MAX+PLUSⅡ简介 264
B1 概述 264
B2 MAX+PLUSⅡ的设计过程 265
B3 逻辑设计的输入方法 270
B4 设计项目的编译 279
B5 设计项目的模拟仿真 286
B6 定时分析 289
B7 器件编程 291
参考文献 295