原创 Lattice CrosslinkNx LIFCL-40应用连载7-使用HyperRAM存储器

2021-12-21 01:39 1796 8 5 分类: FPGA/CPLD 文集: Lattice
作者:Hello,Panda
今天熊猫君的技术分享是使用FPGA驱动读写HyperRAM。
首先,我们要了解什么是HyperRAM,这种器件出现的时间不太长,是近十年才面世的,一些RAM大厂如Cypress、华邦、ISSI等均有相关产品。它的访问接口类似于NOR Flash,每次访问都是先发命令,再取一个burst的数据,因此它不像SRAM或DRAM那样需要地址、控制和数据线等若干IO,它具有占用引脚少的特点,8bit位宽的片子只需要12个IO,16bit位宽的片子只需要20个IO。HyperRAM的运行速率有166MHz、200MHz和250MHz三个速率等级,双边沿采样,如果是8bit器件的话,那么对应的带宽就可以达到333MB/s、400MB/s和500MB/s,容量从32Mb到512Mb不等。
同时,HyperRAM具有低功耗的特点,并且时钟在非访问期间可以关闭,因此适合在穿戴设备、手持设备和部分车载应用等对功耗和体积要求严格且带宽吞吐不是那么特别大的场合使用,国内的FPGA厂商“高云”将HyperRAM集成到了它的“小蜜蜂”系列,一些传统的微控制器厂商也在产品中集成了HyperRAM控制器。

一、HyperRAM访问介绍
熊猫君以自有板子上搭载的华邦W956D8器件为例,详细介绍HyperRAM的访问流程。
华邦W956D8容量为64Mb,工作电压1.8V,8bit数据位宽,工作时钟200MHz(带宽400MB/s),最大突发长度128bytes(64clocks),在200MHz时钟频率工作时,命令插入等待周期最小为7clocks。
HyperRAM的访问分成寄存器访问、读数据、写数据三种来介绍。在器件复位信号释放以后需先对HyperRAM进行初始化。
1.1 HyperRAM命令集
每个HyperRAM访问周期均以命令开始,命令有内部配置寄存器访问和存储空间访问两个大类。命令一共有48个bit,占用3个时钟周期,下表1是命令字的位定义。

表1 命令字定义
1.2 寄存器访问
一般的,寄存器访问用于初始化HyperRAM内部寄存器,主要关注的是要正确设置“配置寄存器0”,写该寄存器对应的48bit命令字为16进制60-00-01-00-00-00,下表2为“配置寄存器0”的位定义。

表2 配置寄存器0位定义
在本例中,突发长度设为128bytes,其他为默认值,该寄存器的配置为8F2Ch。
在配置HyperRAM内部寄存器时,寄存器配置值紧跟CA命令字,主控无需驱动RWDS信号,时序如下图1所示。

图1 写寄存器时序图
1.3写数据
写数据的时序如下图2所示:
(1)写数据周期时,需将CS信号拉低;
(2)CA周期时,RWDS信号由HyperRAM驱动,在CA周期结束后,RWDS由主控FPGA驱动;
(3)本例寄存器CR0设置为初始化延时7个时钟周期,固定2倍延时,因此需固定延时14个时钟周期后输出数据;
(4)在数据输出时,RWDS可用作MASK信号,当RWDS为高电平时,对应的数据被屏蔽写入HyperRAM,一般RWDS恒为‘0’,数据全部写入HyperRAM即可。

 图2 写数据时序图
1.4 读数据
读数据的流程和写数据类似,RWDS全程由HyperRAM驱动,在数据输出时,数据和RWDS的边沿对齐,此时RWDS不具备数据屏蔽功能,仅通过边沿的变化指示数据正在输出,时序图见下图3。
 
图3 读数据时序图
二、FPGA驱动HyperRAM
FPGA驱动HyperRAM的整体框图如下图4所示。

图4 整体框图
这个东东比较的简单,就不在文章里面啰嗦碎碎念了,可直接下载代码分析即可。如上图所示:(1)内部时钟采用clk,为保证满足采样相位,输出到HyperRAM的时钟和内部时钟频率相同,相位相差135度;(2)主控检测RWDS的状态,当RWDS为边沿跳变的1-0-1-0…序列时,主控采样RWDS数据。
运行Demo功能,在线调试观察写入的数据和读出的数据,完全一致即为满足时序要求,运行结果见下图5。

图5 运行结果
好哒,今天的分享到此结束,通过关注微信公众号“ZYNQ分享客”,在对话框中回复双引号下的完整字符串“YSPL-LIFCL-APP006”即可获取本文对应的完整工程文件。最后,欢迎大家关注微信公众号或讨论群,聊聊技术吹吹水,分享心得,共同进步!

作者: panda君, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3403128.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

给作者打赏,鼓励TA抓紧创作!

赞赏支持
点赞 8
赞赏0

文章评论0条评论)

登录后参与讨论
相关推荐阅读
panda君 2022-10-30 11:03
Lattice Crosslink-NX器件(LIFCL-40-7MG121I)用作视频输入桥接时支持的CMOS型号及可达性能汇总
作者:Hello,Panda大家早上好、中午好、晚上好。 熊猫君前几天回老家了,手上没得啥新素材码字,决定水一文,将Lattice Crosslink-NX系列器件中熊猫君前一阵子用得比较多的...
panda君 2022-10-16 21:26
关于Radiant软件下Crosslink-NX物理层IP核MIPI_DPHY无法产生正确的非连续时钟时序的BUG修复办法
作者:Hello,Panda 一、问题描述: (1)器件:Lattice Crosslink-NX LIFCL-40-7MG121I ; (2)软件:Radiant 3.1; ...
panda君 2022-10-12 16:21
易灵思Ti60 FPGA专题(1)-器件和需求介绍
作者:Hello,Panda各位朋友们,先生们,女士们,大家早上好,中午好,晚上好。熊猫君最近正在折腾HK的易灵思FPGA芯片做一个Camera,现在弄得差不多了,计划分享一期易灵思的专题,大概有6集...
panda君 2022-10-07 13:52
关于Xilinx ZYNQ Ultrascale+ MPSoC使用原生PS端DP接口实现Live模式输出的经验分享
作者:Hello,Panda今天熊猫君要分享的是如何使用Xilinx  ZYNQ Ultrascale+ MPSoC的PS端原生DP接口实现LIVE模式输出3860*2160,30Hz视频。...
panda君 2022-08-11 12:04
Crosslink-NX器件应用案例(2): MIPI的多源合成(MUX)与分发(DeMUX)
作者:Hello,Panda好久没有码文章了,今天讨论讨论MIPI多通道合成输出(MUX)和输入分发输出(DeMUX)的问题。这也是类似于Crosslink-NX此类器件的一个典型应用方向,通过增加传...
panda君 2022-06-19 22:54
Crosslink-NX器件应用案例(1):SLVS/LVDS/HiSPI/DVP转MIPI DPHY CSI
作者:Hello,Panda这篇文章主要分享Crosslink-NX器件用于传感器接口转换:主要是指将SLVS、LVDS、HiSpi、DVP等其它电平(格式)的接口转换为标准的MIPI D-PHY C...
我要评论
0
8
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /2 下一条