0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DDR仿真处理多级IO的惯性延迟问题

PCB线路板打样 来源:LONG 2019-08-12 11:29 次阅读

DDR验证是任何SoC中最关键和最复杂的任务之一,因为它涉及位于DUT内部的控制器和位于DUT外部的外部DDR存储器。 DDR系统由控制器,I/O,封装,插座,电源时钟和外部存储器组成,它们共同工作。在数字验证中,并非所有这些组件都进入图像,而主要是控制器,PHY,I/O和存储器。验证变得更加复杂,因为所有组件的影响都无法在数字仿真中模仿,但门级仿真(GLS)为我们提供了良好的基础设施来报告可能困扰控制器-PHY-I/O路径的设计问题从时间的角度来看。

在GLS中验证DDR时会遇到许多与时序相关的问题,导致验证和STA(静态时序分析)团队之间的大量迭代。拥有干净的调试GLS环境可以让您对RTL(寄存器传输级别)运行的DDR协议的STA视角充满信心,并且可以提供关注数字和时序方面的良好信心。由于RTL的时序可见性,本文整理了DDR的GLS(门级仿真)验证中通常报告的广泛问题,并通过大量示例强调了在GLS环境中快速有效地关闭DDR的重要调试标准。

RTL环境没有任何时序感知,因此设计中没有惯性/传播延迟,但是当我们移动时进入GLS设置后,这些进入了画面并且必须得到有效处理,以便模仿实际的硅行为,同时不会使事情过于悲观。在逻辑单元的输入处,持续时间小于惯性延迟的脉冲将不能在该逻辑单元的输出处引起任何转变,逻辑门表现出的这种现象称为惯性延迟传播。工业标准GLS仿真工具通常将传播延迟视为该逻辑门的惯性延迟。仿真工具采用的这种建模是对实际硅行为的相当好的抽象,事实上,它很好地模拟了通过单级逻辑门的信号传播。但是在IO等复杂门的情况下,这种行为是不可取的,其本质上是多级的,并且一旦信号使其经过第一级,就保证它将成功地传播通过IO单元。由于仿真工具不了解逻辑单元的这种内部结构,因此即使对于多级IO,它也会抑制脉冲,如图1所示。

DDR仿真处理多级IO的惯性延迟问题

图1:默认的GLS仿真行为是抑制所有小于门延迟的转换

现在要解决这个问题,有两种解决方案可能。

第一种解决方案是手动更新SDF并将延迟更新为更小的值。这种方法适用于正确传播信号,但这种方法不正确,因为新的延迟不代表实际的延迟,可能会抑制其他潜在的功能问题。

行业标准的GLS模拟器确实有能力/开关可以允许/禁止通过细胞的一定宽度的脉冲。例如“拒绝&错误设置“使用时将传播宽度大于'错误设置'的所有信号。虽然它会传播信号的未知值,宽度介于'reject&错误设置'它将完全消除宽度小于'拒绝设置'的信号。一个例子如下表所示。

Pulse_e& ; pulse_r 行为
pulse_e/100& pulse_r/100 拒绝所有小于传播延迟100%的脉冲
pulse_/0& pulse_r/0 传递大于0%传播延迟的所有脉冲
pulse_e/50& pulse_r/50 传递大于传播延迟50%的所有脉冲。

表1:Pulse_e/Pulse_r行为

基于时序小组完成的平衡的时钟选择

在RTL设置中,由给定源驱动的时钟到达同一节点的所有节点瞬间但是当我们转向GLS设置时,时钟偏移进入图像并因此可能产生定时问题,其中从相同源导出的两个时钟路径可能具有偏斜,使得DDR数据/时钟路径不能平衡所有可能的组合。输入时钟是DDR设计中最重要的参数,因为所有其他信号都是根据输入时钟周期和占空比得出的。可能存在多个时钟源可用作控制器输入时钟的情况。通常,来自任何一个时钟源的路径是平衡的,建议用于DDR输入时钟。 DDR_CLK,DDR_DQS等信号有严格的要求传播到外部DDR存储器的占空比,高时间,低时间等,这些都需要满足DDR的正确操作。写入侧的大多数与占空比要求相关的故障可能是由于DDR控制器输入上的时钟占空比不正确。必须正确地确保我们使用满足时序的正确时钟源,以避免不必要的调试。下面提到了相同的例子,其中存储器输入端的DQS占空比数据已经被选为DDR控制器时钟的2个不同时钟源捕获。

