harry-psl

advertisement
PSL
Property Specification Language
Jasper Design Automation
Jasper Design Automation© 2005
1
Introduction to PSL
Jasper Design Automation© 2005
2
Introduction

What is PSL?
o
A language for the formal specification of concurrent systems
– Particularly applicable for the description of hardware designs
– Describe properties (or assertions) that are required to hold on a DUV

Key characteristics of PSL include:
o
Mathematically precise well-defined formal semantics
o
Very expressive coving large class of real world design behaviors
o
Known efficient underlying verification algorithms
o
Intuitive and easy to learn, read, and write
o
PSL is a layered language, ideal for reuse, and supports multiple HDL flavors
– Verilog, VHDL, SystemC, and SystemVerilog
Jasper Design Automation© 2005
3
Background
Sugar
created at IBM
Haifa Research Labs
FVTC
formed in
Accellera (OVI)
1994
1998
Syntactic
sugaring of
CTL
Branching-time
semantics
plus regular
expressions
Jasper Design Automation© 2005
FVTC considers:
Temporal e
PSL
CBV
based
on
ForSpec
Sugar 2.0
Sugar
2001
Linear-time
semantics
Added to Sugar
2002
PSL 1.01
Approved
2003
PSL and
SVA alignment
4
PSL 1.1
Approved
IEEE 1850
PSL
2004
2005
PSL enhancements
and clarifications
Elements of an assertion language
 Logic, whose origins date back to the Greek philosophers, allows
us to answer the question:
Does a given model satisfy a given property?
model
logic
property
Jasper Design Automation© 2005
5
true/false
Elements of assertion languages
 Classical logic deals with timeless statements.
o
“The moon is a satellite of the earth.”
o
“The moon is rising (now).”
universe
logic
true/false
The moon is rising
 However, in classical logic, we cannot express:
o
“The moon will rise again and again”
Jasper Design Automation© 2005
6
Temporal Logic

Our interest – properties of reactive systems.

In reactive systems, processes maintain on-going interaction
with their environment.

Interesting statements about reactive systems depend on time.
o

For example, A and B are mutually exclusive for all values of time
Temporal logic can describe the ordering of events in time without introducing time
explicitly.
o
Without temporal logic, we would be forced to explicitly write equations involving time:
– For example,
Jasper Design Automation© 2005
t.!(A(t) & B(t))
7
Temporal Logic
 Pnueli 1977 – use of temporal logic for reasoning about reactive systems
(LTL).
 Clarke & Emerson 1981 – model checking (CTL).
 Various temporal logics (LTL, CTL, CTL*,…).
 The logics differ in
o Syntax
o Semantics – meaning of the formulas.
o Expressiveness – which properties can be expressed.
o Complexity – efficiency of evaluating a property.
o Underlying model of time.
Jasper Design Automation© 2005
8
Temporal Logic
 Model of time:
o
Finite computation (simulation) or infinite computation (model
checking).
o
Linear or branching
– Linear – each moment in time has a unique possible future.
– Branching – each moment in time can split into various possible
futures.
p
1
3
1
q
2
2
3
2
2
2
2
1
2
3
1
2
2
2
2
Jasper Design Automation© 2005
9
PSL
Linear-Time Temporal Logic
 Intuitive to engineers
o
Reason about expected behavior over linear sequences of states
(computational paths)
o
Thinking is similar to reviewing a simulation trace
 Properties evaluated over paths
0
2
Jasper Design Automation© 2005
Infinite path
p
q
1
0
2
1
10
What We can Express in LTL
 All Boolean logic properties.
“Process 2 is in the critical section”
 next p – p holds in the next state.
“Process 2 will be in the critical section in the next state”
 eventually! p – eventually p holds.
“eventually process 2 will enter the critical section”
Jasper Design Automation© 2005
11
What We Cannot Express in LTL?
 Counting example:
“p is asserted in every even cycle”
All the following traces satisfy this property
!p,p,!p,p,…
p,p,p,p,….
p,p,!p,p,p,p…
 No linear-time temporal formula can express this property.
