Skip to main content

CoreDSL2 Parser with backend to generate simulation code for the ETISS instruction set simulator

Project description

M2-ISA-R v2

This tool serves as a general-purpose instruction set architecture metamodel. A parser for CoreDSL and an architecture generator for the instruction set simulator ETISS are currently also provided.

Please note: M2-ISA-R is in heavy development, things might change and break without notice. Please report issues on GitHub for any problems you encounter.

Prerequisites

  • Python 3.7+ with at least pip and venv

Installation (Usage with CoreDSL 2 and ETISS)

  • Make a Python venv somewhere: python -m venv <path-to-venv>
  • Activate said venv: source <path-to-venv>/bin/activate
  • Install M2-ISA-R: pip install git+https://github.com/tum-ei-eda/M2-ISA-R@coredsl2

Development Setup

  • Clone the repository, change into the cloned directory
  • Make a Python venv: python -m venv venv
  • Activate said venv: source venv/bin/activate
  • Install M2-ISA-R for development: pip install -e .

Architecture

M2-ISA-R consists of 3 components, two of which are exchangeable for different needs:

Frontend -> Metamodel -> Backend

The frontend transforms a model specification into M2-ISA-R's internal architecture model. This model can then be transformed again to an output format, e.g. models for an ISS. This repo provides a CoreDSL frontend and an ETISS backend.

Usage

M2-ISA-R v2 currently ships three usable tools: Two parsers (for transforming CoreDSL 1.5 / 2 to a M2-ISA-R metamodel) and a writer (for generating ETISS architecture plugins). These are described seperately in their respective directories, TL;DR version:

  • To parse a CoreDSL 2 description: coredsl2_parser path/to/input/<top_level>.core_desc
  • To generate ETISS Architecture: etiss_writer -s path/to/input/gen_model/<top_level>.m2isarmodel

For parsers, see m2isar/frontends/coredsl or m2isar/frontends/coredsl2. For the ETISS architecture writer, see m2isar/backends/etiss.

Roadmap

  • CoreDSL 2 support (WIP, RISC-V models are buildable)
  • Formal metamodel description
  • Support for extended CoreDSL 2 features:
    • Loops (WIP, for loops unimplemented)
    • Complex data types
    • Bit-wise aliasing
    • Spawn blocks
  • Detection and evaluation of generation-time static expressions
  • Better support for translation-time static expressions, see #5 and #6
  • Full generation of ETISS architecture models:
    • Variable width instruction decoding
    • Exception handling
    • Privilege levels
    • Interrupts

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

m2isar-0.0.6.tar.gz (139.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

m2isar-0.0.6-py3-none-any.whl (167.3 kB view details)

Uploaded Python 3

File details

Details for the file m2isar-0.0.6.tar.gz.

File metadata

  • Download URL: m2isar-0.0.6.tar.gz
  • Upload date:
  • Size: 139.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for m2isar-0.0.6.tar.gz
Algorithm Hash digest
SHA256 aaf2dc3136e0f5db89e5ebb4b9a7783633b5da376800ec782138ab7075d97f20
MD5 dc9eb4566ed914f6c2568d1136e5501b
BLAKE2b-256 ae7ea0c35892c9d7633cd11c876bc3ccb0b7f6379cfcfe0ffa4a791b46ba7d7a

See more details on using hashes here.

File details

Details for the file m2isar-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: m2isar-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 167.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for m2isar-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 346d3f66d5815793ea64d5baa567872dd62a96ad05ccd022d06cb5ab6095036f
MD5 add88c46eb2dc1b160ab771bc609e157
BLAKE2b-256 70c80f1d77e62a3540d30846250a2650927f079dfd0b32f50ed1491a443d06ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page