第1章 Verilog HDL语法简介 017
1.1 Verilog HDL中基本的模块结构 017
1.2 Verilog HDL基础语法 020
1.2.1 注释 020
1.2.2 变量和数据类型 020
1.2.3 进程和语句 021
1.2.4 赋值 021
1.2.5 预编译指令 022
1.3 Verilog-2005标准改进说明 023
1.3.1 端口声明“三合一” 023
1.3.2 敏感变量列表描述方式的改进 024
1.3.3 矢量位选择方式的改进 024
1.3.4 parameter声明和值传递方式的改进 025
1.3.5 generate语句的使用 026
1.3.6 矢量化方式例化模块 028
1.4 基础功能单元的Verilog HDL建模 028
1.4.1 同步器 029
1.4.2 沿检测器 030
1.4.3 扩展器 031
1.4.4 任意时钟域之间的沿同步器 033
1.4.5 序列检测器 035
1.4.6 去抖处理 039
1.5 小结 043
第2章 PWM控制LED灯效 045
2.1 LED概述 045
2.2 LED常见灯效说明 046
2.2.1 常亮、常灭 046
2.2.2 流水灯/跑马灯 046
2.2.3 闪烁 046
2.3 脉宽调制概述 047
2.4 LED灯效演示操作环境 049
2.4.1 硬件环境 049
2.4.2 软件开发环境 051
2.5 LED常亮 051
2.5.1 LED常亮工程 051
2.5.2 Quartus的操作 052
2.6 时钟源的选择和使用 054
2.6.1 MAX10内置振荡器的使用 055
2.6.2 实现流水灯效果 057
2.6.3 用板载高精度晶振作为时钟源 059
2.6.4 高手进阶:FPGA IP使用方法 061
2.7 LED高级灯效控制设计 062
2.7.1 LED闪烁效果的实现 062
2.7.2 LED亮度调节的实现 064
2.7.3 实现呼吸灯效果 067
2.7.4 高手进阶:模块化设计方法 069
2.8 PWM模块的应用 071
2.9 Quartus常见问题说明 073
2.9.1 【Pin Planner】窗口中没有列出端口信号 073
2.9.2 工程编译、分析不通过 074
2.10 小结 075
第3章 PWM控制蜂鸣器 077
3.1 声音和国际标准音高 077
3.2 蜂鸣器及其控制概述 079
3.3 蜂鸣器循环播放 081
3.3.1 节拍的控制 081
3.3.2 占空比的设置 081
3.3.3 设计框图说明 082
3.3.4 模块设计说明 082
3.4 高手进阶:模块的仿真 087
3.4.1 规格定义:设定仿真目标 088
3.4.2 仿真平台设计 090
3.4.3 仿真运行与结果检查 092
3.5 高手进阶:用状态机设计任意占空比的PWM信号产生模块 093
3.5.1 规格定义 093
3.5.2 方案设计 094
3.5.3 详细设计 096
3.5.4 模块功能仿真 098
3.6 小结 103
第4章 驱动七段数码管 105
4.1 数码管简介 105
4.2 字库 106
4.3 BCD码 107
4.3.1 二进制数转换为8421BCD码的算法说明 108
4.3.2 小数部分转换为8421BCD码 112
4.4 七段数码管驱动模块设计 113
4.4.1 字库模块设计 114
4.4.2 二进制数转换为8421BCD码的模块设计 115
4.4.3 子系统顶层模块设计 119
4.5 硬件系统验证 120
4.6 高手进阶:设计优化 122
4.7 小结 122
第5章 单总线温度传感器 123
5.1 单总线概述 123
5.2 温度传感器DS18B20概述 125
5.3 温度传感器DS18B20驱动设计 126
5.3.1 DS18B20操作流程说明 126
5.3.2 DS18B20操作流程层次化分解 130
5.3.3 DS18B20驱动子系统的层次化模块设计 132
5.4 数字温度计系统设计 152
5.4.1 双向管脚的建模 154
5.4.2 温度计的七段数码管驱动建模 156
5.4.3 数字温度计的系统验证 159
5.5 高手进阶 159
5.5.1 设计优化 159
5.5.2 用状态机实现物理层处理 160
5.5.3 FPGA管脚结构分析 167
5.6 小结 168
第6章 UART串口 169
6.1 串口简介 169
6.2 串口调试系统设计 171
6.2.1 系统设计 171
6.2.2 系统设计优化 172
6.2.3 串口驱动子系统设计 173
6.2.4 七段数码管驱动模块 187
6.2.5 DS18B20驱动模块 188
6.2.6 串口调试系统顶层模块设计 188
6.3 串口调试注意事项 191
6.4 高手进阶 191
6.5 小结 192
第7章 用FPGA点亮显示屏 193
7.1 SPI简介 193
7.2 OLED屏简介 194
7.2.1 SPI显示驱动芯片SSD1306 195
7.2.2 显示模组的操作 197
7.2.3 SSD1306的外部接口 200
7.3 ZJY091S模组显示驱动模块设计 201
7.3.1 字库 202
7.3.2 OLED模块驱动层次设计 203
7.4 高手进阶 219
7.5 小结 220
第8章 ADC和DAC 221
8.1 ADC和DAC简介 221
8.2 电压计的设计实现 222
8.2.1 ADS7868数字转换结果读取 222
8.2.2 七段数码管驱动模块 227
8.2.3 电压计顶层模块设计 229
8.3 高手进阶 230
8.4 小结 231