您的当前位置:首页静态时序工具在DDR Memory接口时序收敛和后仿真中的应用

静态时序工具在DDR Memory接口时序收敛和后仿真中的应用

来源:小侦探旅游网
研究与设计 I Research and Design静态时序工具在DDR Memory接口时序 收敛和后仿真中的应用陈杰,刘勇(上海兆芯集成电路有限公司,上海201203 )摘要:为提高带宽,很多类型的Memory都采用了 Double Data Rate ( DDR ) interface,它对在内存控 制器(memory controller)设计过程中的时序收敛和后仿真提出了挑战。探讨利用静态时序分析工具解决 这个问题的方法。关键词:集成电路设计;内存控制器;时序收敛;SDF后仿真。中图分类号:TN402 文章编号:1674-2583(2019)08-0020-03DOI: 10.19339/j.issn.1674-2583.2019.08.007中文引用格式:陈杰,刘勇.静态时序工具在DDR Memory接口时序收敛和后仿真中的应用[J].集成电路 应用,2019, 36(08): 20-22.Application of STA on Timing Closure and Post-SDF Simulation of DDR Memory InterfaceCHEN Jie, LIU Yong(Shanghai Zhaoxin Semiconductor Co.,Ltd, Shanghai 201203, China.)Abstract — Double Data Rate (DDR) interface is a trend of memory interface these years. It presents some challenges for timing closure and post-SDF simulation when designing memory controller as long as the bus width is extended and speed is pushed to higher. This paper will discuss one practice to handle it with static Timing analysis (STA) tool.Index Terms — IC design, memory controller, timing closure, post-SDF simulation.1引言序检查及指导后仿真工作的方法。Double Data Rate (DDR)接口在 ASIC 领域

2 DDR Memory 读接口应用得很广,尤其在Memory领域,从DDR SDRAM 根据JEDEC Spec, DDR Memory读的时序如图1 =诞生后Memory经历了 DDR2, DDR3乃至现在主流 DQS上升沿的参数:①tDQSQ是最晚有效数据 的DDR4,它们在数据接口上都使用的Double Data 的翻转,它反映着DQ的偏移(Skew) o②tDH是最 Rate (DDR) interface\" DDR interface 是一

早无效数据的开始,它反映着DQ的有效宽度。种源同步接口,时钟(DQS)和数据(DQ)都由发 DQS下降沿的参数:①tDQSQ是最晚有效数据 送方提供。读操作时Memory提供时钟和读数据, 的翻转,它反映着DQ的偏移(Skew)。②tDH是 Memory仅在有数据的时间段内驱动时钟(DQS), 最早无效数据的开始,它反映着DQ的有效宽度。时钟和数据是沿对齐(edge alignment),内存 读操作时Memory提供时钟和读数据,Memory 控制器(Memory controller)使用收到的时钟

仅在有数据的时间段内驱动时钟(DQS),时钟和数 (DQS)的上下沿釆样数据。写操作时内存控制器

据是沿对齐,内存控制器(Memory controller)使 提供时钟和写数据且仅在有数据的时间段内驱动 用收到的时钟(DQS)的上下沿采样数据。鉴于DDR 时钟(DQS),时钟和数据是中间对齐(center Memory这个特性(上下沿都会发送数据),内存控 alignment),内存(Memory)也使用时钟的上下 制器亠般会使用延长线去延迟输入的DQS然后再去 沿采样数据。基于这样的协议,通常读操作时内存 采样数据的电路,其结构可如图2。控制器使用延长线延迟输入的DQS,以满足足够的 建立保持时间采样读数据。而写操作时,内存控制

器需要将输出的DQS做一定延迟以使内存有足够 的建立保持时间采样写数据。因为是时钟上下沿都 需要采样数据,随着Memory时钟频率的加快,对 时序收敛和后仿真都提出了挑战。本文介绍了一种通过静态时序分析工具进行时