Jasper Design Automation© 2005
12
Extended Regular Expressions
 Extended regular expressions overcome some of the limitations in linear-time
temporal logic’s lack of expressiveness.
 They are a convenient way to define a temporal pattern that can match (or
more aptly put, specify) sequences of states.
 Regular expressions let us describe design behavior that involves counting.
o
Such as modulo n type behavior, with the * operator.
 For example, the PSL extended regular expression:
{a ; b ; [*3] ; c ; [*2:3] ; d}
Jasper Design Automation© 2005
13
What Cannot be Express with Regular Expressions
The property: “eventually p holds forever”
 The following property cannot be expressed with regular
expressions:
o
“Eventually, p holds forever”
!p
!p
!p
p
p
p
 Can be expressed in LTL. For example, in PSL:
o
eventually always p
Jasper Design Automation© 2005
14
What We Can Express in LTL and CTL
 “Always if req is received, then ack must be received sometime in the
future”
o
LTL:
G (req -> F ack)
o
CTL: AG(req -> AF ack)
 Most useful properties are in the common fragment of LTL and CTL
(Maidl, 2000).
Jasper Design Automation© 2005
15
PSL Layers
Jasper Design Automation© 2005
16
PSL is a Layered Language
Modeling
Verification
Temporal
Boolean
Jasper Design Automation© 2005
17
Boolean Layer
 The Boolean layer is used to:
o
Specify logic expressions without specific timing
information using a standard HDL syntax such as
Verilog-HDL and VHDL
Example (Verilog):
// A and B are mutually exclusive
( !(A & B) )
Example (VHDL):
-- A and B are mutually exclusive
( not (A and B) )
Jasper Design Automation© 2005
18
Temporal Layer
 The temporal layer is used to:
Specify when the Boolean expression must be valid
o Remove time ambiguities
o
Example:
// A and B are always mutually exclusive
always ( !(A & B) )
 There are many temporal operators:
always property
o never property
o
o
until property
o …
o
next property
Jasper Design Automation© 2005
19
Verification Layer
 The verification layer is used to:
o
Specify how to use the property:
– Assertion to be verified against the implementation
– Assumption to be used as constraint during the verification
– Or functional coverage metric to improve the overall
verification coverage
Example:
// A and B must always be mutually exclusive
assert always ( !(A & B) ) ;
Jasper Design Automation© 2005
20
Modeling Layer
 The modeling layer is used to:
o
Write auxiliary HDL code required to specify complex
properties
 You can define HDL functions that are used in your
properties, model complex FSMs or expressions
Example:
// If req is asserted, ack must be asserted the next cycle
wire req;
assign req = readA_req || readB_req;
assert always (req -> next (ack && gnt)) ;
Jasper Design Automation© 2005
21
PSL Layers
wire req;
assign req = readA_req || readB_req;
assert always (req -> next (ack && gnt)) ;
Boolean layer
Temporal layer
Verification layer
Modeling layer
Jasper Design Automation© 2005
22
PSL Sequences
Jasper Design Automation© 2005
23
PSL Sequences
 PSL sequences enable us to:
o
Describe a sequence of Boolean expression (that is, states)
 PSL sequences are marked by curly braces ‘{’ and ‘}’
 Advancement of time occurs with each concatenation operator ‘;’
Example:
{ req; busy; gnt }
Jasper Design Automation© 2005
24
PSL Sequences Matching
 A PSL sequence can have multiple matching diagrams
Example:
{ req; busy; gnt }
req
req
busy
busy
gnt
gnt
This diagram represents
one possible match
This diagram represents
another possible match
 To explicitly match the waveform, we would need to specify the following
Example:
{ req && !busy && !gnt ;
!req && busy && !gnt ;
!req && !busy && gnt }
Jasper Design Automation© 2005
req
busy
gnt
25
Temporal Operators for Sequences
 PSL supports the following temporal operators for sequences:
Overlapping implication
o Non-overlapping implication
o
|->
|=>
Example(s):
sequence S1 = { req; ack } ;
sequence S2 = { start; busy; end } ;
// Event “start” occurs on the same clock cycle as “ack”
property P1 = always S1 |-> S2 ;
// Event “start” occurs on the next clock cycle after “ack”
property P2 = always S1 |=> S2 ;
Jasper Design Automation© 2005
26
Operators for SERE
 PSL supports the following operators for SERE:
