The LibreLane config
config.json is the instruction sheet for LibreLane. It names your design, lists the Verilog sources, sets timing targets, and selects the process design kit (PDK).
What config.json does#
When you click Run, Vulkos sends your project files and this config to a cloud runner. LibreLane reads the JSON and executes synthesis through signoff using those settings. A mismatch between the config and your RTL (wrong module name, missing file, wrong clock port) is a common source of early failures.
Essential fields#
These fields appear in every sky130 template project:
{
"DESIGN_NAME": "counter",
"VERILOG_FILES": ["dir::src/counter.v"],
"CLOCK_PORT": "clk",
"CLOCK_PERIOD": 10.0,
...
}DESIGN_NAMEmust match your top-level module name exactly.VERILOG_FILESlists every synthesizable source. Thedir::prefix includes all.vfiles in that folder.CLOCK_PORTnames the clock input LibreLane uses for timing closure.CLOCK_PERIODis the target clock period in nanoseconds (10.0 means 100 MHz).
See Key parameters for the rest of the commonly tuned settings.
PDK block#
Nested under pdk::sky130A and scl::sky130_fd_sc_hd, you can override PDK-specific values such as the clock period for that library. Template projects target the SkyWater sky130 open PDK with the high-density standard-cell library.
Editing the config#
Open config.json in the IDE. Use raw JSON if you already know LibreLane, or switch to the guided form for the fields you touch most often. Both views stay in sync. See GUI form vs JSON.