原创 同步复位or异步复位

2012-5-11 22:02 1430 13 13 分类: 工程师职场

 

一般来说,逻辑电路的任何寄存器、存储器或其他逻辑单元都应加上复位电路,保证电路能进入初始状态或从错误中恢复,可靠地工作。通常情况下,复位信号为低电平有效,并加上上拉电阻,以增加复位电路的抗干扰性能。具体来说,复位电路的目的主要有两个:

1)仿真时,使电路进入初始状态或其他预知状态;

2)对于综合实现的具体电路,使电路进入初始状态或其他预知状态。

在电路实现时有两种复位方式:同步复位、异步复位。

同步复位:复位信号发生变化时并不立刻生效,必须待有效时钟沿采样到复位信号有效时,复位信号才生效,对寄存器复位。

异步复位:只要复位信号的有效,不管时钟沿是否有效,复位信号立刻对目标(寄存器或存储器)复位。

1、              同步复位

在使用RTL进行建模时,同步复位一般按如下格式进行:

 

always @(posedge iMainClk) begin
    if(reset)       
        //Rst逻辑
    else
        //同步逻辑
end

 

优点:

1) 有利于仿真器的仿真;

2)使设计系统成为100%的同步,便于时序分析,且综合后的fmax较大;

3)在时钟沿复位信号才有效,有利于过滤高于时钟频率的复位毛刺。

缺点:

1) 复位信号必须大于时钟周期才能生效,且要考虑综合逻辑延时、时钟延时、clock skew等因素;

2) 大多数逻辑库只支持异步复位dff,若使用同步复位,则综合器会在复位输入端插入组合逻辑(具体如下图所示),会耗费较多的逻辑资源。

 

大多数逻辑库只支持异步复位dff,若使用同步复位,则综合器会在复位输入端插入组合逻辑,具体如下所示。

 

1.jpg

 

2、              异步复位

在使用RTL进行建模时,异步复位一般按如下格式进行:

 

always @(posedge iMainClk or negedge reset) begin
    if(reset)       
        //Rst逻辑
    else
        //同步逻辑
end
 

 

优点:

1)  大多数逻辑库都有dff异步复位端口,使用异步复位节省资源;

2)设计相对简单;

3) 异步复位识别方便,而且可以使用FPGA全局复位端口。

缺点:

                   1) 在复位信号释放(release)的时候容易出现问题,具体地说如果复位信号恰好在有效时钟沿附近撤销,容易使寄存器输出出现亚稳态。

2) 复位信号容易受毛刺的影响。

异步复位一般综合成如下电路。

 

2.jpg

一般推荐使用异步复位,同步释放。

异步复位:即复位信号是异步的

同步释放:即复位信号释放后,输出不立即变化,而是要等到时钟沿时才变化,这样释放和时钟进行了同步。

推荐的代码如下所示:

 

                  always_dff @(posedge iMainClk or negedge iMainRst_n) begin
                          if(!iMainRst_n)     rResult <= 1’b0 ; //异步复位
                          else                      rResult <= nResult ; //时钟同步释放
                 end

另外在电路设计中,也经常会把异步复位信号先用时钟进行同步,然后再使用。这里使用时钟将外部输入的异步复位信号寄存一个节拍后,再送到触发器。异步复位端口的设计方法的另一个好处在于,做STA(静态时序分析)分析时,时序工具会自动检查同步后的异步复位信号和时钟的到达(Recovery)/撤销(Removal)时间关系,如果因布线造成的skew导致该到达/撤销时间不能满足,STA工具会上报该路径,帮助设计者进一步分析问题,如图所示:

 

3.jpg

其RTL实现代码为:

 

             always @(posedge iMainClk) begin
                   rRst_n <= Rst_n ;
              end
 
             always @(posedge iMainClk or negedge rRst_n) begin
                   if(!rRst_n)    
                         //复位逻辑;
                  else
                         //同步时序;
             end
 

 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
13
关闭 站长推荐上一条 /3 下一条