always_latch复位信号的复位类型是什么?

What is the reset type of the reset signal of an always_latch .?

提问人:yasara malshan 提问时间:6/15/2021 更新时间:6/15/2021 访问量:578

问:

我对系统验证没有太多了解,我有以下问题。

据我所知,如果在始终模块的灵敏度列表中触发了复位信号的边沿,则该复位信号的复位类型为“异步” 我需要知道,always_latch复位信号的复位类型是什么?

module test (input in_1,in_2,rst,clk,sig, output reg out_1,out_2,out_3);
  always_latch
  begin
    if(~rst) // what is the reset type of this reset signal.?
      out_3 <= 0;
    else if(~sig)
      out_3 <= in_1;
  end
  wire x,x2;
  second uu(x, x2, rst, clk, sig, out_1);
endmodule

module second(input i_1,i_2,r,c,sig, output reg o_1);
  reg z,zz;
  always@(negedge c or negedge r)
  begin
    if(~r) // asynchronous reset type
      z <= 0;
    else
      z <= i_1;
  end
  always@(posedge c or negedge r)
  begin
    if(~r)  // asynchronous reset type
       zz <= 0;
    else
      zz <= i_1;
  end
endmodule
系统-verilog

评论


答:

3赞 dave_59 6/15/2021 #1

两个重置都是异步的。不能在锁存器中进行同步复位,因为没有时钟。示例中的构造创建一个隐式敏感度列表always_latch

always @(rst or sig or in_1)

敏感度列表具有 的原因是过滤掉 的上升沿的变化。如果没有该滤波器,则 的上升沿将触发模块,并被视为与时钟边沿相同。alwaysnegedge rrr