|  | 
|  |  | 
 |  
|  |  |  |  
|  |  | 
 |  
|  |  | expect |  
|  |  | expect is same as assert in syntax, but expect is used inside a procedural block, and it waits till a property evalutes to true or false. |  
|  |  | 
 |  
|  |  | Below example shows how a expect is used and its possible syntax.  |  
|  |  | 
 |  
|  |  |  |  
|  |  | 
 |  
|  |  | Example : expect |  
|  |  | 
 |  
|  |  | 
  1 module expect_assertion;
  2 
  3 logic clk = 0;
  4 always  #1  clk ++;
  5 
  6 logic a, b,c;
  7 
  8 default clocking myclk @ (posedge clk);
  9 
 10 endclocking
 11 
 12 initial begin 
 13   a <= 0;
 14   b <= 0;
 15   c <= 0;
 16    ##1 ;
 17   a <= 1;
 18    ##1 ;
 19   a <= 0;
 20   b <= 1;
 21    ##1 ;
 22   b <= 0;
 23   c <= 0;
 24    ##1 ;
 25   c <= 0;
 26    ##20000  $finish;
 27 end
 28 
 29 initial begin
 30    ##1 ;
 31   // Wait for the sequence if pass, terminate sim
 32   expect ( @ (posedge clk) a  ##1  b  ##1  c  ##1   ! c)
 33      $finish;
 34    else
 35      $error ("Something is wrong");
 36 end
 37   
 38 endmodule
You could download file expect_assertion.sv here |  
|  |  | 
 |  
|  |  | Simulation : expect |  
|  |  | 
 |  
|  |  |  Something is wrong
 Simulation complete via $finish(1) at time 40007 NS + 0
 |  
|  |  | 
 |  
|  |  | 
 |  
|  |  | 
 |  
|  |  |  |  
|  |  | 
 |  |  | 
|  
 |  
 |  
 | 
| 
 | 
|    |  
| Copyright © 1998-2025 |  
| Deepak Kumar Tala - All rights reserved |  
| Do you have any Comment? mail me at:deepak@asic-world.com
 |  |