Adding a new HDL
Adding support for a new HDL to Marlin involves:
- Choosing a runtime (right now, only Verilator is supported)
- Making a procedural macro that lowers to an interface understood by the runtime (right now, only Verilog is supported)
Typically, you'll want to create a wrapper for the runtime, e.g., SpadeRuntime wraps VerilatorRuntime.
In your procedural macro, you'll typically call build_verilated_struct to handle most of the work in defining the interface.