IP核调试之SDRAM篇(1) 转载 | 首先说明资源使用:
1.硬件:
基于HY57V561620CT-H的128M PC133内存条;
ALTERA公司的EP1C6Q240C8芯片;
2.软件:
www.fpga.net.cn上下载的lattice标准SDRAM模块;
QUARTUS4.0**版;
下面说明我的艰辛的调试之路,呵呵。
我是从4月份开始学习verilog语言,然后从网上广泛搜集SDRAM模块,下载
的有altera公司,有lattice的。经过对比,我选择了lattice公司的标准的
sdram模块,即http://www.fpga.com.cn/freeip.htm上面的sdram控制器3。理由
如下:
1.模块划分比较合理:ctrl,sig,data;
2.文档描述清晰,易于使用;
lattic公司的这个控制器,具体针对哪个器件我不晓得;但是我要用的是
HY57V561620CT-H。因此,下载下来后,首先需要吃透源代码。看源代码当然要
从顶层设计开始看,观察模块如何分工,信号如何流动等。由于lattic公司队文
件组织的实在太好了,所以看懂不是太难的问题,看懂后针对自己的芯片修改,
也不会太费力气,主要修改:
1.地址线、数据线宽度;
2.数据读写部分;
3.模式寄存器初始值;
4.时序参数定义;
这些修改,基本上都属于偷梁换柱类型的。相信看过的人,都晓得。此外
,我根据需要,添加了一个sdr_IDLE信号输出,以便方便使用。
修改完毕,重新编译通过后,就着手编写与该模块接口的控制模块,如什
么时候应该发出什么信号给这个控制器,针对这个控制器发出的某个信号,该如
何回应等。由于lattic的这个控制器给出了关键性的指示信号,所以接口控制模
块的编写也不是太大的问题了。
接口控制模块编写完毕,就可以进行时序仿真了。如,通过某个外部信号
触发接口控制模块启动一次写--等待---读操作,然后观察控制器模块输出
的信号对不对。如,读的时候,应该有什么信号出现;写的时候,又该有什么信
号出现。这一步很重要,决定了时序波形是否正确。从调试情况来看,这一步如
果没有什么问题,这个sdram控制器基本上可以工作了。希望各位和我一样的初
学者,要足够重视仿真功能,呵呵。
时序仿真完毕,呵呵,就该下载到目标板开始硬件调试了。明天,我将会
详细介绍。今天先写到这里。
|
|