Verilog中的Latch

Latch介绍

Verilog中的Latch_第1张图片

功能描述

  • Latches are level-sensitive (not edge-sensitive) circuits, so in an always block, they use level-sensitive sensitivity lists.
  • However, they are still sequential elements, so should use non-blocking assignments.
  • A D-latch acts like a wire (or non-inverting buffer) when enabled, and preserves the current value when disabled.

代码实现

module top_module (
    input d, 
    input ena,
    output q);
    assign q=(ena)?d:q;
endmodule

生成电路
Verilog中的Latch_第2张图片


module top_module (
    input d, 
    input ena,
    output reg q);
    
    always @(*)begin
        q <= (ena) ? d : q;
    end  
endmodule

生成电路
Verilog中的Latch_第3张图片


module top_module (
    input d, 
    input ena,
    output reg q);
    
    always @(*)begin
        q = (ena) ? d : q;
    end  
endmodule

生成电路
Verilog中的Latch_第4张图片


总结

可以看出上述3种描述方式生成最终电路是相同的。

你可能感兴趣的:(Verilog刷题,Verilog,Latch)