实验背景
本系列分享介绍sdram控制器的设计思路与方法,目的是在设计的过程中提高模块划分,状态机编写,仿真测试,时钟模块处理,复位处理,约束文件编写,板级调试等FPGA开发能力,也是对自己设计能力的一个小的测试与总结,同时给大家提供力所能级的参考,在设计的过程中,由于笔者能力有限,肯定会有不合理的地方,望批评指正。
实验内容
sdram器件手册阅读与初始化模块编写与仿真。
实验步骤
在写sdram控制器之前,笔者看了一些资料与示例,有的示例虽然实现了功能,但是代码整体条理不是太明晰。比较优秀的资料笔者认为有以下几个:
-
野火FPGA开发教程
在其资料库网站上可以下载,
http://doc.embedfire.com/products/link/zh/latest/fpga/ebf_altera-ep4ce10.html
该教程sdram控制器部分的讲解是很不错的,基于波形设计的方法是具有可操作性的,此外,这个教程在时钟分频方面的讲解,让笔者印象深刻,在笔者看过的教程中,对于分频这个部分的讲解,多半是计数器计数生成时钟,然后将生成时钟直接驱动后续的寄存器,对于初学者来说,这种分频方式会让他们在后续的开发过程中产生各种困惑。但是野火的这个教程分析了这种分频的缺点,并推荐降频(时钟使能)的方法。 -
开源骚客的博客
http://dengkanwen.com/tag/%E5%BC%80%E6%BA%90%E9%AA%9A%E5%AE%A2
在这个博客中有sdram控制器设计的系列文章,以及对应的资料,系列文章中对sdram仲裁模块的讲解是很不错的。 -
Clifford E. Cummings_文献
http://www.sunburst-design.com/papers/
Clifford E. Cummings的关于状态机的文章,非常不错,其他的关于复位,fifo方面的文章也是很经典的。
参考资料介绍完毕,下面介绍sdram器件手手册,手册是Micron的SDRAM手册。
该手册内容较为详细。下面根据手册介绍一些基本的参数。
关键的timing parameters
不同速度等级的sdram器件工作最大时钟频率不同,对应的timing参数也不同。