异步复位同步释放

简介

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

同步复位

同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。同步复位RTL代码:
sync
综合后的RTL图以下:
rtl异步

异步复位

异步复位是指不管时钟沿是否到来,只要复位信号有效,就对系统进行复位。异步复位RTL代码:
async
综合后的RTL图以下:
rttasync

对比二者综合后的RTL视图,发现同步复位会多使用一些逻辑单元,这是由于Altera的元件库中的触发器带有异步复位端。spa

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

同步复位的优势:设计

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

同步复位的缺点:code

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

异步复位优势:blog

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

异步复位缺点:资源

  • 复位信号容易受到毛刺的影响。
  • 复位结束时刻恰在亚稳态窗口内时,没法决定如今的复位状态是1仍是0,会致使亚稳态。
异步复位同步释放

使用异步复位同步释放就能够消除上述缺点。所谓异步复位,同步释放就是在复位信号到来的时候不受时钟信号的同步,而是在复位信号释放的时候受到时钟信号的同步。异步复位同步释放的原理图和代码以下:
ssget

 1 //Synchronized Asynchronous Reset
 2 module sync_async_reset (
 3         input    clock,
 4         input    reset_n,
 5         input    data_a,
 6         input    data_b,
 7         output   out_a,
 8         output   out_b);
 9         
10         reg     reg1, reg2;
11         reg     reg3, reg4;
12         assign  out_a = reg1;
13         assign  out_b = reg2;
14         assign  rst_n = reg4;
15         always @ (posedge clock, negedge reset_n) begin
16             if (!reset_n) begin
17                 reg3 <= 1'b0;
18                 reg4 <= 1'b0;
19             end
20             else begin
21                 reg3 <= 1'b1;
22                 reg4 <= reg3;
23             end
24         end
25         
26         always @ (posedge clock, negedge rst_n) begin
27             if (!rst_n) begin
28                 reg1 <= 1'b0;
29                 reg2 <= 1'b0;
30             end
31             else begin
32                 reg1 <= data_a;
33                 reg2 <= data_b;
34             end
35         end
36 endmodule  // sync_async_reset

 

 

参考资料:Quartus II Handbook Volume 1: Design and Synthesisinput

相关文章
相关标签/搜索