Nishkam is free practice for digital chip designers. Solve problems in your browser, and use Studio, a free editor for the whole path from RTL to a finished layout (GDS), on the open gf180 process. Nothing to install.
Build a 4-bit up-counter. Synchronous active-high reset. Count when en=1, wrap from 15 to 0, hold otherwise.
Checked against a reference for every input sequence, 20 cycles deep.
Write Verilog, press submit, and see right away whether it matches the reference. If not, you see the exact cycle where it differs.
Start practicing →Edit, simulate, synthesize and view your design as a schematic and a layout. Place, route, timing and layout checks also run in the browser. For the real LibreLane flow with a clock tree, connect a small helper on your own computer.
Open Studio →An editor with your design and its testbench, and one button to run the whole flow.
Your Verilog drawn as logic, so you can check it is what you meant.
The finished GDS of tiny8, a small 8-bit CPU, on gf180mcuD, layer by layer.
Real OpenSTA results: slack for every path.
Screenshots of Studio. The layout and timing come from a real LibreLane run of tiny8.
Write Verilog in a code editor. The problems are written by working chip designers.
A solver tries every possible input for 20 cycles, so there are no hidden test cases. If something differs, you see the exact cycle.
Turn a working design into a real layout: synthesis, placement, routing and checks, using open tools.
Your design and a reference are joined and handed to Yosys' SAT solver, running in your browser. It looks for any sequence of inputs that makes them disagree. When it finds one, you get that exact trace, not "test 7 failed".
Cycle 13: expected 10, yours 0. Your counter wraps at 9.
Most of Studio runs inside your browser tab, with nothing to install. For the full LibreLane flow, you can optionally start a small helper on your own computer. It runs the tools and sends results back to the page. Your files stay on your machine.
Your RTL, the problem, the results.
Listens only on your computer, and only accepts this page with your private token.
Yosys, OpenROAD, Magic, KLayout.
| Stage | Tools | Runs in |
|---|---|---|
| Lint | Yosys, Verilator (verilator-wasm) | Browser |
| Simulation | Icarus Verilog | Browser |
| Waveforms | Surfer | Browser |
| Synthesis | Yosys + ABC, gf180mcu 7-track cells | Browser |
| Schematic | netlistsvg + ELK | Browser |
| Placement | graywolf (qflow) · OpenROAD via LibreLane | Browser · Runner |
| Clock tree | OpenROAD TritonCTS via LibreLane | Runner |
| Routing | qrouter (qflow) · OpenROAD via LibreLane | Browser · Runner |
| Timing | OpenSTA, before layout and after routing (with wires from Magic) · OpenSTA via LibreLane | Browser · Runner |
| DRC · GDS | Magic · Magic, KLayout via LibreLane | Browser · Runner |
| RC extraction | Magic (wires to SPEF, for timing) | Browser |
| LVS | Netgen | Browser · Runner |
| Layout view | KLayout (kwasm) 2D / 3D · Tiny Tapeout Explorer 3D | Browser |
All open source. PDK: GlobalFoundries gf180mcuD. Runner = LibreLane on your machine.
निष्काम (nishkām): doing the work fully, without craving the reward. Nishkam is free, open practice for anyone who wants to learn the craft of chip design.