首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA的外部存储器设计
来源:本站整理  作者:佚名  2011-08-18 14:50:13




2.2 FLASH读/写控制设计
    读/写控制的主要功能是将数据写入FLASH;在模块正常工作时,为系统提供数据。而FPGA这种大规模的可编程器件十分适合逻辑电路的设计,能方便地控制和产生FLASH编程操作中的各种控制命令,实现编程器的功能。该模块中,选择的FLASH芯片的读取时钟周期为70ns。
    在对FLASH进行编程操作前,必须保证存储单元为空。如果不为空,就必须先对FLASH芯片进行擦除操作。由于FLASH采用了模块分区的阵列结构,支持扇区、块和整个芯片一齐被擦除,扇区和块擦除的时间周期为18 ms,整个芯片擦除时间为40 ms。而实现擦除操作只需在地址和数据端写入不同的操作命令即可实现不同的擦除操作。
    FLASH的编程操作分三步骤:第一步是连续载入3 B命令的软件数据保护操作;第二步是写入字地址和字数据,在编程操作过程中,地址是在g.jpg的下降沿时有效,而数据则是在g.jpg的上升沿时有效;第三步是芯片内部的编程操作,该操作在g.jpg的第四个上升沿有效,随后该内部编程操作在10 μs内即可完成。FLASH编程是基于字为基础的,编程时要特别注意编程时间参数和使用的命令集,编程和擦除时的时钟参数见FLASH手册。
    下面叙述FLASH的擦除操作,擦除分为扇区擦除、块擦除和整个芯片擦除,擦除的时序基本一致,过程如下:第一个时钟周期在地址5555H写入XXAAH数据,接着第二个时钟周期在地址2AAAH写入XX55H数据,第三个时钟周期在地址5555H写入XX8OH数据,第四个时钟周期在地址5555H写入XXAAH数据,接着第五个时钟周期在地址2AAAH写入XX55H数据,第六个时钟周期在地址5555H写入XX10H数据,然后芯片内部完成擦除工作。FLASH擦除完成后,内部所有的数据位全部置1。扇区擦除、块擦除和芯片擦除的区别只是在第六个时钟周期传送的数据不同。擦除的时序图如图5所示。

e.jpg


    在写数据时仅能使对应单元的数据位由“1”变为“0”,而从“0”变为“1”只有擦除命令才能完成。擦除操作可以按扇区擦除也可以对整个芯片擦除。因此在设计时可将程序代码和常量表等固定数据和系统动态更新数据分开存放。每次向更新数据区写数据前对该区数据进行擦除操作即可。
    在擦除和写操作之后,就可以读数据了,读数据的操作非常简单,由0E#,CE#控制,当这两个信号为低电平时,在地址线上输入地址,数据线上就可以读出数据了。
    当按照规定的命令序列向FLASH存储器发出命令时,其内嵌的算法状态机会自动地完成相应的操作。但用户还应了解其内部的操作检测机制,以便知道操作是否完成,以及操作是否正确。该芯片的状态检测位有:数据查询位DQ7,TOGOLE位DQ6和DQ2。通过查询它们对应的状态,即可知道芯片的工作状态。
    在编程实现时,用状态机实现FLASH的接口控制,要确保数据线和地址线的建立和保持时间满足需求,严格确保实际提供的时序和硬件要求一致。图6为在ModelSIM仿真下的FLASH的擦除时序图。

f.jpg


    整个程序的编程实现是用有限状态机来实现的。以擦除为例,介绍有限状态机的设计方法。状态控制借助系统时钟进行,通过多个状态来完成ERASE操作。状态0初始化各输出信号,状态1~5完成第一个命令输入,状态7~10完成第二个命令的输入,状态12~15完成第三个命令的输入,状态17~20完成第四个命令的输入,状态22~25完成第五个控制命令输入,状态27~30完成第六个控制命令,接下来状态是保持控制信号用来完成ERASE。在编程过程中,要完成进程控制:进程控制就是根据现态决定次态的控制并完成其他的信号赋值。在本设计中,状态机根据不同的状态对CE、OE#、WE#、地址、数据等FLASH控制信号进行赋值,从而完成对Flash的控制。
    但是每执行1次写操作,只能写入1个地址单元里的字数据,如果按照这个方法,完成整个FLASH芯片2 MWord的数据写入就需要重复执行写操作2兆次,这样既麻烦又浪费时间。在实际操作中,通常通过计算机上的图形界面来完成FLASH的烧写工作,通过图形界面使单片机把计算机存储的数据暂存在SDRAM,然后通过一个判断语句检测SDRAM是否存满,没有存满则继续存储,如果存满则通过FPGA控制把SDRAM上的数据存储在FLASH上,这样通过一次操作即可存满。

3 结语
    本文介绍了FPGA外部存储器的设计方法,可以有效地解决雷达实时信号处理过程中海量数据的存储问题,同时也可以充分利用FPGA去控制SDRAM和FLASH,不仅保证了资源的充分利用,也可以有效地满足信号处理过程中的高速实时的要求。另外,可以根据FPGA型号的不同,适当地更改外部存储器,以满足不同的应用场合。

上一页  [1] [2] [3] [4] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:162,843.80000 毫秒