本帖最后由 mhanchen 于 2014-2-25 19:33 编辑
自己写的SDRAM控制器,用的是黑金的DB2C5开发板,Hynix的SDRAM(HY57V641620ET-H),不过仿真时用了一个Micron的SDRAM(mt48lc1m16a1)仿真模型,代码编辑器用的gvim。配置模块用了标准的UART协议进行SDRAM数据、地址和命令的控制,用这个的朋友可以从串口助手向FPGA写入你想要的地址和命令,然后送到SDRAM。因为开发板上也只能用串口和PC连接,串口模块也是很久以前写的了,懒得改所以导致配置过程稍麻烦,用的时候需要耐心一点。仿真的话直接运行/sim/目录下的批处理文件就行了,当然你要先确认你的仿真器环境变量设置正确而且file list中的库文件目录和你的安装目录吻合。
顺便有一个问题需要请教一下:我做实验是设置的模式是CL=3,而且仿真时没有问题,时序一切正常,但是用Signal TAP抓信号的时候发现SDRAM的tAC参数远大于DataSheet上的标准,这就导致我在读SDRAM时必须晚一个是时钟从数据线DQ上采数。也就是说我设置CL=3以后,仿真模型是正常的,但是板上的Hynix片子出数要晚一个周期,Hynix的datasheet比较坑,我到现在也没找到原因,不知道哪位用过这两款芯片的能给解释一下,我觉得不应该是它们的参数意义不同。
最后欢迎大家积极交流,第一次分享自己写的东西,求支持~~~
sdram_ctrl.part02.rar
(2.86 MB)
sdram_ctrl.part03.rar
(171.49 KB)
sdram_ctrl.part01.rar
(2.86 MB)
|