《手把手教你学FPGA设计:基于大道至简的至简设计法》介绍利用硬件描述语言设计数字系统的方法,提出计数器、状态机、FIFO的三大架构,采用理论与实践相结合方式,详细介绍各个架构的实现步骤——“八步法”,并配以相应的项目练习
目录
- 第一篇模块设计 1
- 第一章模块 2
- §1.1 模块结构 2
- §1.2 模块三大架构 4
- 1.2.1 计数器架构 4
- 1.2.2 状态机架构 4
- 1.2.3 FIFO架构 4
- 第二章计数器架构 5
- §2.1 计数器架构八步法 5
- 2.1.1 概述 5
- 2.1.2 第一步:明确功能 8
- 2.1.3 第二步:功能波形 8
- 2.1.4 第三步:计数结构 8
- 2.1.5 第四步:加一结束条件 9
- 2.1.6 第五步:定义特殊点 10
- 2.1.7 第六步:完整性检查 11
- 2.1.8 第七步:计数器代码 12
- 2.1.9 第八步:功能代码 12
- 2.1.10总结 13
- §2.2 项目实践 14
- 2.2.1 项目一:PWM流水灯 14
- 2.2.2 项目二:UART接口 19
- 2.2.3 项目三:VGA接口 30
- 2.2.4 项目四:SCCB(IIC)接口 37
- 第三章状态机架构 47
- §3.1 状态机架构八步法 47
- 3.1.1 概述 47
- 3.1.2 第一步:明确功能 50
- 3.1.3 第二步:输出分析 50
- 3.1.4 第三步:状态合并 51
- 3.1.5 第四步:状态转移 52
- 3.1.6 第五步:转移条件 53
- 3.1.7 第六步:完整性检查 54
- 3.1.8 第七步:状态机代码 55
- 3.1.9 第八步:功能代码 58
- 3.1.10总结 58
- §3.2 项目实践 59
- 3.2.1 项目一:简易包文类型识别器 59
- 3.2.2 项目二:SPI接口 67
- 3.2.3 项目三:SDRAM接口 76
- 第四章FIFO架构 95
- §4.1 FIFO架构八步法 95
- 4.1.1 概述 95
- 4.1.2 第一步确认FIFO架构 104
- 4.1.3 第二步读状态 105
- 4.1.4 第三步读状态启动和结束条件 106
- 4.1.5 第四步信息FIFO读清条件 106
- 4.1.6 第五步生成FIFO IP核 107
- 4.1.7 第六步其他信号产生条件 107
- 4.1.8 第七步FIFO代码 107
- 4.1.9 第八步其他信号代码 108
- 4.1.10 总结 109
- §4.2 FIFO项目实践 110
- 4.2.1 项目一:包文汇聚模块 110
- 4.2.2 项目二:以太网切包模块 114
- 4.2.3 项目三:UDP打包模块 120
- 第二篇模块划分 132
- 第五章模块划分核心知识 133
- §5.1 模块划分概述 133
- 5.1.1 模块划分原则 133
- 5.1.2 模块划分端口规范 133
- §5.2 模块划分过程 134
- 5.2.1 模块划分思路 134
- 5.2.2 模块的端口及模块之间数据流向 136
- 第六章模块划分常用架构 138
- §6.1 直接交互架构 138
- §6.2 无缓存rdy交互架构 138
- §6.3 有缓存rdy交互架构 139
- §6.4 请求应答交互架构 139
- §6.5 外设交互架构 140
- §6.6 项目实践 141
- 6.6.1 项目一:AT93C46的存储与读取 141
- 6.6.2 项目二:温度采集与显示 143
- 6.6.3 项目三:OV7670图像采集 145
- 第三篇项目实践 148
- 第七章基于FPGA的温度监控系统 149
- §7.1 背景介绍 149
- §7.2 项目要求 149
- §7.3 基本原理 151
- 7.3.1 PC端(串口调试助手) 151
- 7.3.2 温度传感器DS18B20 152
- 7.3.3 数码管显示 154
- 7.3.4 蜂鸣器 155
- §7.4 设计方案 155
- §7.5 FPGA 设计实现 159
- 7.5.1 硬件 159
- 7.5.2 verilog代码设计 160
- §7.6 功能仿真 187
- §7.7 板级调试 192
- §7.8 总结 192
- 第八章基于FPGA的图像边缘检测系统 193
- §8.1 背景介绍 193
- §8.2 设计要求 193
- §8.3 基本原理 193
- 8.3.1 PLL 193
- 8.3.2 OV7670配置与采集 197
- 8.3.3 灰度转换 198
- 8.3.4 高斯滤波器 200
- 8.3.5 SOBEL边缘检测原理 201
- 8.3.6 乒乓操作原理 202
- §8.4 设计方案 203
- §8.5 FPGA设计实现 205
- 8.5.1 硬件 205
- 8.5.2 verilog代码设计 206
- §8.6 功能仿真 234
- §8.7 板级调试 242
- §8.8 总结 242