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> { 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);
} }

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(); 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() {