calyx
calyx copied to clipboard
Cider 2.0 Tracker Issue
We're finally at point where we can start running programs through Cider 2 and thus it now makes sense to have a tracker for the ongoing efforts to reach parity with Cider 1.
Known issues:
- [x] #1968
- [x] #2044
- [ ] Missing a bunch of primitives
- [x] Comb primitives are partially done (#1967)
- [x] Seq Mems (#1967)
- [ ] Mult / Smult (#2128)
- [x] Div / Sdiv (#2158)
- [x] Sqrt (#2158)
- [ ] Bit slice
- [ ] Fixed Point
- [x] #2159
- [x] Group termination takes an extra cycle due to only running convergence once. Issue: #1917
- [x] Continuous assignments (#2064)
- [x]
parnot supported (#2043)- [ ] cross branch conflicts warnings missing
- [x]
withnot supported (#2064) - [x]
invokenot supported (#2119) - [x]
repeatnot supported (#2158) - [x] multi-component programs not supported (#2119)
- [ ] #2161
- [ ] Data converter cannot handle fixed-point values
- [ ] all the helpful info logging & error messages
For some of these issues, like with not being supported, we should resolve the long-running with discussion and decide if we want to get rid of it completely or not.
@rachitnigam Agreed, this is mostly just me getting down the current state of things. Also with is annoying to implement so I've thus far avoided it oops
Wahoo; thank you for summarizing! Just capturing the synchronous discussion a little bit, on this point:
Does not generate an output JSON compatible with our testing infrastructure
I had suggested, in the spirit of trying to do the simplest possible thing here, that it might not be too hard to load/dump "raw bits," i.e., the exact bit-level contents of the memories. This is more or less what the RTL simulators already do (they are using hex-encoded text, but same difference). We could then pre-/post-process these files into our JSON format externally, alleviating the need for any serde hacking on Cider's side.
This of course omits all the non-memory results that Cider 1.0 can already produce. But I believe this is fine: all we really need to check correctness is those memory dumps.
Officially closing this tracker since at this point Cider 2 has replaced Cider 1 and has passed parity in terms of programs