Re: what is assertion??
As I know, the assertion exits in C for long time.
In debuging software, you see the output of function that is wrong.
This cause may be the bug in implementation of this function.
But sometime, it is already wrong in the input.
The garbag in, the garbag out.
You spent a lot of time to debug your function but it is right.
Finally, you find the bug is not in this function. What you think?
In C(as I know), you can use assert function to check input of function is valid.
If it is not valid, display some message!
In this way, you almost locate which function has bug.
Recently, this idea is used in hdl.
Since the hw is parallel working, the thing to check is not only valid of data range but also the sequence of signals.
It is suit to check the protocol of bus.
In the past days, you must write a monitor to monite the validation of bus protocol.
It may be write in hdl or other language, the effort to write this monitor is most equal to design a module.
Using PSL(assertion language), the bus protocol can be desribed in few lines.
It is just like to describe the timing diagram.
This is a kind of usage of assertion.
It is more powrful with formal to do static verification.(no test pattern required)
Regards,
Jarod