目录 1
丛书序 1
前言 1
第1章 CPLD/FPGA硬件概述 1
1.1 CPLD/FPGA概述 2
1.1.1 CPLD/FPGA的特点 2
1.1.2 CPLD/FPGA的发展方向 4
1.1.3 CPLD/FPGA的应用领域 5
1.2 EDA与ASIC技术 6
1.3 SOPC和IP核技术 7
1.4 CPLD/FPGA系统设计与开发编程原理 8
1.4.1 CPLD/FPGA系统设计流程 8
1.4.2 CPLD/FPGA硬件设计与开发原理 11
1.4.3 CPLD/FPGA软件设计与开发原理 11
1.5 本章小结 13
1.6 习题 13
第2章 CPLD/FPGA硬件体系结构 15
2.1 可编程逻辑器件PLD 16
2.1.1 可编程只读存储器(PROM) 16
2.1.2 紫外线可擦除只读存储器(EPROM) 18
2.1.3 电可擦除只读存储器(E2PROM) 19
2.1.4 可编程阵列逻辑(PAL) 20
2.2 通用阵列逻辑(GAL) 21
2.3 CPLD体系结构 23
2.3.1 CPLD的基本结构 23
2.3.2 CPLD的结构特点 25
2.3.3 CPLD编程工艺 26
2.4 FPGA体系结构 26
2.4.1 FPGA基本结构 27
2.4.2 FPGA的结构特点 29
2.5 开发CPLD/FPGA的选用 31
2.4.3 FPGA的编程工艺 31
2.6 本章小结 34
2.7 习题 34
第3章 VHDL编程基础 35
3.1 VHDL概述和语言特性 36
3.2 VHDL语言的基本结构 37
3.2.1 VHDL程序的基本构成 37
3.2.2 实体 39
3.2.3 构造体 41
3.2.4 库、包集合、配置 44
3.3.2 VHDL的数据对象 47
3.3 VHDL语法规则 47
3.3.1 VHDL的标识符 47
3.3.3 VHDL的数据类型 50
3.3.4 VHDL的运算操作符 53
3.4 VHDL中的顺序语句 56
3.4.1 条件语句 56
3.4.2 选择语句 59
3.4.3 循环、等待语句 60
3.4.4 FUNCTION语句 61
3.5 VHDL中的并行语句 62
3.5.1 进程语句、信号代入语句 63
3.5.2 并发过程调用语句 64
3.5.3 块语句 66
3.5.4 元件例化语句(Component instantiation) 67
3.6 VHDL编程实例——三选一选择器 68
3.7 本章小结 69
3.8 习题 69
3.9 上机练习 70
第4章 VHDL设计进阶 73
4.1 VHDL语言的描述方式 74
4.2.1 组合逻辑电路 77
4.2 常用电路的VHDL描述 77
4.2.2 时序逻辑电路 86
4.2.3 存储器 93
4.3 VHDL设计实例——状态机 98
4.4 本章小结 100
4.5 习题 101
4.6 上机练习 101
第5章 CPLD/FPGA集成开发工具 103
5.1 MAX+plus Ⅱ概述 104
5.2 MAX+plus Ⅱ设计过程 107
5.3.1 LPM库的使用 122
5.3 MAX+plus Ⅱ综合设计选项 122
5.3.2 项目层次结构与文件系统 125
5.3.3 全局逻辑综合方式 126
5.3.4 设置全局定时要求、定时分析 128
5.3.5 与第三方EDA软件接口 130
5.3.6 设置器件的下载编程方式 132
5.3.7 CPLD/FPGA器件烧写方法 134
5.4 MAX+plus Ⅱ设计实例 135
5.4.1 设计实例1——语言描述输入法 135
5.4.2 设计实例2——文本、图形结合输入法 140
5.5 Xilinx Foundation设计简介 143
5.6 本章小结 144
5.7 习题 145
5.8 上机练习 145
第6章 CPLD/FPGA硬件开发工具 147
6.1 Quartus Ⅱ概述 148
6.2 Quartus Ⅱ设计 150
6.2.1 Quartus Ⅱ设计输入 151
6.2.2 Quartus Ⅱ编译 154
6.2.3 Quartus Ⅱ定时分析、仿真与器件编程 155
6.3 Quartus Ⅱ设计实例——六十进制计数器 158
6.4 Xilinx ISE设计简介 160
6.5 本章小结 162
6.6 习题 162
6.7 上机练习 163
第7章 CPLD/FPGA优化设计 165
7.1 CPLD/FPGA硬件优化设计 166
7.1.1 使用流水线技术 166
7.1.2 合理使用CPLD/FPGA资源 167
7.2 CPLD/FPGA软件优化设计 169
7.2.1 优化VHDL编码 169
7.2.2 修改软件配置提高系统速度 172
7.3 优化综合设计实例——8位流水线乘法器 174
7.4 本章小结 177
7.5 习题 177
7.6 上机练习 178
第8章 CPLD/FPGA硬件开发平台 181
8.1 CPLD/FPGA硬件开发平台概述 182
8.2 CPLD/FPGA硬件开发平台器件与端口资源 183
8.2.1 键盘接口电路 183
8.2.2 LED显示电路 184
8.2.3 LCD显示电路 185
8.2.5 A/D、D/A接口电路 186
8.2.4 串行通信接口 186
8.2.6 其他接口、端口资源 188
8.3 CPLD/FPGA硬件开发平台的测试 190
8.4 基于硬件平台开发实例——时钟、秒表、闹钟的设计 193
8.5 本章小结 201
8.6 习题 201
8.7 上机练习 201
第9章 CPLD/FPGA外围硬件接口设计 205
9.1 时钟分频 206
9.1.1 偶数分频 206
9.1.2 奇数分频 207
9.2 键盘接口 209
9.2.1 键盘原理 209
9.2.2 键盘接口的VHDL描述 211
9.3 串行通信接口UART 219
9.3.1 UART协议 219
9.3.2 UART的VHDL描述 221
9.4 LED接口 227
9.4.1 LED原理介绍 227
9.4.2 LED接口的VHDL描述 228
9.5 接口设计实例——声卡AC-Link接口 231
9.6 本章小结 238
9.7 习题 239
9.8 上机练习 239
第10章 CPLD/FPGA简易系统设计 245
10.1 简易系统实例1——FIFO的设计 246
10.2 简易系统实例2——DDS的设计 251
10.3 简易系统实例3——数字电压计的设计 257
10.4 简易系统实例4——信号发生器的设计 261
10.5 简易系统实例5——交通灯控制的设计 264
10.7 习题 268
10.6 本章小结 268
10.8 上机练习 269
第11章 CPLD/FPGA应用系统设计 275
11.1 用CPLD/FPGA实现数字信号处理 276
11.1.1 FIR数字滤波器的设计 276
11.1.2 IIR数字滤波器的设计 284
11.1.3 自适应数字滤波器 286
11.1.4 快速傅立叶变换FFT的设计 287
11.2 用CPLD/FPGA实现语音信号处理 291
11.2.1 语音信号处理实例1——语音通信的实现 291
11.2.2 语言信号处理实例2——音乐电路的实现 294
11.3 本章小结 297
11.4 习题 297
11.5 上机练习 297
附录A CPLD/FPGA常用系列芯片介绍 301
A.1 Altera芯片 301
A.2 Xilinx芯片 302
A.3 其他公司的CPLD/FPGA芯片 303
A.4 常用芯片引脚 303
附录B 术语汇编 307
附录C 部分思考练习题答案 313
参考文献 316