您的位置】:知源论文网 > 理工类论文 > 计算机 > 正文阅读资讯:基于FPGA的DDR控制器设计

基于FPGA的DDR控制器设计

[作者:王维平 张正炳[来源:互联网]| 打印 | 关闭 ]
需要经常在行地址变化时执行预充电命令,就会导致读写的效率下降。例如在视频编码中,预测编码是去冗余的最有效方法,预测就需要图像帧区域搜索[3],这时在存储器中表现为数据地址的随机性。这种情况下可以采用带预充电的读写命令,这样每个指令中都会进行预充电,就不必担心在地址换行的时候发生错误了。但是,每个指令之间必须有一定的间隔(突发长度/2+tRP),例如采用突发为8的读写时,每个指令之间的间隔就要最少有4+tRP个周期,所以设置突发模式为8的时候效率比较高。  4 硬件调试
  在硬件调试前,软件仿真是非常重要的,一般在仿真中时序吻合的情况下是可以实现既定功能要求的,在FPGA设计尤其是高速设计中,调试前的时序分析与时序收敛至关重要,只有满足了时序收敛,设计才具有稳定性。本文代码综合阶段,采用了FPGA常用方法提高了设计的速度,比如增加流水线级数与消除亚稳态的方式[4] ,使CLK_X2达到333M,DDR时钟167M,还有时序余量,满足时序要求。
  ALTERA提供一个集成于QUARTUSII软件中的FPGA片上debug工具:SignaltapII,它可以捕获和显示实时信号,观察在系统设计中的硬件和软件之间的互相作用。它的原理就是设定采样周期,实时采样数据并存储到PFGA内RAM中,然后通过JTAG接口传送到QUARTUSII来显示[5]。正是因为SignaltapII的实时性,在调试时需要注意读写验证的方法。初始化的配置过程很难观察到,只能验证后面的读写过程。因为RAM的容量有限,一次捕捉到的数据也是有限的,在板级调试时,需要以循环的方式进行读写数据指令的执行,以便在逻辑分析仪中捕捉到数据。本文采用先将数据写入一段地址中,然后在相同的地址中读出来,并且比较相同地址写入数据与读出数据是否相同的方法来验证DDR控制器是否正常工作。为了保证读写的可靠性,循环的方式采用遍历所有地址范围的方法,观察结果发现写入与读出的数据是完全吻合的。
  5 结束语
  本文通过对DDR时序的分析,给出了一种DDR控制器的设计方案。并且针对不同的寻址方式,给出了不同的读写方法,提高了读写效率。最终,控制器在ALTERA公司的cycloneIII系列芯片上实现,在板卡上能够控制Hynix公司的DDR芯片稳定地读写数据。存储器工作频率达到167M,数据稳定可靠,读写效率较高。
  参考文献
  [1] hynix 16Mx16 DDR handbook[Z] Hynix Semiconductor Inc.
  [2] 余兆明,査日勇,黄磊,周海骄.图像编码标准H.264技术[M]. 北京:人民邮电出版社,2005.
  [3]
Tags: