首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我使用的是异步复位,我是否应该做同步切换呢?

如果我使用的是异步复位,我是否应该做同步切换呢?
EN

Stack Overflow用户
提问于 2015-02-07 11:45:20
回答 1查看 85关注 0票数 1

我们制造集成电路(我指硬件上的物理设计)。据我所知,输入重置总是不同步的。我想知道,如果我使用异步复位,是否应该将其转换为同步?或者我们可以只使用异步重置吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 17:19:21

事实上,如果您有触发器,并且是以异步方式重新检查的,那么您可以在任何时候异步地启动重置,但是您应该同步结束它。原因很简单:想象一下真正的异步。重置与时钟边缘同时结束。您可以很容易地在这里获得亚稳态,或者,例如,一半的触发器将接受时钟边缘,而另一半将仍然在重置和错过相同的时钟边缘,从而潜在地破坏您的设计。

因此,基本上您需要同步外部异步重置,如下所示:

代码语言:javascript
复制
module rst_resync
(
    input  wire clk,
    input  wire ext_rst_n,
    output wire rst_n
);

    reg [1:0] rst_resync;

    always @(posedge clk, negedge ext_rst_n)
    if( !ext_rst_n )
        rst_resync[1:0] <= 2'b00;
    else
        rst_resync[1:0] <= { rst_resync[0], 1'b1 };

    assign rst_n = rst_resync[1];

endmodule

这样,您仍然可以在任何时候重新设置您的设计,甚至在时钟的意义上(就像任何异步复位一样),但是内部重置将同步结束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28381719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档