diff --git a/src/autorouter/board.rs b/src/autorouter/board.rs index f60ee49..e944694 100644 --- a/src/autorouter/board.rs +++ b/src/autorouter/board.rs @@ -23,6 +23,7 @@ pub type NodeIndex = GenericNode>; pub struct Board { layout: Layout, node_to_pin: HashMap, + layer_to_layername: HashMap, net_to_netname: HashMap, } @@ -31,6 +32,7 @@ impl Board { Self { layout, node_to_pin: HashMap::new(), + layer_to_layername: HashMap::new(), net_to_netname: HashMap::new(), } } @@ -114,6 +116,10 @@ impl Board { 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); } diff --git a/src/dsn/design.rs b/src/dsn/design.rs index 837f73d..6e2c9b2 100644 --- a/src/dsn/design.rs +++ b/src/dsn/design.rs @@ -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() {