autorouter: store layer to layer names map in `Board`

This commit is contained in:
Mikolaj Wielgus 2024-06-03 13:44:09 +02:00
parent fa8c11fa36
commit bb6d975dac
2 changed files with 14 additions and 1 deletions

View File

@ -23,6 +23,7 @@ pub type NodeIndex = GenericNode<PrimitiveIndex, GenericIndex<ZoneWeight>>;
pub struct Board<R: RulesTrait> {
layout: Layout<R>,
node_to_pin: HashMap<NodeIndex, String>,
layer_to_layername: HashMap<u64, String>,
net_to_netname: HashMap<usize, String>,
}
@ -31,6 +32,7 @@ impl<R: RulesTrait> Board<R> {
Self {
layout,
node_to_pin: HashMap::new(),
layer_to_layername: HashMap::new(),
net_to_netname: HashMap::new(),
}
}
@ -114,6 +116,10 @@ impl<R: RulesTrait> Board<R> {
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) {
self.net_to_netname.insert(net, netname);
}

View File

@ -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();
for (netname, net) in netname_to_net.iter() {