Infineon英飞凌官微

文章数:1586 被阅读:2056451

账号入驻

在SoC设计中使用高频源同步存储器

最新更新时间:2021-09-01 05:52
    阅读数:






当今的嵌入式系统要求外部存储器具有高带宽,从而以最低成本实现快速启动与应用加载。在过去,车载图形、工业系统、数码相机、打印机和消费类电子产品等应用使用并行接口存储器来实现这一目标。现在,串行外设接口(SPI)等小针脚数串行接口正在进入各种应用,成为标准的存储器接口。主要的片上系统(SoC)支持SPI作为默认配置。不仅用于存储配置参数的小密度存储器,也用于存储应用代码的大密度存储器。




然而,为了实现更高带宽,SPI近期有复杂化的趋势。总线在不断变宽(x1/x2/x4/x8),并且数据速率也从单倍数据速率(SDR)扩展为频率高于100MHz的双倍数据速率(DDR)。新的HyperBus接口也可以看作是8位I/O总线DDR串行接口,已经集成到SoC中。

该趋势可提升应用效率,比如能以最低成本加速启动,并缩短应用加载时间。然而,SoC设计师现在面临的难题是如何支持多种类型的串行存储器。原因之一是,频率越高,采集数据所需的有效数据窗口就越窄。另一个原因是,多家存储器厂商推出了多种读取接口。


本文将探讨SoC设计师如何实现统一的存储器控制器设计。关键在于读取接口(Rx域),因为对我们所探讨的串行存储器接口而言,写入接口(Tx域)基本完全相同(采用中心对齐方式)。因此,协议或Tx域(命令/地址/数据的组合)不在本文的讨论范围内。

数据有效窗口(tDV)



当系统为实现更高存储器带宽而运行在较高频率时,数据有效窗口(tDV)会收窄,尤其是在DDR中,因为它每半个时钟(SCK)周期传输一次数据(图1)。由于主机控制器需要一定裕量的建立和保持(setup-and-hold)时间才能采集有效数据,tDV成为制约系统内存储器最高运行频率的主要因素。因此,让tDV有尽可能大的宽度,是定义存储器时序的关键。


图1.比较表明,当系统运行在较高频率时,数据有效窗口(tDV)将收窄。

存储器行业存在多种时序定义(例如LPDDR1、2、3、4等),本文重点关注NOR闪存、F-RAM和pSRAM的串行存储器接口。前述市场都在快速转向串行存储器接口。


存储器时序定义


 

本文讨论三种类型的DDR时序定义。一般情况下,如果SDR的频率与DDR相同,则可以认为SDR有更宽的时序裕量,在可以满足DDR时序的情况下,也能满足SDR时序。由于本文探讨的是SoC上的主机存储器控制器,因此,从数据采集电路设计角度,可将时序定义分为三类,即内部时钟(a)数据学习模式(DLP)(b)和选通(RWDS/DQS)(c)。业界的串行存储器定义(NOR闪存、F-RAM和pSRAM)可归为其中一类。

 

下面让我们分别了解每种存储器时序定义。首先假设主机存储器控制器要求如下:


  • tDV (min) = 1.45ns

  • 时钟占空比(最小)为SCK的45%



01
内部时钟


 

图2是一种传统的SPI读取时序定义,在每个SCK沿(DDR)输出数据。数据在SCK沿(示例波形中的上升沿)后的tV(SCK到Output Valid)时间生效,并保持有效至下一SCK沿(示例波形中的下降沿)前的tHO(Output Hold)时间。


图2. 内部时钟的DDR tDV定义:数据在SCK沿(示例波形中的上升沿)后的tV(SCK到Output Valid)时间生效,并保持有效至下一SCK沿前的tHO时间。


tDV可以用下列公式表达:

  • tDV (min) = tCKHP (min) + tHO (min) – tV (max)

其中,tCKHP是半时钟脉冲宽度。

按照假设,tDV必须大于1.45ns。因此,tCKHP可用下列公式限定。例如,赛普拉斯的FL-S Quad SPI存储器提供tV = 6.5ns且tHO = 1.5ns。因此,


  • tDV (min) = tCKHP (min) + tHO (min) – tV (max) > 1.45
  • tCKHP (min) > tV (max) – tHO (min) + 1.45 = 6.5 – 1.5 + 1.45 = 6.45 ns

 
