会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 复位电路的效果、操控方法和类型!

复位电路的效果、操控方法和类型

时间:2025-05-24 18:07:55 来源:锐评时讯 作者:最新热点 阅读:276次

复位电路也是数字逻辑规划中常用的电路,不管是。 FPGA。仍是。 ASIC。规划,都会触及到复位,一般 FPGA或许 ASIC 的复位需求咱们自己规划复位计划。复位指的是将。寄存器。康复到默许值。一般复位功用包括同步复位和异步复位。复位一般由硬件开关触发引起,也能够由复位逻辑操控引起。

复位电路的效果。

数字电路。中寄存器和。 RAM。在上电之后默许的状况和数据是不确定的,假设有复位,就能够把寄存器复位到初始状况 0,RAM 的数据能够通过复位来触发 RAM 初始化到全 0,由于一般逻辑开端都是从 0 开端改动的,这个是依据规划的需求设定的一个值,假设规划需求寄存器上电复位为 1,也是能够的。

还有便是假设逻辑进入了过错的状况,通过复位能够把一切的逻辑状况康复到初始值。

复位电路的操控办法。

1 按键复位。

在硬件。电路规划。中,一般会留下一个复位按键,按下开关复位,就能够简略方便地进行复位。

但按键复位存在一个问题,便是一般按键在按下时会产生颤动,开释时也会产生颤动。这是由于大多数按键所运用的开关为。机械。弹性开关,当咱们按下或松开按键时,由于弹片的物理特性,不能当即闭合或断开,往往会在断开或闭合的短时刻内产生机械颤动。

按键消抖可分为硬件消抖和软件消抖。硬件消抖首要运用。RS。触发器或。电容。等办法完结消抖, 一般在按键较少时运用。软件消抖的原理首要为按键按下或松开后延时5ms—20ms采样,这种办法常常运用。

按键去抖的思路是。检测。到按下时延时 20ms,再检测,假设状况仍为按下,则确认是按下的;假设状况为弹起的,则确认是搅扰,无按键按下。

假设rst_in 为一个 一般 按键,直接衔接至 FPGA里边的复位引脚作为大局复位,所以按键消抖的原理为:当 rst_in按键按下时或许会呈现颤动,需求 等 20ms之后再去检测这个按键是否按下 FPGA里边的这个引脚的电平是否改动 )),这样就达到了按键消抖的意图 。

如下图所示:

检测到第一次按下(检测到低电平),此刻推迟20ms,然后 20ms之后,再次检测是否有安稳的低电平 。

由于按键 弹片的物理特性,按键按下时会有颤动,也便是说咱们其实只按一次,可是实践产生的“按下”却是许屡次的,这些许屡次扳话在这 20ms里。通过延时 20ms,把其他的“按下(也便是颤动)给滤除了。然后再次判别是否有按下,由于有的时分搅扰很大。

2 RC复位电路。

这种是一种简略的 RC 复位电路,电源。接通时分,通过 R1 对 C2 进行充电,通过一段推迟后加到电路傍边产生复位。信号。,这个复位信号的上升速度低于电源的上电速度,当复位引脚检测到高电平时分,体系复位完毕,进入正常作业状况。

3 FPGA上电复位。

假设在硬件电路规划时没有留下复位按键,对FPGA来说也没有太大问题,由于 FPGA 内部也会有上电复位的功用,便是 POR(Power On Reset)电路。FPGA。 芯片。内部有一个上电检测模块,一旦检测到电源电压超越检测门限后,就产生一个上电复位脉冲(Power On Reset)并将其送给一切的寄存器,这个脉冲会主动效果在各个寄存器的复位端,和功用复位管脚一起操控寄存器的复位。

别的,便是 FPGA 重新配置之后,也会触发上电复位。

复位电路的类型。

同步复位。

同步复位指的是当。时钟。上升沿检测到复位信号,履行复位操作,有用的时钟沿是条件。完结同步复位一般意味着将复位信号与时钟信号同步。

