Professional Documents
Culture Documents
04 - PSLanguage
04 - PSLanguage
Contents
Properties
1
Definition
Usage
– Specification
2
Types of Properties
3
Why to use assertion in the simulation?
– Testbenches
Specifying in PSL
Logic
4
Tautology
always (p)
Asserts that p (a boolean expression made
from signal names, constants and operators)
João Leonardo Fragoso
Tautology
always (a -> b)
If a is true, then b is true
João Leonardo Fragoso
a implies b a -> b !a | b
always (a -> prev(b))
If a is true, then b was true at the previous
cycle
10
5
Safety
always (p)
”Nothing bad will ever happen”
João Leonardo Fragoso
11
Instance PSL
always (p)
Talks about one cycle at a time
João Leonardo Fragoso
12
6
examples SERE
13
Examples SERE
João Leonardo Fragoso
14
7
João Leonardo Fragoso João Leonardo Fragoso
16
15
Examples SERE
Examples SERE
8
João Leonardo Fragoso João Leonardo Fragoso
18
17
Examples SERE
Examples SERE
9
João Leonardo Fragoso João Leonardo Fragoso
20
19
Examples SERE
Examples SERE
10
João Leonardo Fragoso
Exemples SERE
[*] means
skip zero
or more
cycles
21
Exemples SERE
João Leonardo Fragoso
So the
original trace
still is in the
described set
22
11
João Leonardo Fragoso
Examples SERE
23
Examples SERE
true[*] = [*]
24
12
Examples SERE
25
Examples SERE
Simultaneous subsequences
Same length, start and end together
João Leonardo Fragoso
26
13
Examples SERE
{request,
{rd, !cncl_r, !dne[*]} || {wr,!cncl_w,!dne[*]}, dne}
27
Examples SERE
[= ] Non-consecutive repetition
[-> ] GOTO repetition
Examples
João Leonardo Fragoso
28
14
SERE BNF
SERE ::=
Boolean
| Sequence
| SERE @ clock_Boolean
| SERE ; SERE
João Leonardo Fragoso
| Sequence : Sequence
| Sequence AndOrOp Sequence
| SERE [ * [ Count ] ]
| [ * [ Count ] ]
| SERE [ + ] Sequence ::=
|[+] { SERE }
| Boolean [ = Count ] | sequence_Name [ (Actual_Parameter_List ) ]
| Boolean [ -> [ positive_Count ] ]
29
SERE - proposition
30
15
BNF property
31
Examples property
João Leonardo Fragoso
32
16
João Leonardo Fragoso João Leonardo Fragoso
34
33
17
João Leonardo Fragoso
35
Implication
36
18
Implication
SERE2
There is a stronger version of the => construct, that
demands that the second sequence complete
{SERE1} => {SERE2}!
37
Another implication
matching SERE1
So there is one cycle of overlap in the middle
This also has a strong version (ending !)
38
19
Another Implication Example
39
Syntactic Sugar
40
20
PSL VHDL
41
Examples
c | b; c | b; b; c | b; b; b; c
always ({a} |=> {b[+]; c}); -- if a then either of sequence
b; c | b; b; c | b; b;…..; b; c
always ({a} |=> {[*]; b; c}); -- Cannot fail. For functional coverage
if a then assertion completes when b; c sequence occurs.
42
21
João Leonardo Fragoso
Observers or Monitors
43
AMBA Example
44
22
João Leonardo Fragoso João Leonardo Fragoso
46
45
23
João Leonardo Fragoso
47
AHB
{ // this path is a normal completion
{ ( (HRESP == OKAY) && HREADY && (HRDATA == data_arg)
&& (HRESP == resp_val)) }
|
// this path is an error completion
{ ( (HRESP == ERROR) && !HREADY) ;
( (HRESP == ERROR) && HREADY && (HRDATA == data_arg)
&& (HRESP == resp_val))} }
48
24
PSL VHDL
49
50
25
Property is not a Test!!!
51
Exercise
52
26