当前位置: 首页 > news >正文

WCK2CK Leveling

WCK2CK Leveling 是 LPDDR5/LPDDR6 里面一个非常“PHY”的训练。

它的核心难点是:

LPDDR6 有两套时钟

CK = Command Clock WCK = Data Clock

而且:

WCK 比 CK 快很多

LPDDR6 里:

WCK : CK = 2 : 1

也就是:

CK 负责 command WCK 负责 data

一、为什么需要 WCK2CK Leveling?

这是整个训练里最容易懵的点。

先记一句话:

Command 是按 CK 走的

Data 是按 WCK 走的

于是:

ACT / READ / WRITE

这些 command:

是:

CK domain

但:

真正 DQ 数据:

是:

WCK domain

问题来了

如果:

CK 和 WCK 相位没对齐

会怎样?


举例

Controller 发:

WRITE command

DRAM:

按 CK 接收到:

WRITE

然后:

它期待:

某个固定时间点 WCK 开始 toggle DQ 开始有效

但如果:

WCK 晚了

可能:

DRAM 还没准备好接收 DQ

如果:

WCK 早了

可能:

DRAM 还没进入 write state

于是:

DQ 数据错位

本质

所以:

WCK2CK Leveling 的核心:

就是:

找到 WCK 相对于 CK 的最佳相位位置

让:

Command Domain 和 Data Domain

同步。


二、为什么 LPDDR6 要多一个 WCK?

这是 PHY 架构核心。

如果:

DQ 也用 CK:

那么:

CK 频率必须超高

例如:

10667 MT/s

CK 根本扛不住:

功耗 jitter SI EMI

所以:

LPDDR5/6 采用:

分离式时钟

CK 低速 WCK 高速

即:

时钟

用途

CK

Command/Address

WCK

DQ Data


三、WCK2CK Leveling 训练什么?

核心训练:

1. WCK delay 2. WCK phase 3. CK-to-WCK relationship 4. WCK sampling alignment

四、WCK2CK Leveling 的核心思想

这里非常重要。

DRAM 不知道:

WCK 到底什么时候来

所以:

controller 要:

“告诉 DRAM”

WCK 和 CK 的相位关系

本质:

就是:

校准:

CK domain → WCK domain

之间的 crossing。


五、完整核心流程(重点)

现在开始真正流程。


STEP 1:进入 WCK2CK Leveling Mode

controller:

通过:

MRW

设置:

MR16 OP[2] = 1

进入:

WCK2CK Leveling mode

此时:

DRAM:

不会正常读写

而是:

专门检测 WCK timing

STEP 2:Controller 发 WFF

这里非常关键。

WFF = Write FIFO

你可以理解成:

Training Write Command

作用:

让 DRAM:

准备进入 write timing path

因为:

WCK 主要是:

Data Clock

所以:

一定要通过:

write path

训练。


STEP 3:Controller 输出 WCK Pattern

接下来:

controller 开始输出:

WCK toggle

例如:

0101010101...

这里:

WCK 是高速连续翻转


STEP 4:DRAM 内部生成 Reference Pulse

DRAM 内部:

会根据:

CK

生成:

内部参考 timing pulse

标准里通常叫:

WLV pulse

(Write Leveling Pulse)

这个 pulse:

代表:

DRAM 认为 WCK 应该出现的位置

STEP 5:DRAM 比较:

实际 WCK

vs

内部 WLV pulse

这一步是核心中的核心。

DRAM 内部:

比较:

WCK edge

和:

internal reference timing

关系。


情况1:WCK 太早

WCK 提前到

DRAM 判断:

FAIL

情况2:WCK 太晚

WCK 延后

DRAM:

也判断:

FAIL

情况3:WCK 正好

WCK edge 位于正确采样窗口

PASS。


STEP 6:DRAM 返回 Feedback(关键)

DRAM:

通过:

DQ feedback

告诉 controller:

PASS / FAIL

通常:

DQ = 1 → PASS DQ = 0 → FAIL

或者:

0→1 transition

表示:

进入有效窗口

STEP 7:Controller 扫描 WCK Delay

现在:

controller 开始:

set_wck_delay()

例如:

0 1 2 ... 127

每次:

发 WFF 输出 WCK 读取 DQ feedback

STEP 8:形成 PASS Window

例如:

delay: 0 1 2 3 4 5 6 7 8 result: F F P P P P P F F

PASS 区间:

2~6

最佳点:

4

STEP 9:选择最佳中心点

Controller:

计算:

最佳 WCK delay

例如:

best_wck_delay = 42

STEP 10:写回 PHY Register

写入:

PHY_WCK_DELAY

后续:

所有:

WRITE READ DQ Training

都基于这个。


STEP 11:退出 WCK2CK Leveling

controller:

MR16 OP[2] = 0

