Concurrent assertions describe behavior that spans over time. Unlike immediate assertions, the evaluation model is based on a clock so that a concurrent assertion is evaluated only at the occurrence of a clock tick.
There are 4 layers in concurrent assertions. They are
These layering concept allows to build hierarchical constructs so its easy to maintain them.
Boolean Expressions:
Boolean expression doesn't consume time. The result of the expression is 1,0,x & z. If the result is 1, then the expression is true , else if the expression is 0,x or z , it is false. Concurrent assertions use boolean expressions along with temporal expressions. Immediate assertions use only boolean expressions.
Integral data types such as int,integer,reg,bit,byte,logic,array( elements only),structs,function return values are allowed in boolean expressions. Complex data types like classes,smart quesus, dynamic arrays, associative arrays are not allowed.