分享

可尽早捕获缺陷的DDR仿真策略

 goandlove 2015-09-29

DDR验证是任何SoC设计过程中最关键也是最复杂的任务之一,因为它牵涉到位于待测器件内的控制器和位于待测器件外的DDR存储器。


一个DDR系统由在 一起工作的控制器、I/O、封装、插座、电源、时钟和外部存储器组成。在数字验证中,并不是所有这些元件都能验证到,但主要是控制器、PHY、I/O和存 储器。由于在数字仿真中无法模拟所有元件的效应,验证变得更加复杂,但门级仿真(GLS)给我们提供了一个很好的基础架构,来报告主要从时序角度看可能影 响控制器-PHY-I/O路径的设计问题。


在门级仿真中验证DDR时会遇到许多与时序有关的问题,从而导致验证团队与静态时序分析(STA)团队之间发生大量迭代工作。如果有彻底调试过的门 级仿真环境,人们对运行于寄存器传输级(RTL)之上的DDR协议进行静态时序分析将会充满信心,并且会专注于解决数字和时序方面的问题。本文整理了 DDR门级仿真验证过程中由于RTL上的时序可见性而常常报告的各种问题,并通过一些例子强调了门级仿真环境中实现DDR快速有效收敛的重要调试标准。


借助多级IO处理惯性延时问题



RTL环境没有任何时序意识,因此在设计中没有惯性/传播延时,但当我们转移到门级仿真(GLS)设置时,就必须有效地考虑惯性/传播延时了,以便模拟实际的硅 片行为,同时不会使事情变得太过悲观。在逻辑单元输入端出现的持续时间小于惯性延时的脉冲,将不会导致该逻辑单元的输出端发生任何的转换,逻辑门表现出的 这种现象被称为惯性延时传播。业界标准的门级仿真工具通常将传播延时作为该逻辑门的惯性延时。仿真工具采用的这种建模方法是一种非常好的实际硅片行为提取 的方法,事实上它确实很好地模拟了信号通过单级逻辑门的传播。但这种行为在IO这样的复杂门中并不是想要的,因为IO是多级结构,一旦信号通过第一级,就 能保证它成功地通过IO单元传输。因为仿真工具不理解逻辑单元的这种内部结构,所以即使是多级IO最终它也会抑制这种脉冲,如图1所示。



图1:默认的门级仿真(GLS)行为是抑制小于门延时的所有转换。


解决这个问题现在有两种解决方案。


第一种解决方案是人工更新标准延时格式(SDF)文件,并将延时更新到一些较小的值。在信号传播正常的情况这种方法非常管用,但当新的延时不能代表实际延时时,这种方法并不合适,并可能会抑制其它潜在的功能性问题。


工业标准的GLS仿真器确实有这样的功能/开关,即允许/禁止特定宽度的脉冲通过单元。例如当使用“拒绝与误差(Reject&Error)设置” 时,将传播宽度大于“误差设置”值的所有信号。同时,这种仿真器在遇到宽度处于“拒绝与误差设置”之间的信号时将传播未知值,而且它会完全消除宽度小于“拒绝设置”的信号。下表1给出了一个例子。



表1: Pulse_e/Pulse_r行为


根据时序小组所做的平衡结果进行时钟选择



在RTL设置中,由特定源驱动的时钟将同时到达所有节点,但在使用GLS设置时,就要考虑时钟偏移了,它可能造成时序问题,即源自相同源的两个时钟路径可能 产生偏移,以至于DDR数据/时钟路径并不是对所有可能组合逻辑来说都是平衡的。在DDR设计中输入时钟是最重要的参数,因为所有其它信号都与输入时钟周期和占空比有关。也有这样的情况,即可以将多个时钟源用作控制器的输入时钟。一般来说,来自任何一个时钟源的路径只要是平衡的就可以推荐用作DDR输入时 钟,不过对于传播到外部DDR存储器的DDR_CLK、DDR_DQS等信号来说,在占空比、高电平时间、低电平时间等方面有很严格的要求,必须满足 DDR正确工作所需的条件。在写入侧与占空比要求相关的大多数故障可能是DDR控制器输入端时钟的占空比不正确引起的。因此为了避免不必要的调试工作,必须确保我们使用了时序要求得到满足的正确时钟源。下面提到了同样一个例子,其中捕获到了存储器输入端的DQS占空比数据,而且有两个不同的时钟源被选为 DDR控制器时钟。


DDR_CLK 频率:400MHz(约2.5ns)

55%×2.524ns = 1.388200ns

45%×2.524ns = 1.13580ns





表2:位于系统中不同层次的时钟占空比数据。


焊盘上的负载用于转储SDF



I/O 在具有时序意识的门级仿真(GLS)DDR验证中扮演着非常重要的角色。当满足直到焊盘输入端的时序要求时,就会从用于焊盘的许可文件提供的信息中转储出 I/O延时数据。也有这样的时候,即从控制器到焊盘输入端的路径得到了正确的平衡,但仍能见到故障发生。这可能是因为位于主控制器与外部DDR存储器之间 的路径中的I/O引入了不正确的延时。这些延时实际上取决于施加到焊盘的负载。因此在产生SDF文件时,需要注意板子上必须应用了正确且实际的负载。做不 到这一点可能在SDF文件中产生相当悲观的时序片段,并当在GLS仿真中进行反标时可能产生伪故障。这种问题很难调试,相当耗时耗力。



表3:悲观负载与实际负载比较。


全文请点击阅读原文,您将继续看到以下章节:

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多