大数跨境

技术洞见 | DDR IP硬化 - 概览和建议

技术洞见 | DDR IP硬化 - 概览和建议 牛芯半导体
2024-12-05
2
导读:本文转载自极术社区,转载文章仅供学习和研究使用。

本文转载自极术社区,转载文章仅供学习和研究使用。

本期我们学习一篇关于DDR IP硬化(Hardening)的文章,讲述了在DDR IP后端实现中的一些建议。笔者在AI翻译的基础上对译文进行修正润色,并添加了部分个人见解。


什么是DDR?


正如其名,双倍数据速率(DDR)是一种在时钟信号的上升沿和下降沿都传输数据的内存,通过双边沿传输在不增加时钟频率的情况下将数据速率翻倍。它使用PLL(锁相环)和自校准电路来达到所需的时序精度。
DDR是系统级芯片(SoC)最关键的IP之一,因为SoC中的处理器大部分时钟周期都在读写DDR内存。自校准逻辑精确测量DDR时钟和系统时钟之间的延迟和相位差异,并将DDR数据捕获与时序窗口对齐。时序校准逻辑还保持 DDR内存在系统运行期间温度和供电电压波动时的性能。


DDR实现的复杂性


深亚微米SoC设计集成了在超过1GHz时钟速率下运行的DDR内存子系统,高速时钟导致读写时序裕量以皮秒为计。这使设计师担心DDR内存系统的时序裕量由于工艺产生静态变化,以及其由于系统运行条件(如温度和电压)波动引起的动态变化,导致系统无法工作。

1. DDR I/O时序要求更严格,因为数据在时钟的两个边缘传输,所以有效数据持续时间只有半个周期。DDR中的逻辑通常涉及正边沿触发的触发器、负边沿触发的触发器甚至锁存器。

2. 随着数据速率的增加,与内存接口的时序和信号完整性相关的复杂性变得越来越困难。

3. 对于DDR信号,随着频率的增加,单个比特的传输时间减少,导致由传输时间均分得到的Setup和Hold时序预算也随之减少。


DDR IP硬化


DDR内存接口IP解决方案包括DDR控制器、PHY与IO接口。本文所谓的DDR内存子系统,指的是控制和访问DDR内存的SoC、SoC与DDR内存器件之间的接口和互连(通常也就是PCB),以及DDR SDRAM器件本身。
译注:这里作者的DDR内存子系统包括PCB以及DDR器件本身,是宏观的概念。需要区别于SoC中狭义的DDR子系统,这往往只包括DDR控制器,DDR PHY,以及SoC访问DDR的接口(通常是NoC)。
一些关键参数,如DDR模式、频率比和内存数据宽度,必须在DDR PHY和DDR控制器之间保持一致。
DDR PHY模块概述
DDR PHY实现分为内部模块化实现和顶层实现两种方式。一般来说DDR PHY有以下五类子模块。根据DDR配置的不同,这些模块的具体逻辑可以进行相应更改。
  • 数据控制模块:它控制数据读写操作。它将DQ、以及相关的DM和DQS 信号连接到DRAM。可以复制多个数据模块,提供需要的DRAM接口数据宽度。
  • 地址控制模块:它生成DRAM控制信号,片选(CS)、地址选择(AS)和其他控制信号的数量可以根据需求配置。
  • 内存时钟模块:它为DRAM提供DDR时钟。
  • 地址控制主模块:是所有地址控制模块的主控制模块。
  • 加法器生成模块:用于生成需要通过加法计算得到的DRAM地址。(译注:加法器不是必须的,实际实现中一般尽量通过移位等运算生成DRAM地址)
  • PLL:DDR顶层模块中包括两个PLL,一个PLL生成PHY所需要的工作时钟(译注:PHY时钟频率可能和DDR IO时钟相同,或者是DDR IO时钟的二分之一或者两倍),另一个PLL用于内存时钟模块生成提供给DRAM的DDR IO时钟。

DDR PHY中主要负责保持DQ-DQS以及CA-CLK这两对时序关系,以满足 DDR协议。具体来说,读写数据宏模块负责DQ-DQS时序关系。而控制地址-时钟(CA-CLK)时序关系则由控制地址-命令接口(control-address-command)负责。
具体来说,DQS信号相对于信号DQ的相位取决于当前是读操作还是写操作。在读操作中,DRAM发送的DQS信号边沿与DQ信号的边沿对齐,PHY会将 DQS相对于DQ相移90度,以DQS时钟边沿在DQ信号有效区间中心采样。(译注:这里对原文的说法有所修正)
而在写操作中DQS信号边沿与DQ有效信号中心对齐。如下图所示。


