10修改后的SDRAM控制器

上一篇 / 下一篇  2006-06-02 10:16:26 / 天气: 晴朗 / 心情: 高兴

    参考设计来源于http://www.fpga.com.cn/freeip.htm存储器接口 标准SRD SDRAM控制器参考设计,xilinx提供.10采用了此设计的状态机,仅修改了刷新控制及系统命令的产生部分,并进行了控制器的不完全测试(前仿真上电装载,刷新,突发读写8421). 以下一些见解,纯属菜鸟10的个人理解,期待各位同行参与!

原控制器有以下一些特性:

·可编程的突发长度(Burst Lengths)8421

·可编程的读取潜伏期(CAS Latency)23

·可编程的16位刷新周期

·突发长度应用于读(Read)和写(Write)

·        ·支持SDRAM命令LOAD_MRAUTO_REFRESHPRECHARGEACTROWREADWRITE BURST_STOPNOP

      ·输入时钟在62.5MHZ,数据改变在每个时钟边缘

      ·SDRAM时钟在125MHZ

             ·为减少FPGASDRAM之间的时钟偏移(Skew)采用了两个DLLS

   

    这样设计灵活性很好,它允许不用重新编译FPGA设计更改Burst lengthCAS latencyCAS-to-CAS delayRefresh countRefresh active period.但对控制器的操作比较麻烦.如下图:   

                      

 

    故做修改,以使得只关心读写命令就行了.

    修改后的设计,完成一次写所需要的周期=1+burst_count+4;一次读所需要的数据=burst_count+6.而刷新操作由控制器产生,不再由Place Addr_wr command on the bus Set AD[29:28] to 11来启动一个AUTO_REFRESH命令.通过刷新标志auto_ref来确定什么时候可以进行读写操作:auto_ref=1时,新的读写需等到Refresh active period(ki_max)之后才能进行,否则读写无效.

    基于原设计的模块化,修改后的控制器仍由两大部分组成.见图2:

 

                                                                             

                                                                                  

 

 

 

 

       操作时序图如下:

 

       1、上电装载模式寄存器    

                                    

 

 

       2、burst=4时的突发写

 

      

        3、burst=4时的突发读

 

 

 

       4、刷新与突发读

 

 

 

     控制器目前不具有终止Burst的功能,修改状态机,通过data_addr_n_reg=0时,发送预充电命令,随后进入行活动,读或写.如下图:

 

    

 

 

       

     

 

 

 

 


TAG: HDL语言 应用设计 SDRAM

引用 删除 jqilin   /   2008-11-25 11:24:34
这个在哪有下载呢?
10的个人空间 引用 删除 10   /   2007-10-11 16:20:17
俺已用它在咱们公司的喷绘机上,在66MHZ下工作得很好!
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-04  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 3310
  • 日志数: 6
  • 建立时间: 2007-03-12
  • 更新时间: 2008-09-17

RSS订阅

Open Toolbar