Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dan-fritchman/Layout21
Integrated Circuit Layout
https://github.com/dan-fritchman/Layout21
Last synced: about 2 months ago
JSON representation
Integrated Circuit Layout
- Host: GitHub
- URL: https://github.com/dan-fritchman/Layout21
- Owner: dan-fritchman
- License: bsd-3-clause
- Created: 2021-03-15T21:01:34.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-08-04T19:04:55.000Z (5 months ago)
- Last Synced: 2024-09-17T02:32:41.739Z (4 months ago)
- Language: Rust
- Size: 8.07 MB
- Stars: 47
- Watchers: 8
- Forks: 10
- Open Issues: 18
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
- awesome-opensource-hardware - layout21
README
# Layout21
Custom integrated circuit layout.
[![test](https://github.com/dan-fritchman/Layout21/actions/workflows/test.yml/badge.svg)](https://github.com/dan-fritchman/Layout21/actions/workflows/test.yml)
* 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](./gds21) and [LEF](./lef21).Each of the internally-defined `layout21` compilers, parsers and generators are implemented in [Rust](https://www.rust-lang.org/). Cross-language compatibility of the underlying [ProtoBuf](https://developers.google.com/protocol-buffers)-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](https://crates.io). The "top-level" [layout21](./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](https://crates.io) | [docs.rs](https://docs.rs) |
| ----------- | ----------- | ------------------------------ | -------------------------- |
| [gds21](./gds21) | GDSII Parsing, Generation, and Manipulation | [![](https://img.shields.io/crates/v/gds21.svg)](https://crates.io/crates/gds21) | [![](https://docs.rs/gds21/badge.svg)](https://docs.rs/gds21) |
| [lef21](./lef21) | LEF Parsing, Generation, and Manipulation | [![](https://img.shields.io/crates/v/lef21.svg)](https://crates.io/crates/lef21) | [![](https://docs.rs/lef21/badge.svg)](https://docs.rs/lef21) |
| [layout21protos](./layout21protos) | Protobuf Schema Definitions | | |
| [layout21raw](./layout21raw) | "Raw" geometric layout. Analogous to most existing layout systems. | | |
| [layout21tetris](./layout21tetris) | Gridded gate-array-style semi-custom layout | | |
| [layout21](./layout21) | Meta-crate including all of the above | | |