FPGA实现异步复位、同步释放的复位信号

同步复位的优点:

  • 一般能够确保电路是百分之百同步的。
  • 确保复位只发生在有效时钟沿,可以作为过滤掉毛刺的手段。

同步复位的缺点:

  • 复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位。同时还要考虑如:时钟偏移、组合逻辑路径延时、复位延时等因素。
  • 由于大多数的厂商目标库内的触发器都只有异步复位端口,采用同步复位的话,就会耗费较多的逻辑资源。

异步复位优点:

  • 异步复位信号识别方便,而且可以很方便的使用全局复位。
  • 由于大多数的厂商目标库内的触发器都有异步复位端口,可以节约逻辑资源。

异步复位缺点:

  • 复位信号容易受到毛刺的影响。
  • 复位结束时刻恰在亚稳态窗口内时,无法决定现在的复位状态是1还是0,会导致亚稳态。

异步复位与同步复位都不可靠。异步复位会影响寄存器的recovery时间,引起设计的稳定性问题,尤其对于状态机的无意识的复位,因其稳定性问题,尤其对于状态机的无意识的复位,将导致进入不确定的状态。同步复位也存在类似的问题,而且对于不带同步复位专用端口的器件会增加额外的逻辑资源。

下面介绍一种更为可靠的异步复位,同步释放的双缓冲电路。该电路有两个同一时钟触发的层叠寄存器组成,该时钟必须和目标寄存器是一个时钟域。

module RST_Module 
                (
                rst,
                clk,
                rst_nr
                );
input clk;//系统时钟信号
input  rst;//复位信号输入
output  rst_nr;//异步复位、同步释放输出
reg rst_nr1,rst_nr;
//两级层叠复位产生,低电平复位
always @(posedge clk or negedge rst)  
begin
  if(!rst) rst_nr1 <= 1'b0;
  else rst_nr1 <= 1'b1;
end 

always @(posedge clk or negedge rst)  
begin
  if(!rst) rst_nr <= 1'b0;
  else rst_nr <= rst_nr1;
end          

endmodule   


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值