FPGA同步复位与异步复位_领航者开发板

关于FPGA中的同步复位与异步复位,之前从未考虑过两者之间的区别,使用时也是随意使用。本篇笔记主要记录一下二者之间的区别,内容均摘自百度、博客等。
https://www.zhihu.com/question/20280893


1.同步复位
同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。同步复位RTL代码:

//Synchronous Reset
module sync_rst(
		input  clk_i,
		input  rst_n,
		input  din,
		output reg dout
 );
       always @(posedge clk_i) begin
		if(!rst_n) 
			dout <= 0;
		else 
			dout <= din;
	end
 endmodule
 
//作者:Kevin Zhang
//链接:https://www.zhihu.com/question/20280893/answer/465957602
//来源:知乎

在这里插入图片描述

2.异步复位
异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。异步复位RTL代码:

//Asynchronous Reset
  module async_rst(
		input  clk_i,
		input  rst_n,
		input  din,
		output reg dout
 );
	always @(posedge clk_i or negedge rst_n) begin
		if(!rst_n) 
			dout <= 0;
		else 
			dout <= din;
	end
 endmodule

//作者:Kevin Zhang
//链接:https://www.zhihu.com/question/20280893/answer/465957602
//来源:知乎

在这里插入图片描述

3.同步复位异步复位优缺点比较
(1)同步复位的优点:一般能够确保电路是百分之百同步的。确保复位只发生在有效时钟沿,可以作为过滤掉毛刺的手段。
(2)同步复位的缺点:复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位。同时还要考虑如:时钟偏移、组合逻辑路径延时、复位延时等因素。由于大多数的厂商目标库内的触发器都只有异步复位端口,采用同步复位的话,就会耗费较多的逻辑资源。
(3)异步复位优点:异步复位信号识别方便,而且可以很方便的使用全局复位。由于大多数的厂商目标库内的触发器都有异步复位端口,可以节约逻辑资源。
(4)异步复位缺点:复位信号容易受到毛刺的影响。复位结束时刻恰在亚稳态窗口内时,无法决定现在的复位状态是1还是0,会导致亚稳态。


P.S.
FPGA里现在建议同步复位,新一代的器件触发器都富裕,一个LUT拖2个触发器的。
异步复位有两个问题,一个是复位会出现一个大网络,占用全局网络资源,另一个复位和时钟之间是有recover time检查的,单独的一个大复位还好,如果中间再有一些可控的小复位,很多的recover time路径要手工隔离麻烦。
对于上电启动复位次序要求不高的电路同步异步区别不大,对于启动次序要求高或者复位不好会出异常的电路建议启动状态机加同步复位控制启动。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值