NELIX Silicon Lab Docs Launch Silicon Lab Launch Silicon Lab

Project structure

Every file in a project, what it is for, and which ones must stay where they are.

EngineerStudentDeveloper 1 min read · Updated 2026-10-05

On this page The filesFiles the tools createRules

A project is a folder under ~/project. This is what a project created from a starter contains.

text
mychip/
  rtl/top.sv              the design
  tb/test_top.py          the test
  docs/DESIGN.md          the specification
  openlane/config.json    build settings
  constraints/clock.sdc   the clock constraint
  config/project.toml     project details
  synth.ys                the synthesis script
  Makefile                how the simulation is started
  README.md               the starter's own steps

The files#

PathWhat it isChange it to
rtl/top.svThe design, in SystemVerilog. The top module is named topChange what the chip does
tb/test_top.pyThe cocotb test that Simulate runsChange what is checked
docs/DESIGN.mdThe specificationRecord what the design must do
openlane/config.jsonBuild settings: clock port, clock period, die sizeChange the layout build
constraints/clock.sdcThe clock constraint, in the standard SDC formatKeep in step with the clock period in config.json
config/project.tomlThe project's name, top module, clock, reset and targetRarely needed
synth.ysThe script the Synthesize stage runsRarely needed
MakefileStarts the simulation with cocotb and Icarus VerilogRarely needed
README.mdThe starter's steps, in orderRead it first

Files the tools create#

PathCreated byWhat it is
sim_build/top.fstSimulateThe waveform
results.xmlSimulateThe test result
reports/synth.logSynthesizeThe synthesis log, ending in the cell count
reports/top_synth.vSynthesizeThe block-level netlist. The schematic is drawn from this
reports/top_gates.vSynthesizeThe gate-level netlist
openlane/runs/<run id>/Build the chipEvery working file of one build. These are large

You do not need to edit any of these.

Rules#

  • The top module is named top, in rtl/top.sv.
  • A design is one file today. The starter's Makefile, synth.ys and config.json all name that one file.
  • A guided project has a START_HERE.md in place of a README.md.

Related

  • Configuration filesThe actual fields of openlane/config.json, config/project.toml and constraints/clock.sdc, with the values a starter ships with.
  • Understanding a project's filesThe three files that do the work, and how they connect to the three stages.

Something unclear or missing? Send feedbackSign in and use Feedback to tell us.