第1章 FPGA与数字系统设计 1
1.1现场可编程逻辑器件 1
1.1.1概述 1
1.1.2FPGA发展历史 1
1.1.3FPGA芯片的结构 3
1.2数字系统设计方法 6
1.2.1数字系统的基本组成 6
1.2.2数字系统的结构化设计方法 7
1.2.3数字系统设计实例 8
1.3基于FPGA的数字系统设计流程 12
1.4基于FPGA的数字系统的调试 15
1.4.1数字系统的调试 15
1.4.2选择合适的FPGA调试方法 18
第2章 Verilog HDL 20
2.1初识Verilog HDL 20
2.1.1概述 20
2.1.2Verilog HDL的基本结构 20
2.2Verilog HDL的基础知识 22
2.2.1词法 22
2.2.2常量 24
2.2.3数据类型和变量 25
2.2.4参数 26
2.2.5模块端口类型 27
2.2.6运算符及优先级 27
2.3Verilog HDL的描述语句 31
2.3.1数据流描述语句 31
2.3.2行为描述语句 32
2.3.3Verilog描述风格及层次化设计 39
2.3.4编译预处理指令 43
2.4有限状态机的描述 44
2.4.1状态机的结构 44
2.4.2状态机的Verilog HDL描述方法 45
2.5设计举例与技巧 48
2.5.1常用组合电路的设计 48
2.5.2常用时序电路的设计 51
2.5.3数字系统设计实例 54
第3章 testbench的编写 61
3.1概述 61
3.2testbench的结构形式 61
3.2.1testbench的基本结构 61
3.2.2testbench结构实例详解 62
3.3常用的系统任务和系统函数 65
3.4testbench的激励和响应 67
3.4.1testbench的激励方式 67
3.4.2仿真结果分析方式 69
3.5常用激励信号的一些描述形式 69
3.6testbench实例 72
3.6.1组合乘法器实例 72
3.6.2视频显示接口仿真实例 74
3.6.3PS2键盘接口电路实例 77
3.6.4PS2鼠标接口电路实例 80
第4章 数字系统实验平台的使用 84
实验1ModelSim仿真软件的使用 84
实验2Vivado软件的使用 97
实验3IP内核的使用与仿真 109
实验4ILA的逻辑分析仪实验 123
第5章 数字系统设计的基础实验 130
实验5常用组合电路模块的设计和应用 130
实验6浮点数加法器的设计 136
实验7常用时序电路模块的设计和应用 141
实验8快速加法器的设计 146
实验9快速乘法器的设计 150
实验10学号滚动显示实验 156
实验11异步输入的同步器和开关防颤动电路的设计 160
第6章 数字系统综合设计实验 166
实验12数字式秒表 166
实验13低频数字式相位测量仪的设计 170
实验14全数字锁相环的设计 176
实验15直接数字频率合成技术(DDS)的设计与实现 181
实验16基于FPGA的FIR数字滤波器的设计 186
实验17数字下变频器(DDC)的设计 191
实验18音频编解码芯片接口设计 195
实验19音乐播放实验 209
实验20基于FPGA的实时语音变声系统的设计 221
实验21HDMI显示器接口设计实验 230
实验22键盘接口实验 239
实验23鼠标接口实验 248
实验24文本输入与显示实验 254
实验25动态显示实验 260
实验26点灯游戏的设计 266
实验27推箱子游戏的设计 272
第7章 CPU设计 279
实验28多周期MIPS微处理器设计 279
实验29流水线MIPS微处理器设计 299
附录A Basys3开发板的使用 314
A.1FPGA主芯片介绍 315
A.2电源电路 315
A.3时钟电路 315
A.4基本I/O接口 316
A.5数码管电路 316
A.6I/O扩展电路 317
A.7USB-UART桥接电路 318
A.8USB HID Host 318
A.9VGA接口 318
A.10FPGA调试及配置电路 319
附录B Nexys Video开发板的使用 320
B.1FPGA主芯片介绍 321
B.2电源电路 321
B.3时钟电路 322
B.4基本I/O接口 322
B.5I/O扩展电路 323
B.6音频编解码(CODEC)接口电路 323
B.7USB-UART桥接电路 324
B.8USB HID Host 324
B.9HDMI接口 325
B.10FPGA调试及配置电路 325
附录C ASCII码表 326
附录D 仿真环境的建立 328
参考文献 332