当前位置:   article > 正文

Verilog学习第二章——组合时序逻辑、异步同步电路、避免产生Latch_组合逻辑default latch

组合逻辑default latch

Verilog中组合时序逻辑、同步异步电路、Latch的概念及避免

1.组合、时序逻辑

1.1 组合逻辑概念:

  1. 组合逻辑电路是指由逻辑门组成的电路,其输出只依赖于当前时刻的输入
 组合逻辑电路只考虑当前输入信号对输出信号的影响,不考虑过去或未来的状态`。
  • 1
  1. 常见的组合逻辑电路有逻辑门、多路选择器、解码器等

1.2 组合逻辑特点:

  1. 输入数据和输出数据同一时刻变化。

1.3 时序逻辑概念:

  1. 时序逻辑电路是指由触发器、计数器时序元件组成的电路,其输出不仅依赖于当前时刻的输入,还依赖于过去时刻和未来时刻的状态
时序逻辑电路考虑的是电路的状态随时间变化的情况,具有记忆性和状态控制的功能。
  • 1
  1. 常见的时序逻辑电路有触发器、计数器、时序多路选择器等。

1.4 时序逻辑特点:

  1. 时序逻辑的特点:由于一般是在时钟上升沿采样,所以在一个时钟周期内,两个上升沿之间的毛刺会被过滤掉,时序逻辑对毛刺有极好的屏蔽作用。
  2. 时序逻辑的输出数据会延迟输入数据一拍:(D触发器为例)假设输入信号和时钟上升沿在同一时刻拉高,因为默认采集到的数据是前一拍的数据,此时采集到的输入信号还是低电平。在下一个时钟上升沿,采集到输入信号为高电平,所以输出信号会在下一个时钟信号上升沿拉高。
  3. 时序逻辑使用非阻塞赋值。

1.5 时序逻辑D触发器:

  1. D触发器:寄存器具有存储功能,一般是由D触发器构成,由时钟脉冲控制,每个D触发器能够存储一位二进制码。
  2. 相关的Verilog代码:
module dff(input clk, input d, output reg q);
always @(posedge clk)
   q <= d;
endmodule
上述代码中,输入端口包括时钟信号clk和数据输入信号d,输出端口为输出状态信号q。
通过always关键词声明时钟上升沿触发的行为,即在时钟信号上升沿时,
将输入数据d存储到输出状态信号q中
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  1. 当时钟信号为高电平时,将数据输入信号存储到触发器中;当时钟信号为低电平时,触发器维持上一次存储的状态不变。时钟信号边沿未出现,即使输入信号改变,输出信号仍旧保持原值。
  2. 寄存器具有复位清零功能:同步复位和异步复位。

2. 同步电路:

2.1 同步电路基本概念:

  1. 同步电路:由时序电路(寄存器和各种出发器)组合逻辑构成的电路,是指电路中各个部件的操作都在同一个时钟信号的控制下完成的。
  2. 同步电路中的各个部件的操作都是同步的,它们在时钟信号的控制下,在同一时刻开始操作,同一时刻结束操作,一般在上升沿或者下降沿完成。

2.2 典型的同步电路:

  1. 典型的同步电路包括计数器移位寄存器时序控制电路等。

2.3 同步复位:复位信号有变化需等待时钟上升沿

  1. 同步复位:同步复位是指在多个模块或设备之间执行复位操作时,这些模块或设备需要在一个确定的时刻进行复位,以保证它们都处于相同的初始状态。
  2. 同步复位的重点:(复位低有效时)同步复位发生于复位信号拉低在时钟的上升沿生效。当复位信号拉高,不会马上生效,需要等到时钟的上升沿检测到复位信号拉高才生效。
  3. RTL代码:
module sync_reset_module (
    input clk,   // 时钟信号
    input rst,   // 复位信号
    // 其他模块输入输出端口
);
    // 定义一个寄存器用于存储复位状态
    reg rst_state;
    // 复位状态的同步器
    always @(posedge clk) begin
        if (rst) begin
            rst_state <= 1;
        end else begin
            rst_state <= 0;
        end
    end
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

3. 异步电路:

3.1 异步电路基本概念:

  1. 异步电路:是指电路中各个部件的操作不受时钟信号的控制,它们的操作时间可以随机变化的电路。
  2. 异步电路的操作是不同步的,没有统一的时钟,它们不会在同一时刻开始或结束操作,通常输入信号在电路处于稳定状态时才发生变化。
  3. 异步电路主要是组合逻辑电路,用于产生FIFO和RAM,也用于时序逻辑

3.2 典型的异步电路:

  1. 典型的异步电路包括传感器、触发器、比较器等。
  2. 异步电路中,Latch可代替寄存器的角色

3.3 异步复位:复位信号有变化则立即变化

  1. 异步复位:异步复位是一种在数字电路设计中使用的技术,它允许用户通过外部信号来强制电路进入一种特殊的状态,从而重新开始电路功能。在异步复位的情况下,复位信号不需要与其他输入信号进行同步,因此即使在高速系统中也可以保证可靠性和稳定性。
  2. RTL代码:
module async_reset(input clk,input async_reset_n, // 异步复位信号
                    input [7:0] data_in,
                    output reg [7:0] data_out);
                               
    always@(posedge clk or negedge async_reset_n) begin 
        if(!async_reset_n) begin // 当异步复位信号为0时,复位状态被激活
            data_out <= 8'h00; // 在复位状态下,数据输出为0
        end 
        else begin 
            data_out <= data_in; // 否则,数据输出等于数据输入
        end 
    end 
endmodule
async_reset_n是一个异步复位信号,当它被拉至低电平时,电路会进入复位状态,数据输出为0。
当该信号恢复到高电平时,电路将恢复正常工作状态,数据输出等于输入数据 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  1. 异步复位的重点:(复位信号低有效) 复位信号拉低,则马上生效,不考虑时钟沿。当复位信号拉高,不会马上生效,需要等到时钟的上升沿检测到复位信号拉高才生效。

4. Latch的概念及避免:

4.1 Latch的概念:

Latch:一种存储元件,用于存储一个电子信号的状态,具有一个或多个输入和一个输出。

  1. 异步电路Latch是一种非理想的状态,导致未定义的情况发生。
  2. Latch只在组合逻辑才会产生,异步电路中,Latch可代替寄存器的角色
  3. 当输入变化时,Latch会保持输入的状态,并将其存储在输出端口上,直到输入发生改变
  4. Latch类似于Flip-flop,但是它没有时钟输入,因此它的输出取决于输入变化的时间。

4.2 Latch的示例:

reg latch_out;
always @(latch_in)
begin
  if(latch_en)
    latch_out <= latch_in;
end
a.输入信号latch_in被存储于状态变量latch_out中,当latch_en为真时,
b.这个状态变量latch_out在输入信号latch_in发生变化时被更新,并且保持在输出端口上。 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

4.3 Latch的危害:

对毛刺敏感占用更多逻辑资源
不能异步复位额外的延时
复杂的静态时序分析功耗过高
时序问题设计不确定性
  1. Latch会一直保持存储的状态,需要占用更多的电力和空间,从而导致功耗过高;
  2. Latch不像触发器一样具有时钟,它们的输出状态可以在任何时间被改变,这可能导致时序问题。
  3. Latch是异步元件,它们可能会导致电路输出的值与输入值之间存在不一致的情况,从而导致电路输出的结果不可预测。
  4. 在设计中应尽量避免使用Latch,特别是在高速电路和复杂设计中。
  5. 用更加可控的触发器替代Latch,以确保电路的可靠性和正确性。

4.4 Latch的避免(同步电路):

避免以下情况

  1. 组合逻辑if-else条件分支语句缺少else。
  2. 组合逻辑中case语句未完全列举,缺少default语句。
  3. 组合逻辑中输出变量赋值给自己。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/441009
推荐阅读
相关标签
  

闽ICP备14008679号