新闻中心

EEPW首页 > EDA/PCB > 设计应用 > FPGA系统设计的仿真验证之:SDRAM读写控制的实现与Modelsim仿真

FPGA系统设计的仿真验证之:SDRAM读写控制的实现与Modelsim仿真

作者:时间:2015-05-06来源:网络收藏

  (4)操作控制。

本文引用地址:http://www.eepw.com.cn/article/273721.htm

   的具体控制命令由一些专用控制引脚和地址线辅助完成。CS、RAS、CAS 和WR 在时钟上升沿的状态决定具体操作动作,地址线和Bank选择控制线在部分操作动作中作为辅助参数输入。

  由于特殊的存储结构, 操作指令比较多,不像SRAM 一样只有简单的读写,具体操作指令如表7.3所示。

  表7.3 命令真值表

  功 能命 令 字CSRASCASWEBAA10A[0:9]

  取消器件选择DSELHXXXXXX

  无操作NOPLHHHXXX

  读操作READLHLHVLV

  读等待/自动预充电READAPLHLHVHV

  续表

  功 能命 令 字CSRASCASWEBAA10A[0:9]

  写操作WRITELHLLVLV

  写等待/自动预充电WRITEAPLHLLVHV

  Bank激活ACTLLHHVVV

  对指定Bank预充电PRELLHLVLX

  对所有Bank预充电PALLLLHLXHX

  自动刷新CBRLLLHXXX

  加载模式寄存器MRSLLLLVVV

  由表7.3可以看到,虽然SDRAM的容量大、速度快,但是存在存储操作困难的问题。一般的解决方案有两种,一是直接控制SDRAM的读写时序实现数据的存储和读取,二是编写一个SDRAM的读写控制器,将SDRAM的读写简化成SRAM形式,通过几个命令完成SDRAM的读写。

  3.SDRAM读写控制器

  Xilinx、Altera、Lattice等较大的FPGA制造厂商都编写了自己的SDRAM接口控制器。读者可以到官方网站去申请相关的控制器源代码。下面简单介绍其中一种,如图7.33所示是该SDRAM控制器总体设计框图和外部接口信号。

  

 

  在图7.33中,控制器右端接口信号均为直接与SDRAM 对应管脚相连的信号,在表7.2中已做介绍,不再重复。

  控制器左端的接口信号为与FPGA 相连的系统控制接口信号,定义如下。

  · CLK:系统时钟信号。

  · ADDR:系统给出的SDRAM 地址信号。

  · DATAIN:系统用于写入SDRAM 的数据信号。

  · DATAOUT:系统用于从SDRAM读出的数据信号。

  · CMD[1:0]、CMDACK:系统和控制器的命令交互信号,参见表7.3。

  · DM:数据Mask信号。

  一般来说,SDRAM的读写控制时序可以分为初始化、写寄存器、自动刷新、突发模式读、突发模式写、整页读以及整页写等主要操作。具体的时序图可以查阅相关的器件数据手册,这里不再列出。

  SDRAM的读写控制也可以由如图7.34所示的读写状态机表示。

  在FPGA中,实现如图7.34所示的状态机,再利用已有的SDR SDRAM控制器即可实现对SDRAM器件的控制。

  

 

  图7.34 SDRAM读写状态机

  7.6.3 SDRAM控制器的仿真

  (1)打开ModelSim软件。

  (2)创建工程。

  如图7.35所示,在中创建新工程,并设置工程的相关属性。

  

 

  图7.35 创建工程

  (3)添加设计输入。

  若要创建新的文件就选择【Create New File】图标,若要添加已经存在的文件就选择【Add Existing File】图标,如图7.36所示。本实例中使用已经存在的SDRAM控制器源文件作为设计输入,添加后,在Workspace浏览器中可以看到如图7.37的设计输入列表。

  

 

  图7.36 添加设计输入 图7.37 SDRAM设计输入列表

  (4)编译设计输入。

  如图7.38所示,在任意一个源文件上单击右键,选择“Compile”/“Compile All”,对所有的源文件进行编译。

  

 

  编译后,若有错误,会在信息栏中显示出来。这时只要双击该错误,ModelSim就会自动打开该错误所在的文件,并定位到出现错误所在的位置附近。若编译正确通过,源文件后面的蓝色问号就替换成为绿色的对号,如图7.39所示。



关键词: SDRAM Modelsim

评论


相关推荐

技术专区

关闭