Struct libreda_pnr::route::airwire_router::AirWireRouter
source · pub struct AirWireRouter {
air_wire_layer: u8,
wire_thickness: SInt,
full_mesh: bool,
}Expand description
Router that creates air wires between routing terminals in a star-topology. This does not produce a legal routing and has the only purpose to visualize the connectivity of components.
Fields§
§air_wire_layer: u8Layer for the air wires.
wire_thickness: SIntWire thickness.
full_mesh: boolDraw a full mesh instead of a star network.
Implementations§
Trait Implementations§
source§impl SimpleRouter for AirWireRouter
impl SimpleRouter for AirWireRouter
source§fn compute_routes_impl(
&self,
_boundary: Rect<SInt>,
net_terminals: &HashMap<usize, Vec<Vec<(SimpleRPolygon<SInt>, u8)>>>,
_obstacles: &Vec<(SimpleRPolygon<SInt>, u8)>
) -> HashMap<usize, SimpleRoutedNet>
fn compute_routes_impl( &self, _boundary: Rect<SInt>, net_terminals: &HashMap<usize, Vec<Vec<(SimpleRPolygon<SInt>, u8)>>>, _obstacles: &Vec<(SimpleRPolygon<SInt>, u8)> ) -> HashMap<usize, SimpleRoutedNet>
Routing algorithm implementation.
source§fn compute_routes(
&self,
boundary: Rect<SInt>,
net_terminals: &HashMap<usize, Vec<Vec<(SimpleRPolygon<SInt>, u8)>>>,
obstacles: &Vec<(SimpleRPolygon<SInt>, u8)>
) -> HashMap<usize, SimpleRoutedNet>
fn compute_routes( &self, boundary: Rect<SInt>, net_terminals: &HashMap<usize, Vec<Vec<(SimpleRPolygon<SInt>, u8)>>>, obstacles: &Vec<(SimpleRPolygon<SInt>, u8)> ) -> HashMap<usize, SimpleRoutedNet>
Wrapper around
compute_route_impl().
Does some sanity checks before and after. Read moresource§fn draw_routes<LN: L2NEdit<Coord = SInt>>(
&self,
chip: &mut LN,
routes: HashMap<usize, SimpleRoutedNet>,
routes_cell: LN::CellId,
routing_layers: &Vec<LN::LayerId>,
via_layers: &Vec<LN::LayerId>
)
fn draw_routes<LN: L2NEdit<Coord = SInt>>( &self, chip: &mut LN, routes: HashMap<usize, SimpleRoutedNet>, routes_cell: LN::CellId, routing_layers: &Vec<LN::LayerId>, via_layers: &Vec<LN::LayerId> )
Draw the computed routes into the layout. Read more
source§fn route_all_nets<LN: L2NEdit<Coord = SInt>>(
&self,
chip: &mut LN,
top_cell: LN::CellId,
routing_layers: &Vec<LN::LayerId>,
via_layers: &Vec<LN::LayerId>
) -> Result<(), Vec<LN::NetId>>
fn route_all_nets<LN: L2NEdit<Coord = SInt>>( &self, chip: &mut LN, top_cell: LN::CellId, routing_layers: &Vec<LN::LayerId>, via_layers: &Vec<LN::LayerId> ) -> Result<(), Vec<LN::NetId>>
Route all nets in the
top_cell. Read moresource§fn route_nets<LN: L2NEdit<Coord = SInt>>(
&self,
chip: &mut LN,
top_cell: LN::CellId,
routing_layers: &Vec<LN::LayerId>,
via_layers: &Vec<LN::LayerId>,
nets: &Vec<LN::NetId>
) -> Result<(), Vec<LN::NetId>>
fn route_nets<LN: L2NEdit<Coord = SInt>>( &self, chip: &mut LN, top_cell: LN::CellId, routing_layers: &Vec<LN::LayerId>, via_layers: &Vec<LN::LayerId>, nets: &Vec<LN::NetId> ) -> Result<(), Vec<LN::NetId>>
Route a set of nets and creates a new cell that contains the shapes of the routes.
Also outputs the routing terminal shapes to this cell (for debugging). Read more