FPGA读写SDRAM read_write_a_worde实验完整Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。
`timescale 1 ns/ 1 ps
// synopsys translate_on
module sdram_top(
clk,
reset_n,
sdram_bank_addr,
write_data,
read_data,
read_req,
write_req,
rw_ack,
bus_signal,
init_done,
sdram_clk,
sdram_data,
sdram_command,
sdram_address,
sdram_dqm
);
// 系统信号
input clk; //20M系统时钟
input reset_n; //复位信号,低电平有效
// 内部信号
input [21:0] sdram_bank_addr; //读写SDRAM的地址
input [15:0] write_data; //写如sdram的数据
output [15:0] read_data; //从sdram读出的数据
input read_req; //读数据请求信号
input write_req; //写数据请求信号
output rw_ack; //读写应答信号
output bus_signal; //忙信号
output init_done; //初始化完成信号,输出,高电平有效
// SDRAM接口信号
output sdram_clk; //sdram时钟信号
inout [15:0] sdram_data; //sdram读写数据
output [4:0] sdram_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号
output [13:0] sdram_address; //[13:12]BA , [11:0]Addr,SDRAM地址信号
output [1:0] sdram_dqm; //SDRAM数据掩码
//连接线
wire init_start; //初始化开始信号,高电平有效
wire [4:0] sdram_init_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号
wire [4:0] sdram_rw_command; //cke、cs_n、ras、cas_n、we_n,SDRAM指令信号
wire [13:0] sdram_init_address; //[13:12]BA , [11:0]Addr,SDRAM地址信号
wire [13:0] sdram_rw