第1章 可编程器件发展简史与基本概念 1
1.1 可编程器件的由来与发展 1
1.2 FPGA/CPLD与Verilog/VHDL 3
1.3 设计方式与工具链 4
1.4 应用领域和发展趋势 6
第2章 实验平台板级设计 8
2.1 FPGA/CPLD板级电路设计五要素 8
2.1.1 能量供应——电源电路 9
2.1.2 心脏跳动——时钟电路 11
2.1.3 状态初始——复位电路 12
2.1.4 灵活定制——配置电路 13
2.1.5 自由扩展——外设电路(I/O应用) 14
2.2 CPLD实验板DIY 14
2.2.1 读懂器件手册 14
2.2.2 CPLD核心电路设计 19
2.2.3 外设扩展电路设计 25
2.2.4 I/O引脚分配 30
第3章 数字电路基础 36
3.1 0和1——精彩世界由此开始 36
3.2 表面现象揭秘——逻辑关系 39
3.3 内里本质探索——器件结构 43
第4章 Verilog与VHDL语法基础 48
4.1 语法学习的经验之谈 48
4.2 可综合的语法子集 50
4.2.1 可综合的Verilog语法 51
4.2.2 可综合的VHDL语法 56
4.3 代码风格与书写规范 60
4.3.1 代码书写规范 61
4.3.2 代码风格 63
第5章 第一个完整的工程实践案例 81
5.1 软件开发平台搭建 81
5.1.1 软件下载和License申请 81
5.1.2 Quartus 11的安装 85
5.1.3 ModelSim的安装 88
5.2 基本开发流程概述 90
5.3 第一个工程实例 91
5.3.1 工程创建与设计输入 92
5.3.2 行为仿真 97
5.3.3 引脚分配与编译 104
5.3.4 门级仿真 106
5.3.5 板级调试 109
第6章 基础实验与拓展练习 112
6.1 基于时钟分频的PWM发生器 112
6.1.1 实验原理分析 112
6.1.2 Verilog参考实例 113
6.1.3 VHDL参考实例 114
6.1.4 仿真验证与板级调试 115
6.1.5 实验流程与注意事项 117
6.1.6 拓展练习 120
6.2 经典的按键消抖实例 121
6.2.1 实验原理分析 121
6.2.2 Verilog参考实例 123
6.2.3 VHDL参考实例 124
6.2.4 仿真验证与板级调试 126
6.2.5 实验流程与注意事项 130
6.2.6 拓展练习 131
6.3 基于Johnson计数器的流水灯实验 131
6.3.1 实验原理分析 131
6.3.2 Verilog参考实例 132
6.3.3 VHDL参考实例 135
6.3.4 仿真验证 138
6.3.5 实验流程与注意事项 143
6.3.6 拓展练习 143
6.4 数码管驱动显示实验 144
6.4.1 实验原理分析 144
6.4.2 Verilog参考实例 146
6.4.3 VHDL参考实例 148
6.4.4 仿真验证 149
6.4.5 实验流程与注意事项 152
6.4.6 拓展练习 154
6.5 乘法器设计实验 155
6.5.1 实验原理分析 155
6.5.2 Verilog参考实例 156
6.5.3 VHDL参考实例 157
6.5.4 仿真验证 158
6.5.5 实验流程与注意事项 161
6.5.6 拓展练习 161
6.6 VGA显示驱动实验 161
6.6.1 实验原理分析 161
6.6.2 Verllog参考实例 163
6.6.3 VHDL参考实例 165
6.6.4 仿真验证 168
6.6.5 实验流程与注意事项 169
6.6.6 拓展练习 170
6.7 UART串口收发实验 170
6.7.1 实验原理分析 170
6.7.2 Verilog参考实例 171
6.7.3 VHDL参考实例 180
6.7.4 仿真验证 188
6.7.5 实验流程与注意事项 190
6.7.6 拓展练习 191
6.8 PS/2键盘解码实验 192
6.8.1 实验原理分析 192
6.8.2 Verilog参考实例 194
6.8.3 VHDL参考实例 198
6.8.4 仿真验证 203
6.8.5 实验流程与注意事项 207
6.8.6 拓展练习 207
6.9 基于I2C通信的EEPROM读/写实验 208
6.9.1 实验原理分析 208
6.9.2 Verilog参考实例 210
6.9.3 VHDL参考实例 222
6.9.4 仿真验证 235
6.9.5 实验流程与注意事项 241
6.9.6 拓展练习 241
6.10 SRAM读/写测试实验 242
6.10.1 实验原理分析 242
6.10.2 Verilog参考实例 244
6.10.3 VHDL参考实例 247
6.10.4 仿真验证 251
6.10.5 实验流程与注意事项 253
6.10.6 拓展练习 254
第7章 器件资源应用实例 255
7.1 MAX Ⅱ内部振荡时钟使用实例 255
7.2 MAX Ⅱ的UFM模块使用实例 258
参考文献 263