Build gate
gowin_checkChecks Gowin EDA build reports for CI, returning pass, fail, or unknown; lists timing violations and offending paths, and enforces optional utilization and fMax margin thresholds.
Instructions
Pass/fail/unknown gate for CI. Lists timing violations with the offending path for each, plus optional thresholds on utilization and fMax margin. Negative paths between clock domains count as violations even though Gowin leaves them out of the TNS summary (set ignoreCrossDomain when they are declared false paths). A clock whose fMax misses its constraint while its setup TNS is 0 is reported as an fMax-only violation with the .sdc evidence (multicycle / half-cycle relations); waive it per clock with fmaxWaivers. "unknown" means timing could not be verified (no _tr_content.html or .tr, unrecognised report, or no clocks analysed) and is never a pass.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | When several builds share one impl/pnr/, pick this one by name (the <name> of <name>.rpt.txt). Default: the most recent, with the others listed under siblings. | |
| path | Yes | Path to the build: the project directory, its impl/ directory, impl/pnr/ itself, or the .rpt.txt. Either kind of slash. | |
| format | No | Output format. Default text: a compact rendering, returned as the only content. json: the full JSON as text and as structuredContent. | |
| fmaxWaivers | No | Clock names (or globs with * and ?) whose fMax-only violation is waived: fMax below the constraint with a setup TNS of 0, which is how Gowin reports a clock covered by set_multicycle_path or half-cycle paths. Listed under ignoredViolations; a TNS violation on the clock is never waived. | |
| maxUtilization | No | Fail when CLS, Logic or BSRAM utilization exceeds this percentage (recomputed from used/available, not the rounded column). | |
| minFmaxMarginMhz | No | Fail when any clock achieves less than constraint + this many MHz. | |
| ignoreCrossDomain | No | Default false. Set true when the paths between clock domains are declared false paths (set_false_path / set_clock_groups in the .sdc): their negative slack is then listed but does not fail the gate. | |
| failOnMissingTiming | No | Default true: an unknown timing status fails the gate. Set false to accept on resources alone. |