HDLbits笔记-Lathes and Flip-flops

Lathes and Flip-flops

DFF with reset

题目:
生成一个8-bit的具有同步复位功能的D触发器。要求所有的DFFs应该在时钟的上升沿触发。

module top_module (
    input clk,
    input reset,            // Synchronous reset
    input [7:0] d,
    output [7:0] q
);
    always@(posedge clk )begin
        if(reset)
            q <= 8'd0;
        else
            q <= d;
    end
endmodule

同步复位的rtl图:
在这里插入图片描述

这里出现一个词叫同步复位。当然好后面我们还会用到异步复位,那么这里就介绍一下两者的优缺点:
同步复位
复位信号只有在时钟上升沿到来时才能有效。一般使用always@(posedge clk)语句。
优点:
(1)有利于我们的仿真器的仿真;
(2)因为只有在时钟有效电平到来时才有效,多以可以滤除高于时钟频率的毛刺;
(3)可以使设计的系统成为100%的同步时序电路,有利于时序分析,而且综合出来的fmax一般较高。
缺点
(1)复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。还要考虑clk skew,组合逻辑路径延时,复位延时等因素。
(2)由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以如果采用同步复位,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费很多的硬件资源。
异步复位
无论时钟沿是否到来,只要复位信号有效就进行复位。一般使用always@(posedge clk or negedge rst_n)语句。
优点是:
(1)设计相对简单;(2)因为多数目标器件库的DFF都有异步复位端口,因此采用异步复位可以节省资源;(3)异步复位信号识别方便,而且可以采用FPGA的全局复位端口GSR。
缺点
(1)复位信号容易受到毛刺的影响,这是由于时钟抖动或按键触发时的硬件原因造成的。
(2)在复位信号释放的时候容易出现问题。具体来说,若复位释放刚好在时钟沿有效附近时,很容易使寄存器输出出现亚稳态,从而产生亚稳态现象。因为时钟沿变化和异步复位都可以引起Q端的数据变化。如果异步复位信号跟时钟在一定时间间隔内发生变化,Q值将无法确定,即亚稳态现象。这时候即使异步复位信号持续时间再长都没有办法,因为不定态已经传递下去了。
总结:推荐使用异步复位,同步释放的方式,而且复位信号低电平有效

DFF with asynchronous reset

module top_module (
    input clk,
    input areset,   // active high asynchronous reset
    input [7:0] d,
    output [7:0] q
);
    always@(posedge clk or posedge areset)begin
        if(areset)
            q <= 8'd0;
        else
            q <= d;
    end
endmodule

异步复位的rtl图:
在这里插入图片描述

不过该题目复位信号是高电平有效,可能作者只是为了让读者练习语法,没有考虑怎么样设计更好。
异步复位,同步释放
指在复位信号到来时不受时钟信号的同步,而是在复位信号释放的时候受到时钟信号的同步。

(a)、以下是来自Crazybingo的代码,异步复位,同步释放:

`timescale 1ns / 1ps
module system_ctrl(
    input                   clk,
    input                   rst_n,
    input                   a,
    output reg              b
  
);
//=====================================================&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值