Stages of a generator

Typically a generator is divided into following stages -
  • generation of final gds, verilog, spice netlist and relevant reports

  • checking for drc/lvs errors using the generated reports

  • running simulations for the available testbenches

  • processing the simulation logfiles

  • building the final result of the generator showcasing metrics

It is expected that these stages are modular and standalone which means that the modules can be imported and executed from other scripts too. This will not only help in debugging and but also in building a flexible regression setup for the generator.

Notes

  • Make sure the generator returns a proper exit status when something fails with Yosys, OpenROAD, Klayout, Magic and Netgen

  • All the input parameters must be accessible via make target or a specifications file.

  • The naming of the generator should be consistent across the generator implementation.