Skip to content

CoreDSL 2 programmer's manual

Julian Oppermann edited this page Mar 8, 2022 · 13 revisions

Introduction

CoreDSL 2 is a domain-specific language to model processor cores at the level of their instruction set architecture (ISA). Its use cases include the generation of ISA-specific artifacts for compilers, instruction set simulators (ISS) and other validation purposes, as well as the the user-friendly specification of custom ISA extensions (ISAX) in conjunction with a high-level synthesis (HLS) tool. Note that we consider supporting the generation of a complete core implementation solely from CoreDSL 2 to be a non-goal, as the language currently does not express any micro-architectural details.

Syntax

Modularization

Arithmetic and type conversion rules

Concurrency

Language specification

This document is an early draft. The current specification of the C language shall provide fall-back rules for any aspect not yet discussed here.

Structure and concepts

Scoping and inheritance

Composition and elobaration

Types

Literals

Expressions

Declarations

Statements

Attributes

Rationale for certain design decisions

Warnings (Recommendation for frontends)

Examples

RISC-V: Base RV32I RV64I A C D F M

Clone this wiki locally