第1章 绪论 1
1.1 EDA技术发展历程 1
1.2 EDA技术的主要内容 2
1.3 EDA技术的特点 4
1.3.1 传统的设计方法 4
1.3.2 EDA设计方法 5
1.4 EDA设计流程 6
1.5 常用的EDA软件工具 8
1.6 EDA技术的发展趋势 11
习题1 12
第2章 可编程逻辑器件 13
2.1 概述 13
2.1.1 PLD发展历程 13
2.1.2 PLD分类 14
2.2 SPLD的基本原理 15
2.2.1 常用电路符号 15
2.2.2 SPLD的原理与结构 16
2.3 CPLD的结构与原理 19
2.3.1 宏单元结构 20
2.3.2 CPLD器件的结构 20
2.3.3 CPLD产品简介 23
2.4 FPGA的结构与工作原理 26
2.4.1 FPGA的结构 26
2.4.2 可编程逻辑模块 28
2.4.3 查找表电路结构 31
2.4.4 可编程互连 34
2.4.5 可编程I/O模块 36
2.4.6 FPGA中的专用元件 37
2.4.7 Altera CycloneⅡ系列架构 38
2.4.8 Xilinx Spartan-3E系列架构 42
2.5 FPGA器件介绍 46
2.5.1 Xilinx公司的代表产品 46
2.5.2 Altera公司的Cyclone系列FPGA 47
2.5.3 Lattice公司的FPGA 49
2.6 CPLD/FPGA的发展趋势 50
习题2 51
第3章 VHDL编程基础 52
3.1 概述 52
3.1.1 什么是VHDL 52
3.1.2 VHDL的特点 53
3.1.3 VHDL的设计流程 54
3.2 VHDL程序基本结构 54
3.2.1 案例介绍及知识要点 55
3.2.2 实体说明 56
3.2.3 结构体 58
3.2.4 库 61
3.2.5 程序包 63
3.2.6 配置 65
3.3 VHDL的语言要素 66
3.3.1 VHDL的文字规则 66
3.3.2 VHDL的数据对象 68
3.3.3 VHDL的数据类型 71
3.3.4 VHDL的操作符 79
3.4 VHDL的顺序语句 81
3.4.1 顺序赋值语句 82
3.4.2 转向控制语句 84
3.4.3 wait语句 91
3.4.4 return语句 92
3.4.5 null语句 93
3.5 子程序 94
3.5.1 函数 94
3.5.2 过程 97
3.5.3 函数和过程的总结 99
3.6 VHDL的并发语句 99
3.6.1 进程语句 99
3.6.2 块语句 103
3.6.3 并行信号赋值语句 104
3.6.4 元件声明及元件例化语句 107
3.6.5 生成语句 109
3.7 VHDL的属性描述语句 112
3.7.1 数值类属性 112
3.7.2 函数类属性 114
3.8 信号、变量与寄存器生成数量的关系 116
3.9 VHDL语言的描述风格 121
3.9.1 行为描述 121
3.9.2 数据流描述 121
3.9.3 结构化描述 122
习题3 123
第4章 基本逻辑电路设计 127
4.1 基本门电路 127
4.1.1 与门电路 127
4.1.2 或门电路 129
4.1.3 其他门电路 130
4.2 组合逻辑电路设计 131
4.2.1 编码器 131
4.2.2 译码器 133
4.2.3 加法器 137
4.2.4 数据分配器 140
4.2.5 三态门及总线缓冲器 142
4.3 时序逻辑电路 143
4.3.1 触发器 144
4.3.2 锁存器 148
4.3.3 寄存器 151
4.3.4 计数器 154
4.3.5 分频器 159
4.3.6 信号发生和检测器 161
4.3.7 存储器 165
习题4 168
第5章 Quartus Ⅱ软件基本应用 169
5.1 Quartus Ⅱ的基本操作流程 169
5.1.1 建立工程文件 169
5.1.2 建立VHDL设计文件 173
5.1.3 对设计文件进行编译 173
5.1.4 引脚分配 174
5.1.5 对设计文件进行仿真 177
5.1.6 从设计文件到目标器件的加载 180
5.1.7 原理图设计的方法 181
5.2 简单的NiosⅡ系统设计 184
5.2.1 SOPC概述 184
5.2.2 基本的开发流程 186
5.2.3 使用QuartusⅡ建立一个工程文件 187
5.2.4 使用SOPC Builder建立一个简单的NiosⅡ硬件系统 190
5.2.5 在Quartus Ⅱ中编译Nios Ⅱ硬件系统并生成其配置文件 202
5.2.6 在Nios Ⅱ IDE中建立C/C++工程并编写程序 206
5.2.7 调试和运行程序 211
习题5 213
第6章 ISE 10.1开发软件的使用 214
6.1 ISE 10.1的基本操作流程 214
6.1.1 工程建立 215
6.1.2 设计输入 219
6.1.3 设计综合 220
6.1.4 设计仿真 220
6.1.5 引脚分配 223
6.1.6 设计实现 224
6.1.7 生成下载文件及目标板配置 225
6.1.8 原理图设计输入 228
6.2 EDK的基础应用 230
6.2.1 EDK概述 231
6.2.2 创建一个简单的XPS工程 232
6.2.3 添加一个IP到硬件设计 240
6.2.4 定制一个IP到硬件设计 244
6.2.5 编写应用程序 251
6.2.6 使用SDK工具和Chipscope进行软硬件协同调试 256
习题6 269
第7章 综合案例设计 270
7.1 多功能数字钟的设计 270
7.1.1 设计要求 270
7.1.2 基本原理及设计方法 270
7.1.3 VHDL实现 271
7.1.4 波形仿真 274
7.2 函数发生器的设计 275
7.2.1 设计要求 275
7.2.2 基本原理及设计方法 275
7.2.3 VHDL实现 276
7.3 交通灯的设计 282
7.3.1 设计要求 282
7.3.2 基本工作原理与设计方法 282
7.3.3 VHDL实现 283
7.4 数字频率计设计 288
7.4.1 设计要求 288
7.4.2 基本工作原理及设计方法 288
7.4.3 VHDL实现 290
第8章 EDA技术实验 297
8.1 实验一 基于Quartus Ⅱ图形输入电路的设计 297
8.2 实验二 含异步清零和同步使能的加法计数器 299
8.3 实验三 数控分频器的设计 301
8.4 实验四 可控脉冲发生器的设计 301
8.5 实验五 基于VHDL的表决器的设计 302
8.6 实验六 数据序列检测器的设计 303
参考文献 305