Skip to content

banner

Zuspec - An Action Relation Level Modeling Framework

Zuspec provides a set of tools for working with action relation level (ARL) models, primarily those described using the Accellera Portable Test and Stimulus (PSS) language. ARL models are used today to specify system-level tests for digital designs, but they lend themselves to many more applications as well. Zuspec has a very modular design to support rapidly exploring new applications for this modeling methodology.

Project Components

The bulk of Zuspec components are implemented in C++, with functionality available via both a C++ API and a Python API. Components are designed such that they can be integrated via Python, but interact at full speed via the C++ implementation.

Applications

Applications are how most users will experience Zuspec. Applications connect one or more Zuspec components, together with some integration code, to address a specific need.

  • Zuspec -- Support for code generation
  • Zuspec-SV -- Integration support for SystemVerilog testbench environments
  • Zuspec-Py -- Integration support for running ARL models in Python
  • langserver -- VSCode language server

Front-Ends

Front-ends process and input description (such as Accellera PSS), typically with the goal of populating Zuspec's ARL data model for further processing and evaluation

  • Parser -- ANTLR-based parser and AST for Accellera PSS (with language extensions)
  • FE-Parser -- AST to ARL datamodel converter
  • Python Dataclasses -- Python-based DSL for capturing ARL descriptions. Mostly used for testing

Core Data Model and Evaluation

ARL models are typically primarily declarative descriptions. In other words, they are heavily constraint-based. Evaluation tools process the data model to execute it and to optimize it.

arl-dm -- Core data model capturing ARL modeling semantics arl-eval -- Core evaluator, enabling interpretive evaluation of an ARL model vsc-dm -- External data model for constrained-random descriptions vsc-solvers -- Bundle of constraint solvers used by the evaluator

Back-Ends

Backends integrate Zuspec evaluation into specific environments or directly produce executable representations of ARL models.

  • be-sv -- SystemVerilog integration and code generators
  • be-sw -- Code generators for C and C++ outputs
  • be-py -- Python integration for evaluating ARL models in Python
  • be-pss -- Emit ARL as lowered Accellera PSS

Project Status

Zuspec is under active development, but not yet ready for use. Watch this space for updates on the project's status.

Popular repositories

  1. zuspec-arl-dm zuspec-arl-dm Public

    Library for action-relation-level (ARL) modeling

    C++ 2

  2. zuspec-sv zuspec-sv Public

    SystemVerilog integration support

    Python 1

  3. zuspec-parser zuspec-parser Public

    Language parser

    Java 1

  4. zuspec-be-sw zuspec-be-sw Public

    ARL backend for software output

    C++

  5. zuspec-dataclasses zuspec-dataclasses Public

    ARL front-end implemented as a Python DSL

    Python

  6. zuspec-cli zuspec-cli Public

    Zuspec front-end tool

    Python

Repositories

Showing 10 of 21 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…