zoukankan      html  css  js  c++  java
  • 同步复位与异步复位

    在一个ASIC设计中,复位方面有着很多的策略:

    同步复位与异步复位的选择,reset tree的buffer与走线,reset tree的时序及功能验证,

    reset的scan test设计,cdc中的设计。

    同步复位:

    在always模块中,并不会有reset的敏感列表。

    同步复位可以被综合为更小的FF,因为只需要在输入端D加入reset与门或者lib提供带同步reset的FF;

    同步复位可以对reset信号的小的glitch进行filter,防止metastable的产生;

    但是;

    同步复位需要一个pulse stretcher(counter)来保证reset pulse的宽度足够被clock采样到;

    同步复位要求必须有clock才能工作,而有时系统要求是clock gate的;

    在一些三态总线的初始化过程中,要求必须有异步复位,来保证在clock有效前,不出现冲突;

    异步复位的最大问题是在reset release阶段可能出现timing不满足。

    异步复位的FF包括一个专用的reset pin,在always模块的敏感列表中包含reset。

    异步复位保证了FF,data端的timing是clean的,不会被reset影响到;

    异步复位可以保证在没有clock的情况下,有效复位;

    但是

    异步复位reset端出现的小的noise和glitch对设计影响可能是致命的;

    reset端相对于clock的recovery time和removal time问题,这个问题在一个reset对应多个clock时,更加严峻;

    实际中的解决办法,加入reset synchronizer;

    reset distribution tree相较于clock distribution tree对skew要求并没有那么严格,并不需要做太多的balance工作。

    reset tree针对sync,usync的一些结构:

    在sync reset中,必须在PR阶段插入buffer或调整trace来保证timing且reset在同一clock内可以传递到各个module。

    而在usync设计中,可以在每个endpoint做自己的sync和balance,从而简化了设计。

    reset的输入pad应该经过一schmidt trigger来filter glitch,

    在逻辑内部可以通过加入delay hard macro来进行glitch filter。

    带优先级的reset的设计:

     

    synopsys要求,如果在敏感列表中有一个是edge-sensitive,那么敏感列表中的所有信号都必须是edge-sensitive。

    verilog simulation并没有在这个约束,但是在edge-sensitive敏感列表中,只能有clock和reset信号。

    在上述这个例子中,不过不加translate_off/translate_on的宏定义,那么这个simulation model是错的,

    在reset,set同时为低,但是reset之后无效的情况下,仿真结果会错误,这只是一个model的建立错误,DC并不会错。

    在创建testbench过程中,尽量保证使用同一个testbench,对于pre-synthesis和post-synthesis有同样的结果。

    在reset进行同步释放的设计中:

    @posedge clk or negedge rst

      if(!rst)   begin

                      reg1 <= 1'b0;

                      reg2 <= 1'b0;

      end

      else begin  reg1 <= 1'b1;

                      reg2 <= reg1;

            end

    两级寄存器来保证mestability的概率最小,在这两级的register中,是不会检查recovery/removal,在sta中,设置为false path;

    在同步之后,可以检查recovery/removal的timing;

    rst的下降沿只能保证,有效的rst生成,rst的removal是靠clock的trigger。

  • 相关阅读:
    ZOJ 1002 Fire Net
    Uva 12889 One-Two-Three
    URAL 1881 Long problem statement
    URAL 1880 Psych Up's Eigenvalues
    URAL 1877 Bicycle Codes
    URAL 1876 Centipede's Morning
    URAL 1873. GOV Chronicles
    Uva 839 Not so Mobile
    Uva 679 Dropping Balls
    An ac a day,keep wa away
  • 原文地址:https://www.cnblogs.com/-9-8/p/5470769.html
Copyright © 2011-2022 走看看