1 release (0 unstable)

3.0.0-pre.2 Jan 11, 2023

#15 in #integrated

Download history 4/week @ 2024-07-12 14/week @ 2024-07-19 21/week @ 2024-07-26 3/week @ 2024-08-02 5/week @ 2024-08-16 13/week @ 2024-08-23 7/week @ 2024-08-30 23/week @ 2024-09-06 24/week @ 2024-09-13 56/week @ 2024-09-20 20/week @ 2024-09-27

58 downloads per month

BSD-3-Clause

430KB
8K SLoC

Layout21

Custom integrated circuit layout.

test

  • A layered suite of layout-data formats, each expressed in the ProtoBuf schema description language.
  • Libraries for compiling from more abstract and terse such expressions into more-detailed.
  • Exchange with industry-standard formats such as GDSII and LEF.

Each of the internally-defined layout21 compilers, parsers and generators are implemented in Rust. Cross-language compatibility of the underlying ProtoBuf-based data schema allows for usage in most other popular languages.

Like most large Rust projects layout21 is a multi-crate workspace. Some internal crates are publicly available through crates.io. The "top-level" layout21 crate includes dependencies on all, and is the easiest entry-point for using all layout21 functionality. In layout21's namespace and in documentation most child-crates are referred to by their suffixes, i.e. layout21::raw.

Crate Description crates.io docs.rs
gds21 GDSII Parsing, Generation, and Manipulation
lef21 LEF Parsing, Generation, and Manipulation
layout21protos Protobuf Schema Definitions
layout21raw "Raw" geometric layout. Analogous to most existing layout systems.
layout21tetris Gridded gate-array-style semi-custom layout
layout21 Meta-crate including all of the above

Dependencies

~11–21MB
~308K SLoC