Nexys3学习笔记(三)——添加SRAM存储器

作者: Pollux
上传时间为: 2012-02-16 10:52 PM
2012-02-16
阅读:

对于一个嵌入式系统,存储器无疑是非常重要的。Nexys3上有3种存储器:sram,并行Flash(非易失性相变存储器),串行flash(非易失性相变存储器)。为了简单起见,首先学习下如何往系统里添加SRAM。

Nexys3采用的是Micron公司的128Mbits Celluar Ram MT45W8MW16BGX,可以配置成同步和异步模式,具体可以参考器件手册,主要关心接口和时间参数。

还是打开前面建立好的系统,发现Nexsy3它自动生成一个定制IP核:mem_bus_mux,它主要是作为存储器的地址、数据、控制信号的多路选择用的。

FPGA于存储器的信号连接如下

所以主要工作就是添加一个存储器控制IP。在IP catalog栏下找到外部存储器控制IP——XPS Multi-Channel External Memory Controller。首先设置

注意Nexys3上存储器数据宽度是16位的,接下来主要是时间参数,这一部分必须参考SRAM器件手册,否则可能访问不正确。访问模式设置为异步Asynchronous

接下来要将添加IP核信号连接起来

因为只添加了SRAM,所以暂时只是连接了与SRAM控制器的连线。最后要设置sram的地址范围,nexys3上sram有16MB空间。

此时还不算完成,sram配制成了异步模式,从电路图上可以看到FPGA到SRAM有一些控制信号还没有定义,需在.mhs文件中添加端口。

编译产生流文件,然后导入到EDK中。

在EDK软件下,选择File->New->Xilinx C Project,选择程序自带的memory test,生成一个基本的memory测试程序。

下载硬件平台Xilinx Tools->program FPGA。运行memory_test_0.elf文件,程序开始运行。串口能监视结果

至此SRAM算是添加到嵌入式的系统了。

在EDK下选择Run->Debug,进入了debug界面。

在下方Memory窗口添加一个监视窗口,地址选择Sram基地址0x85000000

可以看到在存储器中的内容,测试程序向存储器中填满了数据a5a5a5a5。

小结:

学习了往系统中添加了SRAM存储器,需要注意的是设置IP参数时一定要参考sram芯片的时间参数,这是能正确访问存储器的前提。EDK也有Debug的功能,调试软件不可缺少。下一步把Nexys3的所有外部存储器都添加进去了。

参考链接: http://www.xilinx.com/support/documentation/spartan-6.htm http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,897&Prod=NEXYS3 http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en531074

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示