zoukankan      html  css  js  c++  java
  • 为什么不推荐全局异步复位?兼谈ResetRecoveryTime

    常见的D-触发器异步复位代码如下:

    module   resetff(

        output reg dat_o;

        input         clk_i, nRst_i;

        input         dat_i;

                            );

      always @ (posedge clk_i or negedge nRst_i)

         if(!nRst_i)

             dat_o <= 1’b0;

         else

              dat_o <= dat_i;

    endmodule

    一般情况下这是没有问题的,但当Module的边界就是FPGA的边界时,可能会引起灾难性的后果(… is very dangerous if the module boundary represents the FPGA boundary.)。例如Reset Recovery Time Violating。

           先了解一下什么是Reset Recovery Time。

           Altera文档的说法是:Recovery time is the minimum length of time for the deassertion of an asynchronous control signal.这种说法有点模糊,另一种说法如下:The reset recovery time is a type of setup timing condition on a flip-flop that defines the minimum amount of time between the deassertion of reset and the next clock edge.

    顺便说明一下,Recovery Time和Removal Time都是和de-assertion相关的。

    如下图所示:

    image

    当Reset Recovery Time violated时,有意思的是,触发器输出Q会进入亚稳态:

    image

    也是基于上述原因,不推荐全局异步复位。

  • 相关阅读:
    云网站 SEO
    GraphQL 开发原则
    软件秘钥实现
    删除文件
    GUI 桌面程序开发
    chcon SeLinux
    正确使用 cookie 的 path
    struts 2用DomainModel接收参数
    Struts 2动态调用方法(DMI)
    struts 2actionwildcard 通配符配置
  • 原文地址:https://www.cnblogs.com/freshair_cnblog/p/2473792.html
Copyright © 2011-2022 走看看