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
pipandvenv
Installation (Usage with CoreDSL 2 and ETISS)
- Make a Python
venvsomewhere: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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaf2dc3136e0f5db89e5ebb4b9a7783633b5da376800ec782138ab7075d97f20
|
|
| MD5 |
dc9eb4566ed914f6c2568d1136e5501b
|
|
| BLAKE2b-256 |
ae7ea0c35892c9d7633cd11c876bc3ccb0b7f6379cfcfe0ffa4a791b46ba7d7a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
346d3f66d5815793ea64d5baa567872dd62a96ad05ccd022d06cb5ab6095036f
|
|
| MD5 |
add88c46eb2dc1b160ab771bc609e157
|
|
| BLAKE2b-256 |
70c80f1d77e62a3540d30846250a2650927f079dfd0b32f50ed1491a443d06ed
|