第一篇 基础知识篇 2
第1章 CPLD/FPGA硬件结构知识 2
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 CPLD体系结构 6
1.2.1 CPLD的基本结构 6
1.2.2 CPLD的结构特点 8
1.2.3 CPLD编程工艺 9
1.3 FPGA体系结构 10
1.3.1 FPGA基本结构 10
1.3.2 FPGA的结构特点 13
1.3.3 FPGA的编程工艺 14
1.4 CPLD/FPGA常用芯片 14
1.4.1 Altera芯片 14
1.4.2 Xilinx芯片 16
1.5 CPLD/FPGA的选用 17
1.6 本章小结 20
第2章 VHDL编程知识 21
2.1 系统的表示方法和硬件描述语言 21
2.2 VHDL的语言结构与语言要素 23
2.2.1 实体说明 25
2.2.2 构造体 27
2.2.3 VHDL语言要素 30
2.2.4 VHDL顺序语句与并发语句 42
2.2.5 描述方式 54
2.3 组合逻辑电路的VHDL实现 58
2.3.1 简单门电路 58
2.3.2 译码器、编码器和选择器 60
2.3.3 加法器、乘法器和除法器 69
2.3.4 三态门和总线缓冲器 76
2.4 时序逻辑电路的VHDL实现 77
2.4.1 锁存器、触发器 77
2.4.2 寄存器 79
2.4.3 计数器 81
2.5 状态机的VHDL实现 90
2.5.1 状态机的结构和功能 90
2.5.2 状态机的VHDL模型 91
2.6 存储器的VHDL实现 98
2.6.1 ROM和RAM 98
2 6 2 FIFO 102
第3章 Verilog与System C编程 107
3.1 Verilog HDL编程基础 107
3.1.1 Verilog与VHDL的比较 107
3.1.2 Verilog程序结构 108
3.1.3 简单的Verilog组合逻辑设计 108
3.1.4 简单Verilog时序逻辑电路的设计 109
3.1.5 Verilog有限状态机 110
3.2 System C编程基础 112
3.2.1 System C的基本类库 112
3.2.2 System C描述举例 115
第4章 CPLD/FPGA常用开发工具 116
4.1 集成开发工具MAX+plus Ⅱ 116
4.1.1 功能与菜单说明 116
4.1.2 MAX+plusⅡ设计过程 120
4.1.3 MAX+plusⅡ综合设计选择项 135
4.2 集成开发工具Xilinx Foundation 147
4.2.1 Foundation简介 147
4.2.2 Foundation设计流程简介 148
4.3 集成开发软件Xilinx ISE 149
4.4 硬件开发工具Quartus Ⅱ 151
4.4.1 QuartusⅡ功能与使用说明 151
4.4.2 QuartusⅡ设计流程 154
4.4.3 QuartusⅡ设计输入 154
4.4.4 QuartusⅡ编译 157
4.4.5 QuartusⅡ定时分析、仿真与器件编程 159
4.5 本章小结 161
第二篇 常用模块设计实例篇 164
第5章 基本门逻辑实例模块设计 164
5.1 实例说明 164
5.2 硬件电路结构图 165
5.2.1 与门 165
5.2.2 或门 165
5.2.3 与或非衍变的逻辑门 166
5.3 软件设计 166
5.3.1 VHDL编程 166
5.3.2 时序仿真 169
5.4 实例总结 170
第6章 编码器实例模块设计 171
6.1 实例说明 171
6.2 硬件电路结构图 172
6.2.1 8线/3线优先编码器74LS148 172
6.2.2 16线/4线优先编码器 172
6.3 软件设计 173
6.3.1 VHDL编程 173
6.3.2 时序仿真 176
6.4 实例总结 177
第7章 译码器实例模块设计 178
7.1 实例说明 178
7.2 硬件电路结构图 179
7.2.1 3线/8线译码器74LS138 179
7.2.2 4线/16线译码器 179
7.2.3 BCD-七段译码器SN7488 180
7.2.4 LED显示译码器MC14495 181
7.3 软件设计 182
7.3.1 VHDL编程 182
7.3.2 时序仿真 185
7.4 实例总结 186
第8章 选择器实例模块设计 187
8.1 实例说明 187
8.2 硬件电路结构图 188
8.2.1 2选1电路 188
8.2.2 3选1电路 188
8.2.3 4选1电路 189
8.3 软件设计 189
8.3.1 VHDL编程 189
8.3.2 时序仿真 192
8.4 实例总结 194
第9章 运算器实例模块设计 195
9.1 实例说明 195
9.2 硬件电路结构图 195
9.2.1 加法器 195
9.2.2 乘法器 197
9.2.3 除法器 198
9.3 软件设计 198
9.3.1 VHDL编程 198
9.3.2 时序仿真 206
9.4 实例总结 209
第10章 移位寄存器实例模块设计 210
10.1 实例说明 210
10.2 硬件电路结构图 211
10.2.1 循环移位寄存器 211
10.2.2 串入串出移位寄存器 211
10.3 软件设计 212
10.3.1 VHDL编程 212
10.3.2 时序仿真 216
10.4 实例总结 218
第11章 计数器实例模块设计 219
11.1 实例说明 219
11.2 硬件电路结构图 220
11.2.1 8位二进制计数器 220
11.2.2 8位扩展16位二进制计数器 221
11.2.3 六进制约翰逊计数器 221
11.2.4 六十进制计数器 222
11.3 软件设计 223
11.3.1 VHDL编程 223
11.3.2 时序仿真 232
11.4 实例总结 233
第12章 状态机实例模块设计 234
12.1 实例说明 234
12.2 电路状态转移图 235
12.2.1 有限状态机 235
12.2.2 基于状态机的AD数模转换电路 236
12.2.3 基于状态机的序列检测器 237
12.3 软件设计 238
12.3.1 VHDL编程 238
12.3.2 时序仿真 245
12.4 实例总结 247
第13章 FIFO实例模块设计 248
13.1 实例说明 248
13.2 硬件电路结构图 248
13.2.1 堆栈 248
13.2.2 双口RAM 249
13.3 软件设计 250
13.3.1 VHDL编程 250
13.3.2 时序仿真 255
13.4 实例总结 257
第14章 存储器实例模块设计 258
14.1 实例说明 258
14.2 硬件电路结构图 259
14.2.1 ROM只读存储器 260
14.2.2 RAM随机存储器 261
14.3 软件设计 262
14.3.1 VHDL编程 262
14.3.2 时序仿真 268
14.4 实例总结 269
第15章 锁存器实例模块设计 270
15.1 实例说明 270
15.2 硬件电路结构图 271
15.2.1 D锁存器 271
15.2.2 三态锁存器 271
15.2.3 D触发器 271
15.3 软件设计 272
15.3.1 VHDL编程 272
15.3.2 时序仿真 275
15.4 实例总结 276
第16章 频率合成器实例模块设计 277
16.1 实例说明 277
16.2 硬件电路结构图 278
16.2.1 24位DDS频率合成器 278
16.2.2 32位DDS频率合成器 279
16.3 软件设计 279
16.3.1 VHDL编程 279
16.3.2 时序仿真 285
16.4 实例总结 287
第17章 分频器实例模块设计 288
17.1 实例说明 288
17.2 硬件电路结构图 288
17.2.1 半整数分频器 288
17.2.2 偶数与奇数分频器 289
17.3 软件设计 289
17.3.1 VHDL编程 289
17.3.2 时序仿真 294
17.4 实例总结 295
第18章 脉冲控制器实例模块设计 296
18.1 实例说明 296
18.2 硬件电路结构图 296
18.2.1 并行脉冲控制 296
18.2.2 交通信号控制 297
18.2.3 电压脉冲控制 298
18.3 软件设计 301
18.3.1 VHDL编程 301
18.3.2 时序仿真 309
18.4 实例总结 311
第三篇 综合系统设计实例篇 314
第19章 信号调制通信系统设计实例 314
19.1 实例内容说明 314
19.2 系统硬件电路设计 316
19.2.1 分频器与数据选择器 316
19.2.2 m序列产生器 316
19.2.3 正弦波信号 317
19.2.4 FSK/PSK信号调制器 318
19.3 系统软件设计 318
19.3.1 VHDL编程 318
19.3.2 时序仿真 328
19.4 系统仿真和调试 328
19.4.1 弹跳消除电路 328
19.4.2 输出波形的观察 330
19.5 实例总结 330
第20章 FPGA语音通信平台设计实例 331
20.1 实例内容说明 331
20.2 系统硬件电路设计 331
20.2.1 语音采集 331
20.2.2 硬件电子琴 333
20.2.3 语音通信电路 335
20.2.4 语音播放平台 336
20.3 系统软件设计 337
20.3.1 VHDL编程 337
20.3.2 时序仿真 359
20.4 系统调试 360
20.4.1 硬件电子琴电路的调试 360
20.4.2 语音通信电路的调试 360
20.5 实例总结 362
第21章 USB接口应用系统设计实例 363
21.1 实例内容说明 363
21.2 系统硬件电路设计 364
21.2.1 USB主从系统 364
21.2.2 USB接口芯片 367
21.2.3 USB与FPGA互连 370
21.3 系统软件设计 370
21.3.1 VHDL编程 370
21.3.2 USB固件设计 381
21.4 系统调试 390
21.5 实例总结 393
第22章 FPGA视频处理系统设计实例 394
22.1 实例内容说明 394
22.2 系统硬件电路设计 395
22.2.1 双处理系统 395
22.2.2 视频采集模块 397
22.3 系统软件设计 400
22.3.1 视频数据采集VHDL编程 400
22.3.2 视频数据压缩处理 403
22.3.3 时序仿真 422
22.4 系统调试 423
22.5 实例总结 424
附录A CPLD/FPGA术语汇编 425
附录B 常用FPGA的端口资源 433