DRAM:

退出:

WCK2CK training mode

进入:

normal operation

六、为什么它比 CBT 更“PHY”?

因为:

CBT:

还是:

数字 command

但:

WCK2CK:

已经进入:

时钟相位同步

问题。

它本质是在做:

Clock Domain Alignment

即:

CK domain ↔ WCK domain

同步。


七、真实 PHY 里的硬件模块


1. WCK Delay Line

用于:

调节 WCK phase

例如:

DLL PI DCC

2. Internal Reference Generator

根据:

CK

生成:

WLV pulse

3. Comparator

比较:

WCK edge vs reference pulse

4. Training FSM

状态机:

IDLE ENTER_WLV SCAN_DELAY CHECK_FEEDBACK FIND_CENTER DONE

八、为什么它必须在 DQ Training 前?

因为:

DQ training:

依赖:

WCK 正确

如果:

WCK phase 都没对齐

那么:

DQ timing 全错

所以:

WCK2CK 是:

DQ Training 的基础

九、Testbench 如何模拟?

你现在做 tester/platform。

通常:

不会真模拟 analog PLL。

而是:

模拟 PASS Window

例如:

function bit wck2ck_eye_model( input int delay ); if (delay >= 20 && delay <= 60) return 1; else return 0; endfunction

训练:

for (delay = 0; delay < 128; delay++) begin pass = wck2ck_eye_model(delay); if (pass) record_pass(); else record_fail(); end

十、一句话总结 WCK2CK Leveling

它的本质:

找到 WCK 相对于 CK 的最佳相位关系

它解决的是:

Command Clock Domain

Data Clock Domain

之间的同步问题。

这是:

LPDDR5/LPDDR6 高速 PHY 的核心训练之一。

http://www.jsqmd.com/news/806270/

相关文章:

  • 基于Next.js 14与AI SDK构建智能菜谱生成器全栈实践
  • 基于LLM与插件化架构构建个人办公自动化智能体:从原理到实践
  • 2026乡村桥梁护栏哪家好:市政道路防撞护栏/景观道路护栏/桥梁河道景观护栏/河道景观桥梁护栏/河道桥梁景观护栏/选择指南 - 优质品牌商家
  • 保姆级教程:用Keil5和GD32F103 SDK从零搭建开发环境(附J-Link/ST-Link烧录避坑)
  • 智能体通信协议agentic-signal:构建高效多智能体系统的核心
  • AI智能体开发工具链全解析:从运行时到部署的实战选型指南
  • 5分钟搞定Word参考文献格式:APA第7版免费终极安装指南
  • 星间光传输FPGA实时收发算法【附代码】
  • 2026年5月更新成都小型别墅电梯实力公司哪家强 - 2026年企业推荐榜
  • 嵌入式系统开发变革:MBSE与PLM工具链的协同实践
  • AlphaPy:量化金融与AI的自动化管道实践
  • AGHub:统一管理AI编码助手配置与技能,打造高效开发工作流
  • 3步搞定B站视频下载:BBDown让你的收藏从未如此简单 [特殊字符]
  • 如何免费激活Windows和Office:KMS智能激活完整指南
  • Unity任务系统框架设计:数据驱动与事件架构实践
  • 淘金币自动化脚本:每天6分钟搞定淘宝全任务,彻底解放你的双手
  • Testcontainers Keycloak:Java微服务身份认证测试的容器化解决方案
  • 多智能体协作AI漫剧生成平台:从架构到部署的完整实践
  • 2026宜宾装饰公司推荐:性价比比较高的装饰公司、本地装修公司、本地装饰公司、装修公司排行榜、附近装修公司、附近装饰公司推荐选择指南 - 优质品牌商家
  • Vivid MCP:基于MCP协议与AI Agent的企业银行开户自动化实践
  • 基于T4技术栈的现代全栈应用开发实践与最佳实践解析
  • OpenClaw用户如何快速接入Taotoken以扩展Agent能力
  • Shell 脚本中 grep 匹配不到内容返回码 1 怎么忽略?
  • Capacitor-Mobile-Claw:简化混合应用原生功能集成的开发利器
  • FlowGlad:轻量级数据流编排框架的设计理念与实践指南
  • 基于Next.js与Tailwind CSS构建高性能数学学院官网实战指南
  • 芯片工艺节点迁移的技术挑战与成本分析
  • 2026高端定制护栏厂家标杆名录:旋转楼梯/无框架(极简)护栏/楼梯生产出口/楼梯踏板/泳池护栏/焊接护栏/现代简约楼梯/选择指南 - 优质品牌商家
  • Arm架构DC IGVAC指令与MTE缓存维护详解
  • Vector RAG失效了?GraphRAG和Vectorless RAG这两种新方案,如何让你的AI系统更准确?