SDRAM的verilog代码

2026/1/22 0:21:18

module sdr_test(

clk,rst_n,

sdram_clk,sdram_cke,sdram_cs_n,sdram_ras_n,sdram_cas_n,sdram_we_n, sdram_ba,sdram_addr,sdram_data,//sdram_udqm,sdram_ldqm rs232_tx,

sdram_rd_req,sdram_wr_ack,sdram_rd_ack, sys_data_out,sdram_busy,sys_data_in,sys_dout_rdy,

/*

*/ rdf_dout/*,rdf_rdreq*/ );

//系统时钟,100MHz //复位信号,低电平有效

input clk; input rst_n;

// FPGA与SDRAM硬件接口

// SDRAM时钟信号 // SDRAM时钟有效信号 // //

SDRAM片选信号

// SDRAM行地址选通脉冲 // SDRAM列地址选通脉冲 // SDRAM写允许位 SDRAM的L-Bank地址线

output sdram_clk; output sdram_cke; output sdram_cs_n; output sdram_ras_n; output sdram_cas_n;

output sdram_we_n; output[1:0] sdram_ba; output[11:0] sdram_addr; //output sdram_udqm; //output sdram_ldqm; inout[15:0] sdram_data;

output rs232_tx;

// SDRAM地址总线 // SDRAM高字节屏蔽 // SDRAM低字节屏蔽 // SDRAM数据总线

//RS232发送数据信号

//////////////////////////////////////////////// // SDRAM的封装接口测试引出 /*output sdram_rd_req; output sdram_wr_ack; output sdram_rd_ack; output[15:0] sys_data_in;

//系统读SDRAM请求信号 //系统写SDRAM响应信号

//系统读SDRAM响应信号

//写SDRAM时数据暂存器,4个突发读写字数据,默认为00地

址bit15-0;01地址bit31-16;10地址bit47-32;11地址bit63-48

output[15:0] sys_data_out; //读SDRAM时数据暂存器,(格式同上) output sdram_busy; output sys_dout_rdy;

// SDRAM忙标志,高表示SDRAM处于工作中 // SDRAM数据输出完成标志 //sdram数据读出缓存FIFO输出数据总线

//sdram数据读出缓存FIFO数据输出请求,高有效

*/

output[15:0] rdf_dout; //output rdf_rdreq;

////////////////////////////////////////////////

// SDRAM的封装接口 wire sdram_wr_req; //系统写SDRAM请求信号 wire sdram_rd_req; //系统读SDRAM请求信号 wire sdram_wr_ack; wire sdram_rd_ack;

//系统写SDRAM响应信号,作为wrFIFO的输出有效信号 //系统读SDRAM响应信号,作为rdFIFO的输写有效信号

wire[21:0] sys_addr; //读写SDRAM时地址暂存器,(bit21-20)L-Bank地址:(bit19-8)为行地址,(bit7-0)为列地址 wire[15:0] sys_data_in;

//写SDRAM时数据暂存器

wire[15:0] sys_data_out;//sdram数据读出缓存FIFO输入数据总线 wire sdram_busy; wire sys_dout_rdy;

// SDRAM忙标志,高表示SDRAM处于工作中 // SDRAM数据输出完成标志

//wrFIFO输入控制接口

wire[15:0] wrf_din; //sdram数据写入缓存FIFO输入数据总线 wire wrf_wrreq; //sdram数据写入缓存FIFO数据输入请求,高有效 //rdFIFO输出控制接口 wire[15:0] rdf_dout; wire rdf_rdreq;

//sdram数据读出缓存FIFO输出数据总线

//sdram数据读出缓存FIFO数据输出请求,高有效

//系统控制相关信号接口

wire clk_25m; //PLL输出25MHz时钟

wire clk_100m; //PLL输出100MHz时钟 wire sys_rst_n;

//------------------------------------------------ //例化系统复位信号和PLL控制模块 sys_ctrl

uut_sysctrl( .clk(clk),

.rst_n(rst_n),

.sys_rst_n(sys_rst_n), .clk_25m(clk_25m), .clk_100m(clk_100m), .sdram_clk(sdram_clk) );

//系统复位信号,低有效

//------------------------------------------------ //例化SDRAM封装控制模块 sdram_top

uut_sdramtop( // SDRAM .clk(clk_100m), .rst_n(sys_rst_n),

);

// //

.sdram_wr_req(sdram_wr_req), .sdram_rd_req(sdram_rd_req), .sdram_wr_ack(sdram_wr_ack), .sdram_rd_ack(sdram_rd_ack), .sys_addr(sys_addr), .sys_data_in(sys_data_in), .sys_data_out(sys_data_out), .sys_dout_rdy(sys_dout_rdy), //.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),

.clk_100m(clk_100m), .wrf_din(wrf_din),

.wrf_wrreq(wrf_wrreq), .sdram_wr_ack(sdram_wr_ack), //.sys_addr(sys_addr), .sys_data_in(sys_data_in),

.sdram_wr_req(sdram_wr_req), .sys_data_out(sys_data_out), .rdf_rdreq(rdf_rdreq), .sdram_rd_ack(sdram_rd_ack), .rdf_dout(rdf_dout),

.sdram_rd_req(sdram_rd_req), .syswr_done(syswr_done), .tx_start(tx_start)

);

//------------------------------------------------

//例化模拟写入数据到sdram模块 wire syswr_done; datagene

//所有数据写入sdram完成标志位 uut_datagene( .clk(clk_25m), .rst_n(sys_rst_n),

);

.wrf_din(wrf_din), .wrf_wrreq(wrf_wrreq), .moni_addr(sys_addr), .syswr_done(syswr_done), .sdram_rd_ack(sdram_rd_ack)

//------------------------------------------------ //例化串口数据发送控制模块 wire tx_start; //串口发送数据启动标志位,高有效 uart_ctrl

uut_uartctrl( .clk(clk_25m), .rst_n(sys_rst_n),

.tx_data(rdf_dout[7:0]), .tx_start(tx_start),

///////////

.fifo232_rdreq(rdf_rdreq), .rs232_tx(rs232_tx) );

Endmodule

module datagene( clk,rst_n, wrf_din,wrf_wrreq,

);

//FPAG输入时钟信号25MHz //FPGA输入复位信号

moni_addr,syswr_done, sdram_rd_ack

input clk; input rst_n;

//wrFIFO输入控制接口 output[15:0] wrf_din; //sdram数据写入缓存FIFO输入数据总线 output wrf_wrreq;

//sdram数据写入缓存FIFO数据输入请求,高有效

output[21:0] moni_addr; //sdram读写地址产生 output syswr_done; //所有数据写入sdram完成标志位


SDRAM的verilog代码.doc 将本文的Word文档下载到电脑
搜索更多关于: SDRAM的verilog代码 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219