ArticleslgStudy

science

Property Specification Language

Property Specification Language is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Property Specification Language rather than just read about it. In short: Property Specification Language (PSL) is a temporal logic extending linear temporal logic with a range of operators for both ease of expression and enhancement of expressive power. PSL makes an extensive use of regular expressions and syntactic sugaring.

Property Specification Language — main illustration
Property Specification Language — illustration

Key takeaways

  • Property Specification Language belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Property Specification Language to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Property Specification Language from memory before moving on to harder problems.

Reference excerpt

Property Specification Language (PSL) is a temporal logic extending linear temporal logic with a range of operators for both ease of expression and enhancement of expressive power. PSL makes an extensive use of regular expressions and syntactic sugaring. It is widely used in the hardware design and verification industry, where formal verification tools (such as model checking) and/or logic simulation tools are used to prove or refute that a given PSL formula holds on a given design. PSL was initially developed by Accellera for specifying properties or assertions about hardware designs. Since September 2004 the standardization on the language has been done in IEEE 1850 working group. In September 2005, the IEEE 1850 Standard for Property Specification Language (PSL) was announced.

Syntax and semantics PSL can express that if some scenario happens now, then another scenario should happen some time later. For instance, the property "a request should always eventually be granted" can be expressed by the PSL formula:

The property "every request that is immediately followed by an ack signal, should be followed by a complete data transfer, where a complete data transfer is a sequence starting with signal start, ending with signal end in which busy holds at the meantime" can be expressed by the PSL formula:

A trace satisfying this formula is given in the figure on the right.

PSL's temporal operators can be roughly classified into LTL-style operators and regular-expression-style operators. Many PSL operators come in two versions, a strong version, indicated by an exclamation mark suffix ( ! ), and a weak version. The strong version makes eventuality requirements (i.e. require that something will hold in the future), while the weak version does not. An underscore suffix ( _ ) is used to differentiate inclusive vs. non-inclusive requirements. The _a and _e suffixes are used to denote universal (all) vs. existential (exists) requirements. Exact time windows are denoted by [n] and flexible by [m..n].

SERE-style operators The most commonly used PSL operator is the "suffix-implication" operator (also known as the "triggers" operator), which is denoted by |=>. Its left operand is a PSL regular expression and its right operand is any PSL formula (be it in LTL style or regular expression style). The semantics of r |=> p is that on every time point i such that the sequence of time points up to i constitute a match to the regular expression r, the path from i+1 should satisfy the property p. This is exemplified in the figures on the right.

The regular expressions of PSL have the common operators for concatenation (;), Kleene-closure (*), and union (|), as well as operator for fusion (:), intersection (&&) and a weaker version (&), and many variations for consecutive counting [*n] and in-consecutive counting e.g. [=n] and [->n]. The trigger operator comes in several variations, shown in the table below. Here s and t are PSL-regular expressions, and p is a PSL formula.

Operators for concatenation, fusion, union, intersection and their variations are shown in the table below. Here s and t are PSL regular expressions.

Operators for consecutive repetitions are shown in the table below. Here s is a PSL regular expression.

Operators for non-consecutive repetitions are shown in the table below. Here b is any PSL Boolean expression.

LTL-style operators Below is a sample of some LTL-style operators of PSL. Here p and q are any PSL formulas.

Sampling operator Sometimes it is desirable to change the definition of the next time-point, for instance in multiply-clocked designs, or when a higher level of abstraction is desired. The sampling operator (also known as the clock operator), denoted @, is used for this purpose. The formula p @ c where p is a PSL formula and c a PSL Boolean expressions holds on a given path if p on that path projected on the cycles in which c holds, as exemplified in the figures to the right.

The first property states that "every request that is immediately followed by an ack signal, should be followed by a complete data transfer, where a complete data transfer is a sequence starting with signal start, ending with signal end in which data should hold at least 8 times:

But sometimes it is desired to consider only the cases where the above signals occur on a cycle where clk is high. This is depicted in the second figure in which although the formula

uses data[*3] and [*n] is consecutive repetition, the matching trace has 3 non-consecutive time points where data holds, but when considering only the time points where clk holds, the time points where data hold become consecutive.

The semantics of formulas with nested @ is a little subtle. The interested reader is referred to [2].

Abort operators PSL has several operators to deal with truncated paths (finite paths that may correspond to a prefix of the computation). Truncated paths occur in bounded-model checking, due to resets and in many other scenarios. The abort operators, specify how eventualities should be dealt with when a path has been truncated. They rely on the truncated semantics proposed in [1]. Here p is any PSL formula and b is any PSL Boolean expression.

Expressive power PSL subsumes the temporal logic LTL and extends its expressive power to that of the omega-regular languages. The augmentation in expressive power, compared to that of LTL, which has the expressive power of the star-free ω-regular expressions, can be attributed to the suffix implication, also known as the triggers operator, denoted "|->". The formula r |-> f where r is a regular expression and f is a temporal logic formula holds on a computation w if any prefix of w matching r has a continuation satisfying f. Other non-LTL operators of PSL are the @ operator, for specifying multiply-clocked designs, the abort operators, for dealing with hardware resets, and local variables for succinctness.

Layers PSL is defined in 4 layers: the Boolean layer, the temporal layer, the modeling layer and the verification layer.

… excerpt ends here. Continue reading the full article.

Illustrations

Property Specification Language: Path satisfying r triggers p in two non-overlapping ways
Path satisfying r triggers p in two non-overlapping ways
Property Specification Language: Path satisfying r triggers p in two overlapping ways
Path satisfying r triggers p in two overlapping ways
Property Specification Language: Path satisfying r triggers p in three ways
Path satisfying r triggers p in three ways
Property Specification Language: Path and formula showing need for a sampling operator
Path and formula showing need for a sampling operator
Property Specification Language: Path and formula showing effect of the sampling operator @
Path and formula showing effect of the sampling operator @

Worked examples

Example 1 — a first encounter with Property Specification Language

Start with the simplest possible case. Write down what Property Specification Language claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Property Specification Language before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Property Specification Language ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Property Specification Language

In research
Property Specification Language appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Property Specification Language in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Property Specification Language is common in secondary-school and first-year university syllabi. It links to neighbouring topics Formal specification languages, Hardware verification languages, IEC standards, so understanding it makes those chapters shorter.
In everyday life
Look for Property Specification Language outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Property Specification Language in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Property Specification Language means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Property Specification Language out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Property Specification Language in simple terms?

Property Specification Language (PSL) is a temporal logic extending linear temporal logic with a range of operators for both ease of expression and enhancement of expressive power. PSL makes an extensive use of regular expressions and syntactic sugaring.

Why does Property Specification Language matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Property Specification Language?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Property Specification Language.

Tags

  • Formal specification languages
  • Hardware verification languages
  • IEC standards
  • IEEE DASC standards

Keep exploring