本资源包含OV7725摄像头与VGA显示实验的Verilog代码和Quartus工程文件,适用于FPGA开发学习,帮助用户掌握图像采集与处理技术。
OV7725摄像头与VGA显示的实验Verilog设计适用于Quartus 18.0版本,并使用Altera Cyclone4E系列中的EP4CE10F17C8 FPGA型号。
模块定义如下:
```verilog
module ov7725_rgb565_640x480_vga(
input sys_clk, //系统时钟
input sys_rst_n, //系统复位,低电平有效
//摄像头接口
input cam_pclk, //cmos 数据像素时钟
input cam_vsync, //cmos 场同步信号
input cam_href, //cmos 行同步信号
input [7:0] cam_data, //cmos 数据
output cam_rst_n, //cmos 复位信号,低电平有效
output cam_sgm_ctrl, //cmos 时钟选择信号, 1:使用摄像头自带的晶振
output cam_scl, //cmos SCCB_SCL线
inout cam_sda //cmos SCCB_SDA线
//SDRAM接口
,output sdram_clk, //SDRAM 时钟
output sdram_cke, //SDRAM 时钟有效
output sdram_cs_n, //SDRAM 片选
output sdram_ras_n, //SDRAM 行有效
output sdram_cas_n, //SDRAM 列有效
output sdram_we_n, //SDRAM 写有效
output [1:0] sdram_ba ,//SDRAM Bank地址
output [1:0] sdram_dqm,//SDRAM 数据掩码
output [12:0] sdram_addr ,//SDRAM 地址
inout [15:0] sdram_data //SDRAM 数据
//VGA接口
,output vga_hs, //行同步信号
output vga_vs, //场同步信号
output [15:0] vga_rgb //红绿蓝三原色输出
);
```
参数定义如下:
```verilog
parameter SLAVE_ADDR = 7h21 ; //OV7725的器件地址7h21
parameter BIT_CTRL = 1b0 ; //OV7725的字节地址为8位,0:8位, 1:16位
parameter CLK_FREQ = 25_000_000; //i2c_dri模块的驱动时钟频率,25MHz
parameter I2C_FREQ = 250_000 ; //I2C的SCL时钟频率,不超过400KHz
parameter CMOS_H_PIXEL = 640 ;//CMOS水平方向像素个数,用于设置SDRAM缓存大小
parameter CMOS_V_PIXEL = 480 ; //CMOS垂直方向像素个数,用于设置SDRAM缓存大小
```
信号定义如下:
```verilog
wire clk_100m; //100MHz时钟,SDRAM操作时钟
wire clk_100m_shift;//100MHz时钟偏移,重定时为SDRAM相位调整使用。
```