Property Specification Language (psl)

What Is Property Specification Language (PSL)?

Property Specification Language (PSL) is a formal notation for expressing temporal properties of digital hardware designs, enabling engineers to capture precisely what a circuit or system must do and, critically, what it must never do. It extends linear temporal logic with regular-expression-style sequence operators and additional constructs that make hardware behavioral intent expressible at a level of rigor that natural language and informal comments cannot match. PSL is standardized under IEEE Std 1850-2010, published by the IEEE, and is the recognized international standard for this purpose.

PSL grew out of work by Accellera, an electronics industry consortium, which transferred the language to the IEEE for formal standardization in 2004. The first IEEE edition appeared in 2005, and the 2010 revision added parameterized properties, verification units for intellectual-property reuse, local variables, and refined clock-alignment semantics. PSL is language-agnostic across the major hardware description languages, integrating natively with VHDL, Verilog, SystemVerilog, and SystemC through dedicated flavor bindings.

Temporal Logic Foundation

PSL's expressive power rests on linear temporal logic (LTL), which reasons about sequences of time steps rather than single states. Operators such as "always," "never," "eventually," and "until" describe how signal values and conditions evolve over time. To these LTL operators, PSL adds a layer of regular-expression-style sequence expressions, called PSL sequences, that can describe multi-cycle patterns with exact or bounded durations. The most heavily used construct is the suffix implication operator, which states that whenever a specified antecedent sequence matches up to a given time point, a specified consequent property must hold starting from the next cycle. This combination of LTL and regular expressions gives PSL expressive power exceeding pure LTL while remaining decidable for model checking, a balance that informed the design choices documented in the IEEE 1850 standardization history at the IEEE Standards Association.

PSL Layers and Syntax

The language is organized into four semantic layers. The Boolean layer handles combinational conditions drawn from the host hardware description language. The sequence layer composes Boolean conditions into multi-cycle patterns using concatenation and repetition operators borrowed from regular expression notation. The property layer wraps sequences in temporal operators to form verifiable assertions. The verification layer packages properties into named units that can be attached to design hierarchies for reuse and IP integration. This layered structure allows engineers to build complex behavioral specifications incrementally from simple Boolean checks, and it separates the platform-specific signal reference conventions of VHDL or Verilog from the platform-neutral temporal semantics.

Formal and Simulation-Based Verification

PSL assertions can be exercised in two distinct verification modes. In simulation-based verification, PSL monitors are compiled alongside the design and execute concurrently with the simulation; each assertion fires or reports a failure at the clock edges where its temporal condition becomes decidable. This mode integrates naturally into existing simulation-driven design flows without requiring formal tools. In formal verification, model checkers exhaustively explore all reachable states of the design and either prove that a PSL property holds for every possible input sequence or produce a counterexample trace demonstrating a violation. Tools from companies such as Cadence, Synopsys, and Mentor support both modes, and research published on IEEE 1850 PSL's successive standard editions describes how the 2010 updates improved scalability for formal analysis of large industrial designs. The ability to use identical PSL assertions in both simulation and formal contexts is a key advantage over ad hoc testbench checking.

Applications

PSL is used across a range of hardware design and verification contexts, including:

  • Functional verification of processor microarchitectures and bus protocols
  • Checking safety properties in safety-critical automotive and avionics designs
  • Assertion-based verification of memory controllers and interconnect fabrics
  • IP block reuse with embedded PSL verification units specifying contractual interface behavior
  • Coverage-driven verification, where PSL cover statements track which design behaviors a test suite has exercised
Loading…