最近在网上找专业信息非常多,遇到了EDN这个网站,就像遇到救星一样。里面关于FPGA的知识很多,并且天天都有更新,每天我都会在闲暇的时间来网站逛逛,看看牛人们的分享,了解FPGA发展的动态。并且关注到很多牛人写的博客,让我受益匪浅,我也觉得应该把自己学到的一些知识分享出来,一方面让新加入的工程师少走弯路,另一方面巩固自己的专业技能,或许能抛砖引玉,跟大家多交流FPGA的技术。
今天这一篇就分享最近研究外部SRAM芯片的驱动。本次设计选用SRAM芯片为IS61WV51216BLL-10,注意到芯片上-10的标志,就对应芯片手册中-10列的时序。所有驱动要求都在datasheet中,看懂了datasheet一切都简单很多。
首先控制信号:sram_ce, sram_oe, sram_we, sram_lb, sram_ub,其次地址线与数据线:sram_addr[18:0] ; sram_data[15:0](inout)。
根据真值表,为了高低地址一起输出,将sram_lb, sram_ub同时一直拉低。
读sram时: sram_ce==0& sram_we == 1 & sram_oe == 0;
写sram时: sram_ce==0& sram_we == 0 & sram_oe == 1;
其他情况,sram_data为高阻状态。
通过时序编写程序得出模块;如下图1所示
图1 模块图
在下载到板子上进行验证前要先仿真,提早发现错误。本人一般用debussy和Modelsim结合使用得到仿真图,并进行调试修改。下图2就是用此方法得到的仿真图:
图2 仿真图
下面附件带上程序,大家可以参考一下,如果有好的意见,欢迎提出来。
用户1790896 2014-11-21 16:21
用户403664 2014-11-21 11:33
用户1790896 2014-11-11 15:47
用户403664 2014-11-11 15:00