查看: 59|回复: 0

Nexys3学习笔记(四)——添加FLASH 

[复制链接]

主题

好友

68

积分

版主

  • TA的每日心情
    擦汗
    2017-8-7 15:27
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2012-2-16 23:53:06 |显示全部楼层
    Nexys3上采用了非易失性相变存储器(PCM)替代了传统的Nor FLASH器件。PCM是一种较新的存储器,集合了DRAM、FLASH和EEPROM很多存储器的特性于一体。主要特点有非易失性、位读取功能、读写速度快、耐擦写和数据保存时间长等。PCM的这些特点使得在某些系统的特殊需求下能带来更灵活的设计,大幅提高系统的性能。
    Nexys3使用了Micron公司的并行PCM(128Mb NP8P128A13T1760E)和串行PCM(128Mb NP5Q128A13ESFC0E)来用作系统的并行FLASH和串行FLASH。与传统的Nor flash相比,PCM有更快的读写和擦除速度,同时能进行位单元操作。尽管PCM不需要擦除操作,但是Micron为了使设计能更好兼容传统的FLASH,PCM模拟几乎所有的FLASH功能。因此PCM和Nor flash几乎完全兼容,使得设计能很方便的升级到PCM上,软硬件都不需要做很大改动。Nexys3也能作为一块PCM的评估板来使用。
    打开以前建立的系统,添加一个flash即XPS Multi-Channel External Memory Controller IP。

    数据总线还是16位

    时间参数还是要参照并行PCM的手册。
    与mem_bus_mux的信号连接。可以与RAM信号连接比较一下,片选,输出使能,写信号基本相同。并行PCM没有数据8位和16位选择信号,所以只能16位读写。mem_RPN相当于flash中的RST信号。

    信号连接好了以后,总线接口栏下还是选mb_plb,地址分配一个16MB的范围。然后开始编译产生流文件Hardwar->Generate Bitstream。
    同样将硬件设计导入EDK。首先生成新的BSP驱动支持包。然后可以测试程序了。Nor Flash适用的程序应该能直接测试PCM。
    试一试读取芯片的厂家和芯片ID号,加入以下的代码。

    编译后选择Xilinx Tools->Program FPGA,之后将产生的.elf文件运行,右键点击.elf文件选择Run AS->Launch on Hardware。串口能监视

    可以看到0x89是Micron的厂商号,0x881E是这款芯片的ID号。
    EDK软件下选择Xilinx Tools->Program Flash,会弹出窗口能直接加在程序到PCM中。

    Nexys3的BSB支持包中有一个定制的串行PCM的控制IP,是采用SPI接口能支持quad模式。

    添加此IP很简单,设置好地址,同样将信号与mem_bus_mux连接起来。
    小结:
    在系统中添加并行FLASH与RAM基本相同,注意信号和时间参数的设置。PCM与Nor Flash完全兼容,可以非常方便的移植。Nexys3可以作为PCM的评估板使用进行开发,PCM的一些特点可以作为系统设计很好的补充,提高系统的性能。
    参考链接:

    https://www.xilinx.com/support/documentation/spartan-6.htm
    https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,897&Prod=NEXYS3
    https://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en531074
    https://www.eefocus.com/article/09-11/14308007111132PYTD.html
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|电路城

    GMT+8, 2019-7-20 01:32 , Processed in 0.101631 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部