以下是一个简略的比方,展现了怎么运用同步复位来重置一个计数器:

module sync_reset_coun。te。r(      input wire clk,          // 时钟信号      input wire rst,          // 同步复位信号(高电平有用)      input wire enable,       // 使能信号      input wire inc_dec,      // 增减操控信号(例如,1为增,0为减)      output reg [7:0] count   // 计数器输出  );    always (posedge clk) begin      if (rst) begin          // 当rst为高电平时,进行同步复位          count。 <= 8'h00; // 计数器被重置为0      end else if (enable) begin          // 如果复位信号无效且使能信号有效,则更新计数器          if (inc_dec) begin              // 如果inc_dec为高,则增加计数器              if (count < 8'hFF) // 防止计数器溢出                  count <= count + 1'b1;          end else begin              // 如果inc_dec为低,则减少计数器              if (count >8'h00) // 避免计数器下溢                  count。 <= count - 1'b1;          end      end  end    endmodule

在这个比方中,rst是同步复位信号,它是一个高电平有用的信号。当rst为高时,鄙人一个clk的上升边缘到来时,计数器count会被重置为0。与异步复位不同,同步复位不会当即产生,而是会鄙人一个时钟边缘产生时收效。

同步复位的长处如下:

能保证复位信号和时钟信号的相位共同,然后避免由于信号传输推迟而导致的问题;

以同步的办法与其他信号进行操控,削减信号抵触的或许性;

避免由于时序问题(如时钟闪耀、时钟脉冲不安稳等)而导致的体系复位不精确或推迟;

便于。仿真。

能够使所规划的体系成为 100%的同步时序电路,有利于时序剖析,并且可归纳出较高的 Fmax;

由于只在时钟有用电平到来时才有用,所以能够滤除高于时钟频率的复位毛刺,可有用避免因毛刺形成的亚稳态和过错。

同步复位也有一些缺陷,缺陷如下:

复位信号的有用时长有必要大于时钟周期,才干真实被体系辨认并完结复位使命。由于线路上的推迟,或许需求多个时钟周期的复位脉冲宽度。此外,很难保证复位信号抵达各个寄存器的时序,这添加了规划的复杂性。

同步复位是依赖于时钟信号的。假设电路中的时钟信号呈现问题,例如时钟停振或许时钟周期不安稳,那么同步复位或许无法完结,导致电路无法正常作业。

由于大多数的逻辑器材的方针库内的 DFF 都只需异步复位。端口。,所以,假使选用同步复位的话,归纳器就会在寄存器的数据输入端口刺进组合逻辑,这样就会一方面额定添加 FPGA 内部的逻辑资源,另一方面也添加了相应的组合逻辑门时延。

异步复位。

异步复位指的是不管时钟沿是否到来,只需复位信号有用,就对体系进行复位。完结异步复位电路一般触及在寄存器或状况机的更新逻辑中包括一个复位信号。

以下是一个简略的比方,展现了怎么在。Verilog。中运用异步复位来重置一个计数器:

module async_reset_counter(      input wire clk,          // 时钟信号      input wire rst_n,        // 异步复位信号(低电平有用)      input wire enable,       // 使能信号      input wire inc_dec,      // 增减操控信号(例如,1为增,0为减)      output reg [7:0] count   // 计数器输出  );    always (posedge clk。 or。negedge rst_n) begin      if (!rst_n) begin          // 当rst_n为低电平时,进行异步复位          count。 <= 8'h00; // 计数器被重置为0      end else if (enable) begin          // 如果复位信号无效且使能信号有效,则更新计数器          if (inc_dec) begin              // 如果inc_dec为高,则增加计数器              if (count < 8'hFF) // 防止计数器溢出                  count <= count + 1'b1;          end else begin              // 如果inc_dec为低,则减少计数器              if (count >8'h00) // 避免计数器下溢                  count。 <= count - 1'b1;          end      end  end    endmodule

在这个比方中,rst_n是异步复位信号,它是一个低电平有用的信号。当rst_n为低时,不管时钟信号clk的状况怎么,计数器count都会被当即重置为0。当rst_n为高且enable信号也为高时,计数器会依据inc_dec信号的值进行添加或削减。

长处:

大多数方针器材库的 DFF 都有异步复位端口,那么该触发器的复位端口就不需求额定的组合逻辑,这样就能够节约资源;

某些状况下,运用异步复位能够简化逻辑规划。由于复位操作不依赖于时钟信号,因而不需求额定的逻辑来同步复位信号和时钟信号;

能够在任何时刻呼应复位信号,而不需求等候下一个时钟边缘。这意味着复位操作能够当即产生;

在某些运用中,异步复位能够进步体系的可靠性。例如,在电源上电或复位按钮被按下时,异步复位能够保证体系敏捷并可靠地进入已知状况。

异步复位也有一些缺陷,缺陷如下:

最大的问题在于它归于异步逻辑,问题呈现在复位开释时,而不是有用时,假设复位开释挨近时钟有用沿,则触发器的输出或许进入亚稳态(此刻 clk 检测到的 rst_n 的状况就会是一个亚稳态,便是 0 是 1是不确定的),然后导致复位失利。

或许由于噪声或许毛刺形成虚伪复位信号(比方体系正常作业时忽然复位)(留意:时钟端口、清零和置位端口对毛刺信号非常灵敏,任何一点毛刺都或许会使体系犯错,因而判别逻辑电路中是否存在冒险以及怎么避免冒险是规划人员有必要要考虑的问题);

静态守时剖析比较困难,静态时序剖析一般是针对同步规划的,都是根据时钟周期来剖析时序的;

关于 DFT(DesignForTest 可测性规划)规划,假设复位信号不是直接来自于 I/O 引脚,在 DFT 扫描和测验时,复位信号有必要被制止,因而需求额定的同步电路;

在某些状况下,异步复位信号或许会与时钟信号或其他输入信号产生抵触,导致冒险现象(冒险条件)。这或许会导致体系进入不确定的状况,需求进行额定的逻辑规划来避免这种状况。

总结下来,咱们。引荐。运用异步复位、同步开释的办法,并且复位信号为低电平有用。即:

1、复位信号到来的有用与否与 clk 无关,并且复位信号的撤消也与 clk 无关,可是复位信号的撤消是鄙人一个 clk 来到后才起的效果。

2、异步复位同步撤离的意图为了避免复位信号撤消时,或许产生的亚稳态。

这意味着复位操作是异步的(能够在任何时刻产生),但复位后的撤离(即康复正常的逻辑操作)是同步的(在时钟边缘产生)。

以下是一个运用这种战略的计数器的Verilog代码示例:

module async_reset_sync_release_counter(      input wire clk,          // 时钟信号      input wire rst_n,        // 异步复位信号(低电平有用)      input wire enable,       // 使能信号      input wire inc,          // 添加操控信号      output reg [7:0] count   // 计数器输出  );    // 初始化计数器为0,但留意这儿不会当即收效,由于Verilog没有真实的初始化句子  reg [7:0] count_reg = 8'h00; // 运用局部变量进行初始化    always (posedge clk or negedge rst_n) begin      if (!rst_n) begin          // 异步复位,任何时分rst_n为低时,计数器当即被置0          count_reg。 <= 8'h00;      end else begin          // 同步撤离,在rst_n为高且时钟上升边沿到来时,根据enable和inc更新计数器          if (enable) begin              if (inc) begin                  if (count_reg < 8'hFF) // 防止计数器溢出                      count_reg <= count_reg + 1'b1;              end          end      end  end    // 同步输出到外部接口  assign count = count_reg;    endmodule

来历:https://blog.csdn.net/u011565038/ar。ti。cle/det。ai。ls/139690846。

内容来源:https://sh.tanphatexpress.com.vn/app-1/lotto x5,http://chatbotjud.saude.mg.gov.br/app-1/122bet

(责任编辑:生活)

    系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面发生异常错误,系统设置开启调试模式后,刷新本页查看具体错误!