布局规划指南


DDR模块是否能够时序收敛,主要取决于布局规划。以下是一些需要在布局规划期间遵循的指南。
  • IO驱动器的放置顺序应与数据和地址模块的引脚顺序相匹配。这样我们可以减少走线交叉并更好地对齐信号边沿,有助于满足skew需求。
  • 最好通过脚本来确保从模块到IO的信号使用相同的缓冲模型、高层金属层、NDR进行缓冲。
  • 时钟引脚应该放置在Floorplan的中心,以平衡DDR模块顶层两侧的skew。来自数据和地址模块的关键信号在放置时需要特别考量。
  • Bump放置需要特别注意,以减少电阻并满足PERC和ESD要求。
  • 由于DDR时序约束非常复杂,最大延迟和偏斜相关约束可能不会包含在PD使用的SDC中。(译注:这里表达的意思可能是,最大延迟和skew相关约束不会放在Synth,CTS以及PR的SDC中,因为他们可能引入其他问题。而是由前端在后端实现完成后再进行Special check)。相位检测逻辑、PLL逻辑、时钟MUX需要在布局规划期间手动规划位置,因为工具可能没法进行准确的放置。在DDR hardening期间如果没有遵循这些指南,可能会导致严重的Skew不满足。
  • DDR数据传输速率、DDR协议、封装类型、P/G比率、封装去耦电容和PCB去耦电容容值,决定了DDR模块整体的去耦要求。必须预先放置IO驱动器的去耦电容。(译注:因为去耦电容有指定的放置位置,一般位于Die边缘和DDR模块逻辑之间。)


放置指南


  • DDR连接SoC核心逻辑的端口,需要通过Magnet placement放到尽可能靠近其SoC逻辑的端口处,以减少数据延迟。
  • 数据和时钟偏斜信号、时钟Mux和相位检测逻辑、IO驱动器及其驱动逻辑在优化期间应保持不变,并且应手动放置。


顶层时钟和偏斜平衡指南


以下是时钟平衡要求:
  • 保持DDR IO时钟与DDR PHY时钟之间的相位差异尽可能小。
  • 保证在DDR器件上的数据信号、控制信号和地址信号的Setup和Hold时序符合要求。
  • 保持所有时钟的占空比在整个时钟路径上不会出现变化,检查所有时钟路径上的占空比,以防止畸变。
  • 从时钟端口到模块内部的输入端口采样触发器和输出端口驱动触发器的信号应彼此平衡。
  • 在硬化DDR顶层下的子模块时,尽可能确保他们的触发器时钟的插入延迟(insertion delay)尽可能小。
  • 在硬化模块之后,在顶层构建CTS(时钟数)时,我们需要考虑子模块内的时钟网络延迟,并尝试使整个DDR顶层下每个触发器的偏斜值或多或少保持一致。
  • 在构建时钟树时,我们从功能时钟或者扫描时钟输入端口开始,先构建公共时钟到第一级时钟扇出引脚的时钟树,然后再从时钟逻辑输出构建时钟树到所有模块。
  • 为了避免任何额外的时钟延迟,我们将PHY时钟PLL放置在顶层的中心区域,并将DDR IO时钟PLL放置在靠近DRAM时钟生成模块的位置。此外,保证每个PLL相关的时钟逻辑放置在其附近。
  • 由于DDR模块的数据频率要求很高,我们使用了具有对称上升和下降延迟的高驱动器反相器,手动构建了高层金属层的时钟树,应用了NDR,并在需要的地方使用了屏蔽(shielding)以避免串扰(Cross talk)。
  • 注意以下对于从子模块到IO信号的偏斜要求:
    1. 以几乎相同的长度和电阻布线,以实现相等的延迟。宏单元到IO的距离应最小。
    2. 宏单元到IO的距离应最小。
    3. 使用NDR、屏蔽、高层金属层进行布线。
    4. 在这些信号路径上添加相等数量的缓冲器。


偏斜相关标准库单元的建模


在IP中有许多层次化标准库单元,他们的之间的信号线长度需要最小化,对于这些层次化单元,我们可以将这些单元与电源和信号布线一起硬化在宏结构中,并将其作为设计中的宏模块使用,以最小化其中的走线长度。我们可以从网表(netlist)中提取模型。
我们为什么要建模宏单元?
  • 解决放置和布线的一致性问题。
  • 确保Master和Slave模块行为的一致性。
  • 实现各个宏模块间的延迟一致性。