当时钟占空比为45%时,tCK(时钟脉冲宽度)为:

  • tCKHP (min) = tCK * 0.45

  • tCK (min) = 6.45 / 0.45 = 14.3 (ns) = 69.7 (MHz)


因此,本定义中使用的最大频率是69.7MHz(DDR)或139MHz(SDR)。

实际情况下由于工艺、电压和温度(PVT)的作用,tV和tHO会彼此追随。短tV的器件必有短tHO(快速PVT),长tV的器件必有长tHO(慢PVT)。然而,如图3所示,为解决tDV窗口相对于SCK的偏移,这种时序定义同时考虑某个时间的最劣tV(tV(max))和最劣tHO(tHO(min)),从而造成根本性的频率限制。

图3. PVT上的内部时钟的DDR tDV定义。


因为本文探讨的源同步存储器器件一般不采用延迟锁环(DLL)或锁相环(PLL)设计来补偿存储器器件中PVT上的时序偏差,PVT导致的时间不确定性在5ns范围内(在PVT上,FL-S tV在最低的1.5ns到最大的6.5ns之间变动)。频率接近70MHz时,tCKHP仅为7ns,这种不确定性范围可能引发问题,因为此时主机存储器控制器需要确定的tDV值。



02
数据学习模式(DLP)


 

根据上文的讨论,最根本的难题是如何在较高的SCK频率下跟踪存储器器件的PVT变化。这种新定义被称为“数据学习模式(DLP)”。这种方法通过调节数据采样点到重新定义的新tDV周期内,借助主机存储器控制器来跟踪PVT变化(图4)。


图4. PVT上的DLP的DDR tDV定义。


DLP的基本思想是,tV和tHO实际上彼此跟随,这样有短tV的器件必有短tHO,有长tV的器件必有长tHO。关键是虽然器件可以保证tDV的宽度,但当tDV窗口在PVT上偏移时,无法保证它的具体位置。主机存储器控制器负责使用DLP跟踪tDV区域。现在,tIV被新定义为“SCK to Output Invalid”时间,且tV和tIV在PVT上彼此追随。tDV采用下列公式进行定义:tDV (min) 等于 tCKHP(min) + tIV(max) – tV(max)和tCKHP(min) + tIV(min) – tV(min)中的较小值。其中,tCKHP是半时钟脉冲宽度。

 

与之前的讨论相同,tDV必须大于1.45ns:

 

  • tDV (min) = tCKHP (min) + tIV – tV > 1.45

  • tCKHP (min) > tV – tIV + 1.45

 

将“tV – tIV”考虑成周期间抖动和IO倾斜之和。作为假设,0.8ns可用作真实数值。因此:

 

  • tCKHP (min) > 0.8 + 1.45ns = 2.25 ns

  • tCKHP (min) = tCK * 0.45

  • tCK (min) = 2.25 / 0.45 = 5 ns = 200 MHz

 

200MHz(DDR)或400MHz(SDR)将是这种定义下可用的最大频率。



03
选通(RWDS/DQS)


 

从存储器器件跟踪PVT验证的另一种定义是使用选通信号。选通,也就是RWDS或DQS,是来自存储器器件的反馈信号。它与PVT上的IO[x:0]同时转换,一般被称为“边沿对齐”选通。选通和IO[x:0]都在一定延迟后从SCK输出,正如前文所讨论的“tV”的定义。

 

然而,这一延迟不再用于主机存储器控制器的时序定义中。相反,针对选通的tDSS和tDSH的定义如图5所示。


图5. PVT上选通的DDR tDV定义。
 

现在,tDSS将RWDS定义为最慢的有效IO,tDSH将最早的无效IO定义为RWDS。选通(RWDS或DQS)指在主机存储器控制器上进行内部额定90度延迟(延迟选通),这样主机控制器可通过延迟选通边沿来采集tDV中心的数据。

 

实际上,tDSS和tDSH定义的是8个IO + 1个RWDS = 总共9个存储器器件输出信号(以8个IO的器件为例)间的偏斜,可以保证覆盖整个PVT。因此,使用选通将提供更准确的时序或更宽的tDV窗口,因为该偏斜一般在不足1ns的范围内。

 

tDV具体用下列公式进行定义:

 

  • tDV = tCKHP (min) – tDSS (max) – tDSH (max)

 

