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

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

3天内不再提示

异步复位同步释放有多个时钟域时如何处理 异步复位同步释放的策略

FPGA技术驿站 来源:FPGA技术驿站 2023-07-20 09:04 次阅读

对于从FPGA外部进来的信号,我们通常采用“异步复位同步释放的策略”,具体电路如下图所示。图中src_arst是输入异步复位信号,dest_arst是同步释放的异步复位信号,其后负载为需要异步复位的触发器。

02cb3c08-2691-11ee-962d-dac502259ad0.png

从时序关系的角度来看,结合如下仿真波形,异步复位信号在蓝色标记的时钟上升沿被释放,所有触发器将在红色边沿开始输出D端口数据。

问题是如果后续触发器公众在不同的时钟频率下,这种方式是否仍能确保所有触发器的异步复位信号在同一个时钟上升沿被释放?为便于说明,我们假定设计中有两个时钟,分别为100MHz和200MHz,均有同一个MMCM/PLL生成,即二者是同步时钟(同相不同频)。

03030c50-2691-11ee-962d-dac502259ad0.png

第一种情况:同步器工作在100MHz时钟的上升沿

在这种情况下,假定异步复位在标记(1)被释放,那么200M时钟域下的触发器将在标记(3)开始输出D端数据,而100M时钟域下的触发器则要在标记(5)开始输出D端数据,显然,两者并没有在同一个时钟沿下开始工作。

03187d38-2691-11ee-962d-dac502259ad0.png

第二种情况:同步器工作在200MHz时钟的上升沿

在这种情况下,如果异步复位是在标记(3)释放,那么100M时钟域下的触发器和200M时钟域下的触发器都将在标记(5)结束复位,开始输出D端口数据。

0349a30e-2691-11ee-962d-dac502259ad0.png

但是,如果复位是在标记(1)释放,如下图所示,100M时钟域下的触发器将在标记(5)输出D端口数据,而200M时钟域下的触发器将在标记(3)输出D端口数据。

035c3af0-2691-11ee-962d-dac502259ad0.png

第三种情况:同步器工作在100MHz时钟的下降沿

在这种情况下,同步器工作在100MHz时钟的下降沿,但后续触发器仍工作在时钟的上升沿。如下图所示。异步复位在标记(3)释放,那么100M时钟域下的触发器将在标记(5)开始输出D端口数据,200M时钟域下的触发器也在此刻输出D端口数据,故两者可以在同一个时刻开始释放复位正常工作。

038909f4-2691-11ee-962d-dac502259ad0.png

如果两个时钟是异步时钟,都要使用外部提供的同一个复位信号,这时无法做到这两个时钟域下的触发器实现复位信号同步释放。这是因为这两个时钟之间没有明确的相位关系,这就造成同步器引发的延迟差是不确定的。这种情况下,我们需要对每个时钟域添加同步器,生成各自时钟域下的复位信号,如下图所示。

03a6f2d4-2691-11ee-962d-dac502259ad0.png








审核编辑:刘清

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

    关注

    1624

    文章

    21608

    浏览量

    601073
  • pll
    pll
    +关注

    关注

    6

    文章

    771

    浏览量

    134991
  • 时钟
    +关注

    关注

    10

    文章

    1712

    浏览量

    131260
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61003
  • 同步器
    +关注

    关注

    1

    文章

    91

    浏览量

    14597
  • 异步复位
    +关注

    关注

    0

    文章

    46

    浏览量

    13295
  • PLL电路
    +关注

    关注

    0

    文章

    92

    浏览量

    6385

原文标题:异步复位同步释放有多个时钟域时如何处理

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA异步复位同步释放同步后的复位该当作同步复位还是异步复位

    针对异步复位同步释放,一直没搞明白在使用同步化以后的复位信号时,到底是使用
    发表于 06-21 09:59 1317次阅读
    Xilinx FPGA<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>后的<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>?

    异步复位异步释放会有什么问题?FPGA异步复位为什么要同步释放呢?

    一般来说,复位信号有效后会保持比较长一段时间,确保 register 被复位完成。但是复位信号释放时,因为其和时钟
    的头像 发表于 01-24 09:32 1635次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>异步</b><b class='flag-5'>释放</b>会有什么问题?FPGA<b class='flag-5'>异步</b><b class='flag-5'>复位</b>为什么要<b class='flag-5'>同步</b><b class='flag-5'>释放</b>呢?

    同步复位sync和异步复位async

    )的时候容易出现问题。具体就是说:若复位释放刚好在时钟有效沿附近时,很容易使寄存器输出出现亚稳态,从而导致亚稳态。 [td][td=107]总结推荐使用异步
    发表于 11-14 16:03

    verilog 异步复位同步释放

    fpga 的 异步复位同步释放代码如下module asy_rst(clk,rst_n,asy_rst);input clk;input rst_n;output asy_rst;re
    发表于 05-28 13:02

    同步复位异步复位同步释放的对比疑问

    在网上了解到fpga的同步复位异步复位都会存在不足,因此有人提出异步复位
    发表于 04-16 22:17

    同步复位异步复位的比较(转载)

    ,都要考虑复位端与时序的相位关系。对于同步复位复位信号可以理解为一个普通的数据信号,它只有在时钟的跳变沿才会起作用,一般只要
    发表于 05-05 23:11

    关于异步复位同步释放理解与分析

    是指复位信号是异步有效的,即复位的发生与clk无关。后半句“同步释放”是指复位信号的撤除也与cl
    发表于 11-30 08:58 2.4w次阅读
    关于<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>理解与分析

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

    异步复位同步释放 首先要说一下同步复位异步
    发表于 06-07 02:46 2131次阅读

    异步复位同步释放的基本原理与代码举例

    异步复位同步释放是指复位信号是异步有效的,即复位的发
    的头像 发表于 11-20 07:06 4118次阅读

    详细讲解同步后的复位同步复位还是异步复位

    针对异步复位同步释放,一直没搞明白在使用同步化以后的复位信号时,到底是使用
    的头像 发表于 04-27 18:12 4621次阅读
    详细讲解<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><b class='flag-5'>复位</b>?

    RTL中多时钟异步复位同步释放

    1 多时钟异步复位同步释放 当外部输入的复位信号
    的头像 发表于 05-08 09:59 2472次阅读
    RTL中多<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><b class='flag-5'>释放</b>

    【FPGA】异步复位同步释放的理解

    异步复位同步释放的理解目录目录 同步复位异步
    发表于 01-17 12:53 4次下载
    【FPGA】<b class='flag-5'>异步</b><b class='flag-5'>复位</b>,<b class='flag-5'>同步</b><b class='flag-5'>释放</b>的理解

    同步复位异步复位的区别

    请简述同步复位异步复位的区别,说明两种复位方式的优缺点,并解释“异步
    的头像 发表于 08-14 11:49 6829次阅读

    浅析异步复位同步释放同步复位打拍模块

    异步复位同步释放:rst_synchronizer.v
    的头像 发表于 08-21 09:27 930次阅读
    浅析<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><b class='flag-5'>复位</b>打拍模块

    FPGA学习-异步复位同步释放

    点击上方 蓝字 关注我们 系统的复位对于系统稳定工作至关重要,最佳的复位方式为:异步复位同步释放
    的头像 发表于 09-09 14:15 989次阅读
    FPGA学习-<b class='flag-5'>异步</b><b class='flag-5'>复位</b>,<b class='flag-5'>同步</b><b class='flag-5'>释放</b>