DDR_CLK频率:400MHz(~2.5ns)

55%的2.524 ns = 1.388200ns
2.524 ns的45%= 1.13580ns
路径不同层次结构的脉冲宽度(Clk源1) 高脉冲 低脉冲
PLL输出 H:1291ps L:1233ps
在Cross-Bar输入 H:1270ps L:1254ps
在交叉条输出 H:1241ps L:1283ps
在控制器输入 H:1227ps L:1297ps
在DQS pad输入 H:1334ps L:1190ps
在DQS垫 H:1377ps L:1147ps
路径不同层次的脉冲宽度(Clk源2) 高脉冲 低脉冲
PLL输出 H:1294ps L:1230ps
在Cross-Bar输入 H:1210ps L:1314ps
在横杆输出 H:1181ps L:1343ps
在控制器输入 H:1167ps L:1357ps
在DQS pad输入 H:1394ps L:1130ps
在DQS垫 H:1437ps L:1087ps

表2:不同层次结构的时钟占空比在系统中

在焊盘上用于转储SDF的负载

I/O在定时感知GLS DDR验证方面发挥着至关重要的作用。满足焊盘输入的时序,并且从焊盘的自由文件中提供的信息中转储I/O延迟。有时,从控制器到焊盘输入的路径被正确地满足并平衡,但仍然可以看到故障。这可能是由于I/O引入的错误延迟,这些延迟位于主机控制器和外部DDR存储器之间的路径中。延迟实际上取决于施加到衬垫的负载。因此,在生成SDF时,需要注意必须应用将在船上使用的正确和实际负载。如果不这样做,将导致在SDF中产生非常悲观的定时电弧,当在GLS仿真中反标注时会产生虚假故障。这些问题很难调试,需要付出很多努力。

加载(以pf为单位) 转换时间(ns) 计时弧(ns)
悲观负载 35 2 2.8
实际负载 12 0.6 1.2

表3:悲观负载v/s实际负载

输出缓冲器使能(OBE)时序要求

大多数DDR控制器设计都是为了驱动OBE(输出缓冲器使能) DQ(数据)和DQS(Strobe)焊盘本身可以用于写入/读取相同的焊盘。由于各种原因,OBE时序通常在路径计时时被忽略,但在DDR的情况下这样做会导致灾难性的结果。例如,在DDR协议的读/写期间,在READ/WRITE命令之后和DQS的第一个上升沿之前的DQS上的LOW状态被称为读/写前同步码;同样在最后一个数据输入之后DQS上的LOW状态元素称为读/写后同步码。前导码部分为接收设备提供定时窗口,以便在选通信号上存在已知/有效电平时启用其数据捕获电路,从而避免对捕获电路的错误触发。 UIT。在前同步码之后,选通脉冲将在数据突发的持续时间内以与时钟信号相同的频率切换。在写入期间对于该最小前导码宽度存在一定的时序要求,例如DDR2为0.35Ck,DDR3为0.9Ck,应该满足。类似地,对写后同步时序有要求。对于DDR2,这是0.4Ck-0.6Ck,对于DDR3,最小为0.3CK。如果DDR GLS遇到最常见的问题,则违反这些参数。

图2:DDR前导码和后同步码

DDR焊盘的压摆率设置:

焊盘的特点是不同的压摆率决定了每单位时间输出电压的变化率。这些设置对RTL仿真没有任何影响,因为没有延迟,但在GLS仿真中,延迟进入画面,进行适当的设置以避免任何不必要的调试变得至关重要。系统中不同焊盘的时序通常以最大转换速率满足,但可以根据各种参数而不同。一个这样的例子是,对于像DDR这样的协议的最大压摆率,可以看到反射和干扰的问题。对于此参数的不同设置,打击垫延迟变化太大。这些是根据最终将在验证板和测试仪上使用的负载和电阻值决定的。我们必须确保使用正确的打击垫设置运行我们的模拟,以便在预期结果和观察结果之间没有间隙。

