基于FPGA的ov7670摄像头显示
FPGA中主要模块包含:时钟模块、OV7670初始化模块、DVP协议数据流模块、写FIFO模块、写FIFO控制模块、SDRAM控制模块、读FIFO模块、读FIFO控制模块、VGA控制模块。
其中OV7670初始化模块、DVP协议数据流模块和VGA控制模块都在本专题博客中写过,这里不再赘述。写FIFO和读FIFO模块使用的IP核,都是宽度16位,长度256,其中读FIFO使用的是showahead模式。SDRAM控制器漆面的博客也写过,这边做了一些改动,添加了一些需要的信号。
其整体流程为:启动时先对摄像头进行初始化设置,初始化完成后,FPGA从摄像头获取一帧一帧的图像数据,根据数
基于FPGA的DDS信号发生器设计(频率、幅度、波形可调)
具体看博客:https://blog.csdn.net/qq_33231534/article/details/108424647
DDS全称为直接数字频率合成(Direct Digital Synthesis),其基本原理是在一个周期波形数据下,通过选取其中全部数据或抽样部分数据组成新的波形,由奈奎斯特采样定理可知,最低两个采样点就可以组成一个波形,但实际上最少需要4个点。其原理框图如下
基于FPGA的EEPROM读写系统
I2C接口器件EEPROM读写系统设计,包括串口发送模块,串口接收模块、fifo存储模块,fifo控制模块,I2C写控制模块,I2C读控制模块,I2C模块等。
EEPROM器件在FPGA上进行读写,以及接口设计和调试系统进行具体叙述。本实验平台使用的是小梅哥的AC620开发板,FPGA芯片是cyclone IV EP4CE10F17C8N。
UM1020_datasheet(I2C).pdf
I2C总线数据手册,恩智浦半导体公司的UM1020。
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。
I2C总线是公认的世界标准,由50多家公司生产超过1000个不同的地方实施的集成电路。此外,通用的i2c总线用于各种控制体系结构,如系统管理总线(SMBus),电源管理总线(PMBus),智能平台管理接口(IPMI),显示器数据通道(DDC)和高级电信计算架构(ATCA)。
基于FPGA的数据采集系统(资料齐全,代码备注)
基于FPGA的数据采集系统。
主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换的数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。
该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、DAC驱动模块、ADC驱动模块、同步FIFO模块、FIFO控制模块、串口发送模块。各个模块的作用如下:
(1)串口接收模块(UART_Byte_Rx.v):完成串口数据接收,将串行数据转换成并行数据输出。
(2)按键消抖模块(key_filter.v):进行按键消抖,可输出一个脉冲按键按下标志和按键按下时间标志。
(3)按键控制模块(key_ctrl.v):当在DA一直输出模拟信号时,按下按键控制ADC转换100次。
(4)ROM模块(single_port_rom.v):存储DA转换的数据,可存放正弦波形数据。
(5)DAC驱动模块(dac_driver.v):数模转换驱动模块,与外部DAC芯片相连,提供DAC芯片时钟和数据信号等。
(6)ADC驱动模块(adc_driver.v):模数转换驱动模块,与外部ADC芯片相连,提供ADC芯片时钟和控制信号等。
(7)同步FIFO模块(sync_fifo.v):存放ADC转换后的数据。
(8)FIFO控制模块(fifo_ctrl.v):当FIFO中有数据时,将FIFO中的数据转换成可以UART串口发送的数据。
(9)串口发送模块(Uart_Byte_Tx.v):经过FIFO控制模块转换的数据通过串口发送模块发送到串口,显示在pc端。
(10)DAC控制模块(dac_ctrl.v):当接收串口指定的指令时,开始将ROM的正弦数据进行DAC转换。
IS42S1_datasheet.pdf
ISSI公司的IS42S16400F或IC42S16400F型号的SDRAM芯片,里边添加了重要信息标注,方便阅读理解数据手册。
1)时钟频率:200,166,143MHz)
(2)完全同步,时钟上升沿输出数据
(3)3.3V供电
(4)可编程冲突长度(1,2,4,8,全页)
(5)每64ms刷新4096次
(6)可编程cas延时(2,3个时钟周期)(这里后边会讲)
(7)突发读写或单读写
(8)字节由LDQM和UDQM控制
(9)存储量1Mbit * 16bit * 4Bank = 64Mbit
存储深度:IS42S16400F有4个块,行地址12bit,列地址8bit。所以每个块有2^12 * 2^8 = 4096 * 256 = 1,048,576
存储宽度:每个存储单元16bit
存储容量:4 * 1,048,576 * 16 = 64Mbit
verilog2001.uew
使用UltraEdit25.20.0.88进行Verilog语言编辑配置方式(详细)
UltraEdit版本为25.20.0.88,其他版本也适用。
1. 将文件用UltraEdit打开,将第一行 = (* Block Comment Off Alt = *) 文本删除,否则写Verilog语法的组合逻辑将会被注释。
2. 将下载的文件verilog2001.uew放置在软件目录下wordfiles下,重启软件打开就OK了。
wordfiles目录查找方法:
(1)打开UltraEdit->高级->设置
(2)右侧导航栏->编辑器显示->语法高亮->文档的完整目录名称