时钟和复位

一、同步复位

  1. 代码
load_syn_ff (
input clk ,
input rst_n ,
input in,
input out ,
input load,
output out 
);always @(posedge clk) beginif(!rst_n)out <= 1'd0 ;else if (load)out <= in ;
end
  1. 硬件实现
    在这里插入图片描述
  2. 优缺点
    优点
    1.一般能确保电路是同步的;
    2.同步复位只发生在有效时钟沿,可以过滤到复位产生的毛刺。
    缺点
    1.复位的信号有效时长必须大于时钟周期,才能被时钟采集到
    2.大多数逻辑器件的目标库内的DFF只有异步复位端口,所以如果采用同步复位,那么就要在输入端插入组合逻辑,这样做消耗资源。

二、同步复位

  1. 代码
load_asyn_ff (
input clk ,
input rst_n ,
input in,
input out ,
input load,
output out 
);always @(posedge clk or negedge rst_n) beginif(!rst_n)out <= 1'd0 ;else if (load)out <= in ;
end
  1. 硬件实现
    在这里插入图片描述
  2. 优缺点
    优点
    1.大多数目标器件库的dff都有异步复位端口,因此采用异步复位 可以节省资源。
    缺点
    1.复位信号释放的时候,容易产生毛刺,导致不满足建立时间或保持时间,出现亚稳态
    2.易出现毛刺。

三、 异步复位同步释放

  1. 代码
always @(posedge clk or negedge rst_async_n)  beginif(!rst_async_n)   beginrst_n0 <= 1'b0;rst_n1 <= 1'b0;endelse   begin                      //同步釋放rst_n0 <= rst_n    ;rst_n1 <= rst_n0 ;end
end
assign rst_sync_n = rst_n1;
  1. 波形
    在这里插入图片描述
  2. 优点
    降低了异步复位信号释放导致的亚稳态的可能性;对比同步信号上,也能够识别到同步复位检测不到的复位信号。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部