下表包含推荐的SRE设置的数据,用于不同的接口之一SoC的。

Interface SRE设置
DDR 10
SDR 10
QuadSPI 11
ENET 11
MLB50 11
SPI 00

表4:SoC不同接口的推荐压摆率设置

字符I/O中的问题:

这方面只是在GLS中而不是在RTL中可见的,如果从开始确保可以确保我们可以最小化迭代调试和反馈验证和STA。为了给出背景,每个单元都有上升弧和下降弧所提到的延迟。任何单元的延迟都直接来自自由文件,其中包含PVT延迟的信息。电池的这些上升和下降时间可以彼此不同。但是像DDR这样的协议对占空比,高时间,低时间等有严格的要求,这些都需要满足协议的正确操作。在设计中,通常使用对称缓冲器和单元,其具有几乎相同的上升和下降时间,使得诸如CLK,DQS等的关键信号的路径是平衡的。但有可能I/O的上升和下降时间之间存在巨大差异,因为表征问题会导致占空比失真,从而导致内存端的违规。

图3:上升 - 下降延迟弧的差异导致违反占空比要求

SDF延迟舍入是高速GLS验证的杀手

测试平台具有定义事件粒度的时间表模拟设计。在时间刻度语句中,第一个值是时间单位,第二个值是模拟的精度。对于高速电路,应该非常仔细地定义时标精度。通常,时间刻度在测试平台中定义为1ns/10ps,这意味着所有延迟将四舍五入到最接近的10ps。但是在DDR这样的高速协议中,时序非常关键,边距可以非常小(以皮秒为单位)。例如,如果数据路径中有10个缓冲区,每个缓冲区的延迟为26ps,如果时间刻度为1ns/10ps,则所有这些延迟将四舍五入为30ps,因此将在GLS中引入40ps的不准确度。这将导致GLS中的错误时序违规。必须更新模拟环境以具有适当的时间尺度以迎合这些问题。

应解决内存错误