基金项目:工业和信息化部国家核高基专项基金(2014ZX 01029101).作者简介:陈杰,上海兆芯集成电路有限公司,研究方向:集成电路设计。 收稿日期:2019-05-29,修回日期:2019-07-08。20 |集成电路应用 第36卷第8期(总第311期)2019年8月Research and Design I 研究与设计根据电路结构,它的时序约束可以如下设置

(以 DDR3-1600 为例)ocreate_clock -name ext_dqs -period 1.25 -waveform {0 0.625 ) [get_ports {dqs}]

Stanpoant: p« (input ponciodtedby ut.dqs)Endpoint: I rdataj(nsmj edge-mggeredftp-flopclocked byrdqs)Path Group:rdqsPith Type:ntincreate_generated_clock -name rdqs -source [get_ports {dqs}] -divide_by 1 \\

-add -master_dock [get_clocks {ext_dqs}] [get_pins {i_pad_dqs/Zl}] set_input_delay 0.1 -clock [get_docks {ext_dqs}] -max [get_ports {pd}] set_input_delay -0.15 -clock [get_clocks {ext_dqs}] -min [get_ports {pd}] set_input_delay 0.1 -clock [get_docks {ext_dqs}] -clock_fall -max -add_delay \\ [get_ports {pd}]set_input_delay -0.15 -clock [get_clocks {ext_dqs}] -clock_fall -min \\

clockexjdqs (fall edge)

clock network delay (propegated) input external delaypd (Inoul) pad_dq/IO (pad dq) pad_dq/Zl (pad_dq) i_rda»»_r/O (DFQOl)-add_delay [get_ports {pd}]set_multicycle_path 0 -rise_from [get_clocks {ext_dqs}] -rise_to (get_clocks \\ {rdqs}]set_multicycle_path 0 -fall_from [get_docks {ext_dqs}] -fall_to [get_clocks \\ {rdqs}]dockrdqt (rise edge)clockett^dqs (source latency)dqs (inout)I pad_dqs/IO_P (pad_dqs)

i_pad_dqs/Zi (pad_dqs) (gclock source) i.oaSi.DLVCOMP/ClICO (delay.chiln) ■_rd»t»_r/CP (DFQOl)clockreconvergence pesumism library hold timedata required time使用 create_clock 和 create_generated_ clock定义了 Memory产生的dqs经过延迟线延迟 后到达 i_rdata_r/f 的 clocko

因为Memory既在上升沿发送数据又在下降沿 发送数据,所以需要使用下面两条命令来约束输入

slick (MET) 0.3«从上面报告看到新数据被发送的时间从0. 62 ns开始计算并且上一笔数据被采样的时间也从0 ns开始计算,这也符合电路工作实际情况。延迟线延迟最

数据的建立时间(setup time)的要求。set_input_delay 0.1 -clock (get_clocks {ext_dqs}] -max [get_ports {pd}]

小时i_rdata_r的保持时间的余量最大,随着延迟线 延迟的增大,保持时间的余量会越来越小(表1)。表1读路径的Timingi rdata r(ps)i rdata f(ps)set_input_delay 0.1 -clock (get_docks {ext_dqs)J -clock_fall -max[get_ports {pd}]

根据时序要求远需要丧置输人数据的保持时间

(hold time)的要求如下。set_input_delay -0.15 -clock |get_docks {ext_dqs}] -min (get_ports {pd}]

set_input_delay -0.15 -clock [get_docks {ext_dqs}] -clock_fall -min[get_ports {pd}]

Stepssetup-3.844.892.1holdsetup9.9hold01343.9295.2248339.9292.1244.6196.7145.2aset_multicycle_path 0\"反唤着图 2 电路

57.7105.2153.1204.623139.9190.7200.2149.4101.6的工作机制,i_data_r/f的釆样时钟是经过delay chain延迟后的clock,理论上的建立时间不是通 常时序电路中的一个周期,所以设为multicycle, path=0o根据上面的时序约束可以在静态时序工具中得

