mirror of https://codeberg.org/topola/topola.git
autorouter: store layer to layer names map in `Board`
This commit is contained in:
parent
fa8c11fa36
commit
bb6d975dac
|
|
@ -23,6 +23,7 @@ pub type NodeIndex = GenericNode<PrimitiveIndex, GenericIndex<ZoneWeight>>;
|
||||||
pub struct Board<R: RulesTrait> {
|
pub struct Board<R: RulesTrait> {
|
||||||
layout: Layout<R>,
|
layout: Layout<R>,
|
||||||
node_to_pin: HashMap<NodeIndex, String>,
|
node_to_pin: HashMap<NodeIndex, String>,
|
||||||
|
layer_to_layername: HashMap<u64, String>,
|
||||||
net_to_netname: HashMap<usize, String>,
|
net_to_netname: HashMap<usize, String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -31,6 +32,7 @@ impl<R: RulesTrait> Board<R> {
|
||||||
Self {
|
Self {
|
||||||
layout,
|
layout,
|
||||||
node_to_pin: HashMap::new(),
|
node_to_pin: HashMap::new(),
|
||||||
|
layer_to_layername: HashMap::new(),
|
||||||
net_to_netname: HashMap::new(),
|
net_to_netname: HashMap::new(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -114,6 +116,10 @@ impl<R: RulesTrait> Board<R> {
|
||||||
zone
|
zone
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn bename_layer(&mut self, layer: u64, layername: String) {
|
||||||
|
self.layer_to_layername.insert(layer, layername);
|
||||||
|
}
|
||||||
|
|
||||||
pub fn bename_net(&mut self, net: usize, netname: String) {
|
pub fn bename_net(&mut self, net: usize, netname: String) {
|
||||||
self.net_to_netname.insert(net, netname);
|
self.net_to_netname.insert(net, netname);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -323,7 +323,14 @@ impl DsnDesign {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// The clone here is bad, we'll have something better later on.
|
// The clones here are bad, we'll have something better later on.
|
||||||
|
|
||||||
|
let layername_to_layer = &board.layout().drawing().rules().layername_to_layer.clone();
|
||||||
|
|
||||||
|
for (layername, layer) in layername_to_layer.iter() {
|
||||||
|
board.bename_layer(*layer, layername.to_string());
|
||||||
|
}
|
||||||
|
|
||||||
let netname_to_net = &board.layout().drawing().rules().netname_to_net.clone();
|
let netname_to_net = &board.layout().drawing().rules().netname_to_net.clone();
|
||||||
|
|
||||||
for (netname, net) in netname_to_net.iter() {
|
for (netname, net) in netname_to_net.iter() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue