不知道坛里有没有人用过特权同学的sdram串口实验的代码,功能是从0递增写数据到sdram中,然后再读出数据到串口。
我把代码烧到板子上,可是发现不断的输出同一个值,按了复位键之后会变成另外一个值,然后又一直输出这个新值。
用signaltap II看了一下发现sdram读响应一直都没有变化,而写响应在写完成之后还一直会有被拉高。
下面是读响应和写响应的代码:
assign sdram_wr_ack = ((work_state == `W_TRCD) & ~sys_r_wn) | (work_state == `W_WRITE)
| ((work_state == `W_WD) & (cnt_clk_r < 9'd6));
assign sdram_rd_ack = (work_state_r == `W_RD) & (cnt_clk_r > 9'd1) & (cnt_clk_r < 9'd10);
我又查看了sdram的工作状态机,发现一直没有进入读状态,而写完之后还是会进入写状态。
求指点。
代码比较长,如果不想看就算了,只求有做过或者有相似经历的前辈给点提示或可能的方向,万分感谢。
sdram_usart.rar
(972.01 KB)
|