在有了SDRAM的基础知识,理解了其工作里,看懂了特权同学的程序之后,我开始改他的程序。他的程序比较大,有数据,地址产生模块,读写FIFO模块,串口发送模块,SDRAM控制器。我现在只想要他的SDRAM控制器,实现简单的在指定的地址写指定的数据,然后把他读出来送到LED灯上去显示,验证看是不是对的。(说明一下我用的是DE0开发板)
这就是整体的框图,把读写请求接到了板子上的拨码开关0,1。把读写请求响应信号分别接到了LED的灯0,1。并且我把初始化完成的标志位引出来接到LED2。把地址sys_addr[21:0] 指定为22‘h000_000,数据写入总线sys_data_in[15:0]指定为16' h00ff; 数据输出总线sys_data_out[15:0] 的低7位接到了剩下的7个灯,其他的接到了数码管上。
上电测试发现,初始化完成指示灯亮了,拨上写请求的拨码开关,写响应的灯也会亮。拨下写请求的拨码开关,拨上读请求的拨码开关,读响应的灯也会亮。说明程序里面的状态机在工作,但就是灯没亮,不管我怎样改写入的数据,数据指示灯都没反应。
然后我用Q II自带的仿真软件去仿真发现除了时钟信号(sdram_clk)有外其他的都没有。很是不解啊,为什么仿真的跟板子上的不一样?我想用modelsim进行仿真,我还没学会写脚本,想用内部的软逻辑分析仪signaltap还是不会正在学习。
我觉得大体的框架没错,估计是一些小地方的细节问题。调出来再写。
用户364627 2011-8-10 19:54