同步复位与异步复位_第1页
同步复位与异步复位_第2页
同步复位与异步复位_第3页
同步复位与异步复位_第4页
同步复位与异步复位_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、同步复位与异步复位一、概念:同步复位:就是指复位信号只有在时钟上升沿到来时,才能有效,否则无法完成对系统的复位工作。用verilog描述如下:always (posedge clkbeginif (!Rst_n.end异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。用Verilog描述如下:always (posedge clk or negedge Rst_nbeginif (!Rst_n.end二、各自的优缺点:1. 同步复位的优点大概有3条:a. 有利于仿真器的仿真。b. 可以使所设计的系统成为的同步时序电路,这便大大有利于时序分析,而且综合出来的一般较高。c.

2、因为他只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的毛刺。缺点:a. 复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑,诸如:clk skew组合逻辑路径延时,复位延时等因素。b. 由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费较多的逻辑资源。2. 异步复位优点也有三条,都是相对应的a. 大多数目标器件库的都有异步复位端口,因此采用异步复位可以节省资源。b. 设计相对简单。c. 异步复位信号识别方便,而且可以很方便的使用FPGA的全局复位端口GSR。缺

3、点:a. 在复位信号释放(release的时候容易出现问题。具体就是说:倘若复位释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现亚稳态,从而导致亚稳态。b. 复位信号容易受到毛刺的影响。 三、总结及推荐复位方式:也就是上文中所说的:“异步复位,同步释放”。这就结合了双方面的优点,很好的克服了异步复位的缺点(因为异步复位的问题主要出现在复位信号释放的时候,具体原因可见上文。具体实现并不难,这里列出一种方式:那就是在异步复位键后加上一个所谓的“reset synchronizer”,这样就可以使异步复位信号同步化,然后,再用经过处理的复位信号去作用系统,就可以保证比较稳定了。reset syc

4、hronizer的代码如下:module Reset_Synchronizer(output reg rst_n,input clk, asyncrst_n;reg rff1;always (posedge clk , negedge asyncrst_nbeginif (!asyncrst_nrst_n,rff1 <= 2'b0;elserst_n,rff1 <= rff1,1'b1;endendmodule大家可以看到,这就是一个dff,异步复位信号直接接在它的异步复位端口上(低电平有效,然后数据输入端rff1一直为高电平'1'。倘若异步复位信号

5、有效的话,触发器就会复位,输出为低,从而复位后继系统。但是,又由于这属于时钟沿触发,当复位信号释放时,触发器的输出要延迟一个时钟周期才能恢复成'1,因此使得复位信号的释放与时钟沿同步化。此外,还有一种方法更为直接,就是直接在异步复位信号后加一个触发器,然后用D触发器的输出作为后级系统的复位信号,也能达到相同的效果。1.同步复位(Synchronous Reset来看一个简单的同步复位的D触发器,Verilog代码如下:module d_ff(clk,rst_n,datain,dataout;input clk;input rst_n;input datain;ouput dataout

6、;reg dataout;always (posedge clkbeginif (!rst_ndataout <= 1'b0;elsedataout <= datain;endendmodule综合后的RTL图表如下: Altera的MAXII系列的CPLD中,register没有同步复位资源,所以同步复位信号需要通过额外的逻辑电路实现,上面的例子,QuartusII软件自带的综合工具使用选择器实现了同步功能,但是这不是确定的,有的综合工具综合成与门,如下图: 同步复位的优点:1. 抗干扰性高,可以剔除复位信号中周期短于时钟周期的毛刺;2. 有利于静态时序分析工具的分析;3

7、. 有利于基于周期的仿真工具的仿真。同步复位缺点:1. 占用更多的逻辑资源;2. 对复位信号的脉冲宽度有要求,必须大于指定的时钟周期,由于线路上的延迟,可能需要多个时钟周期的复位脉冲宽度,且很难保证复位信号到达各个寄存器的时序;3. 同步复位依赖于时钟,如果电路中的时钟信号出现问题,无法完成复位。2. 异步复位(Asynchronous Reset来看一个简单的异步复位的D触发器,Verilog代码如下:module prac (clk,rst_n,datain,dataout;input clk;input rst_n;input datain;output dataout;reg data

8、out;always (posedge clk or negedge rst_nbeginif (!rst_ndataout <= 1'b0;elsedataout <= datain;endendmodule综合后的RTL图表如下: 异步复位的优点:1. 无需额外的逻辑资源,实现简单,而且CPLD有针对复位信号的全局不限资源,可以保证复位管脚到各个寄存器的clock skew最小(注意不是到各个寄存器的延迟最小;2. 复位信号不依赖于时钟。同步复位缺点:1. 复位信号容易受到外界的干扰;2. 复位信号释放的随机性,可能导致时序违规,使电路处于亚稳态,如下图。3. 异步复位

9、同步释放(Asynchronous Reset Synchronous Release 这种复位方式在文献中还有一种称谓:Synchronized Asynchronous Reset,这 种称谓应该在国外的技术人员中比较流行,与 Altera 的工程师交流过程中,他 们一直使用 Synchronized Asynchronous Reset 这种称谓(当然也可能是个人的 习惯。 来看一个 Synchronized Asynchronous Reset 例子,Verilog 代码如下: module prac (clk,reset_n,dataa,datab,outa,outb; input

10、clk; input reset_n; input dataa; input datab; output outa; output outb; reg reg1; reg reg2; reg reg3; reg reg4; assign outa = reg1; assign outb = reg2; assign rst_n = reg4; always (posedge clk or negedge reset_n begin if (!reset_n begin reg3 <= 1'b0; reg4 <= 1'b0; end else begin reg3 <= 1'b1; reg4 <= reg3; end end always (posedge clk or ne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论