[Summer Research] Robust Interpreter for Calyx #515
Locked
rachitnigam
started this conversation in
Ideas
Replies: 3 comments 2 replies
-
From the meeting on 6/2/2021:
|
Beta Was this translation helpful? Give feedback.
2 replies
-
https://docs.rs/bitvec/0.22.3/bitvec/vec/struct.BitVec.html May be suitable as a replacement for |
Beta Was this translation helpful? Give feedback.
0 replies
-
Wow look at that we built an interpreter for Calyx :-) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
TLDR: Build an interpreter for Calyx that can execute programs generated by the systolic array compiler and the Polybench benchmarks and generate the exact same results as the Verilator backend.
Onboarding
The first step is figuring out the current state and capabilities of the interpreter. We currently have some unmerged code on the interp and interp_yn branches. We should merge and/or remove them.
Next, we should write a suite of tests that we want to have work with the first version of the compiler. Some examples of tests are:
group[done] = std_reg.done
.group[done] = 1'd1
. This will run into the issue Interpreter not updating when done signal of the group is directly assigned #509.seq
,if
,while
.invoke
.par
.Not all of the tests will work with the interpreter at the start. This is fine. We should make sure the tests work with Verilator and then start working on making them work with the interpreter.
Repository Rules
Follow a few rules when working with the Calyx repository.
Roughly speaking, you should open a PR at the end of every week. Do not worry if your code is not pristine! We will help you figure out programming style and patterns to make it better during the pull request.
Beta Was this translation helpful? Give feedback.
All reactions