其中,tCKHP是半时钟脉冲宽度

 

假定tDV>1.45ns,tDSS = tDSH = 0.4ns,则有:

 

  • tDV (min) = tCKHP (min) – tDSS (max) – tDSH (max) > 1.45

  • tCKHP (min) > tDSS (max) + tDSH (max) + 1.45 = 2.25 ns

  • tCKHP (min) = tCK * 0.45

  • tCK (min) = 2.25 / 0.45 = 5 ns = 200 MHz

 

200MHz(DDR)或400MHz(SDR)是这种定义中的最高可用频率。


主机存储器控制器设计


 

根据前文的讨论,时序定义可以根据读取带宽(频率)目标来考虑。下表比较了每种定义所能实现的理论最大带宽。SoC设计师可按设计要求选择其中任何一个,或是通过一次性芯片集成全部实现,以支持多个串行存储器。我们建议分配8位IO,这样就能一次性支持单(x1)/双(x2)/四(x4)/八(x8)串行存储器。



图6所示的是支持三种必需采集方案的采集逻辑原理图。每种采集方案都可以实现成单独的模块并生成采集事件,用于在寄存器中触发数据读取。为了最大化外部存储器总线频率,需要尽可能缩短从焊盘到捕获寄存器的关键时序路径长度,因此需将捕获寄存器放置在生成捕获事件的区域附近。采集的data_in可通过FIFO同步到主机时钟域。


图6.支持三种必需采集方案的采集逻辑原理图。


下面介绍捕获块的具体构成。



01
内部时钟


 

图7所示的是同时支持SDR和DDR时序的采集逻辑原理图。波形显示的是DDR时序示例(图8)。在DDR时序中,内部时钟(clk_if)能以两倍于SCK的频率运行,在每个时钟上升沿采集数据。在本例中,反相内部时钟(clk_if_rx)用于采集数据。我们建议主机控制器设计预留一个选项,用于选择最佳时钟,以适应本定义下PCB上的各种存存储器时序与走线延迟。


图7. 在这里,采集逻辑同时支持SDR和DDR时序。


图8.同时支持SDR和DDR时序采集逻辑的时序波形。


说明:在这个定义中我们必须考虑走线延迟(2xtTRACEDELAY = 往返延迟)。


读取周期始于clk_if,结束于捕获寄存器(clk_if_rx)的时钟输入。数据读取由存储器件在SCK上升沿上启动,在tV后出现在外部总线(I/O)上。随后,数据经由IO传递给主机存储器控制器,并在RX时钟域内的寄存器上使用时钟clk_if_rx采集。



02
数据学习模式(DLP)


 

在更高的频率下,使用DLP可以更准确地确定何时需要采集数据(图9)。发出读取命令后,会有一段初始访问延迟。在这段时间里,存储器件将准备所请求的数据(从存储器件感知数据输出)。并且,在输出目标数据之前,存储器件会立即向每个I/O引脚上的主机存储器控制器发送已知的位序列(DLP)。主机可使用该序列来确定采样时钟(或数据)相对于每个I/O线数据(或内部时钟)的延迟。


图9. DLP的采集逻辑原理图。
 

读取周期始于clk_if,结束于捕获寄存器(clk_if_rx)的时钟输入。与(a)相同,数据读取由存储器件在SCK上升沿上启动,在tV后出现在外部总线(I/O)上。随后,数据经由IO传递给主机存储器控制器,但是将会根据比较器的结果而生成的每个读取指令动态选择捕获时钟。clk_if_rx中采集到的数据将通过FIFO同步到主机时钟域(clk_if)。

 

带有比较器的延迟线数据逻辑(图10)和DLP使用方法的详细介绍,请参阅赛普拉斯核心与代码


图10. 带有比较器的延迟线逻辑示例。


采集逻辑的时序波形参见图11。本例中,来自使用高速PVT的存储器件的数据可通过RX_Tap_A锁定,而来自使用低速PVT的存储器件的数据可通过RX_Tap_D锁定,形成最佳时钟配置。


图11.用于DLP采集逻辑的时序波形。



03
选通(RWDS/DQS)


 

