HDL
Documentation

Version Latest

Reference and troubleshooting

HDL module settings, hdl.json keys, supported tools and file formats with their verification state, agent tools, what asks before it writes to a device, what is recorded, how policy applies, and fixes for common problems.

Settings

All keys are under neuralInverse.hdl.. They hold machine facts only (tool paths, extra arguments, the PDK root, the language server choice); a design's options belong in hdl.json. Settings that name executables are restricted in untrusted workspaces.

SettingDefaultMeaning
enabledfalseTurns the environment on
projectFilehdl.jsonThe project file, relative to the workspace folder
paths.<tool>emptyPath to a tool or its folder
lint.onSavetrueLint on save
lint.verilatorArguments, lint.ghdlArguments[]Extra lint arguments
simulation.icarusArguments, simulation.verilatorArguments, simulation.ghdlArguments, simulation.nvcArguments[]Extra simulation arguments
simulation.ghdlWaveform, simulation.nvcWaveformtrueFST of every signal for VHDL testbenches
simulation.compiledLibraries{}Compiled vendor simulation libraries by simulator
cocotb.python, cocotb.waveformempty, truecocotb
vunit.python, vunit.arguments, vunit.waveformempty, [], trueVUnit
implementation.yosysArguments, implementation.nextpnrArguments[]Extra synthesis and place and route arguments
implementation.vivadoSynthesisArguments[]Extra synth_design options for Vivado targets
implementation.parallelRuns2Open-flow strategy runs at once
program.openFPGALoaderArguments[]Extra openFPGALoader arguments
openxc7.chipdbDirectoryemptynextpnr-xilinx chip databases
vivado.boardRepoPaths[]Company Vivado board files
asic.pdkRootempty (PDK_ROOT)PDK folder
asic.drc, asic.lvstrueRun the PDK's DRC and LVS decks
verilog.languageServer, verilog.languageServerArgumentsauto, []Verible or svls
vhdl.languageServer, vhdl.languageServerArgumentsauto, []vhdl_ls
keymapnonenone, vivado, quartus; see Edit HDL and constraints
templates.folders[]Company template folders

hdl.json keys

The project file is described on Requirements and project setup; a JSON schema gives completion and validation. The full set of keys:

KeyWhat it holdsPage
name, sources, top, includeDirs, defines, vhdlStandard, buildDirectoryThe designSetup
testbenches[]: name, top, sources, simulator, timeout, defines, cocotb, vunit, vendorTestbenches, cocotb modules, VUnit scripts, vendor simulation runsSimulate and test
formalSymbiYosys filesFormal
targets[]: name, family, device, package, chipFamily, constraints, top, frequency, board, cableFPGA targetsOpen flow, Vendor builds
targets[].activityTestbench switching activity for powerVendor builds
targets[].vivadoImported file sets, IP, block designs, upgradeIp, strategies with directives and hooks, messageConfig, waivers, qorSuggestions, incremental, outOfContext, ipRepositories, board partVendor builds
targets[].quartusedition, IP, upgradeIp, files, parameters, assignments, partitions, rapidRecompile, designAssistant, designAssistantWaivers, niosvVendor builds
targets[].libero, dieVoltage, programmerconstraintTools, cores, initializationVendor builds
targets[].radiant, performanceGrade, synthesis, xcfip, strategyFile, strategyVendor builds
targets[].debugILA probes and options, Signal Tap file, or Reveal probes, trigger units and expressionsHardware debug
targets[].configMemory, exportHardware, tandemConfiguration memory, Vitis hand-off, tandem configurationProgram the board
targets[].reconfigurationPartitions, modules and configurationsECO and partial reconfiguration
hls[]Vitis HLS componentsIP, packaging and HLS
asic[]ChipsASIC

Supported tools and their state

ToolState
Verilator, Icarus Verilog, GHDL, NVC, VUnit, cocotb 2Verified (Linux)
Verible 0.0-3622, vhdl_ls 0.88.0Verified (Linux)
SymbiYosys, eqyVerified (Linux); equivalence on open-flow netlists only
Yosys, nextpnr (iCE40, ECP5, Gowin), icepll, ecppll, gowin_pllVerified (Linux)
openXC7 (nextpnr-xilinx, Project X-Ray)Verified (Linux); bitstream built, not programmed
OpenROAD, KLayout 0.28 and 0.30, Magic 8.3.465, netgen 1.5.272Verified (Linux) on the test designs
openFPGALoaderModelled; no board programmed
AMD Vivado, Vitis HLSKit shipped; not yet run against Vivado
Altera Quartus PrimeKit shipped; not yet run against Quartus
Microchip Libero SoC, FlashPro ExpressKit shipped; not yet run
Lattice Radiant, Radiant ProgrammerKit shipped; not yet run
Questa, Riviera-PRO, Xcelium, VCS, XSimKit shipped (Vivado and Quartus flows); modelled (Libero)

File formats

