System Verilog Basic Introduction && Assertions: Presenter - Suman Halder
System Verilog Basic Introduction && Assertions: Presenter - Suman Halder
System Verilog
Assertions Coverage support
• Chk_false_negetive : assert property( @(posedge clk) req ##1 !ack ##1 !ack ##1 !ack );
• Chk_right : assert property( @(posedge clk) !req ##1 req ##1 !ack ##1 !ack ##1 !ack );
SVA – Implication operator & Vacuous
Success
• Chk_right : assert property( @(posedge clk) !req
##1 req |-> ##1 !ack ##1 !ack ##1 !ack );
• 1) out1[*2:4] : *2,*3,*4
• 2) out1[*2:$] from 2 to any Number
• Chk1 : assert property ( @(posedge clk) $rose(in1) ##1 $fell(in1) |-> ##1
$rose(out1) ##1 out1[*2:4] ##1 $fell(out1);
•
sequences
• * we can use sequence block instead of writing the whole
things.
• sequence s1;
$rose(in1)##1$fell(in1)
endsequence
• sequence s2;
$rose(in2)
endsequence
property p1;
@(posedge clk)
s1 | s2
endproperty
Sequence operator and ,or ,
throughout, within
• 1) and
Property p1
@(posedge clk)
$rose(in1) ##1 $fell(in1) | s1 and s2
2 ) or
Property p1
@(posedge clk)
$rose(in1) ##1 $fell(in1) | s1 or s2
Sequence operator and ,or ,
throughout, within
2 ) throughout
Property p1
@(posedge clk)
$rose(in1) ##1 $fell(in1) | en throughout s1
Sequence operator and ,or ,
throughout, within
• property p1;
@( posedge clk)
$rose(in1) ##1 $fell(in1) ##2 ( ( $rose(out2) ##1 $fell(out2) within
$rose(out1) ##1 out1[*3] ##1 $fell(out1) );
endproperty
In Built function $past
• property p1;
@(posedge clk)
$fell(in1) && $past(in1) && $past($rose(in1),2) |
##1 $rose(out1) ##1 out1 ##1 fell(out1);
endproperty