NELIX Silicon Lab Docs Launch Silicon Lab Launch Silicon Lab

Understanding a project's files

The three files that do the work, and how they connect to the three stages.

Student 1 min read · Updated 2026-10-05

On this page The three that matterLook at themThe design: rtl/top.svThe test: tb/testtop.pyThe specification: docs/DESIGN.mdThe rest

A project folder has nine files. Three of them do the work. Learn these three and the rest can wait.

The three that matter#

FileIt isUsed by
rtl/top.svThe designSimulate, Synthesize and Build the chip
tb/test_top.pyThe testSimulate
openlane/config.jsonThe build settingsBuild the chip
  1. docs/DESIGN.mdwhat it must do
  2. rtl/top.svhow it does it
  3. tb/test_top.pyproof that it does
  4. openlane/config.jsonhow it is built

Look at them#

In the Workspace terminal:

sh
cd ~/project/mychip
ls -a
cat README.md
cat rtl/top.sv

README.md holds the starter's own steps, in order. Read it first.

The design: rtl/top.sv#

This is the whole design of the Blank starter: an 8-bit register.

systemverilog
module top (
    input  logic       clk,
    input  logic       rst_n,   // asynchronous, active low
    input  logic [7:0] d,
    output logic [7:0] q
);
    always_ff @(posedge clk or negedge rst_n) begin
        if (!rst_n) q <= 8'd0;
        else        q <= d;
    end
endmodule

It has inputs, an output, and one rule: on each clock edge, q takes the value of d; in reset, q is 0.

The test: tb/test_top.py#

A Python file. It starts the clock, holds reset, then drives values in and checks what comes out. Each assert is one check.

The specification: docs/DESIGN.md#

What the design must do, in words: its ports, its behaviour, its reset, its latency and its clock. See Project specifications.

The rest#

constraints/clock.sdc, config/project.toml, synth.ys and Makefile tell the tools how to run. A starter's copies work as they are. The full list is in Project structure.

Related

  • Project structureEvery file in a project, what it is for, and which ones must stay where they are.
  • Configuration filesThe actual fields of openlane/config.json, config/project.toml and constraints/clock.sdc, with the values a starter ships with.

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