无论高级静态时序分析(STA)工具如何成型,运行GLS仍然有很多优势,因为它能够发现很多隐藏的设计问题,这些问题在RTL中很难找到模拟。它清晰地展示了设计在所需频率下的行为方式,并确实存在实际延迟。因此,尽管GLS有其自身的一系列挑战(例如设置问题,长时间运行等),但它仍然是签核过程的一部分,并且充当了设计质量的信心助推器。
JEDEC标准为DDR存储器定义了许多时序参数,需要遵循这些参数以确保正确操作。时序要求严格,需要谨慎实施。例如,数据选通信号(通常称为DQS)的占空比要求约为45-55%;如果在写入期间(存储器控制器将选通信号驱动到外部存储器)或读取(存储器驱动选通信号的位置)中违反此规范,则我们无法确保数据的健全性。物理实现本身就是一个挑战,因为设计人员必须注意各种时序参数没有偏离标准。 DDR实施很困难,因为它也涉及许多自定义程序。因此,在DDR的情况下我们不能仅仅依靠STA工具,并且运行GLS成为“必须”以确保设计的正确物理实现。运行GLS for DDR接口具有挑战性,因为它涉及各种测试平台设置问题,多个时序检查,偏斜检查,各种数据传输模式(突发长度-4,8),各种符合标准(如DDR3,DDR3L,LPDDR2等) 。)等等。
本文将尝试强调通过运行DDR的门级仿真可以找到的各种类型的问题,如何在设计中正确修复和实现它们以及应该如何物理设计/STA团队可以避免此类问题。
DDR存储器接口的门级仿真 - 示例问题,挑战和解决方案
进入DDR内存控制器的时钟占空比
进入DDR控制器的时钟质量是一个重要参数,因为控制器驱动大多数信号(如DDR时钟,数据选通等)都是从这个时钟本身导出的。
具有DDR控制器的SoC的通用图
进入外部存储器的时钟占空比应在47-53%的范围内。确保正确操作。如果占空比超出源本身(即进入控制器的时钟)的范围,则必须看到时钟的高周期和低周期之间存在巨大差异,这可能导致违反各种参数,如tdqsh_min ,tdqsl_min等.STA对此进行检查,但是有任何错误;不匹配可能导致写入/读取失败。
WRITE的失败看起来非常明显,但这个问题也可能导致READ操作失败!重要的是要知道在READ期间,由DDR存储器驱动的DQS内部源自它接收的DDR时钟。因此,如果存储器正在获得具有不良占空比的时钟,则它在读取期间生成的DQS可能违反读取后同步周期(trpst)等规范。
因此,设计人员必须确保来自时钟源(例如 - PLL)输出到控制器输入时钟的输入应在时钟的高低周期引入最小时滞。
读取DQS门控问题
读取DQS门控是一种功能,其中DQS被门控到控制器的读取电路,直到读取操作实际开始。这样做是为了防止控制器的读取FIFO损坏。读取DQS门控在READ开始时禁用,并在读取操作结束时再次启用。见下面的例子:
第一个信号是门控读取DQS信号,第二个是来自PAD的非门控DQS信号,n_52是读取的使能信号DQS门控。从上面的波形可以清楚地看出,在读取结束时延迟启用读取DQS选通导致在门控读取DQS信号上捕获“x”。
此外,由于它是异步事件,完成控制器的正确软件编程,以便在正确的时间禁用读取DQS门控。
如果读取DQS门控与其他DQS相比迟到特定DQS字节,则可能导致缺少该字节的完整读取DQS脉冲。见下面的例子:
前4个信号对应DQS0,后4个信号对应DQS1。由于读取DQS门控后来被DQS0禁用,因此导致完全错过一个DQS脉冲(“rd_dqs”有4个脉冲而“rd_dqs_gated”只有3个)。另一方面,对于DQS1(低4个信号),DQS门控启用/禁用正确发生。
因此,时序团队必须确保读取DQS门控禁用信号的延迟对所有人来说都是相同的字节。对读取前导码应该有读取DQS门控解除断言时间的时序检查。
在未使用读取DQS门控功能的情况下读取电路损坏
如果未使用读取DQS门控,则在DQS焊盘上使用下拉来保护读取电路在写入操作期间不被损坏。通常,在写操作结束时,DQS焊盘的输出路径被禁用,输入路径被启用。但是,如果输入路径稍微提前启用(在写入结束时),则可能导致DQS焊盘输入路径上的“x”损坏,从而破坏控制器的读取电路。因此,时序团队必须确保DQS焊盘的输入路径仅在写入操作完成后才会启用。
环回操作时的注意事项
在环回的情况下,没有外部存储器连接到SoC。数据从DDR焊盘循环回存储在读FIFO中。环回功能用于确保读/写路径的正确操作,并可用于测试目的。在环回的情况下,每当向控制器发送WRITE命令时,它都启用输出路径以及DQS焊盘的输入路径。但由于图片延迟,数据末尾可能会出现争用。时序团队必须确保DQS焊盘的“ibe”(焊盘的输入路径使能)的解除断言仅在读取电路完全捕获数据时发生,否则可能导致输入“x”损坏在环回期间读取数据时DQS填充路径或完全丢失数据。请参见下面的示例:
信号ipp_ibe_DDR0_DQS1是DQS1焊盘的输入缓冲器使能,ipp_obe_DDR0_DQS1是输出缓冲器使能。对于环回操作,两者都是“1”。 DDR0_DQS1是焊盘信号,ipp_do_DDR0_DQS1是焊盘的输出路径,ipp_ind_DDR0_DQS1是输入路径。由于ibe解除断言比焊盘上数据的下降沿更早发生,因此导致焊盘输入路径损坏(ipp_ind_DDR0_DQS1变为“x”)。
PAD电平的微调和微调选项
DDR电极板有多种微调选项 - 比如微调信号的占空比,控制信号的交叉点差分焊盘(DQS& CLK)的情况,控制焊盘输出路径的延迟等。但是,在GLS期间必须以最小的方式使用这些修整选项,并且必须通过定时本身来满足大多数条件。这很重要,因此我们在没有任何修整松弛的情况下完全强调设计。
关注DDR内存模型发出的各种时序违规行为
重要的是要审查GLS模拟中由DDR内存模型发出信号的每个警告/错误。当实际延迟在GLS中出现时,模型会响应违反各种时序参数的情况,这些参数本质上看起来微不足道,但重要的是让它们得到解决。例如,WRITE突发操作的结束称为写后同步周期(twpst)。一般的理解是写可累计周期应大于twpst_min参数。但是,仅当twpst_min小于tdqsl_min(最小DQS低周期)时才会出现这种情况。在dqsl_min> twpst的情况下,对于写后同步周期应该满足tdqsl_min时间。通过这种方式,我们在实现中维护tdqsl_min和twpst_min参数。
-
DDR
+关注
关注
11文章
712浏览量
65305 -
仿真
+关注
关注
50文章
4060浏览量
133502 -
PCB打样
+关注
关注
17文章
2968浏览量
21678 -
华强PCB
+关注
关注
8文章
1831浏览量
27740 -
华强pcb线路板打样
+关注
关注
5文章
14629浏览量
43016
发布评论请先 登录
相关推荐
评论