跨时钟域与握手传输
Clock-Domain Crossing and Handshake Transfer也称 CDC
把采样可靠性与事件不丢不重、数据字一致性分开,通过请求应答形成单笔跨域闭环。
速览
约 1 分钟同步器处理电平分辨,握手协议保证数据何时有效、何时已接收及何时可被覆盖;两者缺一不可。
系统理解
约 2 分钟不相关时钟间没有共同的确定采样边界。单笔握手先把数据保持在发送端,再同步请求并由接收端接受一次,回传应答后允许下一次改写。多位总线、独立同步后重新汇合以及翻转事件编码都需要专门边界,不能由一个通用两级链替代。
在亚稳态可靠性之后处理跨域接口的事务语义,区别于STA路径数值检查与高速链路时钟恢复。
关键参数
| 参数 | 单位 | 含义 |
|---|---|---|
| 时钟关系 | — | 说明相位和频率关系是否可预测 |
| 事务与数据稳定窗口 | — | 定义一次接受及何时允许覆盖 |
| 完整往返间隔 | s | 单笔无流水接口重新启动的最短时间 |
常见误区
- 逐位加两级触发器即可传任意数据字。
- 只同步请求而不用同步应答。
- 请求到来就能忽略数据线路延迟。
工程深入
12 条结论 · 1 道例题用于控制域、低速状态及单笔数据交换的接口审查,并为后续异步FIFO学习建立协议基础。
接口契约与事件
握手与一致性
单笔握手的最大事件率受完整往返时间限制
若协议只允许一笔未完成事务,下一笔必须等到前一笔完成确认并可重新启动,最大长期事件率不能超过完整事务往返时间的倒数。同步等待、状态机处理及协议复位阶段都要包含在该时间中。12
- Revent
- 长期可完成的事件率,单位 s⁻¹
- Trt
- 包含全部等待和协议阶段的最短再启动间隔,单位 s
成立条件 Trt定义为从启动一笔到可再次启动的最短完整间隔。;只为单笔无流水握手给上界;实际空闲和背压可使速率更低。
例题:动手算一次教学假设,可复算
教学假设:单笔无流水握手的最短完整再启动间隔为80.0ns,估算连续事务率上界。
已知
- Trt=80.0×10⁻⁹s。
- 发送方有连续事务,接收方无额外背压;协议每次只允许一笔未完成事务。
步骤
- Revent ≤ 1/(80.0×10⁻⁹) = 1.25×10⁷ s⁻¹,取完整往返最短间隔的倒数。
- 1.25×10⁷ s⁻¹ = 12.5×10⁶ 次/s,转换为每秒百万次。
本地时钟很快也不表示单笔往返握手可每周期完成。
不能外推到 80.0ns为教学假设,不代表某个标准接口;忽略额外空闲只得到上界。
四相握手需要请求和应答回到初始电平
四相协议依次完成请求置位、应答置位、请求复位及应答复位,返回初始状态后再启动下一笔。只看到接收完成的应答置位还不能省略后续归零阶段。1
成立条件 依本页四相电平握手约定。;不把相位数量与同步器触发器级数混为一谈。
两相握手用翻转而不是固定高电平标记新事件
两相协议通过请求电平每次翻转表示新数据,并由应答翻转确认。接收逻辑比较已同步电平和先前状态形成事件,因此上升和下降都可代表新一笔,不能只检测高电平。1
成立条件 复位后双方对初始翻转状态的约定必须一致。;本页单笔握手不允许在前一请求尚未被区分时无限连续翻转。
失败模式与检查
逐位同步并不能保证多位字原子一致
多位数据同时改变时,各位可能在不同接收周期分辨为旧值或新值,拼成发送端从未提供过的数据字。需要数据保持与控制握手等一致性机制,不能把每位放两个触发器视为总线正确性证明。1
成立条件 讨论多位可能同时翻转的普通编码总线。;单笔捆绑数据握手是本页示例,不排除异步FIFO等其他合法方案。
同一异步控制不能由多个独立同步结果要求同拍一致
同一源信号分别进入独立同步链,可能在不同接收边沿显现为新值。如果下游要求一致控制,应先形成一个接收域同步结果,再在该域分发,而不是假设两条链每次选择相同的周期。1
成立条件 仅针对需要一致观察的同一控制语义。;分发后的本地扇出和时序仍应检查。
格雷码约束的是相邻编码变化而非任意总线
格雷编码使相邻计数状态只变一位,有助于避免普通二进制多位翻转所产生的混合码。但这个性质不能证明任意多位数据无需协议,也不能替代跨域连线和采样实现的检查。1
成立条件 只对按相邻格雷状态演进的序列讨论编码优势。;本批不建设完整异步FIFO指针设计,也不声称无条件零错误。
接口检查需要同时追踪采样风险与事务语义
审核跨域接口应逐条追踪数据有效、请求同步、接受一次、应答同步与允许改写的闭环。间歇性故障很难凭一次正常波形排除,检查单个同步器电路不能替代对整个接口的审查。1
成立条件 本条是依据教材握手及错误案例组织的工程检查方法。;不把功能仿真或静态时序通过单独当作CDC协议证明。
出处
2 本教材 · 18 处引用- 1
CMOS超大规模集成电路设计(第4版)
- 第 10 章 §10.6;;PDF pp.664–665、667–668,第 354–355、357–358 页 支持:跨域设计先说明时钟关系和传输对象
- 第 10 章 §10.6;;PDF pp.664–665,第 354–355 页 支持:合法电平还不等于事件没有丢失或重复;握手把新数据通知和可改写确认分开;握手数据需要覆盖接收采样的稳定区间
- 第 10 章 §10.6;;PDF pp.665,第 355 页 支持:两个方向的控制跨域都要处理;单笔握手的最大事件率受完整往返时间限制;四相握手需要请求和应答回到初始电平
- 第 10 章 §10.6;;PDF pp.665–666,第 355–356 页 支持:两相握手用翻转而不是固定高电平标记新事件
- 第 10 章 §10.6;;PDF pp.666、672,第 356、360 页 支持:逐位同步并不能保证多位字原子一致;同一异步控制不能由多个独立同步结果要求同拍一致
- 第 10 章 §10.6;;PDF pp.666,第 356 页 支持:格雷码约束的是相邻编码变化而非任意总线
- 第 10 章 §10.6;;PDF pp.665–666、672,第 355–356、360 页 支持:接口检查需要同时追踪采样风险与事务语义
- 2
数字集成电路:电路、系统与设计(第2版)
- 第 10 章 §10.5;;PDF pp.414,第 392 页 支持:跨域设计先说明时钟关系和传输对象
- 第 10 章 §10.4.1;;PDF pp.403–404,第 381–382 页 支持:合法电平还不等于事件没有丢失或重复;握手把新数据通知和可改写确认分开;握手数据需要覆盖接收采样的稳定区间;单笔握手的最大事件率受完整往返时间限制
- 第 10 章 §10.5;;PDF pp.414–417,第 392–395 页 支持:两个方向的控制跨域都要处理
本页结论均已对照来源核对,其中 6 条目前只有一个来源,尚未经过同行专家审阅。发现不准确的地方,请告诉我们。
报告这一页的问题