Vighnesh Iyer, Borivoje Nikolić
UC Berkeley
PLARCH 2023
hw, seq, comb
handshake, esi
ssp, calyx
There is a desire to use a suitable abstraction level for a given hardware block / model
The next iteration of HDLs should strive to support mixing abstractions in design
What primitives belong in an IR/HDL?
IRs try to be minimal, but HDLs try to capture design semantics. How do we pass intent to synthesis?
If we could design a synthesis frontend from scratch, what semantics are most valuable to preserve from RTL or above?
Are modules a good abstraction? Can we infer them? Can we remove the need for XMRs?
How do we make run-to-run caching and incremental elaboration viable? Can content-addressable languages help?