设计说明:
本模块从数据采集模块接收16位rgb像素信号、像素时钟信号、摄像头主时钟信号与同步信号,以及主控所产生的VGA时钟信号(与CLK0相连)、复位信号、读和写控制信号等作为输入信号;
输入数据进入数据处理模块(黑盒),首先进行Sobel边缘检测使图像锐化后,得到VGA_data并进入vga显示模块;然后vga显示模块输出RGB565信号(Vgad[15:0])和行、场扫描控制信号(vga_hs、vga_vs),并且驱动sdram数据寄存模块,数据经过SDRAM缓存后,最终输出到VGA显示器上;
sdram数据寄存模块由sdbank_switch(存储区域控制模块)和sdram_2fifo_top两部分组成。其中sdbank_switch用于控制SDRAM存储器中的不同存储区域(bank),这是因为为了提高存储器的并行性能,SDRAM存储器被划分为多个bank,每个bank可以独立地进行读写操作;而sdram_2fifo_top用于管理数据在SDRAM和FIFO(First In, First Out)之间的传输和缓存,在接收到来自图像处理模块的数据后,将数据暂时缓存到FIFO中,然后将缓存在FIFO中的数据按照特定的时序和控制信号存储到SDRAM中,从而确保数据在各个模块之间的流动和存储是有序和稳定的,避免数据丢失或冲突。该模块输出SDRAM的系统时钟、时钟使能、片选、行、列地址选通、写使能、Bank地址、地址总线、数据总线、数据掩码等信号,用于控制数据的存储。
设计框图:
引脚含义:
类型 | 引脚名称 | 含义 |
输入 | clk_vga(CLK0) | 数据寄存与显示模块vga时钟输入信号 |
rst_n(sys_rst_n) | 复位信号 | |
clk_write | 数据寄存与显示模块写时钟输入信号 | |
frame_valid(CMOS_VALID) | 帧(场)同步信号。当此信号有效的时候就表示开始显示新的一帧数据 | |
sys_data_in[15:0](data_in[15:0]) | 数据处理模块处理后的rgb数据 | |
sys_we | 数据寄存与显示模块写允许输入信号 | |
clk_refout(CLK3) | 时钟信号(直接输出为sdram_clk,即SDRAM系统时钟) | |
clk_ref(CLK2) | sdram_2fifo_top模块的时钟信号 | |
输出 | vga_hs | VGA行扫描控制信号 |
vga_vs | VGA场扫描控制信号 | |
vga_red[4:0] | VGA输入RGB565信号的11-15位(R) Vgad[15:11] | |
vga_green[5:0] | VGA输入RGB565信号的5-10位(G) Vgad[10:5] | |
vga_blue[4:0] | VGA输入RGB565信号的0-4位(B) Vgad[4:0] | |
sdram_addr[11:0] | SDRAM 地址总线 | |
sdram_ba[1:0] | SDRAM 的Bank地址 | |
sdram_cas_n | SDRAM 列地址选通 | |
sdram_cke | SDRAM 时钟使能 | |
sdram_clk | SDRAM 系统时钟 | |
sdram_cs_n | SDRAM 片选 | |
sdram_data[15:0] | SDRAM 数据总线 | |
sdram_init_done | SDRAM 初始化完成 | |
sdram_ras_n | SDRAM行地址选通 | |
sdram_ldqm | SDRAM 数据掩码 S_DQM[1:0] = {sdram_udqm, sdram_ldqm} | |
sdram_udqm | ||
sdram_we_n | SDRAM 写使能 |