HDL
Documentation

Version Latest

Open and edit vendor projects

Importing Vivado, Quartus, Libero, Gowin and Lattice projects into hdl.json, and editing Vivado, Quartus, Libero and Radiant project files in place so teammates who stay in the vendor IDE see the changes.

There are two ways to work with a project your team keeps in a vendor tool:

  • Import it into hdl.json, which then drives every build from the Editor.
  • Edit it in place: the Editor reads and writes the vendor's own project file, so teammates still in Vivado, Quartus, Libero or Radiant see your changes.

Our readers and writers of the vendor files are verified on Linux on real public project files. Whether the vendor tool accepts what we write is kit shipped: not yet run against Vivado, Quartus, Libero or Radiant. Nothing is verified on Windows.

Import a vendor project

Run Import Vivado, Quartus, Libero, Gowin or Lattice Project and choose the project file. What is not carried over is listed at the top of hdl.json.

ProjectWhat is carried into hdl.jsonState
Vivado (.xpr)Design, constraint, simulation and out-of-context file sets; each file's type, library, use, processing order and scope (read_xdc -ref/-cells); IP (.xci, .xcix) and block designs with their wrappers; top, generics, defines, include folders, IP repositories, board part and strategy names, into targets[].vivadoReader verified (Linux) on eight real .xpr files from Vivado 2015.2 to 2025.2; build kit shipped
Quartus (.qpf or .qsf)Every revision as a target (the last listed is taken as current, since the .qpf does not record it); the Tcl files the .qsf sources; sources with their libraries and HDL versions, top, family and device, SDC files, IP variations and Platform Designer systems (.ip, .qip, .qsys, with Nios V or HPS), parameters, global assignments (including Standard Edition partitions) and the edition, into targets[].quartus. Instance assignments stay in the revision's .qsfReader verified (Linux) on real Standard and Pro projects; build kit shipped
Libero SoC (.prjx)The HDL files (generated ones too), the constraint files and the tools that use eachReader verified (Linux) on a real .prjx; kit shipped
Gowin EDA (.gprj)Sources and the targetModelled
Lattice Diamond (.ldf) and Radiant (.rdf)Sources and a Lattice targetModelled (reader unit-tested on real .rdf files)

Builds of imported Vivado and Quartus projects copy each IP, block design and Platform Designer system into the build folder and generate it there, so your project folders are never written. IP made with an earlier Vivado stops the build, naming the release that made it, unless the target's vivado.upgradeIp is set, which upgrades only the build's copy. For Quartus, quartus.upgradeIp upgrades the build's copy with quartus_sh --ip_upgrade. A Pro project built with Standard (or the reverse) stops with a message.

Edit the project in place

The HDL side bar has three views over the Vivado, Quartus, Libero and Radiant projects in the workspace:

  • Project Sources: a Vivado project's file sets, or a Quartus revision's files, each with its type, library and use.
  • Libraries: the HDL files by the library they compile into.
  • Compile Order: the order each tool compiles in. For a Quartus revision, the order of the settings file. For Vivado in automatic mode, the order is asked of Vivado, never guessed: run Get Compile Order from Vivado. Set Vivado Compile Order Mode... switches between automatic and manual.

From a file's context menu you set type, library, use and processing order, move a file up or down, or remove it. Add Files to Vivado or Quartus Project... adds files to a file set. Every edit is written into the .xpr or .qsf in the vendor's own formatting, changing only the affected lines.

Project Sources listing a Quartus revision's and a Vivado project's files, with a file's context menu openProject Sources listing a Quartus revision's and a Vivado project's files, with a file's context menu open

Setting one file to SystemVerilog writes a single attribute into the Vivado project fileSetting one file to SystemVerilog writes a single attribute into the Vivado project file

Compile Order with a Quartus revision's files in its settings file's order, and a Vivado project in automatic modeCompile Order with a Quartus revision's files in its settings file's order, and a Vivado project in automatic mode

State: saving unchanged gives identical bytes, and each edit gives the minimal diff, on 8 real .xpr files (Vivado 2015.2 to 2025.2) and 6 real .qsf files, line endings included: verified on Linux. Vivado and Quartus opening or building the edited files: kit shipped.

Project settings

Open Vivado or Quartus Project Settings opens a settings page per project:

  • Vivado: the part, target language, default library and board part; Simulation settings (target simulator, simulation set, top module and library, run time, xvlog, xvhdl, xelab and xsim options, debug level, log all signals); Elaboration settings (top, generics, defines and include folders). Values marked "project file" are written into the .xpr at once. Values marked "Vivado" are held until Apply with Vivado, which has Vivado set them in batch on the project, so the file is written in Vivado's own form.
  • Quartus: the revision's global assignments, written to the .qsf.

Vivado Simulation settings: values written into the project file, and values Vivado applies in batchVivado Simulation settings: values written into the project file, and values Vivado applies in batch

The global assignments of a Quartus revision, one just written to its settings fileThe global assignments of a Quartus revision, one just written to its settings file

State: kit shipped. Some fields of Vivado's Elaboration page are not yet identified; the kit records every property.

Vivado actions run in batch

These run Vivado in batch with the project opened read-only, so nothing is guessed about Vivado's own file format. State: kit shipped.

CommandWhat it does
Set Vivado Project Properties with VivadoApplies properties whose stored form has not been seen in a real project file
Write Vivado Project Tcl...Has Vivado write the project as a Tcl script, for version control
Archive Vivado Project...Has Vivado archive the project, for a programme's records
Get Compile Order from VivadoShows Vivado's compile order in automatic mode

Refresh Vivado and Quartus Projects reads the project files again. A project file written into a folder made a moment before (a checkout, a tool) is found without it on Linux; on macOS and Windows the file watcher has not been checked.

Quartus Assignment Editor and Design Partitions

Quartus: Open Assignment Editor shows the .qsf's instance assignments as a table by category (pins, I/O, partitions, power, Design Assistant, other). Edit values, comments and the enabled state, add or remove rows; each change is written in place with a minimal diff (CRLF and a missing final newline kept). Assignments made in a Tcl file the .qsf sources are shown and edited in that file.

Quartus: Open Design Partitions lists the Standard (PARTITION_HIERARCHY, netlist type, preservation) or Pro (PARTITION, .qdb, colour) partitions beside the ones in hdl.json, with conflicts. Partitions and their reuse in builds are on Build with Vivado, Quartus, Libero and Radiant.

The Assignment Editor over a Quartus settings file, an I/O standard just writtenThe Assignment Editor over a Quartus settings file, an I/O standard just written

State: the .qsf and partition writers verified on Linux; Quartus reading them kit shipped.

Libero and Radiant projects

  • Libero .prjx: existing projects open and are edited in place, unchanged files written back byte for byte. The part, root and links are changed by Libero in batch after you confirm. Round trip verified on Linux on a real .prjx; Libero runs kit shipped.
  • Radiant .rdf and .sty: the project and strategy files appear in the same views and settings page and are written in place; edits Radiant makes itself go through its Tcl shell (prj_*). Modelled on real .rdf and .sty files from two public projects; not yet run against Radiant.

Every write to a project file asks you to confirm when it comes from an agent tool.

Last reviewed 17 October 2026View as Markdown

Open and edit vendor projects · Docs · Neural Inverse