SF-EPIC开发板上使用的是三星SDR SDRAM (K4S641632)。由于控制SDRAM的读写不同于之前的很多简单接口实验(它们对时序的要求都不高,即便不做时序约束也无关紧要),SDRAM的时钟沿和数据总线、地址总线以及控制总线都存在严格的时序关系,尤其当频率较高(我们的设计中达到了100MHz,接近了该器件标称的133MHz的最高频率)时,稍有闪失就会造成通信的不正常。
该实例的核心是设计一个SDRAM控制器。首先,设计者需要对这个控制器内部的逻辑功能做细分,将其划分为多个子模块来实现。如图5. 77所示,sdram ctrl是SDRAM状态控制模块,该模块主要完成SDRAM的上电初始化以及定时刷新、读写控制等状态的变迁,内部设计了两个状态机,一个用于上电初始化的状态控制,另一个则用于正常工作时的状态控制:sdram _cmd是SDRAM 命令模块,该模块根据sdram ctrl 模块的不同状态指示输出相应的SDRAM控制命令和地址(控制总线信号如sdram cke、sdram cs. nsdram we n.sdram ras_ n、sdram cas n,地址总线信号sdram addr); sdram wr data是SDRAM数据读写模块,该模块同样是根据sdram ctrl模块的状态指示完成SDRAM数据总线的控制,SDRAM 的数据读写都在该模块完成。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !