Troubleshooting failures
Runs fail — especially early on, while you're still tuning a design. Vulkos is built to make failures readable rather than cryptic, so you can fix the cause and re-run quickly.
How Vulkos explains errors#
When a flow fails, you don't have to dig through raw logs alone. Vulkos surfaces the failing stage and the relevant log lines, and the built-in assistant can read the error in the context of your project and explain what went wrong in plain language — often with a concrete fix to try.
Ask the assistant first
On a failed run, ask the assistant “why did this fail?”. It already has your config and the error output, so it can usually point straight at the line or setting to change.Common failure modes#
Config doesn't match your RTL
DESIGN_NAMEdoesn't match your top module — synthesis can't find an entry point.- A source is missing from
VERILOG_FILES, or a testbench was added to it by mistake. CLOCK_PORTnames a port that doesn't exist on the top module.
RTL problems
Syntax errors and non-synthesizable constructs fail at synthesis. The lint problems view catches many of these before you spend compute on a full run — check it first.
Physical closure
- Timing:negative slack means the design can't hit the clock target. Relax
CLOCK_PERIODor simplify the critical path. - Congestion: routing fails when the die is too full. Lower
FP_CORE_UTILto give the router more room.
Recovering from a failure#
A failed run doesn't cost you anything beyond the compute it used. The usual loop is:
- Read the failing stage and the assistant's explanation.
- Fix the config or RTL it points to.
- Re-run. Verifying with your testbench first avoids spending a full physical run on a logic bug.
For what each stage does and where errors originate, see Pipeline stages.