Skip to main content

Self-contained RTL to GDS flow for simple chip designs

Project description

microlane

Self-contained RTL to GDS flow for simple chip designs

In a quest to better understand the chip hardening flow I challenged myself to write minimal implementations of Verilog parsing, synthesis, floorplanning, placement, routing and GDS streamout such that they can transform a simple RTL design into a layout that can be manufactured on Tiny Tapeout.

Of course, many corners were cut. 7000 lines of Python code written over a couple of weeks won't stand up to any serious EDA tool. But it does harden the demo design in a way that it passes DRC, LVS and the Tiny Tapeout precheck, as well as the gate-level cocotb testbench and the transistor-level SPICE simulation.

Limitations

  • Only the sky130 PDK is supported (with the high density standard cells).
  • The floorplan is fixed to use a single 1x1 Tiny Tapeout tile.
  • The design has to fit in a single Verilog module.
  • There is only one clock domain. All synchronous logic has to use posedge clk.
  • The gate level netlist is not optimised, so the area needed will be higher than usual.
  • There is no static timing analysis. To prevent hold violations the design is modified to use a two phase non-overlapping clock generated internally. This ensures that it will work at some frequency but not at a particular one known in advance. Also, two physical clock ticks will correspond to one logical clock tick.
  • There is no buffering for high fanout nets. Not even for clock and reset, which are routed as regular signals. The design should still work but at a lower speed.
  • There is no separate global and detailed placement, nor global and detailed routing. Performing them in a single step incurs extra runtime and memory use.
  • The flow is in general rough around the edges. Features not covered by the demo design are only lightly tested and might break or raise "not implemented" errors. Changing the random seed can cause DRC violations in designs that worked previously.
  • DRC, LVS, etc. are not part of the flow. You will need external tools for verification.

Usage

You can try hardening the demo design with:

pip install microlane
microlane demo.v

The command line interface writes outputs to the current directory and uses fixed settings. For more control, you can import the microlane library from a script and change the configuration.

References

These resources have been helpful in designing the microlane flow:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

microlane-0.0.1.tar.gz (98.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

microlane-0.0.1-py3-none-any.whl (95.8 kB view details)

Uploaded Python 3

File details

Details for the file microlane-0.0.1.tar.gz.

File metadata

  • Download URL: microlane-0.0.1.tar.gz
  • Upload date:
  • Size: 98.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for microlane-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f5c83c667c5e3fb13e69d3b805120fd851eca3482a7a9930b96b8765242cbac1
MD5 6dd00278078d144697367c8ce6829341
BLAKE2b-256 c3c704f9fc338e369e4d24a6aca603c870225745675bccd31bb04cab8a110a2c

See more details on using hashes here.

File details

Details for the file microlane-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: microlane-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 95.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for microlane-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c28c8e771b86017ead9c33c7393887e0bf42e5ddd744c92d354dbdc3aeb01157
MD5 1b27c998b3784c6578e9c8f4ae179f84
BLAKE2b-256 b9020cc6280f87e9d95f900699cd33862d676b68a977696c6f26a922b3a44441

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page