第一篇 模块设计 2
第1章 模块 2
1.1模块结构 2
1.2模块的三大架构概述 4
第2章 计数器架构 6
2.1计数器架构八步法 6
2.1.1计数器规则 6
2.1.2第一步:明确功能 9
2.1.3第二步:功能波形 10
2.1.4第三步:计数结构 10
2.1.5第四步:加1和结束条件 11
2.1.6第五步:定义特殊点 12
2.1.7第六步:完整性检查 12
2.1.8第七步:计数器代码 13
2.1.9第八步:功能代码 14
2.1.10总结 16
2.2计数器项目实践 16
2.2.1 PW M流水灯项目 16
2.2.2 U A RT接口项目 22
2.2.3 V G A接口项目 34
2.2.4 SCCB(IIC)接口项目 42
第3章 状态机架构 54
3.1状态机架构八步法 54
3.1.1状态机规则 54
3.1.2第一步:明确功能 58
3.1.3第二步:输出分析 58
3.1.4第三步:状态合并 59
3.1.5第四步:状态转移 60
3.1.6第五步:转移条件 60
3.1.7第六步:完整性检查 63
3.1.8第七步:状态机代码 63
3.1.9第八步:功能代码 67
3.1.10总结 68
3.2状态机项目实践 68
3.2.1简易报文类型识别器项目 68
3.2.2 SPI接口项目 78
3.2.3 SDRAM接口项目 88
第4章 FIFO架构 112
4.1 FIFO架构八步法 112
4.1.1概述 112
4.1.2第一步:确认FIFO架构 123
4.1.3第二步:读状态 124
4.1.4第三步:读状态启动和结束条件 124
4.1.5第四步:信息FIFO读清条件 125
4.1.6第五步:生成FIFO的IP核 125
4.1.7第六步:其他信号的产生条件 125
4.1.8第七步:FIFO代码 126
4.1.9第八步:其他信号代码 127
4.1.10总结 129
4.2 FIFO项目实践 129
4.2.1报文汇聚模块项目 129
4.2.2以太网切包模块项目 134
4.2.3 UDP打包模块项目 142
第二篇 模块划分 158
第5章 模块划分核心知识 158
5.1模块划分概述 158
5.1.1模块划分原则 158
5.1.2模块划分端口规范 159
5.2模块划分过程 159
5.2.1模块划分思路 159
5.2.2模块的端口及模块之间的数据流向 162
第6章 模块划分常用架构及项目实践 164
6.1直接交互架构 164
6.2无缓存rdy交互架构 165
6.3有缓存rdy交互架构 165
6.4请求-应答交互架构 165
6.5外设交互架构 167
6.6模块划分项目实践 167
6.6.1 AT93C46的存储与读取项目 167
6.6.2温度采集与显示项目 170
6.6.3 OV7670图像采集项目 172
第三篇 项目实践 176
第7章 基于FPGA的温度监控系统 176
7.1背景介绍 176
7.2项目要求 176
7.3基本原理 179
7.3.1 PC端(串口调试助手) 179
7.3.2温度传感器DS18B20 179
7.3.3数码管显示 181
7.3.4蜂鸣器 183
7.4设计方案 183
7.5 FPGA设计实现 187
7.5.1硬件 187
7.5.2 Verilog代码设计 188
7.6功能仿真 222
7.7板级调试 227
7.8总结 227
第8章 基于FPGA的图像边缘检测系统 228
8.1背景介绍 228
8.2设计要求 228
8.3基本原理 229
8.3.1 PLI 229
8.3.2 OV7670配置与采集 233
8.3.3灰度转换 234
8.3.4高斯滤波 235
8.3.5 Sobel边缘检测 237
8.3.6乒乓操作 238
8.4设计方案 239
8.5 FPGA设计实现 241
8.5.1硬件 241
8.5.2 Verilog代码设计 242
8.6功能仿真 279
8.7板级调试 286
8.8总结 287
参考文献 288