多端口 SDRAM 控制器的设计与实现
摘要
设计实现了一种基于 FPGA 的,可用于多数据缓存的、能够高效利用带宽的多端口
SDRAM 控制器。本文使用状态机的设计思想,采用 Verilog 硬件描述语言设计了时序控制
程序。得到的 SDRAM 读写信号仿真波形图时序合理、逻辑正确。并成功应用到视频数据采
集显示的系统中,能够达到实时显示的要求。
0 引 言
目前,在很多视频数据采集以及实时显示的应用开发中,常需要用到存储容量大、读写
速度快的存储器。在各种存储器件中,同步动态随机存储器 SDRAM 以其速度快、容量大、
价格低的特点而备受关注。SDRAM 的工作频率可以达到 100MHz 甚至更高,但是在其工作
周期内,因为要有刷新、预充电以及寻址等必要的操作,不可能总处于数据传输状态,使得
它的带宽不能达到百分之百的利用,实时显示效 果因此受到影响。为此,本文在研究有关
文献的基础上,根据具体情况提出了一种独特的方法,利用 FPGA 的片上资源开辟了多个
FIFO 作为读写缓存,实现了多端口 SDRAM 控制器的设计,并用 Verilog 硬件描述语言[1]
给予实现,仿真结果表明该控制器能够轮流地从多个缓存向 SDRAM 进行存取,实现了高速
多数据缓存,充分利用了 SDRAM 的有效带宽,提高了存取速度,从而达到实时显示的要求,
并且只要将该设计稍加修改,便可应用到其他需要多数据缓存的场合。
1 SDRAM 基本操作原理
SDRAM 的主要控制信号有:CS_N:片选使能;CAS_N:列地址选通信号;RAS_N:
行地址选通信号;WE_N:写使能信号;DQM:字节掩码信号;ADDR:地址线。以上这些
信号的逻辑组合就组成了 SDRAM 的主要操作命令,如表 1 所示:
表 1.SDRAM 主要操作命令表 SDRAM 的主要操作如下:
1.1 初始化操作