FPGA设计读取SD卡中的图片并通过VGA屏显示输出的Verilog设计Quartus工程源码文件,FPGA型号Cyclone4E系列中的EP4CE10F17C8,Quartus版本18.0。
module top_sd_photo_vga(
input sys_clk , //系统时钟
input sys_rst_n , //系统复位,低电平有效
//SD卡接口
input sd_miso , //SD卡SPI串行输入数据信号
output sd_clk , //SD卡SPI时钟信号
output sd_cs , //SD卡SPI片选信号
output sd_mosi , //SD卡SPI串行输出数据信号
//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 //红绿蓝三原色输出
);
//parameter define
parameter PHOTO_H_PIXEL = 24'd640 ; //设置SDRAM缓存大小
parameter PHOTO_V_PIXEL = 24'd480 ; //设置SDRAM缓存大小
//wire define
wire clk_100m ; //100mhz时钟,SDRAM操作时钟
wire clk_100m_shift ; //100mhz时钟,SDRAM相位偏移时钟
wire clk_50m ;
wire clk_50m_180deg ;
wire clk_25m ;
wire rst_n ;
wire locked ;
wire sys_init_done ; //系统初始化完成
wire sd_rd_start_en ; //开始写SD卡数据信号
wire [31:0] sd_rd_sec_addr ; //读数据扇区地址
wire sd_rd_busy ; //读忙信号
wire sd_rd_v