0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是同步器?同步器传输数据的情景分析

冬至子 来源:玩儿转FPGA 作者:东哥 2023-06-28 14:09 次阅读

什么是同步器

如图1所示电路结构就叫同步器。左边为时钟域clk1,右边两个FF为时钟域clk2,蓝色的为CDC(clock domain cross)路径。这种电路结构常用于两个不同的时钟域数据传输。其实前面讲的异步复位同步释放本质上也是同步器,只是前面的复位信号是复位端口产生的,不是某个寄存器打拍过来的,异步复位信号也可以视作一个不同时钟域的信号。由此你也可以知道同步器的作用之一就是消除亚稳态。

图片

图1. 同步器跨时钟域图

用更直观的代码告诉大家,就是如下verilog代码:

reg [ 1:0] d1;

reg [ 1:0] ql;

reg [ 1:0] q2;

always@(posedge clk1)

begin

if(rst == 1'b1) d1 <= 2'h0;

else d1 <= din;

end

always@(posedge clk2)

begin

if(rst == 1'b1) ql <= 2'h0;

else q1 <= d1

end

always@(posedge clk2)

begin

if(rst == 1'b1) q2 <= 2'h0;

else q2 <= q1;

end

亚稳态及其传播

重点!

通过两级寄存器,即使产生亚稳态也在两个寄存器之间,降低传递到后级的概率,从而减轻亚稳态对后级影响。

理论上,亚稳态产生后持续时长是随机的,意味着永远持续下去也是可能的,然而由于实际电路中存在的噪声和能量变化等一定会让亚稳态很快产生不平衡,迅速向0或者1靠拢。举个例子,就像笔尖上放一个圆球,理论上可以找一个位置永远平衡,然而实际上由于一点点的震动都会导致圆球迅速掉下去。如图2所示,在时钟发射沿到来后,亚稳态产生后持续时间为Tmet,在捕获沿到来时,dout的亚稳态已经消除,这样亚稳态就不会往后级传播,也就是说亚稳态在一个时钟周期内稳定就可以防止往下一级传播。实际中亚稳态的稳定都很快。而同步器打2拍就是为了在时钟频率很高的时候,捕获沿采到亚稳态向下一级传播的时候,还有一级寄存器隔离,然亚稳态在一个时钟周期内稳定下来。

假设,亚稳态在一个时钟周期内稳定不下来的概率为P,0

图片

图2. 亚稳态产生过程

同步器同步n bit数据

当n=1时,参见上面的亚稳态传播,1bit数据产生亚稳态以后就算错了也是变成0或者1第二拍也会正确,所以同步1bit数据可以采后面几拍的数据,这样就能保证采集过来的数据是正确的,后面会试验给大家看。当然,要实现这点首先是快时钟必须是慢时钟的好几倍才行,至少2倍。

多bit数据传输和1bit数据唯一的区别就是多路对齐,保证每一路数据延迟一致 ,这样就和传输1bit数据一样了。下面给大家推荐一个约束set_bus_skew,可以约束一条总线上每根线的延迟相差不大。

命令用法——set_bus_skew [-from 寄存器名] [-to 寄存器名] xx ns。比如在图3中约束src_gray_ff_reg到dest_graysync_ff_reg之间的两根线延迟保持一致,完整命令如下,保证两根线延迟都在2.5ns,一个快时钟域周期:

set_bus_skew -from [get_cells src_gray_ff_reg[ ]] -to [get_cells {dest_graysync_ff_reg[0][ ]}] 2.500

图片

图3. 寄存器图

同步器传输数据的情景分析

情景1

同步器只能正确处理同源的两个时钟域之间的信号,如果不同源,很可能出现发射沿打出的数据还没稳定就被捕获沿采集到,这样数据就会出错。

情景2

两个时钟域的频率不能太接近,且快时钟最好是慢时钟的整数倍,这样保证边沿不会出现捕获沿不在数据不稳定的时候出现,不然会采错数据。

下图是100M和96.34M时钟用同步器采集的结果,err和err1为高电平都是代表数据有错的时候。可以发现数据出错频繁,而且间隔不均等,本质上就是因为两个时钟的相位关系不是像整数倍一样规律,很可能出现捕获沿采集不稳定数据。其实小数倍的时候,小数位数越多越容易出现这种问题。

图片

图4. 时钟频率不匹配导致错误

情景3

快时钟最好是慢时钟的整数倍的时候,不加约束也可以有方法比较稳定的正确抓取数据 。

下图是50M时钟到200M时钟跨时钟域同步的结果,没有加约束,大家可以看到数据在从0x4ef到0x4f0过度的时候第一拍出错了,出现了1个0x4f1,而后面的三拍数据是对的,看后面出错的数据也是这样,也就是说,每采集到的4个数里面,用出现次数多的数覆盖次数少的数就可以了,因为原本是4倍关系,所以理论上连续的4个数是要一致的。

图片

如下图在两个位置的总线都加了set_bus_skew约束5ns后,采集的数据一直没有出错,也根本不用覆盖的方法去剔除错误数据了。

图片

正确传输条件总结:

  1. 只能慢时钟到快时钟
  2. 两时钟域必须同源
  3. 两时钟最好是整数倍关系,否则正确与否只能随缘
  4. (可选)满足以上3点情况下,添加set_bus_skew可以保证每次采样都正确
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117721
  • CDC
    CDC
    +关注

    关注

    0

    文章

    55

    浏览量

    17670
  • 同步器
    +关注

    关注

    1

    文章

    78

    浏览量

    14489
  • 时钟域
    +关注

    关注

    0

    文章

    49

    浏览量

    9455
收藏 人收藏

    评论

    相关推荐

    游戏同步器功能介绍作用讲解使用方法

    迈拓维矩键盘鼠标同步器,可以实现将一套键鼠的信息同时发给多台电脑,适用于游戏,教学,测试等领域。由于采用了绝对同步技术,鼠标在多台电脑画面完全一致,这一特点,在游戏领域非常重要。迈拓维矩游戏同步器
    发表于 02-25 09:00

    感应同步器介绍

      感应同步器是利用两个平面形绕组的互感随位置不同而变化的原理组成的。可用来测量直线或转角位移。测量直线位移的称长感应同步器,测量转角位移的称圆感应同步器。长感应同步器由定尺和滑尺组成
    发表于 10-30 16:10

    请问怎样去设计一种时间同步器

    怎样去设计时间同步器的硬件电路?怎样去设计时间同步器的软件电路?
    发表于 05-21 06:22

    如何修改KM键鼠同步器的VID、PID?

    同步器就是键鼠同步器控制,用于一套键盘鼠标显示同时同步操作多台电脑主机(通常是4口8口16口或级联更多),主要应用于游戏领域。键鼠
    发表于 10-10 09:41

    同步开关同步器电路图

    同步开关同步器电路图
    发表于 07-03 14:31 1908次阅读
    <b class='flag-5'>同步</b>开关<b class='flag-5'>同步器</b>电路图

    感应同步器,什么是感应同步器

    感应同步器   感应同步器由两个平面印刷电路绕组构成,类似于变压器的初、次级绕组,故又称平面变压器。感应同步器通过位移
    发表于 10-29 22:45 2497次阅读
    感应<b class='flag-5'>同步器</b>,什么是感应<b class='flag-5'>同步器</b>

    感应同步器的基本结构

    感应同步器的基本结构 1.直线式感应同步器  直线式感应同步器的结构如图12.2.1所示,它由定尺和滑尺两部分组成,长尺为定尺,短尺为滑尺。感应同步器
    发表于 10-29 22:46 4377次阅读
    感应<b class='flag-5'>同步器</b>的基本结构

    感应同步器的工作原理

    感应同步器的工作原理    直线式感应同步器和圆盘式感应同步器的工作原理基本相同,都是利用电磁感应原理工作。下面以直线式感应同步器为例介绍其工作原理。
    发表于 10-29 22:47 8510次阅读
    感应<b class='flag-5'>同步器</b>的工作原理

    感应同步器的应用

    感应同步器的应用 感应同步器具有以下特点:(1)感应同步器基于电磁感应原理,感应电势仅取决于磁通量的变化率,几乎不受环境因素如温度、油污、尘埃等的
    发表于 10-29 22:49 3421次阅读
    感应<b class='flag-5'>同步器</b>的应用

    基于FPGA的帧同步器的设计与仿真

    基于FPGA的帧同步器的设计与仿真。。。。
    发表于 01-04 15:31 25次下载

    同步器的作用

    本视频主要介绍了同步器的作用,为了简化操作,并避免齿间冲击,可以在换档装置中设置同步器。惯性式同步器是依靠摩擦作用实现同步的,在其上面设有专设机构保证接合套与待接合的花键齿圈在达到
    的头像 发表于 10-21 09:57 9835次阅读

    感应同步器特点

    感应同步器是一种电磁式位置检测元件,本视频首先介绍了感应同步器特点,其次介绍了感应同步器的结构特点,最后介绍了感应同步器的优点。
    的头像 发表于 10-21 10:28 7368次阅读
    感应<b class='flag-5'>同步器</b>特点

    感应同步器的组成和特点

    本文首先介绍了感应同步器的概念以及感应同步器的工作原理,然后分别从直线感应同步器和旋转感应同步器两种同步器出发介绍了组成,最后介绍了感应
    的头像 发表于 08-06 15:36 9747次阅读
    感应<b class='flag-5'>同步器</b>的组成和特点

    感应同步器的运用

    在感应同步器的运用进程中,除一样会遇到旋改动压器在运用进程中所遇到的角须绑缚在[-π,π]内的疑问或央求以外,直线式感应同步器还常常会遇到有关接长的疑问。例如,当感应同步器用于查看机床作业台的位移
    的头像 发表于 04-19 05:14 2831次阅读

    单锥、双锥、三锥同步器到底有什么区别

    不同变速箱同步器有多有少,一款变速箱不同挡位同步器也各不相同,那么单锥同步器、双锥同步器、三锥同步器有何区别,
    发表于 05-25 16:19 5962次阅读