采集数据的第三种方式是使用选通(RWDS或DQS)。该信号用上升/下降沿表明I/O线携带了有效数据。为此,RWDS/DQS在存储器读取操作中由存储器件驱动。RWDS/DQS的上升/下降沿与数据边沿对齐(图12)。主机存储器控制器故意将RWDS/DQS延迟额定90度(延迟RWDS/DQS = clk_if_rx(#)),用作tDV中心上的采集时钟。tDSS定义setup的裕量,tDSH定义保持裕量。clk_if_rx中采集到的数据将通过FIFO同步到主机时钟域(clk_if)。


图12.用于选通的采集逻辑的原理图。
 

从时序分析的角度,读取周期始于RWDS,止于捕获寄存器(clock_if_rx)的时钟输入(图13)。CK(clk_if)与RWDS(clk_if_rx)间不存在关键的时序关系。因此,读取周期的时序分析从RWDS而非CK开始。由于频率较高,SoC设计师应选择准确的“故意延迟”。一般来说,CK<100MHz可选择延迟,而CK>100MHz就需要DLL。然而,必须根据每个SoC设计的时序分析做出决策。


图13. 选通的采集逻辑的时序波形。


业界存在多种类型的串行存储器。然而,我们可将SoC中的主机存储器控制器设计成统一的主机存储器控制器,以便让SoC一次性支持多个串行存储器。即使是在每个串行存储器的存储器接口都不同的情况下,这种策略也可以应对备选供应商的问题。






电梯直达


推荐帖子

【FPGA助学系列-nCEO管脚设置】
在v2.00版本助学开发板上,扩展口101引脚为nCEO管脚,假如我们把它当做普通I/O管脚而不做设置的话,就会出现如下错误Can\'tplacepinsassignedtopinlocationPin_101.101管脚是nCEO,那么什么是nCEO,我们该怎样设置它为普通管脚呢?先说下设置,不同版本的Quartus界面不同,在此只说菜单层次,Assigment——》device——》deviceandpinoptions——》dual-purposepins,将n
白丁 FPGA/CPLD
高频变压器刺心常用规格及尺寸
\0\0\0eeworldpostqq高频变压器刺心常用规格及尺寸好,Excel的还是第一次发现。
blink 电源技术
变频器整流回路中泵升电压是什么?
目前使用的电压型变频器,当所带电动机减速制动时,电动机进入发电制动状态,其能量通过逆变电路中的反馈二极管流入整流回路输出的直流中间回路,使直流电压升高产生过电压(泵升电压),而导致器件击穿。为了限制泵升电压,在直流侧电容两端并接功率开关管T0和能耗电阻R0,组成泵升电压限制电路。当泵升电压超过一定值时,T0导通,将回馈能量消耗在R0上,泵升电压设定较高时,T0导通时间短,消耗在R0上的功率少,对提高传输效率有利,但制动力较弱。反之,泵升电压若限定太低,T0导通时间长,R0上的功耗增加,T0和R0
eeleader 工控电子
python实现简单爬虫功能-爬去网页图片
python实现简单爬虫功能在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。  我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。  这里可以通过python来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。一.获取整个页面数据
windworld ARM技术
单片机跟Android手机通信
为Android开发外接设备,让手机变成小场合的设备控制、数据采集中心,单片机通过miniUSB跟Android通信,可行么。单片机跟Android手机通信如题可行当然可行,MCU可以模拟主机,拿手机当主机的话需要看其USB接口是否支持host模式且需编写专门的软件和设备驱动。应可行,但楼主得开发ANDROID和单片机两方面软件,呵呵,两线同时开战什么楼主都用上ANDROID手机了可以,你的MCU可以用蓝牙也可以用WIFI与android手机通信。但如果是要转换成USB再到
半导体狂人 单片机
瑞萨e2studio如何去除汉化
#背景安装e2studio时选择了中文语言,但使用之后发现汉化不完全,而且某些地方汉化词不达意。想把汉化去掉,但是网络并没有多少资料,而且过时了,不生效。经过我一番摸索,终于找到了法门。#卸载汉化过程##卸载插件入口从菜单栏**Help**-->**Aboute2studio**进入。##进入安装细节在弹出的界面点击**InstallationDetails**##搜索中文插件搜索ch开头的插件,找到三个,全部卸载。##卸载完成重启
CoderX9527 DigiKey得捷技术专区

最新有关Infineon英飞凌官微的文章

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved