除了为零延迟/宽度故障进行Verilog建模外,是否有其他方法编写断言或检查程序?

除了为零延迟/宽度故障进行Verilog建模外,是否有其他方法编写断言或检查程序?,verilog,system-verilog,uvm,system-verilog-assertions,Verilog,System Verilog,Uvm,System Verilog Assertions,我正在验证时钟本身,想知道是否有办法标记零宽度故障?这应该可以 property check_for_glitch_fall(clk, bit disable_chk); realtime fall_time; disable iff(disable_chk) @(posedge clk) (1, fall_time = $realtime) |=> @(negedge clk) (($realtime - fall_time) != 0); e

我正在验证时钟本身,想知道是否有办法标记零宽度故障?

这应该可以

property check_for_glitch_fall(clk, bit disable_chk);
  realtime fall_time;
  disable iff(disable_chk)
   @(posedge clk)
     (1, fall_time = $realtime) |=>
   @(negedge clk)
     (($realtime - fall_time) != 0);  
endproperty : check_for_glitch_fall

这不适用于以下verilog代码。我的verilog检查程序是working@VishwasuDeshpande请具体说明。@dave_59您能在这方面提供帮助吗?它没有故障,但可能有一个零延迟循环。这与问题无关。verilog module base checker在一个时间戳内检测到更改。断言并不正确。
initial begin 
    #100 
    a=0; 
    b=0; 
    #10 
    a=1;
    b=1;
    #100
    forever 
        #10 a = ~a; 
end
initial begin
    #500
    $finish;
end

always @(a) begin 
    $display("%f edge on a %d", $realtime, a); 
    b=1; 
    b=0; 
end

always @(b) begin 
    $display("%f edge on b %d", $realtime, b); 
    a=0; 
    a=1; 
end