EDN China > 设计实例 > EDA工具与服务 > IC设计与设计服务 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

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

Ankit Khandelwal?? Neha Srivastava?? 2015年09月25日 ?? 收藏1
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)行为是抑制小于门延时的所有转换。
图1:默认的门级仿真(GLS)行为是抑制小于门延时的所有转换。

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

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

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

 表1:  Pulse_e/Pulse_r行为
表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

图3

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

焊盘上的负载用于转储SDF

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

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

下一页:输出缓冲使能(OBE)时序要求

本文来自《电子技术设计》2015年10月刊,版权所有,谢绝转载。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

DDR? 仿真?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