当前位置:文档之家› 异步多时钟系统的同步设计

异步多时钟系统的同步设计

时钟域之间的数据传输用得最多的是 ¦©¦¯ Œ用一 个双口 ² ¡- 来存储数据 " 其中一个端口由发送端控 制 Œ其时钟作为写时钟 Œ将数据写入存储器 Œ另一个端 口由接收端控制 Œ其时钟作为读时钟 Œ将存储器中的数 据取出来 " 有两个信号用于指示 ¦©¦¯ 的状态 š是空 ! 满还是部分满 " 还有两个信号常用于指示 ¦©¦¯ 是近 满还来近空 " 从理论上来说 Œ用一个时钟把数据放入 一块共享存储空间而用另一个时钟来取 Œ看起来很理 想 Œ但实则并非易事 Œ其难点在于产生精确的 / 满 0和 / 空 0标志 " 在判断 ¦©¦¯ 是满还是空时 Œ要对写和读 指针进行一些运算 " 问题在于这两个指针是在两个不 同的时钟域内产生的 Œ在对它们进行运算之前必须进 行同步处理 " 3 . 3 FIFO 指针的实现方式
图 6 调整控制信号的次序
2 . 3 两个经过编码的控制信号穿越时钟域 图 —所示为两个经过编码的控制信号实现时钟域
的穿越 " 如果这两个经过编码的信号在被采样时有轻 微的抖动 Œ将会在新的时钟域中造成一个时钟周期的 解码输出错误 "
图 8 使能信号经过整形
图 7 经过编码的控制信号穿越两个时钟域
一种解决方案如图 ˜所示 " 发送一个 ÅÎÁÂÌÅ信号
图 3 控制信号穿越两个时钟域 # 34#
图 5 顺序控制信号在时钟域之间的传递
第 “‘卷第 •期
谢修祥 Œ等 š异步多时钟系统的同步设计技术
# 基本电子电路 #
这种情况下的解决方案是 š只发送 ‘个控制信号 给新的时钟域 Œ并且在该时钟域中产生第 ’个有相移 ˆ要求 ‰的顺序控制信号 " 调整控制信号后的次序见 图 –"
作为 / 准备标志 0给新的时钟域 " 发送端时钟域必须 在使解码输入有效之后的 ‘个周期产生此 ÅÎÁÂÌÅ信 号 Œ且在使解码输入无效之前的 ‘个周期移走该信号 " 如前所述 ŒÅÎÁÂÌÅ信号的有效期必须大于接收时钟域 的 ‘个时钟周期 " 在最坏的情况下 Œ在接收时钟域中 Œ ÅÎÁÂÌÅ信号或者与编码输入信号同时被采样 Œ或者与 其同时被置为无效 " 在最好的情况下 ŒÅÎÁÂÌÅ信号有 效比编码输入信号有效晚 ‘个接收时钟周期 Œ且比它 无效之前 ‘个周期变为无效 " 这种办法能确保编码输 入信号在被使能之前是有效的 "
关键词 š多时钟系统 Œ亚稳态 Œ控制信号同步技术 Œ数据同步技术 Œ格雷码计数器 Œ ¦©¦¯ 中图分类号 š´®—™
0引 言
随着数字系统的规模越来越大 !复杂程度越来越 高 Œ’个或多个时钟域在设计中的应用越来越多 " 在 多时钟域中 Œ不可避免地会遇到控制信号的交互和数 据的相互传递 Œ由于各时钟的频率和相位不同 Œ在进行 电路设计时 Œ必须充分考虑时序对功能的影响 Œ表面上 看起来没有问题的电路可能会因为忽视了时序的重要 性而实际上并不能真正达到设计的功能 Œ造成多时钟 域之间的同步失败 " 同步问题中最有可能出现的就是 亚稳态的产生和传播 " 本文将对同步设计中必须考虑 的因素进行分析 Œ并分别讨论了控制信号的同步和数 据通路的同步 Œ提出了常见问题的解决方案 "
图 4 控制信号在穿越时钟之前进行合并
2. 2 两个有次序要求的控制信号穿越时钟域 如图 •所示 Œ在短的流水线设计中 Œ两个控制信号
ÁÅΑ 和 ÁÅÎ’Œ用于为顺序数据的传递提供 ÅÎÁÂÌÅ信 号 " 在第 ‘个时钟域 ŒÁÅΑ可能会在 ÁÅÎ’变为有效之 前产生一个很短的中断 Œ而第 ’个时钟域有可能正好 在这个很短的时隙中对 ÁÅΑ和 ÁÅÎ’进行采样 Œ这样 将会在第 ’个时钟域的使能控制链中造成一个时钟周 期的空隙 Œ使 Á’的输出信号被第 ’个寄存器丢失 "
1 亚稳态
根据文献 »‘½Œ亚稳态定义为 š当用一个时钟对变 化的信号进行采样时 Œ事件发生的次序决定其输出 " 事件之间的时间间隔越短 Œ判断哪一个先到所花的时 间越长 " 当两个事件发生的时间相当接近时 Œ判断过 程所花的时间将会超过允许的时间 Œ此时将会造成同 步失败 "
每个寄存器都有其建立和保持时间 Œ或者说寄存 器的输入数据在其上升沿之前和之后不允许发生变 化 " 当数据源的时序不满足接收时钟域中的寄存器的 建立 •保持时间时 Œ就会出现亚稳态 Œ此时寄存器就会 处于 / 浮空 0状态 Œ其输出电压在高电平达不到逻辑 / ‘0 Œ在低电平达不到逻辑 / •0 Œ在这段时间内触发器 的 ± 端会出现毛刺 !振荡 Œ或固定在某一电压值 Œ而不 一定等于数据输入端 ¤ 的值 " 这段时间称为决断时 间 ˆÒÅÓÏÌÕÔÉÏÎ ÔÉÍʼn" 经过决断时间后 Œ± 端将稳定到 •或 ‘上 Œ但是究竟是 •还是 ‘Œ则是随机的 Œ与输入没
如图 ‘所示 Œ当在一个时钟域中产生的信号在被 另一个时钟域的时钟采样时过于靠近其上升沿 Œ会造 成同步失败 " 同步失败是因为输出在其采样点上处于 亚稳态所形成的 Œ而且这种亚稳态可能向后传播 Œ造成 后级出现逻辑错误 "
图 1 亚稳态的产生过程
在接收时钟域使用两级寄存器 Œ即所谓同步器 Œ能 有效地消除亚稳态 Œ如图 ’所示 "
3 数据通路的同步技术
数据在时钟域之间的传递是多个随机变化的控制 信号在时钟域之间传递的一种实例 " 这种情况下 Œ用 同步器来处理同步问题往往不能收到满意的效果 Œ因 为多位数据的变化将会使同步器的采样错误率大大增 加 " 常用的数据同步方法有两种 š一种是用握手信号 › 另一种是用 ¦©¦¯ Œ一个时钟域存数据 Œ另一个时钟域 取数据 "
图 2 亚稳态的消除方法
# 33#
# 基本电子电路 #
电子工程师
’•••年 •月
接收时钟域的第 ‘个寄存器对发送时钟域的输出 信号进行采样 Œ此时该寄存器的输出处于亚稳态 Œ又经 过一个 ˆ接收 ‰时钟周期后 Œ第 ’个寄存器对第 ‘个寄 存器的输出进行采样 Œ此时其输出已经变为稳定 " 从 理论上来说 Œ有可能第 ‘个寄存器的输出在被第 ’个 寄存器采样时仍然处于亚稳态 Œ这样会使第 ’个寄存 器的输出也变为亚稳态 " 也就是说 Œ用这种电路仍然 可能造成同步失败 Œ这时就要考虑其 - ´¢¦ˆ平均故障 间隔时间 ‰" 亚稳态发生的概率与时钟频率无关 Œ但 - ´¢¦则与时钟频率有很大的关系 " 时钟频率越高 Œ - ´¢¦会相 应 地 降 低 " 因 此 Œ适 当 降 低 频 率 能 延 长
收稿日期 š ’••”2‘’2‘•› 修回日期 š ’•••2•“2‘•"
有必然的关系 " 亚稳态是寄存器的一个固有特性 " 正 常采样也会有一个亚稳态时间 " 当建立保持时间满足 时 Œ寄存器在经历采样 !亚稳态后 Œ进入一个正确的状 态 " 如果建立保持时间不满足 Œ那么寄存器会有一个 相当长的亚稳态时间 Œ最后随机进但在新的时钟域中实现同步将会带来很多问题 " 更好 的方法是用两个格雷码计数器来传递 ¦©¦¯ 指针 " 格
# 36#
雷码计数器每次只改变 ‘个计数位 " 如果同步时钟在 格雷码计数器的过渡过程中采样 Œ其结果只可能是新 值或是旧值 Œ因为每次只有 ‘位发生了变化 " 格雷码 计数器用一个寄存器来保存格雷码 Œ寄存器的输出值 反馈给一个格雷码 2二进制转换器 Œ二进制值每加 ‘增 长一次 Œ新的二进制值传给一个二进制 2格雷码转换 器 Œ其输出作为格雷码寄存器的输入 "
- ´¢¦"
2 控制信号的同步技术
在进行多时钟系统的设计时 Œ人们常犯的一个错 误是 Œ在多个控制信号穿越一个时钟域到达另一个时 钟域时 Œ往往忽视了控制信号次序的重要性 " 此时 Œ用 同步器来实现对控制信号的同步并不是一个好办法 " 如果控制信号的次序很关键 Œ必须对此引起重视 " 2 . 1 两个有同步要求的控制信号同时穿越时钟域
一个 n位的格雷码 Œ要转换为等值的二进制码 Œ二 进制码的第 •位等于所有格雷码各位 ˆ从 •到 n • ‘‰ 的异或 Œ第 ‘位等于格雷码的第 ‘位到第 n • ‘位的异 或 Œ如此类推 " 二进制码的最高位和格雷码的最高位 相等 " 一个 ”位的格雷码到二进制的转换如下 š
ÂÉλ•½ • ÇÒÁÙ»“½C ÇÒÁÙ»’½C ÇÒÁÙ»‘½C ÇÒÁÙ»•½ ÂÉλ‘½ • ÇÒÁÙ»“½C ÇÒÁÙ»’½C ÇÒÁÙ»‘½ ÂÉλ’½ • ÇÒÁÙ»“½C ÇÒÁÙ»’½ ÂÉλ“½ • ÇÒÁÙ»“½
第 “‘卷第 •期 ’•••年 •月
电子工程师 ¥¬¥£ ´² ¯ ®©£ ¥®§©®¥¥²
¶ ÏÌŽ“‘ ®ÏŽ• - ÁÙ ’•••
异步多时钟系统的同步设计技术
谢修祥 Œ王广生
ˆ北京工业大学电子信息与控制工程学院 Œ北京市 ‘•••’’‰
=摘 要 > 对多时钟系统的同步问题进行了讨论 Œ提出了亚稳态的概念及其产生机理和危害 ›叙 述了控制信号和数据通路在多时钟域之间的传递 ›讨论了控制信号的输出次序对同步技术的不同要 求 ›重点论述了常用的数据通路同步技术 ) ) ) 用 ¦©¦¯ 实现同步的原理及其实现思路 "
n位二进制转换到格雷码时 Œ格雷码的第 •位等 于二进制码的第 •位和第 ‘位的异或 Œ第 ‘位等于二 进制码的第 ‘位和第 ’位的异或 Œ如此类推 Œ二者的最 高位相等 " ”位二进制码到格雷码的转换如下 š
ÇÒÁÙ»•½ • ÂÉλ‘½C ÂÉλ•½ ÇÒÁÙ»‘½ • ÂÉλ’½C ÂÉλ‘½ ÇÒÁÙ»’½ • ÂÉλ“½C ÂÉλ’½
相关主题