Module libreda_db::netlist [−][src]
Data structures for representation of circuit-level netlists.
A netlist represents the connections of electrical components (here called 'circuits') such as standard-cells or macro blocks. Each of the circuits can be composed of instances of other circuits (recursion is not allowed). A circuit serves as a template for circuit instances. The circuit defines 'pins' which represent the electrical connectors to the circuit. Pins can be connected electrically by 'nets' which represent an electrical potential like a metal wire. Nets are local to a circuit.
Netlists can be implemented in different ways. This module provides RcNetlist
and HashMapNetlist
.
RcNetlist
emulates an object oriented approach, where circuits, instances, pins, nets, etc., are
represented as a resource counted struct. This is convenient in certain cases but is a complicated
pattern in respect of mutability. HashMapNetlist
is a simpler structure without any interior mutability
patterns.
Some traits are used to create abstractions over the different netlist implementations:
NetlistBase
defines basic functions for accessing and traversing a netlist.NetlistEdit
defines basic functions for building and modifying a netlist.
Modules
direction | The type of a pin is specified by a signal direction. |
hashmap_netlist | Alternative netlist implementation. Not currently used, nor complete. |
io | Input and output interface definitions for netlists. |
prelude | The |
rc_netlist | Data structures for representation of circuit-level netlists. |
traits | Traits for netlist data types. |