mirror of https://codeberg.org/topola/topola.git
fix(autorouter/anterouter): Don't fan out if ratline is on same layer
This commit is contained in:
parent
2f7cee62a6
commit
570a3a80f8
|
|
@ -43,7 +43,7 @@ pub enum TerminatingScheme {
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct AnterouterPlan {
|
pub struct AnterouterPlan {
|
||||||
pub layer_map: BTreeMap<RatlineUid, usize>,
|
pub layer_map: BTreeMap<RatlineUid, usize>,
|
||||||
pub ratline_endpoint_dot_to_terminating_scheme: BTreeMap<FixedDotIndex, TerminatingScheme>,
|
pub ratline_terminating_schemes: BTreeMap<(RatlineUid, FixedDotIndex), TerminatingScheme>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Anterouter {
|
pub struct Anterouter {
|
||||||
|
|
@ -73,8 +73,8 @@ impl Anterouter {
|
||||||
|
|
||||||
if let Some(terminating_scheme) = self
|
if let Some(terminating_scheme) = self
|
||||||
.plan
|
.plan
|
||||||
.ratline_endpoint_dot_to_terminating_scheme
|
.ratline_terminating_schemes
|
||||||
.get(&endpoint_dots.0)
|
.get(&(*ratline, endpoint_dots.0))
|
||||||
{
|
{
|
||||||
match terminating_scheme {
|
match terminating_scheme {
|
||||||
TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter
|
TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter
|
||||||
|
|
@ -99,8 +99,8 @@ impl Anterouter {
|
||||||
|
|
||||||
if let Some(terminating_scheme) = self
|
if let Some(terminating_scheme) = self
|
||||||
.plan
|
.plan
|
||||||
.ratline_endpoint_dot_to_terminating_scheme
|
.ratline_terminating_schemes
|
||||||
.get(&endpoint_dots.1)
|
.get(&(*ratline, endpoint_dots.1))
|
||||||
{
|
{
|
||||||
match terminating_scheme {
|
match terminating_scheme {
|
||||||
TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter
|
TerminatingScheme::ExistingFixedDot(terminating_dot) => autorouter
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ impl Planner {
|
||||||
.enumerate()
|
.enumerate()
|
||||||
.map(|(i, ratline)| (*ratline, i % 2))
|
.map(|(i, ratline)| (*ratline, i % 2))
|
||||||
.collect(),
|
.collect(),
|
||||||
ratline_endpoint_dot_to_terminating_scheme: BTreeMap::new(),
|
ratline_terminating_schemes: BTreeMap::new(),
|
||||||
};
|
};
|
||||||
|
|
||||||
for ratline in ratlines {
|
for ratline in ratlines {
|
||||||
|
|
@ -45,8 +45,8 @@ impl Planner {
|
||||||
ratline.ref_(autorouter).endpoint_dots().0,
|
ratline.ref_(autorouter).endpoint_dots().0,
|
||||||
layer,
|
layer,
|
||||||
) {
|
) {
|
||||||
plan.ratline_endpoint_dot_to_terminating_scheme.insert(
|
plan.ratline_terminating_schemes.insert(
|
||||||
ratline.ref_(autorouter).endpoint_dots().0,
|
(*ratline, ratline.ref_(autorouter).endpoint_dots().0),
|
||||||
terminating_scheme,
|
terminating_scheme,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -56,8 +56,8 @@ impl Planner {
|
||||||
ratline.ref_(autorouter).endpoint_dots().1,
|
ratline.ref_(autorouter).endpoint_dots().1,
|
||||||
layer,
|
layer,
|
||||||
) {
|
) {
|
||||||
plan.ratline_endpoint_dot_to_terminating_scheme.insert(
|
plan.ratline_terminating_schemes.insert(
|
||||||
ratline.ref_(autorouter).endpoint_dots().1,
|
(*ratline, ratline.ref_(autorouter).endpoint_dots().1),
|
||||||
terminating_scheme,
|
terminating_scheme,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue