You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+61-18Lines changed: 61 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,63 @@
14
14
</p>
15
15
</p>
16
16
17
+
**OpenVADL** is an open-source implementation of **VADL**, a processor description language.
18
+
VADL enables users to specify both instruction set architectures (ISA) and microarchitectures in a modern, intuitive way.
19
+
For details, see the [official documentation](https://openvadl.github.io/openvadl/).
20
+
21
+
OpenVADL can generate multiple artifacts from a single VADL specification:
22
+
23
+
-**Instruction Set Simulator** via a custom QEMU frontend
24
+
-**Compiler** via a custom LLVM backend
25
+
-**Linker and Assembler** by integrating a generated parser into LLVM
26
+
27
+
Additional tools, such as a **Chisel** generator for hardware synthesis, are in development.
28
+
29
+
Check out our [VADL-related publications](https://www.complang.tuwien.ac.at/vadl/pubs) for more background.
30
+
31
+
## Getting Started
32
+
33
+
If you want to use OpenVADL, please refer to [the documentation](https://openvadl.github.io/openvadl/).
34
+
It covers everything you need to install OpenVADL, write a specification, and use the CLI to generate artifacts like a simulator or compiler.
35
+
36
+
For working VADL specifications examples, check out our [reference specifications](https://github.com/OpenVADL/openvadl/tree/master/vadl/test/resources/testSource/sys).
37
+
These are tested and kept up to date with the current OpenVADL version.
38
+
39
+
## Contribution
40
+
41
+
If OpenVADL sounds like an interesting project and you'd like to collaborate or contribute, please reach out!
42
+
43
+
There are plenty of open tasks, including:
44
+
- A cycle-approximate simulator generator
45
+
- User-mode emulation in the generated ISS
46
+
- A documentation engine for embedding architecture specs directly in VADL
47
+
- Improvements to the QEMU-based ISS
48
+
- Enhancements to the LLVM-based compiler
49
+
50
+
There are plenty of potential Bachelor and Master thesis topics available.
51
+
52
+
## Q&A and Bugs
53
+
54
+
If you have any questions, please use our [discussion panel](https://github.com/OpenVADL/openvadl/discussions/categories/q-a).
55
+
This helps others with similar issues find answers more easily.
56
+
57
+
If you encounter a crash or incorrect behavior, please report it as an [issue](https://github.com/OpenVADL/openvadl/issues).
58
+
Before creating a new issue, check if one already exists for the same problem.
59
+
60
+
# Development
61
+
62
+
Before contributing, please read [OpenVADL's contribution guidelines](CONTRIBUTING.md).
63
+
64
+
## Project Structure
65
+
66
+
The `open-vadl` project includes multiple Gradle modules.
67
+
68
+
-`vadl` is the main module that contains all the logic of OpenVADL
69
+
-`vadl-cli` implements the CLI for OpenVADL users. It uses the `vadl` module as a library
70
+
-`java-annotations` provides Java (!) annotations (e.g. `@Input`) that are used in the VIAM.
71
+
Additionally it provides `errorprone` bug detectors, that statically check if certain properties
72
+
in the VIAM are correctly implemented.
73
+
17
74
## Getting Started
18
75
19
76
For example, you can create the iss (Instruction Set Simulator) for a minimal risc-v example with:
@@ -24,7 +81,7 @@ For example, you can create the iss (Instruction Set Simulator) for a minimal ri
24
81
25
82
To get a description of the complete usage, you can run: `./gradlew run --args="--help"`
26
83
27
-
## Building
84
+
###Building
28
85
29
86
You can build and run in two steps with
30
87
@@ -44,7 +101,7 @@ With that you can run:
44
101
45
102
Which will create an executable at: `vadl-cli/build/native/nativeCompile/openvadl`
46
103
47
-
## Run all tests
104
+
###Run all tests
48
105
49
106
To run all tests you need to have docker running on your system.
50
107
@@ -57,21 +114,7 @@ available, otherwise the tests might fail.
57
114
58
115
Expect the tests to run a long time (up to an hour isn't unrealistic).
59
116
60
-
## Development
61
-
62
-
Before contributing, please read [OpenVADL's contribution guidelines](CONTRIBUTING.md).
63
-
64
-
### Project Structure
65
-
66
-
The `open-vadl` project includes multiple Gradle modules.
67
-
68
-
-`vadl` is the main module that contains all the logic of OpenVADL
69
-
-`vadl-cli` implements the CLI for OpenVADL users. It uses the `vadl` module as a library
70
-
-`java-annotations` provides Java (!) annotations (e.g. `@Input`) that are used in the VIAM.
71
-
Additionally it provides `errorprone` bug detectors, that statically check if certain properties
72
-
in the VIAM are correctly implemented.
73
-
74
-
### Checkstyle
117
+
## Checkstyle
75
118
76
119
We are using Checkstyle to ensure a consistent format and documentation of the source code.
77
120
@@ -80,7 +123,7 @@ The configuration is located under `config/checkstyle/checkstyle.xml`.
80
123
81
124
To locally test if the checkstyle CI pipeline would fail, run the `checkstyleAll` gradle task.
82
125
83
-
####Using Intellij
126
+
### Using Intellij
84
127
85
128
To use the Checkstyle confirm IntelliJ code style follow these steps:
0 commit comments