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

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

3天内不再提示

异步时钟的同步处理

冬至子 来源:两猿社 作者:IC猿 2023-06-05 14:34 次阅读

亚稳态

在异步系统中,由于数据和时钟的关系不是固定的,因此会出现违反建立和保持时间的现象。此时会出现输出介于两个有效态的中间电平并且无法确定停留在中间态的时间,在经过一定的延迟后才能进行正常转换。这种处于中间的状态称为亚稳态。

亚稳态的产生

当违背建立,保持时间时,亚稳态就会出现,在以下情况下,可能出现亚稳态。

  • 异步输入信号
  • 时序违例
  • 信号在不同时钟域下跨时钟域工作
  • 竞争冒险

本文主要讲解信号在不同时钟域下的工作,即异步时钟的同步处理。

跨时钟域的信号同步

  • 两级同步
  • 握手操作
  • 异步FIFO或异步双口RAM

控制信号的传输

  • 两级同步
    • 多级同步触发器是单bit数据的常见同步方式。方法是在跨时钟域的信号上加上两级或多级同步触发器。

    • 两级同步器可以极大概率避免亚稳态的产生。有两个明显的缺点:

      1) 输入信号必须保证宽度大于或等于1个采样时钟周期(输入信号加约束);

      2) 不可避免的增加了电路的整体延时(两级同步器为2个采样时钟周期)。

图片

多级同步器

图片

两级同步器

两级同步器Verilog表示为:

1always@(posedge dest_clk) begin
2    dest_data1_in <= src_data_out;
3    dest_data2_in <= dest_data1_in;
4end

数据信号的传输

  • 握手信号方法

    使用握手方式是最古老的和可靠的不同时钟域的数据传输方式。

    下图是由两个时钟域分割成的两个单独的模块。
    图片
    跨时钟域模块
    使用握手信号xack和yreq,模块X将数据发送给模块Y。

    下面是使用握手信号传输数据的例子。

    1)模块X将数据放到数据总线上并发出xreq(请求)信号,表示有效数据已经放到数据总线上。

    2)把xreq信号打两级同步到yclk时钟域。

    3)模块Y在接收到xreq同步后的信号后,接收数据总线上的信号。

    4)模块Y接收数据的同时发出yack(响应)信号,表示已经接收到了数据。

    5)模块X接收到yack后打两级同步到xclk时钟域。

    6)模块X在接收到yack同步后的信号后,使xreq无效,表示此次数据传输结束。

    7)模块Y在发现xreq无效后,使yack无效。

    8)模块X发现yack无效后可以进行下一笔数据传输。
    优点 :不论xclk和yclk的频率如何,都可以进行数据传输。

    缺点 :完成数据传输的延迟比使用异步FIFO传输大得多。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113706
  • 触发器
    +关注

    关注

    14

    文章

    1677

    浏览量

    60402
  • FIFO存储
    +关注

    关注

    0

    文章

    102

    浏览量

    5894
  • 时钟域
    +关注

    关注

    0

    文章

    49

    浏览量

    9455
  • 异步时钟
    +关注

    关注

    0

    文章

    17

    浏览量

    9366