库单元延迟变化影响偏斜
在多个工艺角(Corner)平衡偏斜/数据路径是一项艰巨的任务,因为在先进技术节点中,单元的延迟在各工艺角的变化对偏斜有非常大的影响。另外,DDR IO存在多组包含多条2000um长的数据线,需要保持同组内的数据线有几乎相同偏斜值,使这项工作更加困难。在解决具体时序违例问题之前,我们需要首先理解一些重要的Case。
1. VT在SS/FF之间的变化
我们看到在多个VT之间,SS/FF之间的延迟变化比率发生了巨大变化。这是一个bufx2的例子:
2. Setup/Hold关键路径和延迟缓冲器
DDR有非常复杂的时钟约束。在许多情况下,单个寄存器在功能模式下存在多个输入时钟(通过MUX切换)。这些时钟之间存在有意或者无意导致的相位偏移。这可能导致一部分时钟的时序路径存在Setup/Hold违例。这种情况可以首先通过在MUX端口平衡时钟来解决,然后通过增加单元尺寸,或者替换VT单元,来降低数据路径延迟,以便减小对Setup时序的影响。Hold时序可能仍然违规,但Hold可以减小最小裕量要求得到修复。
(译注:没有完全明白原文这里为什么可以通过减少最小slack来修复Hold违例)
在(数据通路上)插入更多Delay Buffer解决Hold可能不是明智的决定,因为SS和FF之间存在更大的延迟差异,比如在FF下用于解决Hold问题的Delay Buffer会导致SS下的Setup违例。
这里是一个delay-bufx2和bufx2的例子:
3. CK-缓冲器x2-x4在SS/FF之间的变化
在某些偏斜非常紧张的情况下,可能不能通过增加CK-缓冲器的尺寸解决时序问题。我们观察到,通过在SS和FF之间增加尺寸或减小尺寸,相同单元在尺寸不同的情况下存在延迟变化。
以ck-buf x2和ck-buf x4为例:
4. CK-缓冲器和CK-反相器在SS/FF之间的变化
我们可能会通过增加时钟缓冲器来平衡偏斜,但由于高频率DDR时钟窗口如此之小,SS和FF中的延迟变化可能会使插入的时钟缓冲器在一个工艺角修复偏斜,但在另一个工艺角恶化偏斜。
让我们来看看这些变化:


IR和EM收敛


因为DDR需要遵循严格的偏斜平衡指南,因此可能会在数据和时钟路径中使用超大尺寸的x12或x16单元,所以设计中容易发生IR和EM违例。
EM修复需要非常小心地进行,因为时序路径的微小变化可能会直接影响偏斜。我们可以通过在布局布线阶段为这些关键信号线应用双倍宽度来预防这种情况。
IR问题可以通过在布局布线阶段中,为时钟单元和相位生成(phase generator)模块、大驱动器周围添加两侧去耦来处理。

参考文献:
1. 实用设计和可配置 DDR2 PHY 的实现 By Lior Amarilio, ChipX
2. http://www.latticesemi.com/view_document?document_id=9187
3. http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=3A728921C170B999834F9E5760C8B639?doi=10.1.1.84.4088&rep=rep1&type=pdf
4. http://www.ijeert.org/pdf/v2-i6/8.pdf
5. https://www.design-reuse.com/articles/20146/ddr-sdram-controller-ip.html
6. https://www.synopsys.com/designware-ip/technical-bulletin/ddr-hardening-demystified.html



往期推荐

01

牛芯半导体入选2024大湾区高成长企业100强

▲ 点击阅读

02

牛芯半导体荣获2024年度硬核IP产品奖

▲ 点击阅读

03

牛芯半导体荣获国家级专精特新“小巨人”企业认定

▲ 点击阅读


牛芯半导体(深圳)有限公司(简称“牛芯半导体”)成立于2020年,聚焦接口IP的开发和授权,并提供相关整体解决方案,致力成为全球领先的IP供应商。


基于自主可控的核心技术,牛芯半导体在主流先进工艺布局SerDes、DDR等中高端接口IP,产品广泛应用于消费电子、网络通信、数据存储、人工智能、汽车电子、医疗电子等领域。


未来,牛芯半导体持续响应IP国产化需求,适应不断演进的接口技术和日益拓展的接口互联场景,赋能数智时代下的千行百业。

【声明】内容源于网络
0
0
牛芯半导体
牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
内容 96
粉丝 0
牛芯半导体 牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
总阅读84
粉丝0
内容96