FormatWhat the module doesState
.v, .vh, .sv, .svh, .vhd, .vhdlColouring always; language servers, lint, elaboration with the environment onVerified (Linux)
.pcf, .lpf, .cst, .sdc, .xdcColouring, checks against the top, I/O planner editsVerified (Linux) for placement constraints
.pdc, .ldc, .fdc, .ndc (Libero, Radiant)I/O planner and constraint editor edits, Libero checksKit shipped (Libero); modelled (Radiant)
hdl.jsonThe project, with a schemaVerified (Linux)
.vcd, .fstWaveform Viewer, our own readersVerified against GTKWave's reader
<dump>.layout.jsonThe waveform viewer's saved layoutVerified (Linux)
.ghwNot read
.sby, .eqyFormal tasks and equivalence checks in the Testing viewVerified (Linux)
.gds, .oasLayout Viewer, our own readersVerified against KLayout
.xpr, .xci, .xcix, .bd (Vivado)Import, project edits, IP, diagramsReaders and writers verified on real files (Linux); Vivado runs kit shipped
component.xml (IP-XACT)Customize IP forms, packaged IPReader verified on real files (Linux); kit shipped
.wcfg (Vivado)Waveform layout over a VCD the XSim run writesKit shipped
.wdb (Vivado)Not read: proprietary
.ltx, .tsmILA probes file; ILA trigger state machine programsKit shipped
.rqsVivado QoR suggestions applied before synthesisKit shipped
.qpf, .qsf, .ip, .qip, .qsys, .ipx (Quartus)Import, assignment edits, IP, diagrams, the IP catalogueReaders and writers verified on real files (Linux); Quartus runs kit shipped
.stp (Signal Tap)Compiled in by the flow; not edited (format undocumented)
.mif, .hexIn-System Memory saves, Nios V memory imagesKit shipped
.prjx, .cxf (Libero)Projects, SmartDesign diagramsReaders verified on real files (Linux)
.vm, .edn, .srr, .fse (Synplify Pro)Technology view, state machine encodingsModelled
.rdf, .ldf, .sty, .ipx, .rvl, .rvs, .rva, .trc, .xcf (Radiant, Diamond, Reveal)Projects, strategies, IP, Reveal projects and captures, chain filesReaders and writers verified on real files (Linux)
.gprj (Gowin EDA)ImportModelled
.mcs, .bin, .prm, .xsaConfiguration memory images, Vitis hardware platformKit shipped
.jic, .rpd, .pofQuartus configuration memory imagesModelled

Confirmations, records and policy

Writes to a device always ask first. Program FPGA Board shows the target, the board or cable, the bitstream with its size, build time and SHA-256, what the write replaces, and any timing failure, then hashes the bitstream again and refuses a changed one. Vendor hardware-debug and configuration-memory actions confirm too: programming from Hardware Debug confirms the SHA-256; JTAG-to-AXI writes and In-System Sources and Probes and memory writes are each confirmed, read back and compared; Reveal Analyzer settings are written after a confirmation; an ECO's write_bitstream runs only after a confirmation, and only once the changes are routed and DRC shows no error; Pblock edits show the XDC lines before they are written.

A Quartus In-System Memory write waiting for confirmation, with the target, cable, addresses and valuesA Quartus In-System Memory write waiting for confirmation, with the target, cable, addresses and values

Records:

  • Each programming is logged with the bitstream's hash.
  • Each build is remembered with the commit it came from, and the FPGA Implementation panel shows what changed against the previous build.
  • Each Vivado ECO is recorded in the build folder as eco.json, a change log and a replay script.
  • Vendor kits' archives hold logs, reports and generated scripts, with only the sizes and SHA-256 of bitstreams.

Your organisation's policy: with Neural Inverse Govern, builds and simulations that run as tasks or launch configurations, and changes to neuralInverse.* settings, are decided by the in-app policy check, which can allow, deny or require approval. The policy format also has rules for hardware operations such as loading a bitstream (domainActions); the HDL module does not yet submit its operations to that check in this release, so the confirmations above are the control that stops an unintended write. See Govern.

Agent tools: most HDL actions are also tools the Editor's agents can call (builds, simulations, timing queries, IP, project edits, hardware debug and more). Read-only tools run without asking; every tool that changes a file, runs a vendor tool's state-changing step, or touches a board asks you to confirm, and the Tcl consoles' agent tools confirm any Tcl that is not a query.

Downloads: the module downloads nothing itself. Part and board lists, PDKs and device databases are read from where your tools installed them, never copied into the product.

Troubleshooting

ProblemWhat to do
Only colouring worksTurn on neuralInverse.hdl.enabled (or run Neural Inverse: Enable HDL Environment) and trust the workspace.
The status bar says HDL: n of m toolsClick it or run Show HDL Tools: it lists the missing tools with install hints. Set neuralInverse.hdl.paths.<tool> for tools in custom folders.
Go to Definition does not find a module in another fileThe language servers read the sources from hdl.json; check its sources globs. Restart HDL Language Servers after big changes.
vhdl_ls does not startIt needs its standard libraries; its status says how to install them or pass --libraries.
A view stays blank after a SystemVerilog changeElaboration through Yosys failed. Lint the design and check Problems; the supported SystemVerilog subset is Yosys's.
The CDC view calls a Gray-coded FIFO unsafeA known limit of the RTL crossings view. On Vivado targets, Vivado's Report CDC classifies the pointers as synchronised; see Timing analysis and constraints.
Equivalence stops at a memoryYosys 0.33 cannot model some memories there; the partitions it cannot prove are listed.
A vendor project file written into a new folder is not listedFixed on Linux (the Editor now searches added folders); on macOS and Windows the file watcher has not been checked. Run Refresh Vivado and Quartus Projects.
A vendor build fails at the licenceThe message names the FlexNet feature, where the tool looked, and what to set.
A Pro Quartus project is built with Standard (or the reverse)The build stops with a message; install the edition the edition key names.
A vendor path behaves differently on your installationRun the matching verification kit and send the archive; vendor paths have not yet been run against the real tools.

Show HDL Tools: each tool found with its version and path, and an install hint for a missing oneShow HDL Tools: each tool found with its version and path, and an install hint for a missing one

To report a problem: what you did, what you expected, what happened, the tool versions, and a screenshot or the log, or the kit's archive.

Last reviewed 17 October 2026View as Markdown

Reference and troubleshooting · Docs · Neural Inverse