📄 sdram_module.v
字号:
`timescale 1ns / 1ps
////////////////////////////////////////////////////////////////////////////////
// Company :
// Engineer :
// Create Date :
// Design Name :
// Module Name : sdram_module
// Project Name :
// Target Device: Cyclone EP1C3T144C8
// Tool versions: Quartus II 9.1
// Description :
//
// Revision : V1.0
// Additional Comments :
//
////////////////////////////////////////////////////////////////////////////////
module sdram_module(
clk_25m,clk_100m,rst_n,
wrf_din,wrf_wrreq,
rdf_rdreq,rdf_dout,
syswr_done,tx_start,
sys_wraddr,sys_rdaddr,sdram_busy,sys_dout_rdy,
/*sdram_clk,*/sdram_cke,sdram_cs_n,sdram_ras_n,sdram_cas_n,
sdram_we_n,sdram_ba,sdram_addr,sdram_data,sdwr_byte,sdrd_byte//,sdram_udqm,sdram_ldqm
);
input clk_100m; //系统时钟,100MHz
input clk_25m;
input rst_n; //复位信号,低电平有效
// SDRAM的封装接口
input[21:0] sys_wraddr; //读写SDRAM时地址暂存器,(bit21-20)L-Bank地址:(bit19-8)为行地址,(bit7-0)为列地址
input[21:0] sys_rdaddr;
output sdram_busy; // SDRAM忙标志,高表示SDRAM处于工作中
output sys_dout_rdy; // SDRAM数据输出完成标志
input[8:0] sdwr_byte; //突发写SDRAM字节数(1-256个)
input[8:0] sdrd_byte; //突发读SDRAM字节数(1-256个)
// FPGA与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的L-Bank地址线
output[11:0] sdram_addr; // SDRAM地址总线
inout[15:0] sdram_data; // SDRAM数据总线
//output sdram_udqm; // SDRAM高字节屏蔽
//output sdram_ldqm; // SDRAM低字节屏蔽
// SDRAM内部接口
wire sys_r_wn;
wire sys_en;
wire sdram_wr_ack; //系统写SDRAM响应信号,作为wrFIFO的输出有效信号
wire sdram_rd_ack; //系统读SDRAM响应信号
wire[15:0] sys_data_in; //写SDRAM时数据暂存器,4个突发读写字数据,默认为00地址bit15-0;01地址bit31-16;10地址bit47-32;11地址bit63-48
wire[15:0] sys_data_out; //读SDRAM时数据暂存器,(格式同上)
//例化SDRAM封装控制模块
sdram_top uut_sdramtop( // SDRAM
.clk(clk_100m),
.rst_n(sys_rst_n),
.sys_en(sys_en),
.sys_r_wn(sys_r_wn),
.sdram_wr_ack(sdram_wr_ack),
.sdram_rd_ack(sdram_rd_ack),
.sys_wraddr(sys_wraddr),
.sys_rdaddr(sys_rdaddr),
.sys_data_in(sys_data_in),
.sys_data_out(sys_data_out),
.sdwr_byte(sdwr_byte),
.sdrd_byte(sdrd_byte),
//.sdram_clk(sdram_clk),
.sdram_busy(sdram_busy),
.sdram_cke(sdram_cke),
.sdram_cs_n(sdram_cs_n),
.sdram_ras_n(sdram_ras_n),
.sdram_cas_n(sdram_cas_n),
.sdram_we_n(sdram_we_n),
.sdram_ba(sdram_ba),
.sdram_addr(sdram_addr),
.sdram_data(sdram_data)
// .sdram_udqm(sdram_udqm),
// .sdram_ldqm(sdram_ldqm)
);
//------------------------------------------------
//读写SDRAM数据缓存FIFO模块例化
sdfifo_ctrl uut_sdffifoctrl(
.clk_25m(clk_25m), //in
.clk_100m(clk_100m),//in
.rst_n(sys_rst_n),//in
.wrf_din(wrf_din),//in
.wrf_wrreq(wrf_wrreq),//in
.sdram_wr_ack(sdram_wr_ack),//wire
// .sys_wraddr(sys_wraddr),
// .sys_rdaddr(sys_rdaddr),
.sys_data_in(sys_data_in),//wire
.sys_en(sys_en),//wire
.sys_data_out(sys_data_out),//wire
.rdf_rdreq(rdf_rdreq),//in
.sdram_rd_ack(sdram_rd_ack),//wire
.rdf_dout(rdf_dout),//out
.sys_r_wn(sys_r_wn),//wire
.syswr_done(syswr_done),//in
.tx_start(tx_start) //out
);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -