Flash控制器参数设置及硬件电路连接<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
使用的软件:
1、 Quartus II 8.0
2、 Nios II IDE 8.0
3、 Cadence(orCAD,allegro)
Flash是非易失性存储器,可以在断电后保存程序或数据内容,相当于电脑的硬盘,而SDRAM则相当于电脑的内存,所以,nios开发板的flash和SDRAM器件基本是标配。
前几篇文章已经讲述了SDRAM控制器的参数设置及其硬件电路连接,下面讲讲flash设备控制器的参数设置及其硬件电路连接。
一、 flash控制器参数设置
在SOPC中加入flash memory(CFI),弹出如下对话框,
l Attributes标签
在presets中预设了一些常用的flash设备,选择一种flash后,会将标签中的值设置为与该flash相匹配的相应值。Nios系统支持的flash基本是AMD和intel的,其他厂家的flash可能不一定支持。如果没有预设的器件,则选择custom,用于根据flash的datasheet自定义。
在size中填写flash的地址线和数据线宽度。我用的flash是AM29LV320,<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4M*8bit,所以选择地址线22,数据线8。
l Timing标签
在Timing中主要有Setup,Wait,Hold几个参数。
Setup
片选有效后,发起读或写信号之前所需的时间。可以有如下公式计算:
Setup = tCE (chip enable to output delay) - tOE (output enable to output delay)
tCE,tOE可以在flash的datasheet中查询得到,
根据上面表格得出tCE=90ns,tOE=40ns,所以Setup=50ns。
Wait
对于每次传送,使能读/写信号所需的时间。该参数需要满足如下规则:
Setup,Wait和电路板级延时的和一般要小于tACC (address to output delay),电路板级延时主要是FPGA中flash地址线的TCO,falsh数据线的TSU,以及走线的延时。电路板级延时很小,在这里我们将其忽略,这样,Wait=tACC-Setup=40ns
Hold
写信号无效后,使片选无效之前所需要的是时间。这个参数没有在datasheet上找到,参考预设flash的值,设置为35ns。
Units
时间单位,这里设置为ns。
如果实在不能确定这些时间的值,还有一个办法是将这些值都设置的较大,比如大于100ns,这样电路应该能正常工作,只不过工作效率会下降,因为花费在每次读取上的时间会增大。
二、 flash硬件电路设计
下面是我自制FPGA开发板上flash部分电路(省略电源滤波部分电路),已经调试通过,电路没有问题,可以放心参考,呵呵。
介绍下主要管教功能:
A:地址线
DQ:数据线
DQ15/A-1:如果是字(16位)读写模式,该位作为数据最高位,如果是字节(8位)读写模式,该位作为地址最低位,在我的电路中采用字节读写模式,所以作为地址最低位。
CE:片选信号
OE:输出使能信号
WP/ACC:该管脚不能悬空,WP:提供硬件写保护功能,ACC:高电平输入时加速flash程序烧写。
RESET:复位信号
BYTE:选择8位还是16位读写模式,低电平是8位。
RY/BY:Ready/Busy输出
三、 flash控制器电路连接
下面是一个基于flash的nios II 最小系统,因为.rwdata, Heap memory ,Stack memory不能在flash中,所以加了一个4K的onchip_mem。
下面是在QuartusII中的顶层电路图连接
用户211861 2009-7-30 18:12
用户1332143 2008-12-26 11:44
用户1402774 2008-12-26 11:34