AXI EMC使用总结

概述

本文总结了AXI EMC IP CORE的使用,包括参数设置以及信号等相关方面,踩过坑,分享给网友,本文以型号为S29GL512S10TFI01的NOR FLASH进行讲解,根据该FLASH的芯片手册进行时序参数设置的说明,文中若有不正确的地方,欢迎指正,使用不难,没太大技术含量,后续会对内核的MTD框架进行分析,AXI EMC是XILINX提供的FPGA的IP core,可以在PL侧外接存储设备,以本文为例,实际使用目的是在PL外挂64M的FLASH存储设备,PL通过AXI 总线挂到PS侧,并在文件系统中能够读写擦除操作。

1 Flash介绍

1.1 Nor flash和Nand flash

Nor flash :读快,写慢,擦除慢,引脚多,地址线和数据线分开,但读写操作简单
Nand flash :读稍微比nor慢,但写和擦除较快,容量大,但存在坏块和位反转,地址和数据引脚复用,读写操作比较复杂

2 axi emc介绍

2.1 概述

axi emc是fpga的一个ip core,axi 外部存储控制器,支持sram,nor flash ,psram,cellularRAM,IP核使用AXI4接口,支持32bit和64bit的数据位宽,支持以下memory type

即:
异步SRAM
同步SRAM
串行flash or并行nor flash
伪静态随机存储器(百度的)
其他扩展:
ROM:只读存储器
RAM:随机存储器
DRAM:动态随机存储器
PM RAM:页模式随机存储器
FPM RAM:快速页模式随机存储器
EDO RAM:扩充数据输出随机存储器
BEDO RAM:突发扩充数据输出随机存储器
SDRAM:同步动态随机存储器
SRAM:静态随机存储器
Async SRAM:异步静态随机存储器
Sync Burst SRAM:同步突发静态随机存储器
PB SRAM:管道突发静态随机存储器
Cache:高速缓存
L2 Cache:二级高速缓存(一般为SRAM)
VRAM:视频随机存储器
CVRAM:缓存型视频随机存储器
SVRAM:同步视频随机存储器
CDRAM:缓存型动态随机存储器
EDRAM:增强型动态随机存储器

每个emc控制器支持挂接4个存储设备
在这里插入图片描述

2.2 信号

Nor flash 和ram连接示例
在这里插入图片描述
Nor flash page mode flash连接实例:
在这里插入图片描述
在这里插入图片描述
图中红线部分需根据表进行连接
手册中还包含其他类型的连接示例
各类信号连线一定要正确

2.3 时序参数

AXI EMC IP参数配置如下:
在这里插入图片描述
AXI 数据位宽为32位,最大可设置为64位
在这里插入图片描述
Memory Type:
支持Sync SRAM, Async SRAM, Linear Flash, Page Mode Flash, PSRAM, or Micron Flash
Data Width:
Memory 数据位宽,也就是接的存储设备的数据位宽,支持8,16,32,64位位宽
Parity:
可以设置为No parity,Odd Parity,or Even Parity,只有Memory Type为Sync SRAM时才能设置
Delay Mode:
可以设置为Flow-Through model or Pipeline Model,只有Memory Type为Sync SRAM时才能设置
Read CE Low to Data Valid Period:
在这里插入图片描述
根据描述,该参数在不同的memory type下含义不同,如果是flash,则和tELQV的值相等,这里以Page Mode Flash为例说明,基本上也就是片选拉低的时间,其他类型的存储设备没有验证,暂不清楚,以flash型号为S29GL512S10TFI01(容量大小:64Mbyte)为例,根据芯片手册中的描述,
在这里插入图片描述
该芯片读时序如下:
在这里插入图片描述
在这里插入图片描述
针对该芯片来说,该参数值就是tCE,即100ns = 100000ps
Read Address Valid to Data Valid Period:
在这里插入图片描述
这里的意思我理解为读地址在数据有效前的保持时间,不是片选保持的时间,对于S29GL512S10TFI01来说,就是tAVQV的值,和描述的一样,即为
100ns = 100000ps,如上图
Page Access Period:
在这里插入图片描述
在这里插入图片描述
根据描述的含义,对于Page Mode Flash来说就是访问一页需要的时间,以S29GL512S10TFI01为例,也就是tPACC,为15ns,如下:
在这里插入图片描述
在这里插入图片描述
Read CE High to Data Bus HZ Period:
在这里插入图片描述
该参数的含义是指片选(CE)从有效变为无效后,至少要保持多长时间,即从低变高后,要保持多长时间的高电平,以S29GL512S10TFI01为例,就是图中的tDF也就是tEHQZ,为15ns
在这里插入图片描述
Read OE High to Data Bus HZ Period:
和上边参数一样,指OE高电平保持的时间,也就是上图中的tDF,为15ns
AXI Read Timing:
在这里插入图片描述
根据AXI EMC IP核手册的page47页得知以上读时序图,结合“IP核参数默认值”查看
AXI Write Timing:
在这里插入图片描述
根据AXI EMC IP核手册的page47页得知以上写时序图,结合“IP核参数默认值”查看
IP核参数默认值:
在这里插入图片描述
在这里插入图片描述
Write Cycle Period:
在这里插入图片描述
根据描述,AXI EMC core根据该参数去保持CE为低的时间,但不是指CE保持的时间,以S29GL512S10TFI01为例,值等于tCW,即60ns,如下
在这里插入图片描述
Write Enable Minimum Pulse Width:
在这里插入图片描述
该参数指片选(WE)保持的最小时间,以S29GL512S10TFI01为例,值等于tWP,即最小25ns
Write Phase Period:
在这里插入图片描述
该参数表示两个WE之间的最小间隔,以S29GL512S10TFI01为例,值等于tWPH,即最小20ns
Write WE High to Data Bus LZ Period:
在这里插入图片描述
该参数表示在一个写周期里,写使能(WE)到数据总线低阻的时间,或者写到读的恢复时间(可能理解的不正确,关于此参数配置时请谨慎),以S29GL512S10TFI01为例,使用的默认值,即0ps
Write Recovery Period for Flash Memory:
在这里插入图片描述
这个参数应该指的是数据写完后,WE还需要保持多少个时钟周期的时间,这里使用默认值,根据下图,此参数小于等于twrr,具体多少不知道,个人理解大于等于tWPH应该就可以了,仅供参考
在这里插入图片描述
MTD代码相关分析可以参考链接: MTD分析.


版权声明:本文为qq_33166886原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。