intel / rohd

The Rapid Open Hardware Development (ROHD) framework is a framework for describing and verifying hardware in the Dart programming language.
https://intel.github.io/rohd-website
BSD 3-Clause "New" or "Revised" License
374 stars 67 forks source link

[Issue 246] SynthBuilder should check for Module.build() #340

Closed quekyj closed 1 year ago

quekyj commented 1 year ago

Description & Motivation

It's possible to generate outputs using a Synthesizer and SynthBuilder rather than through Module.generateSynth. However, the SynthBuilder does not check that Module.build is called, only generateSynth does. This can produce unexpected outputs (e.g. SystemVerilog with no submodules) without any helpful error message indicating why.

Related Issue(s)

Fix #246

Testing

Tested with module not built and catch exception.

Backwards-compatibility

Is this a breaking change that will not be backwards-compatible? If yes, how so?

Yes.

Documentation

Does the change require any updates to documentation? If so, where? Are they included?

No. Just added validation and test.