跳到正文
半导体开放世界

跨时钟域与握手传输

Clock-Domain Crossing and Handshake Transfer也称 CDC

把采样可靠性与事件不丢不重、数据字一致性分开,通过请求应答形成单笔跨域闭环。

报告问题

速览

约 1 分钟

同步器处理电平分辨,握手协议保证数据何时有效、何时已接收及何时可被覆盖;两者缺一不可。

系统理解

约 2 分钟

不相关时钟间没有共同的确定采样边界。单笔握手先把数据保持在发送端,再同步请求并由接收端接受一次,回传应答后允许下一次改写。多位总线、独立同步后重新汇合以及翻转事件编码都需要专门边界,不能由一个通用两级链替代。

在亚稳态可靠性之后处理跨域接口的事务语义,区别于STA路径数值检查与高速链路时钟恢复。

关键参数

关键参数
参数单位含义
时钟关系—说明相位和频率关系是否可预测
事务与数据稳定窗口—定义一次接受及何时允许覆盖
完整往返间隔s单笔无流水接口重新启动的最短时间

常见误区

  • 逐位加两级触发器即可传任意数据字。
  • 只同步请求而不用同步应答。
  • 请求到来就能忽略数据线路延迟。

工程深入

12 条结论 · 1 道例题

接口契约与事件

定义

跨域设计先说明时钟关系和传输对象

接口应先说明发射和接收时钟是否有可用的相位或频率关系,以及传输对象是稳定电平、离散事件还是多位数据字。异步接口不能默认享有同一同步域内的确定采样关系。12

成立条件 本页主线是不相关时钟域间的单笔握手,不覆盖所有源同步接口。;参考时钟与SSC节点解释时钟关系,本条不重复其链路补偿知识。

边界

合法电平还不等于事件没有丢失或重复

同步器把接收输出带到本地时钟边界,但接口仍需规定哪一次变化代表一次事务,以及接收方何时只能接受一次。不能仅证明输出变成0或1,就认为传输的事件数和数据含义已经正确。12

成立条件 只允许丢事件的状态指示与必须逐次确认的事务应使用不同契约。;不以二级同步器单独证明任意脉冲都可捕获。

机制

握手把新数据通知和可改写确认分开

发送端先准备数据并发出请求,接收端在可安全接受时读取数据并返回应答。应答把接收完成这一事实传回发送端,使下一次覆盖数据有明确的许可条件。12

成立条件 握手逻辑和数据稳定窗口必须一起设计。;本条描述单笔未完成事务的请求应答,不自动支持并发多笔事务。

握手与一致性

边界

握手数据需要覆盖接收采样的稳定区间

请求表示数据已可接收,并不使数据线路自动变成零延迟。发送侧保持数据,接收侧采样时刻和控制同步延迟必须共同保证数据字满足接收窗口,不能在应答确认前任意覆盖该字。12

成立条件 适用于捆绑数据式单笔握手。;控制路径同步与数据路径时序约束都应核对;不宣称数据线可以完全不约束。

机制

两个方向的控制跨域都要处理

请求对接收时钟异步,应答对发送时钟也可能异步。因此完整握手需要分别处理两个方向的采样风险,只给请求增加同步级仍可能把应答风险留在发送端。12

成立条件 两个时钟的相位关系未知。;具体同步级数依器件参数和可靠性预算确定。

公式

单笔握手的最大事件率受完整往返时间限制

若协议只允许一笔未完成事务,下一笔必须等到前一笔完成确认并可重新启动,最大长期事件率不能超过完整事务往返时间的倒数。同步等待、状态机处理及协议复位阶段都要包含在该时间中。12

Revent≤1TrtR_{\mathrm{event}}\leq\frac{1}{T_{\mathrm{rt}}}
Revent ≤ 1/Trt
Revent
长期可完成的事件率,单位 s⁻¹
Trt
包含全部等待和协议阶段的最短再启动间隔,单位 s

成立条件 Trt定义为从启动一笔到可再次启动的最短完整间隔。;只为单笔无流水握手给上界;实际空闲和背压可使速率更低。

例题:动手算一次教学假设,可复算

教学假设:单笔无流水握手的最短完整再启动间隔为80.0ns,估算连续事务率上界。

已知

  1. Trt=80.0×10⁻⁹s。
  2. 发送方有连续事务,接收方无额外背压;协议每次只允许一笔未完成事务。

步骤

  1. Revent ≤ 1/(80.0×10⁻⁹) = 1.25×10⁷ s⁻¹,取完整往返最短间隔的倒数。
  2. 1.25×10⁷ s⁻¹ = 12.5×10⁶ 次/s,转换为每秒百万次。
结果 长期事件率上界为每秒12.5百万次。

本地时钟很快也不表示单笔往返握手可每周期完成。

不能外推到 80.0ns为教学假设,不代表某个标准接口;忽略额外空闲只得到上界。

机制

四相握手需要请求和应答回到初始电平

四相协议依次完成请求置位、应答置位、请求复位及应答复位,返回初始状态后再启动下一笔。只看到接收完成的应答置位还不能省略后续归零阶段。1

成立条件 依本页四相电平握手约定。;不把相位数量与同步器触发器级数混为一谈。

机制

两相握手用翻转而不是固定高电平标记新事件

两相协议通过请求电平每次翻转表示新数据,并由应答翻转确认。接收逻辑比较已同步电平和先前状态形成事件,因此上升和下降都可代表新一笔,不能只检测高电平。1

成立条件 复位后双方对初始翻转状态的约定必须一致。;本页单笔握手不允许在前一请求尚未被区分时无限连续翻转。

失败模式与检查

边界

逐位同步并不能保证多位字原子一致

多位数据同时改变时,各位可能在不同接收周期分辨为旧值或新值,拼成发送端从未提供过的数据字。需要数据保持与控制握手等一致性机制,不能把每位放两个触发器视为总线正确性证明。1

成立条件 讨论多位可能同时翻转的普通编码总线。;单笔捆绑数据握手是本页示例,不排除异步FIFO等其他合法方案。

边界

同一异步控制不能由多个独立同步结果要求同拍一致

同一源信号分别进入独立同步链,可能在不同接收边沿显现为新值。如果下游要求一致控制,应先形成一个接收域同步结果,再在该域分发,而不是假设两条链每次选择相同的周期。1

成立条件 仅针对需要一致观察的同一控制语义。;分发后的本地扇出和时序仍应检查。

边界

格雷码约束的是相邻编码变化而非任意总线

格雷编码使相邻计数状态只变一位,有助于避免普通二进制多位翻转所产生的混合码。但这个性质不能证明任意多位数据无需协议,也不能替代跨域连线和采样实现的检查。1

成立条件 只对按相邻格雷状态演进的序列讨论编码优势。;本批不建设完整异步FIFO指针设计,也不声称无条件零错误。

关联

接口检查需要同时追踪采样风险与事务语义

审核跨域接口应逐条追踪数据有效、请求同步、接受一次、应答同步与允许改写的闭环。间歇性故障很难凭一次正常波形排除,检查单个同步器电路不能替代对整个接口的审查。1

成立条件 本条是依据教材握手及错误案例组织的工程检查方法。;不把功能仿真或静态时序通过单独当作CDC协议证明。

出处

2 本教材 · 18 处引用
  1. 1

    CMOS超大规模集成电路设计(第4版)

    查看这个来源 →
  2. 2

    数字集成电路:电路、系统与设计(第2版)

    查看这个来源 →