4567238.4285.3333.4382252.3299.4347.5396.797.554.86.650.32.28-42-47到如下的时序报告。pd到i—r'datjr的建立时间 (setup time)报告如下。Startpoint: pd (input port clocked by ext_dqs)Endpoint: i_rdata_f (rising edge-triggeredflip-flop clocked by rdqs)Path Group: rdqsPath Type: max上面的时序报告描述了 i_rdata_r的时序情况,i_data_f的时序报告类似,只是launch/capture的时间不同而已,在此不再赘述。根据上面的分析说明时序报告符合电路工作预 期,所以时序约束是正确的。但在实际时序收敛时还 不能像一般芯片内部的数字电路那样简单地根据设定 的时钟和10约束进行时序收敛,理由如下。图3是芯片内部一般数字电路的基本结构,它Point

clockext_dqs (rise edge)

Incr Path0.000.000.000.00clock network delay (propagated)

input external delay pd (inout)

0.10i_pad_dq/iO (pad_dq)

i_pad_dq/Zi (pad_dq) l_rdata_r/O (DFQD1)

0.18 •0.00 •0.29 r0.29data arrival time dockrdqs (rise edge)

clockext_dqs (source latency)

0.000.000.00dqs (Inout)

i_pad_dqs/IO_P (pad_dqs)

i_pad_dqs/ZI (pad_dqs) (gclock source)

0.18 •I_DQSI_DIYCOMP/CLKO (delay_chain)

l_rdata_r/CP (DFQD1)

clockre converge nee pessimism

0.12 •flop2/D \\ / \\0 00library setup time

data required time

d・ta required time 0.28slack (VIOLATED: Increase significant digits)从上面报告看到输入数据被发送的时间从o ns 开始计算,而被采样的时间也为0 ns开始计算, 这恰好是符合i_rdata_r采样的时钟是来自延迟 后的DQS的上升沿,随着延迟线延迟的增大,i_ rdata_r的建立时间的余量会越来越大。pd到i rdata r的保持时间(hold time)的 报告如下。图3 一般的数字电路结构 图4 一般的数字电路时序关系flopl/CP在edge 2发送新的数据,flop2会在edge3采样这笔数据,这是它们之间的建立时间 (setup time)的检查。同样 flopl/CP 的 edge 4也可能发送新的数据,这些数据不能被flop2/ CP的edge4采样到,这个时序检查就是保持时间 (hold time)的检查。基于这样工作模式和静态时序检查方法,EDA工具能够比较容易根据时钟频率的 要求和电路自身的快慢自动地满足上述电路的时序要 求。例如当建立时间不满足时EDA工具可以通过缩 短flopl/Q->flop2/D路径的延迟或者利用flopl/

集成电路应用 第36卷第8期(总第311期)2019年8月| 21研究与设计 I Research and DesignCP和flop2/CP的skew做到,但这些都不太适合DDR 写操作时内存 Memory interface。因为图 2 中 i_rdata_r/f 的 控制器提供时钟和写 时钟是经过延迟线的,而这个延迟可能需要根据外接 数据且仅在有数据的 Memory的不同、工作频率的不同甚至工作电压及温度 时间段内驱动时钟 的不同进行调节以满足i_rdata_r/i_rdata_f数据端 (DQS),时钟和数据 的建立保持时间的要求,这样才能够正确接收数据。 在内存的输入需要满

