FPGA读写SDRAM page fifo实验完整Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。
module sdram_read_write(
clk,
reset_n,
state_signal,
rw_done_signal,
ar_done_signal,
sdram_bank_addr,
write_data,
read_data,
io_ctl,
sdram_command,
sdram_address,
sdram_dqm,
sdram_data
);
//参数定义
//端口定义
input clk; //时钟信号100MHz
input reset_n; //复位信号,低电平有效
input [2:0] state_signal; //状态信号,用于控制对SDRAM进行读写和自刷新
input [21:0] sdram_bank_addr; //SDRAM最小单元地址,[21:20]块地址+[19:8]行地址Row+[7:0]列地址Column
input [15:0] write_data; //写入SDRAM的数据
input io_ctl;
output rw_done_signal; //读写完成信号
output ar_done_signal; //自动刷新完成信号
output [15:0] read_data; //从SDRAM读出的数据
output [4:0] sdram_command; //SDRAM指令,cke、cs_n、ras、cas_n、we_n,SDRAM指令信号
output [13:0] sdram_address; //SDRAM读写地址
output [1:0] sdram_dqm; //SDRAM数据掩码
inout [15:0] sdram_data; //sdram读写数据
//常量定义
parameter NOP = 5'b10111, //空操作
ACTIVE = 5'b10011, //行激活
READ = 5'b10101, //读操作
WRITE = 5'b10100, //写操作
PR = 5'b10010, //预充电
AR = 5'b10001, //自刷新
LMR = 5'b10000, //设置寄存器
BURST_STOP = 5'b10110; //突发停止指令
parameter ar_state = 3'b001, //自刷新状态
re