FPGA和ASIC中的复位

本文详细介绍了数字电路中复位的重要性和作用,包括同步复位和异步复位的概念。同步复位在时钟上升沿检测复位信号,确保设计为同步时序电路,但要求复位信号宽度足够;异步复位则在任何时候都能立即复位,但可能导致亚稳态和静态时序分析困难。两种复位方式各有优缺点,适用于不同的设计需求。
摘要由CSDN通过智能技术生成

         数字电路中寄存器和RAM在上电之后默认的状态和数据是不确定的,如果有复位,我们可以把寄存器复位到初始状态0,RAM的数据可以通过复位来触发RAM初始化到全0。还有一种情况是逻辑进入到了错误的状态,通过复位可以把所有的逻辑状态恢复到初始值,如果没有复位,那么逻辑可能永远运行在错误的状态。因此复位功能是很重要的一个功能。

同步复位:

       同步复位指的是当时钟上升沿检测到复位信号,执行复位操作,有效的时钟沿是前提。

always@(posedge clk)begin

      if (rst_n==1'b0)

         y<=1'b0;

       else

           y<=b;

   end

优点:

        (1)可以使设计的系统成为100%的同步时序电路,有利于时序分析,而且可综合出较高的Fmax。

       (2)由于只在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的复位毛刺。

缺点:

       (1)复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑时钟偏移、组合逻辑路径延时、复为延时等因素,所以复位信号有时需要脉冲展宽,用以保证时钟有效期间有足够的复位宽度。

       (2)大多数厂商的目标库内的触发器只有异步复位端口,采用同步复位的话,就会耗费较多的逻辑资源。

异步复位:

       异步复位指的是无论时钟是否到来,只要复位信号有效,就对系统进行复位。当时钟上升沿检测到复位信号,执行复位操作。

always@(posedge clk  or negedge rst_n )begin

      if (rst_n==1'b0)

         y<=1'b0;

       else

           y<=b;

   end

优点:

       (1)大多数目标器件库的DFF都有异步复位端口,那么触发器的复位端口就不需要额外的组合逻辑,这样就可以节省资源。

      (2)异步复位信号产生和响应都很方便(电路在任何情况下都能复位而不管是否有时钟)。

缺点:

     (1)最大的问题在于它属于异步逻辑,问题出现在复位释放时,而不是有效时,如果复位释放接近时钟有效沿,则触发器的输出可能进入亚稳态(此时clk检测到的rst_n的状态就会是一个亚稳态,既是0是1不确定的),从而导致复位失败。

     (2)可能因为噪声或者毛刺造成虚假复位信号(比如系统正常工作时突然复位)。

     (3)静态时序分析比较困难,静态时序分析一般是针对同步设计的,都是基于时钟周期来分析时序的。

     (4)对于dft,如果复位信号不是直接来自于I/O引脚,在dft扫描和测试时,复位信号必须被禁止,因此需要额外的同步电路。

异步复位、同步释放:

       异步复位同步撤离的目的是为了防止复位信号撤离时,可能产生的亚稳态。复位信号到来的有效与否与clk无关,而且复位信号的撤除也与clk无关,但是复位信号的撤除是在下一个clk来到后才起作用。

always@(posedge clk or negedge rst_async_n)begin

     if (!rst_async_n)begin

            rst_s1<=1'b0;

            rst_s2<=1'b0;

    end

   else  begin

          rst_s1<=1'b1;

          rst_s2<=rst_s1;

         end

  end

assign  rst_sync_n =rst_s2;

always@(posedge clk or negedge rst_sync_n)begin

       if (!rst_sync_n)

            y<=1'b0;

      else

           y<=b;

  end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

交芯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值