因此在时序收敛过程中时无法按照确定的延迟线延迟 图5 Memory的写时序足中间对齐(center进行时序收敛,如果固定延迟进行时序收敛有可能会

alignment),这样内存端(Memory)就可以使用时 导致延迟线可用工作范围变小。事实上,图2电路的 钟(DQS)的上下沿采样数据。图6写电路工作时 时序收敛通常做法就是使pd到i_rdata_r/f/D的延 序如图7所示,i_wdata_r/f的数据经过MUX选 迟和 dqs 到 i_rdata_r/CP 和 i_rdata_f/CP 的延 择后就会变成一个上下沿都翻转的数据,而dqs经 迟尽量相等,这样才能保证将来做延迟线调节时有足 过延迟线后可以和写数据达到中间对齐(center够的调节范围,但这样做法可能导致在自动布局布线

alignment),从而满足DDR Memory对写数据的建完成后i rdata_r或i_rdata_f的数据端的建立/保持 立保持时间的要求。时间不是一直能够得到满足的,从而导致在后仿真时 有可能遇到时序违例,造成后仿真失败,这种情况在 DDR Memory interface 是多 bit 时,由于不同 bit 之间的延迟偏差会更严重,给后仿真带来困难,因为 仿真工程师需要找到一个合理的延迟线设置同时满足 不同bit和上下沿的建立保持时间的要求。而且,它 图6写电路的结构图7写电路的工作时序随着DDR速度的增加还会恶化。事实上基于前面的时 根据图5、图6、图7写电路的时序约束可以 序约束,通过脚本改变延长线的延迟设置然后做时序 添加图7中写数据和DQS间关系。对应在静态时序 分析,可以很方便地利用静态时序工具获得后仿真时

工具中可以得到时序报告。所需的延迟线的设置以满足所有bits及上下沿的时 综上,基于前述的DDR Memory写路径时序约 序要求。这样的方法也可以帮助我们分析读路径中实 束的静态时序报告和电路预期的工作模式是一致的,

际可用的延迟线工作范围,从而指导时序收敛过程。 但和读电路类似,为了保证write DQS有足够的可 如当自动布局布线工具APR时由于某种原因导致dqs 调范围,写电路时序收敛时一般也只是尽量将数据和

到 i_rdata_r/CP 或 _rdata_f/CP 的延迟比 pd 到 时钟的path做balance, 而不能基于某个延迟线i_rdata_r/D或i_rdata_f/D的延迟偏大时,这会导 的设置或某个频率做简单地修timing的工作,并且 致延迟线可调范围变小。设计者可以使用上述方法发 Memory不同工作频率下对于输入数据的建立保持时间 现这样的问题。的要求也不同,也不易按照一个固定的标准做时序收 通过静态时序工具可以得到上述方法的结果(表

敛。这样有可能导致像读电路一样后仿真时需要调节 1).它反映了随着延迟线的调整i_rdata_r/f的建 写时钟延迟线的设置以满足写数据的建立/保持时间 立保持时间满足的情况,正值表示相应的时序是满足 的要求。同样在多Memory bit的设计情况时这样工 的,负值说明相应的时序是不满足的。可用的延迟线 作也会随着频率的提高越来越不易,因此类似读操作 的设置是i_rdata_r和i_rdata_f的建立(setup)和 时的做法,这项工作也可以通过脚本改变延迟线的设 保持(hold)时间都是正值。比较后得到step=l〜7 置,在静态时序工具里完成。都是可以使用的延迟线设置,它们的中点大约为 4结语step=4,这个值可以用来做post-SDF仿真。本文介绍静态时序工具在DDR Memory 因此上文中的DDR Memory interface的时序设

interface的时序分析,以及其在后仿真中的应用。 置及后续时序检查方法可以很好地检查DDR读接口 从实践角度弥补了 DDR Memory interface时序收敛 的时序满足情况并可以很方便地找到可用的后仿真设 目标和后仿真目标之间的差异,可以在满足时序收敛 置,极大地提高了工作效率。目标的前提的情况下给设计者提供一种快速找到合适 3 DDR Memory 写接口的后仿真设置的方法。类似 DDR Memory 读接口,JEDEC Spec 的 DDR 参考文献Memory写时序如图5所示。①tDQSH: Write DQS [1] JESD79E SDRAM Specification[M].高电平的宽度;②tDQSL: Write DQS低电平的宽 [2] JESD79-2F DDR2 SDRAM Specification[M].度;③IDS:写数据的建立时间;④tDH:写数据的 [3] JESD79-3F DDR3 SDRAM Standard[M],保持时间。[4] Primetime User Guide (Ver. M-2017. 06) [M].22 |集成电賂应用 第36卷第8期(总第311期)2019年8月

因篇幅问题不能全部显示,请点此查看更多更全内容