精华内容
下载资源
问答
  • 异步复位 同步释放

    2020-08-19 17:32:39
    在实际的工程中选择复位策略之前必须考虑许多设计方面的问题,如使用同步复位或者异步复位或者异步复位同步释放(Asynchronous Reset Synchronous Release或者Synchronized Asynchronous Reset),以及是否每一个...

         

    目录

    1. 同步复位

    2. 异步复位

    3  异步复位 同步释放


    在实际的工程中选择复位策略之前必须考虑许多设计方面的问题,如使用同步复位或者异步复位或者异步复位同步释放(Asynchronous Reset Synchronous Release或者Synchronized Asynchronous Reset),以及是否每一个触发器都需要进行复位。复位的基本目的是使器件进入到可以稳定工作的确定状态,这避免了器件在上电后进入到随机状态导致跑飞了。在实际设计过程中,设计者必须选择最适合于设计本身的复位方式。

    1. 同步复位

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

    module sync_rst (
    input       i_clk,
    input       i_rst_n,
    input       i_din,
    output  reg o_dout
    );
    always @ (posedge i_clk)
    begin
    	if (!i_rst_n)
    		o_dout <= 0;
    	else
    		o_dout <= i_din;
    end
    endmodule 
    

    综合后RTL级代码:

    2. 异步复位

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

    module async_rst (
    input       i_clk,
    input       i_rst_n,
    input       i_din,
    output  reg o_dout
    );
    always @ (posedge i_clk or negedge  i_rst_n)
    begin
    	if (!i_rst_n)
    		o_dout <= 0;
    	else
    		o_dout <= i_din;
    end
    endmodule 

    综合后的RTL图如下:

     

    同步复位与异步复位的优缺点

    同步复位的优点:

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

    同步复位的缺点:

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

    异步复位优点:

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

    异步复位缺点:

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

     

    3  异步复位 同步释放

    	always@(negedge I_sys_rst_n or posedge I_sys_clk)
    		begin
    			if (!I_sys_rst_n)
    		begin
    		    S_master_rst_n <= 1'b0;
    		    S_rst_buf_n <= 1'b0;
    		end
    	else
    		begin
    		    S_rst_buf_n <= 1'b1;
    			    S_master_rst_n <= S_rst_buf_n;
        	end		
    end
    
    always@(negedge S_master_rst_n or posedge I_sys_clk)
    begin
    	if (!S_master_rst_n )
       	///开始复位。。。。
    	else
    		///正常工作 
    		end
    

    异步复位的好处为:异步复位可以直接利用FPGA内部寄存器的硬复位管脚来复位寄存器,同时复位信号不再参与到组合逻辑电路中,不影响逻辑的速度。但异步复位也会引来一些问题,当复位信号正好在时钟沿附近释放,寄存器的输出将出现亚稳态。

    展开全文
  • 异步复位同步释放

    2018-04-23 20:41:54
    更多精彩内容,请微信搜索“FPGAer俱乐部”关注我们。...RTL代码如下:三、异步复位同步释放所谓异步复位,同步释放就是在复位信号到来的时候不受时钟信号的同步,而是在复位信号释放的时候受到时钟...
    更多精彩内容,请微信搜索“FPGAer俱乐部”关注我们。


    一、同步复位

    同步复位是指只有在时钟上升沿到来时才会对复位信号进行采样,也就是只有在时钟上升沿时,复位信号才有效。

    其RTL代码如下:

    二、异步复位

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

    三、异步复位同步释放

    所谓异步复位,同步释放就是在复位信号到来的时候不受时钟信号的同步,而是在复位信号释放的时候受到时钟信号的同步。

    如上图,单独看方框2的复位策略,是一个异步复位电路,即复位信号有效时不管时钟信号是否处于有效沿,输出都会被复位,但是如果复位信号在时钟信号的上升沿撤销时,这时候的输出就是亚稳态。

    方框1中电路图是实现异步复位同步释放的关键。

    首先看一下怎么实现异步复位:当rst_async_n有效时,第二个D触发器的输出rst_sync_n就是低电平,方框2中的异步复位端口有效,输出被复位。

    然后是同步释放:假设rst_async_n在clk的上升沿时撤除,那么第一级触发器处于亚稳态,但是由于两级触发器的缓冲作用,第二级触发器的输入为clk到来前第一级触发器的输出,即为低电平。因此,此时第二级触发器的输出一定是稳定的低电平,方框2中触发器仍然处于复位状态。在下一个clk到来时,第一级触发器的输出已经是稳定的高电平了,故rst_sync_n已经是稳定的高电平,此时复位释放。也就是同步释放。

    其实现代码如下:

    本文转载自http://blog.chinaaet.com/hu_li/p/5100052320,如涉及侵权,请私信小编删除。

    ============华 丽 的 分 割 线============


    想加入我们FPGA学习交流群吗?可以长按或扫描以下二维码,审核通过后我们邀请您加入

    这些微信群旨在打造一个提供给FPGA工程开发人员及兴趣爱好者(统称“FPGAer”)进行技术交流、答疑解惑和学习的平台。而且我们也将会通过网络举办FPGA技术讲座,分享相关研究文献 



    了解更多FPGA知识可以长按或扫描以下二维码关注FPGAer俱乐部


    
    展开全文
  • 同步复位,异步复位,异步复位同步释放

    1、同步复位

    只在时钟有效沿对系统进行复位

    always@(posedge clk) begin
    	if(rst) begin
    		...
    	end else begin
    		...
    	end
    end
    

    在这里插入图片描述

    在这里插入图片描述

    优点

    • 利于仿真
    • 可综合成时序电路,利于时序分析,综合后系统工作频率高
    • 可滤除高于时钟频率的毛刺,抗干扰能力强

    缺点

    • 复位信号有效时长需要大于时钟周期
    • 大多数库的DFF只有异步复位接口,需要额外的资源

    2、异步复位

    与时钟无关,只要有复位信号,就对系统进行复位

    always@(posedge clk or posedge rst) begin
    	if(rst) begin
    		...
    	end else begin
    		...
    	end
    end
    

    在这里插入图片描述
    在这里插入图片描述

    优点

    • 大多数库的DFF有异步复位接口,节省资源
    • 设计简单,识别方便

    缺点

    • 复位信号释放时容易造成系统进入亚稳态
    • 容易受到毛刺影响,抗干扰能力差

    3、异步复位同步释放

    always@(posedge clk) begin
    	rst_r <= rst;
    end
    
    always@(posedge clk or posedge rst_r) begin
    	if(rst_r) begin
    		...
    	end else begin
    		...
    	end
    end
    

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 今天好好理一理异步复位,同步复位,以及亚稳态中的异步复位同步释放。 一般让复位信号低电平有效 异步复位:复位信号不受时钟的控制,只要复位信号有效,那么电路就会复位。对应的写法为: always @ ...

    今天好好理一理异步复位,同步复位,以及亚稳态中的异步复位同步释放。

    1. 异步复位

    一般让复位信号低电平有效

    复位信号不受时钟的控制,只要复位信号有效,那么电路就会复位。对应的写法为:

    always @ (posedge clk or negedge rst_n) begin
        if (!rst_n)
            xxxx;
        else if (xx) begin
                xxxx;
                xxxx;
             end
        end
    

    注意,在此always块中,敏感量为两个,一个是clk的上升沿(posedge clk),一个是复位信号rst_n的下降沿(negedge rst_n),当复位信号下降沿出现时,不论clk在什么状态,都执行always块,即复位!

    2. 同步复位

    同步复位,即如果复位信号有效,则只能在时钟上升沿让电路复位。对应写法为:

        always @ (posedge clk) begin
            if (!rst_n)
                xxxx;
        end
    

    注意,在此always块中,敏感量只有一个,即clk的上升沿,此含义是,只有在clk的上升沿才能执行always块,否则不执行。于是如果复位信号有效,也只能等到clk上升沿才能执行always块,才能使电路复位!

    3. 异步复位同步释放

    什么同步释放不同步释放之类的,说得那么高大上的,搞得云里雾里的,其实也下面一行字就能解释清楚:

    为了避免亚稳态,让拉高的复位信号打两拍,达到与时钟clk边沿同步的目的

    注意,是时钟边沿!!!边沿,边沿,边沿

    以上就是同步释放,可见只是拉高的信号打两拍,拉低的信号,也就是复位信号有效的时候,该复位就复位,该干嘛干嘛,我们不用去管它。

    以下是解释:

    假设复位信号低电平有效rst_n,当复位信号无效时,也就是复位信号拉高时,即为复位信号的释放。

    由于异步复位信号与时钟无必然联系,两者都是独立的,所以复位信号的拉高将有一定的概率导致电路出现亚稳态。

    对于亚稳态的处理,通常是利用同步器进行同步,使其输出能够受到时钟clk的控制。也就是说,同步器的输出最终与时钟clk同步。另外,同步器的另一个口语化表达为:“打两拍”,通过两个D触发器,最终得到与时钟同步的信号。

    至于为什么需要两个D触发器而不是一个,请移步论文《异步复位设计中的亚稳态问题及其解决方案》,提取码ejjr
    至于为什么需要两个D触发器而不是更多,是因为通过一系列的数学计算,发现如果有亚稳态的发生,且两个D触发器将此亚稳态传递到了主电路,大约需要100年的时间(具体时间我忘记了),在这么长时间内,使用者就真的不来一下复位操作吗?真就让程序一直跑下去吗?不可能吧,一个小游戏都需要停机维护,何况更加高大上的物件。所以说,两个已经够用了。

    那么将异步的复位信号打两拍,不就能够解决亚稳态的问题了吗?换句话说,复位信号有效的时候,我们不去管任何东西,系统复位让它复位就好了;之后在复位信号拉高的时候可能导致亚稳态的出现,那直接将拉高的信号打两拍,不就完事了吗?就是这么简单。

    经典的异步复位同步释放代码如下

    module asyn_reset(
    	clk	    ,
    	rst_n	,
    	
    	rst_s2
    );
    
    input clk	;
    input rst_n	;
    
    output reg rst_s2;
    
    reg rst_s1;
    
    always @ (posedge clk or negedge rst_n) begin
    	if (!rst_n) begin
    		rst_s1 <= 1'b0;
    		rst_s2 <= 1'b0;
    	end
    	else begin
    	   rst_s1 <= 1'b1	;
    	   rst_s2 <= rst_s1	;
    	end
    end
    
    endmodule
    

    综合出的电路如下:

    在这里插入图片描述

    复位信号拉高,相当于rst_n对高电平进行采样;

    由于异步复位需要在时钟上升沿进行释放,故在rst_n=1后,让信号rst_s1对电平1进行采样,之后再打一拍到寄存器rst_s2。相当于高电平被打了两拍才输出到rst_s2,达到了复位信号的释放与时钟clk同步的目的。

    展开全文
  • Verilog实现的异步复位同步释放模块, 复位信号高电平有效。 异步复位同步释放模块
  • 同步复位,异步复位,异步复位同步释放, 同步复位同步释放, 的各自含义,这样理解更容易 复位形式说白了就四种方式,刚开始学习的时候一直听别人说同步复位同步释放,异步复位同步释放,同步复位,异步复位,各自...
  • 一、同步复位与异步复位特点: 同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。  异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。 二、异步...
  • 同步复位、异步复位、异步复位同步释放笔记 一般来说,竞争-冒险是由于组合电路竞争冒险产生毛刺,从而影响整个逻辑电路。其实时序电路中也是存在竞争-冒险的,而这一特性主要是由D触发器输入端信号之间的竟争产生的...
  • 同步复位与异步复位——异步复位同步释放 [转自]anghtctc的博客——天蓝色的彼岸 一、同步复位与异步复位特点:  同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作...
  • 三、异步复位同步释放 异步复位:复位信号不受时钟信号影响——只要是复位有效就能复位(假如约定低电平复位)。也就是说,复位信号不需要和时钟同步。 同步释放:复位信号撤销(释放)的时候,必须跟时钟信号同步,...
  • 对常见三种复位方式(同步复位、异步复位、异步复位同步释放)进行介绍与分析,详细介绍了各种复位方式的优缺点,并进一步分析了异步复位同步释放的工作机理与优势所在。

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 289
精华内容 115
关键字:

异步复位同步释放