Assert() vs assert property() -> what's the difference

Hi All,

What’s the difference between the assert() vs assert property() statements?

What’s the difference between writing
assert (@(posedge clk) (signal==1));

and writing
assert property (@(posedge clk) (signal==1));

Thank you!

In reply to ldm_as:
I strongly suggest that you study the types of assertions, specifically immediate assertions and concurrent assertions.
BTW, the following is incorrect assert (@(posedge clk) (signal==1));
Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact Home - My cvcblr


  1. SVA Alternative for Complex Assertions
    Verification Horizons - March 2018 Issue | Verification Academy
  2. SVA: Package for dynamic and range delays and repeats | Verification Academy
  3. SVA in a UVM Class-based Environment
    SVA in a UVM Class-based Environment | Verification Horizons | Verification Academy

OK, the assert (signal==1) is the correct assertion…

Should I use the assert property (…) each time I want to refer to an edge of the signal (posedge/negedge)?

In reply to ldm_as:
yes; concurrent assertions need a clocking event to do the sampling.
Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact Home - My cvcblr


  1. SVA Alternative for Complex Assertions
    Verification Horizons - March 2018 Issue | Verification Academy
  2. SVA: Package for dynamic and range delays and repeats | Verification Academy
  3. SVA in a UVM Class-based Environment
    SVA in a UVM Class-based Environment | Verification Horizons | Verification Academy