首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于异步复位如何在复位边沿上工作的问题

关于异步复位如何在复位边沿上工作的问题
EN

Stack Overflow用户
提问于 2019-04-14 03:41:49
回答 1查看 175关注 0票数 0

我正在看一些来自“asic-world”的Verilog东西,有一个关于异步重置的问题。不太确定当重置处于正边缘时它是如何工作的。如果仅考虑复位的上升沿,下面的Verilog代码将检查复位是否等于1。如果reset为1,则输出将重置为零。有谁能解释一下吗?

Asic-world的Verilog代码:

代码语言:javascript
复制
module  asyn_reset(clk,reset,a,c);
    input clk;
    input reset;
    input a;
    output c;    

    wire clk;
    wire reset;   
    wire a;    
    reg c;  

    always @ (posedge clk or posedge reset)
    if ( reset == 1'b1) begin
        c <= 0;
    end else begin
        c <= a;
    end
    endmodule
EN

回答 1

Stack Overflow用户

发布于 2019-04-24 21:55:56

异步复位意味着,无论时钟如何,只要复位信号有效,您的电路就应该复位。当然,这应该包括在敏感度列表中,因为这样的语法使它被认为是异步复位。请注意,它不需要活动时钟来使触发器进入默认(复位)状态,并且在进入复位状态时,您不应担心任何亚稳态问题。always process的第一个块(检查重置输入状态)在这里是必需的,您需要遵循这样的编码风格。最重要的一点是,在复位断言期间,可以忽略时钟和复位之间的相对时序。Reset Release必须与时钟同步,因为它确实会导致亚稳态问题。有一些已知的电路可用于异步重置释放过程(这些电路有点具体,但在ASIC的世界中广泛使用,因此您应该能够通过google浏览器找到参考资料)。

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

https://stackoverflow.com/questions/55669212

复制
相关文章

相似问题

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