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.

Build Status

  • zuspec-arl-dm - zuspec-arl-dm
  • zuspec-arl-eval - zuspec-arl-eval
  • zuspec-be-sw - zuspec-be-sw
  • zuspec-cli - zuspec-cli
  • zuspec-fe-parser - zuspec-fe-parser
  • zuspec-parser - zuspec-parser
  • zuspec-py - zuspec-apy
  • zuspec-sv - zuspec-sv

Popular repositories Loading

  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

    C++ 1

  3. zuspec-parser zuspec-parser Public

    Language parser

    C++ 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 24 repositories
  • zuspec-parser Public

    Language parser

    zuspec/zuspec-parser’s past year of commit activity
    C++ 1 Apache-2.0 0 1 0 Updated Nov 4, 2024
  • zuspec-sv Public

    SystemVerilog integration support

    zuspec/zuspec-sv’s past year of commit activity
    C++ 1 Apache-2.0 0 0 0 Updated Nov 3, 2024
  • zuspec-fe-parser Public

    Zuspec front-end library that converts the parser AST to internal data model

    zuspec/zuspec-fe-parser’s past year of commit activity
    C++ 0 Apache-2.0 0 0 0 Updated Oct 28, 2024
  • zuspec-arl-dm Public

    Library for action-relation-level (ARL) modeling

    zuspec/zuspec-arl-dm’s past year of commit activity
    C++ 2 Apache-2.0 0 0 0 Updated Oct 22, 2024
  • zuspec-arl-eval Public

    Provides an evaluator for the ARL data model

    zuspec/zuspec-arl-eval’s past year of commit activity
    C++ 0 Apache-2.0 0 0 0 Updated Oct 20, 2024
  • zuspec-python-bin Public

    Builds Python binaries distributed with Zuspec standalone binary package

    zuspec/zuspec-python-bin’s past year of commit activity
    Shell 0 Apache-2.0 0 0 0 Updated Oct 15, 2024
  • zuspec Public

    Top-level umbrella project that integrates all aspects of Zuspec

    zuspec/zuspec’s past year of commit activity
    0 Apache-2.0 0 0 0 Updated Oct 11, 2024
  • zuspec-be-sw Public

    ARL backend for software output

    zuspec/zuspec-be-sw’s past year of commit activity
    C++ 0 Apache-2.0 0 0 0 Updated Oct 8, 2024
  • .github Public

    Profile-info repository

    zuspec/.github’s past year of commit activity
    0 0 0 0 Updated Oct 8, 2024
  • zuspec-cli Public

    Zuspec front-end tool

    zuspec/zuspec-cli’s past year of commit activity
    Python 0 Apache-2.0 0 0 0 Updated Sep 15, 2024

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…