电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

【原创】Nios II 嵌入式系统硬件设计(三)

Flash控制器参数设置及硬件电路连接

 

使用的软件:

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, 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中的顶层电路图连接

 

 

博主
chactor@gmail.com
FPGA学习历程
chactor
点击跳转