通常,不同供应商提供的模型可用于模拟。这些模型可以是Verilog模型或Denali模型。这些模型由Micron,Spansion,Macronix等内存供应商提供。出于模拟目的,Denali模型应该是首选,因为这些模型对所有时序参数和协议进行了非常严格的检查,并且还包括CK/DQS/DQ之间的抖动和偏斜因此非常接近将在板上使用的实际存储器。如果在存储器接口违反任何时序规范,则模型会标记错误。在RTL仿真中,没有延迟,如果正确配置了时序参数,则通常不会遇到这些错误。但是在图像延迟的GLS模拟中,可能会发生一些参数被违反并且会抛出错误。应仔细审查这些错误,并且必须予以解决。通常在写入周期期间遇到问题,此时信号由控制器发出并到达存储器。在读取周期期间,信号由模型本身生成并到达控制器。为Denali存储器提供了许多开关,它们控制各种参数,例如允许的差分偏移,将存储器初始化为某个值,禁止从存储器发送错误消息。应该注意不要传递这样的开关,这可能会掩盖任何错误。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DDR
    DDR
    +关注

    关注

    9

    文章

    676

    浏览量

    64230
  • PCB打样
    +关注

    关注

    17

    文章

    2965

    浏览量

    21380
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27457
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42573
收藏 人收藏

    评论

    相关推荐

    教大家对DDR4做仿真

    DDR仿真DDR4
    小凡
    发布于 :2022年09月13日 19:03:17

    Altera DDR2仿真

    最近在做ddr2方面的东西,需要仿真ddr2,可是一直没有头绪。xx_example_top_tb仿真不知道是对是错,网上说的外挂美光ddr
    发表于 06-29 15:50

    在同步电路中影响性能都有哪些方面呢?传输延迟惯性延迟怎么形成的呢?映射到硬件上怎么形成这种现象呢?

    在同步电路中影响性能都有哪些方面呢?传输延迟惯性延迟怎么形成的呢?映射到硬件上怎么形成这种现象呢?答:在连续分析课程中,我们将介绍,信号在系统中全时间轴连续取样点上的分布规律,工具和重要特征。一根
    发表于 03-09 16:01

    DDR仿真的频率提取

    作者:黄刚DDR仿真作为一个非常普遍的仿真模块,基本上入门SI行业的人都会首先接触到。记得本人刚接触这个行业的时候,也是先接触DDR模块的仿真
    发表于 07-24 06:56

    Quamtum-SI DDR3仿真解析

    Quamtum-SI DDR3仿真解析 Automated DDR3 Analysis  
    发表于 04-29 09:00 4286次阅读
    Quamtum-SI <b class='flag-5'>DDR</b>3<b class='flag-5'>仿真</b>解析

    基于Cadence的DDR仿真设计

    通过Cadence软件建立DDRⅡ信号拓扑结构、仿真信号的串扰、码间干扰、过冲等与信号质量相关的参数,从仿真波形中可以测量出与信号时序相关的参数,从而计算出信号的时序裕量,并为DDR
    发表于 02-13 15:16 52次下载
    基于Cadence的<b class='flag-5'>DDR</b>Ⅱ<b class='flag-5'>仿真</b>设计

    MPC8379E与DDR2之间的PCB布线及仿真设计

    研究了MPC8379E处理器的相关资料和DDR2的特性,以及它们之间PCB布线的规则和仿真设计。由于MPC8379E和DDR2都具有相当高的工作频率,所以他们之间的走线必须满足高速PC
    发表于 03-12 15:22 80次下载
    MPC8379E与<b class='flag-5'>DDR</b>2之间的PCB布线及<b class='flag-5'>仿真</b>设计

    计算机仿真多级放大电路设计中的应用

    为了研究多级放大电路工作相关属性的目的,使用软件Multisim10对多级放大电路的相关参数开展了仿真实验,给出了Multisim 对其参数进行仿真实验方案,利用双踪示波器、万用表、信
    发表于 12-24 15:43 13次下载

    LCD12864多级菜单仿真

    LCD12864多级菜单仿真讲解,很好的资料下载吧。
    发表于 01-13 16:09 167次下载

    DDR工作原理_DDR DQS信号的处理

    Random Access Memory的缩写,即同步动态随机存取存储器。本文首先介绍了DDR工作原理及结构图,其次阐述了DDR DQS信号的处理,具体的跟随小编一起来了解一下。
    的头像 发表于 05-23 16:07 5.1w次阅读
    <b class='flag-5'>DDR</b>工作原理_<b class='flag-5'>DDR</b> DQS信号的<b class='flag-5'>处理</b>

    DDR4技术有什么特点?如何采用ANSYS进行DDR4仿真

    本文介绍了DDR4技术的特点,并简单介绍了ANSYS工具用来仿真DDR4的过程。文章中主要介绍的对象为DDR4 3200MHz内存,因为硬件极客对D
    的头像 发表于 10-14 10:37 2.4w次阅读

    DDR内存条为例教你进行SI仿真

    容易引起电路的 SI 问题,信号测试验证也变得越来越困难。一般 DDR 信号测试、仿真验证,大多数用 SPEED2000,大家在学习 DDR 仿真前,可以先补充 SPEED2000 的
    的头像 发表于 02-07 16:37 1018次阅读

    如何利用ADS仿真软件辅助进行DDR的电路仿真

    前言 上文中,我们介绍了DDR芯片的物理层及协议测试,本文我们继续给大家揭秘如何利用是德科技的ADS仿真软件辅助进行DDR的电路仿真,验证和分析。 是德科技ADS简介 是德科技Path
    的头像 发表于 05-17 09:28 1w次阅读
    如何利用ADS<b class='flag-5'>仿真</b>软件辅助进行<b class='flag-5'>DDR</b>的电路<b class='flag-5'>仿真</b>?

    DDR I/II总线的仿真分析方法

    DDR2总线的仿真方法,基于Agree公司最新的网络处理器APP300和HY的 DDR2 SDRAM HY5PS121621。
    发表于 10-21 16:09 0次下载

    DDR设计和仿真技术详解

    DDR2设计和仿真技术详解。
    发表于 10-24 15:10 2次下载