导图社区 FPGA学习-小梅哥
这是一篇关于FPGA学习-小梅哥的思维导图,主要内容包括:资料与环境,学习框架,学习总结。内容详实、条理清晰、易于理解。
编辑于2025-02-24 14:20:11FPGA学习-小梅哥
资料与环境
资料小梅哥的教程文档
环境
编程环境
quartus II 13.0
学习框架
第一章 从头认识 FPGA
Cyclone IV E FPGA 原理与应用
概述
三类基本资源
可编程逻辑功能块
可编程输出/输出(I/O)块 )
可编程内部互连资源
资源
锁相环PLL
M9K存储器
18*18硬件乘法器
容量
电路设计
电源设计
内核供电
PLL模拟供电
IO Bank供电
配置电路设计
主动串行方式
主动并行方式
被动串行方式
JTAG配置方式
Cyclone IV E 概述
Cyclone IV E 扩展资源介绍
1.1.2.1 锁相环 PLL
1.1.2.2 M9K 存储器
1.1.2.3 18*18 硬件乘法器
1.1.2.4 各容量等级资源数量介绍
重点电路设计
1.1.3.1 电源设计
1.1.3.2 配置电路设计
小结
Intel FPGA 开发环境
Quartus 软件发展史
Quartus Prime 下载
Quartus Prime 安装
Quartus Prime 基本使用
1.2.4.1 菜单栏
1.2.4.2 工具栏
1.2.4.3 工程导航
1.2.4.4 任务栏
1.2.4.5 文件窗口
1.2.4.6 IP 库
1.2.4.7 命令行输入窗口
1.2.4.8 信息窗口
1.2.4.9 常用操作
第二章 FPGA 开发软硬件平台介绍
AC620 开发套件介绍 ——板上资源
芯路恒 AC620 开发板功能特点
布局及组件
FPGA:EP4CE10F17C8
AC620 开发板器件资源
核心板接口资源
开发板使用
开发板烧写配置
JTAG配置
JIC配置
轻触按键
用户 LED
时钟输入
第一路由板载50MHz有源晶振提供
第二路由同轴接口输入
第三路集成在CMOS摄像头接口中
GPIO 接口
红外接收
SDRAM
256Mb的SDRAM存储器,该芯片与FPGA相连的数据总线位宽为16bits,166MHz
摄像头接口
IIC 总线(EEPROM+RTC+WM8731)
通用显示扩展接口
USB to UART
电源拓展端口
无源蜂鸣器驱动电路
音频编解码电路
HDMI/DVI 输出
以太网收发器
RS232 接口
12 位8 通道 ADC
12 位2 通道 DAC
7 段 8 位数码管
Intel FPGA 开发流程 (7步)
建立工程
文件夹
doc:设计相关文档存放目录
img:设计相关图片存放目录
prj:工程文件存放目录
ip:存放Quartus Prime中生成的IP核文件
rtl:Verilog可综合代码存放目录
testbench:测试文件存放目录
流程
新建项目
选择器件-处理器 型号
EDA工具的选择
综合工具
仿真工具
形式验证
板级验证
设计输入
新建Verilog HDL文件,编写代码,.v文件
分析和综合
全编译后可以在RTL Viewer中预览硬件逻辑电路
功能仿真
编写测试激励文件
验证以上的逻辑设计是否成功,编写.v文件
设置仿真脚本
设置TestBench为仿真脚本
启动仿真
仿真结果分析
综合与布局布线
时序仿真
IO 分配以及生成配置文件
配置 FPGA 下载
下载的是.sof文件
FPGA 设计的烧写与投产
FPGA 固件存储方案
使用主动串行配置(AS)
Cyclone IV E FPGA 固件烧写方案
专用AS接口
JTAG接口
烧写文件 JIC 的产生
将sof文件,转化为jic文件,再进行下载
第三章 FPGA基本数字逻辑设计
导读
组合逻辑电路
时序逻辑电路
组合逻辑电路设计之译码器
导读
组合逻辑电路在逻辑功能上的特点就是任意时刻的输出仅仅取决于该时刻的输入
译码器工作原理
认识
多输入和多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象,功能与编码器相反
例子:三八译码器
译码器 Verilog实现
激励创建及仿真测试
时序逻辑电路设计之计数器
导读
时序逻辑电路是指电路任何时刻的稳态输出不仅取决于当前的输入,还与前一时刻输入形成的状态有关。换句话说,时序逻辑存在存储元件来存储信息,而组合逻辑没有。
计数器工作原理
核心元件:触发器
基本功能:对脉冲进行计数
类型: 按技术方式:二进制、十进制 按触发器: 同步计数器与异步计数器
计数器 Verilog实现
仿真及板级验证
IP核应用之计数器
导读
Altera IP核包括了诸如逻辑和算术运算等简单的IP核
IP核创建流程
选择要使用的IP核,然后创建(设置参数、等的步骤)
仿真及板级验证
已生成 IP核参数的修改
Quartus II中 IP核参数的修改
BCD计数器设计与验证
导读
子主题 1
BCD码原理
BCD计数器 Verilog实现
激励创建及仿真测试
级联 BCD计数器设计与仿真
阻塞赋值与非阻塞赋值原理分析
导读
阻塞赋值
操作符:“=”
是指在进程语句(initial和always)中,当前赋值语句或阻断其后语句的正常运行,也就是说后面的语句必须等到当前的赋值语句执行完毕后才能执行。而且阻塞赋值可以看成是一步完成的,即:计算等号右边的值的并同时赋给左边的变量
非阻塞赋值
操作符:“<=”
“非阻塞”是在进程语句(initial和always)中,当前的赋值语句不会阻断其后语句的正常运行
不同赋值方式对比与实现
不同赋值方式仿真及测试
状态机设计实例
导读
全称:有限状态机,表示有限个状态以及在这些状态之间的转换和动作等行为的“数学模型”
状态机工作原理
分类
摩尔型有限状态机
只由输入确定的有限状态机(不直接依赖于当前状态)
米利型有限状态机
输出不止与其出入有关还于它的当前状态相关
状态机可根据控制信号暗中区域预设定的状态进行状态转换
状态机描述方式
字符串检测状态机实现
激励创建及仿真测试
独立按键消抖设计与验证
导读
针对大一点的工程,会针对不同的功能设计出不同的子文件,最后在顶层文件中再进行例化调用
按键物理结构及电路设计
硬件电路实现按键消抖
状态机实现按键消抖
模块接口设计
状态机转移状态以及条件设计
单 bit异步信号同步设计
边沿检测电路设计
计数器模块设计
状态机消抖设计
激励创建及仿真测试
任务及随机函数的使用.
模块化设计基础之加减法计数器
模块功能划分
模块功能设计
仿真及板级验证
8位 7段数码管驱动设计与验证
数码管驱动原理
三线制数码管电路设计
数码管动态扫描驱动设计
模块接口设计及内部功能划分
扫描时钟模块设计
数码管位选模块设计
数码管数据显示设计
显示数据译码设计
模块使能设计
数码管显示模块仿真测试
74HC595驱动设计
74HC595模块接口设计
74HC595驱动模块设计
74HC595驱动模块仿真测试
ISSP生成及使用
板级调试与验证
Quartus II中 ISSP使用方法
串口发送模块设计与验证
异步串行通信原理及电路设计
RS232通信接口标准
UART关键参数及时序图
RS232通信电路设计
UART驱动安装
UART异步串行通信发送模块设计与实现
串口发送模块接口设计
波特率时钟生成模块设计
数据输出模块设计
数据传输状态控制模块设计
激励创建及仿真测试
按键控制串口发送设计
串口接收模块设计与验证
串口接收原理分析
UART异步串行通信接收模块设计与实现
串口接收模块接口设计
RS232串行输入信号同步设计
采样时钟生成模块设计
采样数据接收模块设计
数据状态判定模块设计
仿真及板级验证
FPGA矩阵键盘驱动设计与验证
矩阵键盘诞生的背景
矩阵键盘工作原理
矩阵键盘扫描逻辑设计
矩阵键盘检测状态转移图
仿真验证
板级调试
硬件介绍:
FPGA的片上弱上拉电阻设置
目标板验证
总结
第四章 FPGA片上专用资源使用
嵌入式 RAM使用之双端口 RAM
Cyclone IV体系结构及嵌入式存储器原理
嵌入式存储器结构由一系列的M9K存储器模块组成,通过对这些M9K存储器模块进行配置,可以实现各种存储器功能,例如:ROM,移位寄存器、ROM等
IP核使用之 dpram
激励创建及仿真测试
搭建串口收发与存储双口 RAM简易应用系统
导读
RAM
系统模块功能划分及接口设计
模块划分
串口接受模块
按键消抖模块
RAM模块
串口发送模块
控制块
顶层文件设计
控制模块设计
仿真及板级验证
嵌入式 RAM使用之 ROM
导读
调试工具集
逻辑分析仪
信号探测器
逻辑分析接口
系统内存储器内容编辑器
系统内的源和探针
IP核使用之 ROM
激励创建及仿真测试
SignaTap II使用及板级验证
嵌入式块 RAM使用之 FIFO
FIFO相关知识
导读
FIFO(first in first out)先进先出
对数据的存储具有先进先出特征的一个缓冲器,常被用于数据的缓存或者告诉异步数据的交互
与普通存储器的区别:没有外部读写地址线,缺点只能顺序写入数据,顺序读出数据,其数据地址内部读写指针自动加1完成
FIFO结构
结构分类
单时钟SCFIFO
双时钟DCFIFO
普通双时钟
混合宽度双时钟
FIFO应用场景
单时钟FIFO
常用于片内数据交互
双时钟FIFO
异步数据的收发, 异步数据:是指发送端和接受端的分别使用不同的时钟域,使用双时钟的FIFO能够将不同时钟域中的数据同步到所需的时钟域系统中
FIFO常见参数
FIFO宽度
FIFO深度
满标志
空标志
读时钟
写时钟
实现 FIFO的方法
第一种:自己编写FIFO逻辑
第二种:使用第三方提供的开源的IP核
第三种: 使用Quartus提供的的FIFO IP核
IP核使用之 FIFO
单时钟 FIFO实现与测试
双时钟 FIFO实现与测试
PLL锁相环介绍与简单应用
导读
PLL(Phase Locked loop)相位锁定环路,也就是锁相环。
用来通过片外较低频率的晶振产生的时钟倍频得到较高频率的时钟信号供MCU内核和片上外设使用
PLL相关知识
PLL工作原理
PLL在 FPGA系统中应用
intel系列 FPGA的 PLL特性
IP核使用之 PLL
仿真及板级验证
第五章 FPGA进阶教学逻辑设计
无源蜂鸣器驱动设计与验证
无源蜂鸣器电路设计
无源蜂鸣器驱动原理
PWM发生器模块设计
仿真及板级验证
线性序列机与串行接口 DAC驱动设计与验证
DAC芯片概述及电路设计
TLV5618型 DAC内部工作原理
TLV5618型 DAC芯片引脚功能
TLV5618电路设计
TLV5618型 DAC芯片输出电压计算原理
TLV5618型 DAC接口时序
线性序列机设计思想与接口时序设计
基于线性序列机的 DAC驱动设计
仿真及板级测试
线性序列机与串行接口 ADC驱动设计与验证
ADC芯片概述及电路设计
ADC128S022型 ADC内部工作原理
ADC128S022型 ADC芯片引脚功能
ADC128S022电路设计
ADC128S022型 ADC接口时序
ADC128S022接口时序设计
基于线性序列机的 ADC驱动设计
仿真及板级测试
HT6221红外遥控解码设计与验证
红外遥控系统组成及电路设计
红外遥控协议分析(NEC协议)
红外解码模块设计
模块接口设计
解码模块关键功能分析与设计
红外解码状态机分析与设计
仿真及板级验证
TFT显示屏驱动设计与验证
TFT触摸屏驱动电路设计
RGB接口 TFT屏扫描方式
RGB接口 TFT屏时序分析
RGB接口 TFT屏驱动设计
模块接口设计
时序参数宏定义
行扫描计数器设计
场扫描计数器设计
行同步信号和场同步信号设计
数据输出状态设计
行列扫描位置输出设计
时钟及使能控制设计
仿真及板级验证
VGA控制器设计与验证
VGA标准介绍
VGA扫描方式
VGA标准时序分析
VGA控制器设计
行扫描计数器
场扫描计数器
行场同步信号
输出数据
输出行列扫描位置
输出数据锁存时钟信号
完整 VGA控制器设计
VGA控制器仿真验证
仿真结果分析
VGA控制器板级验证
第六章 FPGA综合数字系统设计
八通道数字电压表
数字电压表功能划分
按键输入模块
通道选择模块
ADC控制模块之 ADC128S022
数据预处理模块
码制转换模块
数码管驱动模块
顶层设计及板级验证
数字密码锁设计
实验原理
矩阵按键模块
密码比较模块
控制模块:
数码管显示模块
单点音频(1K正弦)输出实验
WM8731简介
WM8731芯片接口时序介绍
控制接口时序
数字音频接口时序
设计实例——单点音频(1K正弦)输出
实验目的
实验原理
设计详解
WM8731寄存器配置设置
正弦波生产
采样时钟设置
系统上电复位
工程顶层
板级调试与验证
编译工程
烧写测试
双通道幅频相可调 DDS信号发生器
DDS原理与实现
DDS基本原理
DDS模块功能设计
制作波形数据存储器
DDS模块仿真验证
数模转换器(DAC)驱动模块设计
TLV5618 DAC驱动模块
多通道数据输出实现
串口命令接收与解析
信号发生器之自定义帧
串口数据帧接收
串口数据解析
信号发生器顶层设计
系统测试
串口读写 EEPROM
I2C基本概念
I2C协议时序介绍
I2C器件地址
I2C存储器地址
I2C写时序
单字节写时序
I2C连续写时序(页写时序)
I2C读时序
单字节读时序
连续读时序(页读取)
I2C控制器设计
I2C控制器仿真验证
串口读写 EEPROM系统设计
串口读写 EEPROM仿真验证
串口读写 EEPROM板级验证
小结
基于串口猎人的虚拟示波器
系统结构
模块详解
Tx_Bps_Gen
Uart_Byte_Tx
Uart_Byte_Rx
CMD
仿真验证
基于串口猎人的板级验证
小结
SDRAM控制器设计
SDRAM基本概念
SDRAM存取原理
SDRAM器件引脚
SDRAM特性
SDRAM操作命令
禁止命令
空命令
加载模式寄存器命令
激活命令
读命令
写命令
预充电命令(PRECHARGE,用于关闭行)
自动预充电命令
突发终止命令
自动刷新命令
SDRAM操作时序
SDRAM上电初始化时序
SDRAM自刷新与自动刷新时序
不带自动预充电写操作时序
SDRAM控制器设计
刷新请求信号的产生:
写数据操作请求信号的产生:
SDRAM控制器仿真验证
SDRAM控制器设计优化
优化控制器仿真验证
小结
串口传图帧缓存设计
系统结构
仿真验证
板级验证
小结
第七章 FPGA图像处理设计实现
图像处理基础知识
图像变换
图像编码压缩
图像增强和复原
图像分割
图像描述
图像分类(识别)
RGB转灰度算法的实现
背景知识
图像类型
gray图像
YUV图像
Ycbcr图像
FPGA实现 RGB图像转 Gray图像方法
RGB图像转换成Ycber图像,使用Y分量去显示图像,来实现彩色图像转灰度图
中值滤波算法的实现
灰度图像均值滤波算法的实现
灰度图像高斯滤波算法的实现
sobel算子边缘检测算法的实现
第八章 USB2.0高速数据传输系统应用
FX2介绍
是一款集成USB2.0的微处理器,集成
可通过两个不同的模式将FX2连接至FPGA
通用可编程接口GPIF
FX2作为外部系统的主设备使用,它所生成的所用控制信号用于对外部系统进行读和写操作
从设备FIFO模式
连接至FX2的外部系统能够生成读和写控制信号,因此,它能作为FX2的主设备使用。
ACM68013模块介绍
安装 FX2开发软件
安装 CySuiteUSB_3_4_7_B204.exe
查看 CySuiteUSB_3_4_7_B204文件
安装 FX2固件开发软件 Keil
安装 FX2标准驱动程序
连接开发板和 USB模块
安装模块的驱动程序
烧写 USB2.0芯片固件
基于 ACM68103模块的应用
FX2芯片片上回环测试
片上回环模式介绍
烧写片上回环固件
测试数据回环发送
USB总线性能测试
基于 FX2片上回环的图像显示系统测试
基于 SlaveFIFO接口的 FPGA应用系统
基于 FPGA的 SlaveFIFO回送测试
基于 FPGA的 Stream_OUT测试
基于 Stream_OUT传输的 USB传图实验
基于 FPGA的 Stream_IN测试
基于 Stream_IN的 JPEG图像传输测试
基于 Stream_IN的 OV5640 USB摄像头实验
第九章 基于MC8051的片上系统
MC8051软核系统介绍
功能特点
顶层结构
设计层次
MC8051软核基本使用方法
MC8051软核必备组件配置
定时器/计数器、串口和中断
可选择的指令
ROM和 RAM模块的生成
MC8051软核系统综合编译
综合工程
查看 RTL图
MC8051 core在 AC620 FPGA开发板上实现
创建基于 AC620的应用工程
基于 Keil编程的 MC
学习总结
c1-l1
实际上是搭电路,只是换了语言来实现
掌握
流程、数电知识、实践
设计思想
考虑事务模块化,模块顺序化,顺序并行化
为什么是并行的
本质上就是电路,电路本身就是并行的
计算机是串行的是因为有应用上层封闭的特征
学号语法
将语法和实际的电路结构符合起来