|
@ -8,6 +8,13 @@ Example to use OSVVMs CoveragePkg package to do FSM state coverage. State change |
|
|
in an object of type CovPType. The testbench accesses these state coverage data CoveragePkg procedures. So, the testbench |
|
|
in an object of type CovPType. The testbench accesses these state coverage data CoveragePkg procedures. So, the testbench |
|
|
can react to the FSM coverage if necessary. Furthermore the state changes are checked by some PSL assertions. |
|
|
can react to the FSM coverage if necessary. Furthermore the state changes are checked by some PSL assertions. |
|
|
|
|
|
|
|
|
|
|
|
### osvvm_fsm_psl_coverage |
|
|
|
|
|
This is the same as the osvvm_fsm_coverage but instead of using cross coverage of previous and current FSM state it's using |
|
|
|
|
|
PSL endpoints to cover FSM state changes. There is a PSL endpoint for each state change we want to cover. The endpoints |
|
|
|
|
|
are synched in clock domain and used as simple BINs to do FSM state coverage as in the osvvm_fsm_coverage example. |
|
|
|
|
|
This example shows the power of evaluating PSL endpoints in VHDL, as you can describe complex behaviour over time a lot |
|
|
|
|
|
simpler in PSL than in VHDL. |
|
|
|
|
|
|
|
|
### psl_endpoint_eval_in_vhdl |
|
|
### psl_endpoint_eval_in_vhdl |
|
|
Example to show a recently feature added to GHDL which allows to evaluate PSL endpoints in VHDL code. It simply defines |
|
|
Example to show a recently feature added to GHDL which allows to evaluate PSL endpoints in VHDL code. It simply defines |
|
|
an PSL endpoint and sets a boolean value dependent on the value of the PSL endpoint. |
|
|
an PSL endpoint and sets a boolean value dependent on the value of the PSL endpoint. |
|
|