无论高级静态时序分析(sta)工具如何成型,运行gls仍然有很多优势,因为它能够发现很多隐藏的设计问题,这些问题在rtl中很难找到模拟。它清晰地展示了设计在所需频率下的行为方式,并确实存在实际延迟。因此,尽管gls有其自身的一系列挑战(例如设置问题,长时间运行等),但它仍然是签核过程的一部分,并且充当了设计质量的信心助推器。
为什么gls对ddr存储器接口很重要
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参数。
卡扣连接器应用于电机外壳连接键的设计中
智能电表接线图
有望三年内量产的10款电动车:从特斯拉到阿斯顿马丁
光伏发电系统中逆变器的原理与应用
联想新推Z5s后置三摄手机
运行DDR的门级仿真可以找到的各种类型的问题
一文介绍GPS模块天线的那些事
在国家基础设施中移动和固定网络扮演着重要角色
什么是路由器用户可用插槽数
6个国家50多场官司?高通苹果彻底决裂,导致苹果5G手机被延后?
想转行做大数据 技术门槛比较高
英特尔推云端AI芯片 拟联手国内厂商开发AI服务器
如何防止电路中的闩锁问题
复旦微FM33LG048软件I2C驱动OLED的demo 帮助新手快速从STM32上手FM33
不知道这些功能你的新买的算iPhone白买了!
PLC故障排查步骤
电阻式触摸屏的基本结构介绍和驱动原理
GRANDMICRO有容微:闲聊物联网射频芯片
示波器的制作图解
英飞凌考虑将更多产能转移至美国!