o
Repetition in n consecutive clock cycles
Repetition in n non-consecutive clock cycles
o Repetition in n non-consecutive clock cycles
o
o
Repetition for 0 or any number of clock cycles
Repetition for 1 or any number of clock cycles
o Repetition for n to m clock clock cycles
o
[*n]
[=n]
[->n]
[*]
[+]
[*n:m]
 The number of repetitions must be a positive integer
 Keyword inf stands for an infinite number of clock cycles
Example(s):
sequence S1 = { rd[*5] } ;
sequence S2 = { rd[->3] } |=> { wr } ;
// {!rd[*]; rd; !rd[*]; rd; !rd[*]; rd}
sequence S3 = { req} |=> { ack[=1]; done} ; // {!ack[*]; ack; !ack[*]}
sequence S4 = { rd[*]; rd; wr };
sequence S5 = { rd[+]; wr } ;
sequence S6 = { rd[*2:5] } |=> { wr } ;
Jasper Design Automation© 2005
27
Example
property P1 = { req[+]; ack; wr[*4] } |=> { (wait && !req)[*]; done } ;
assert always P1;
clock
req
1 or more
0 or more
ack
write
wait
0 or more
done
Jasper Design Automation© 2005
28
Example
Properties are Derived from Specification
Receiving Data:
 When the reception of data is complete, then an interrupt should occur:
property done_rcving_implies_int =
always rose(done_rcving) -> rose(int) ;
assert done_rcving_implies_int ;
Jasper Design Automation© 2005
29
Example
Properties are Derived from Specification
Receiving Data:
 If the signal that indicates a reception in progress is active, then it
should remain active until the reception is complete:
property rcving_until_done_rcving =
always rose(rcving) -> (rcving until done_rcving) ;
assert rcving_until_done_rcving ;
Jasper Design Automation© 2005
30
Example
RTL Implementation Queue
 Design intent
o“If
Queue is full, then an attempt to insert data is ignored.” (Overflow)
o“If
Queue is empty, then an attempt to remove data is ignored.” (Underflow)
qDataIn
 RTL implementation fragment:
qLast
function [3:0] qNext;
input [3:0] p;
qNext = ((p + 1) mod `qSize);
endfunction;
assign qFull = (qNext(qLast) == qFirst);
7
6
5
4
3
2
1
0
cntrl
assign qEmpty = (qLast == qFirst);
…
 PSL implementation assertions:
qFirst
qDataOut
assert always (qFull && qInsert -> next !qEmpty) abort ~rstN ;
assert always (qEmpty && qRemove -> next !qFull) abort ~rstN;
Jasper Design Automation© 2005
31
qInsert
qRemove
qError
qEmpty
qFull
Verification Units for Grouping
Properties and Directives
 Verification with PSL is based on using verification units
vunit <name> [(<module binding>)] {
<declarations and verification layer directives>
Usually a separate file from RTL
};
vunit
Example:
inputs
outputs
RTL module
vunit my_unit (my_module) {
default clock = posedge clk;
assume never read & write;
property P1 = never (full & write);
A vunit binds to a module or an instance
assert P1;
assert always (read -> ! empty);
};
Jasper Design Automation© 2005
32
Types of Assertions and PSL Expressiveness
Data
Integrity
High-level requirements
•
•
•
•
Packet
Ordering
End-to-end
Black box
Based on design intent
Generally require
modeling+assertions
Design Intent
RTL Implementation
RTL implementation assertions
• Localized
• Implementation-specific
• Generally can be
expressed using only
assertions
One
Hot
Increment
By 1
FIFO
Overflow
FIFO
Overflow
Design Behavior
Jasper Design Automation© 2005
33
To learn more
 www.eda.org/ieee-1850
 Accellera v1.1 LRM available at www.accellera.org
 My email:
Jasper Design Automation© 2005
harry@jasper-da.com
34
Download