收藏 人收藏

    评论

    相关推荐

    FPGA异步时钟设计中的同步策略

    摘要:FPGA异步时钟设计中如何避免亚稳态的产生是一个必须考虑的问题。本文介绍了FPGA异步时钟设计中容易产生的亚稳态现象及其可能造成的危害,同时根据实践经验给出了解决这些问题的几种
    发表于 04-21 16:52

    简谈异步电路中的时钟同步处理方法

    大家好,又到了每日学习的时候了。今天我们来聊一聊异步电路中的时钟同步处理方法。既然说到了时钟同步
    发表于 02-09 11:21

    异步时钟同步疑惑

    ?也就是说采样异步时钟域信号时不打拍有什么后果? 另外,当高速时钟采样慢速上升沿或下降沿时,采样结果抖动怎么处理?比如DS18B20长线驱动时,波形上升沿和下降沿被长线的线间电容牵制
    发表于 09-12 20:39

    异步时钟域的亚稳态问题和同步

    相较纯粹的单一时钟同步电路设计,设计人员更多遇到的是多时钟域的异步电路设计。因此,异步电路设计在数字电路设计中的重要性不言而喻。本文主要就
    发表于 07-31 16:51 0次下载

    FPGA设计中的异步复位同步释放问题

    异步复位同步释放 首先要说一下同步复位与异步复位的区别。 同步复位是指复位信号在时钟的上升沿或者
    发表于 06-07 02:46 2005次阅读

    同步异步时钟之间是如何联系_如何正确的约束时钟

    现在的硬件设计中,大量的时钟之间彼此相互连接是很典型的现象。为了保证Vivado优化到关键路径,我们必须要理解时钟之间是如何相互作用,也就是同步异步
    的头像 发表于 05-12 10:15 2w次阅读

    简谈异步电路中的时钟同步处理方法

    大家好,又到了每日学习的时候了。今天我们来聊一聊异步电路中的时钟同步处理方法。 既然说到了时钟同步
    的头像 发表于 05-21 14:56 1.3w次阅读
    简谈<b class='flag-5'>异步</b>电路中的<b class='flag-5'>时钟</b><b class='flag-5'>同步</b><b class='flag-5'>处理</b>方法

    时钟域的同步时序设计和几种处理异步时钟域接口的方法

    外部输入的信号与本地时钟异步的。在SoC设计中,可能同时存在几个时钟域,信号的输出驱动和输入采样在不同的时钟节拍下进行,可能会出现一些不稳定的现象。本文分析了在跨
    的头像 发表于 07-24 09:52 3962次阅读
    多<b class='flag-5'>时钟</b>域的<b class='flag-5'>同步</b>时序设计和几种<b class='flag-5'>处理</b><b class='flag-5'>异步</b><b class='flag-5'>时钟</b>域接口的方法

    如何将一种异步时钟域转换成同步时钟

     本发明提供了一种将异步时钟域转换成同步时钟域的方法,直接使用同步时钟
    发表于 12-21 17:10 5次下载
    如何将一种<b class='flag-5'>异步</b><b class='flag-5'>时钟</b>域转换成<b class='flag-5'>同步</b><b class='flag-5'>时钟</b>域

    Verilog电路设计之单bit跨时钟同步异步FIFO

    FIFO用于为匹配读写速度而设置的数据缓冲buffer,当读写时钟异步时,就是异步FIFO。多bit的数据信号,并不是直接从写时钟同步到读
    发表于 01-01 16:48 999次阅读

    为什么异步fifo中读地址同步在写时钟域时序分析不通过?

    为什么异步fifo中读地址同步在写时钟域时序分析不通过? 异步FIFO中读地址同步在写时钟域时序
    的头像 发表于 10-18 15:23 358次阅读

    同步FIFO和异步FIFO的区别 同步FIFO和异步FIFO各在什么情况下应用

    简单的一种,其特点是输入和输出都与时钟信号同步,当时钟到来时,数据总是处于稳定状态,因此容易实现数据的传输和存储。 而异步FIFO则是在波形的上升沿和下降沿上进行
    的头像 发表于 10-18 15:23 1016次阅读

    什么是同步逻辑和异步逻辑?同步电路与异步电路有何区别?

    什么是同步逻辑和异步逻辑?同步电路与异步电路有何区别? 同步逻辑和异步逻辑是计算机科学中的两种不
    的头像 发表于 11-17 14:16 1485次阅读

    异步电路中的时钟同步处理方法

    异步电路中的时钟同步处理方法  时钟同步异步电路中
    的头像 发表于 01-16 14:42 327次阅读

    同步置数,异步置数,同步清零,异步清零的概念

    同步置数、异步置数、同步清零和异步清零是数字电路设计中常用的概念。 一、同步置数 同步置数是指在
    的头像 发表于 02-22 13:48 1865次阅读