Mikolaj Wielgus
00e3bb87bf
feat(specctra-core): Add basic via SES export (constant size and only two layers for now)
2025-11-24 00:05:19 +01:00
Mikolaj Wielgus
33d91b0a87
refactor(autorouter/planar_autoroute): Slightly reduce code duplication
2025-11-21 21:39:42 +01:00
Mikolaj Wielgus
64669d5d0b
feat(autorouter/multilayer_reconfigurer): Use A* to search for multilayer configurations
2025-11-20 02:54:52 +01:00
Mikolaj Wielgus
5e8d5974f4
refactor(astar): Add interface to separately push single node and pop
2025-11-19 19:29:38 +01:00
Mikolaj Wielgus
a8a2e8d8cb
feat(autorouter/planar_reconfigurer): Make g-scores proportional to number of changed routes
2025-11-19 00:18:30 +01:00
Mikolaj Wielgus
f2c67ed81d
fix(autorouter/planar_reconfigurer): Differentiate search nodes also by length
...
This fixes 4x4_1206_led_matrix_breakout test.
2025-11-18 19:05:22 +01:00
Mikolaj Wielgus
88f8b3610d
refactor(autorouter/planar_reconfigurer): Use generic A* to find planar configurations
...
This makes the 4x4_1206_led_matrix_breakout test fail.
However, commenting out
```
if curr_g_score + *edge_g_cost >= entry_score {
continue;
}
```
makes the test successful again. I will investigate this soon.
2025-11-18 18:42:34 +01:00
Mikolaj Wielgus
50db79ebd3
feat(router/navmesh): Reduce number of navedges even further
2025-11-17 00:40:57 +01:00
Mikolaj Wielgus
1694227135
feat(router/navmesh): Reduce number of navedges
...
This provides a speedup, but may break squeezing through under bends in
some corner cases.
2025-11-16 23:38:00 +01:00
Mikolaj Wielgus
2f4b016a8b
fix(autorouter/planar_reconfigurer): Use heap-based best-first search for ratline permutations
...
This fixes an infinite loop bug.
2025-11-07 02:25:58 +01:00
Mikolaj Wielgus
8216d3a907
feat(topola-egui): Add sliders to set autorouting timeouts (not fully translated yet)
2025-11-04 20:02:34 +01:00
Mikolaj Wielgus
9afe862edc
feat(topola-egui): Display timeout of planar autoroute too
2025-11-04 17:15:27 +01:00
Mikolaj Wielgus
18e8f9812c
feat(stepper): Replace overengineered SMA rate timeout with two accumulators
2025-11-04 16:37:41 +01:00
Mikolaj Wielgus
9345d5de8a
feat(autorouter/multilayer_reconfigurator): Add reconfiguration trigger here too
2025-11-04 15:29:15 +01:00
Mikolaj Wielgus
e1774ce6d9
fix(stepper): Correct SMA rate formula to divide change by sampling time interval
2025-11-04 05:28:02 +01:00
Mikolaj Wielgus
d3913dbdce
feat(autorouter/multilayer_reconfigurator): Use our new trigger mechanism for reconfiguration
2025-11-04 05:17:31 +01:00
Mikolaj Wielgus
2e507b7cab
refactor(autorouter/multilayer_reconfigurer): Process planar autoroute result in separate method
2025-11-04 03:22:46 +01:00
Mikolaj Wielgus
5d41e7d784
refactor(autorouter/multilayer_reconfigurer): Store last planar status
2025-11-03 20:20:53 +01:00
Mikolaj Wielgus
eff58d99e3
feat(autorouter/multilayer_reconfigurator): Add tracking of SMA of rate
...
SMA = Simple Moving Average
2025-11-03 01:26:49 +01:00
Mikolaj Wielgus
0f3f96d4af
feat(topola-egui): Add way to access subprogress and subprogress bar
...
This will be useful in future commits when I will be improving
reconfiguration triggers.
2025-11-01 02:40:25 +01:00
Mikolaj Wielgus
c0f4319a13
refactor(stepper): Join progress estimation into one method
2025-10-31 02:08:42 +01:00
Mikolaj Wielgus
c06180b659
fix(autorouter/multilayer_preconfigurer): Make ratline endpoint terminating dot on routed layer
2025-10-28 15:29:54 +01:00
Mikolaj Wielgus
bd37d2f7f8
feat(autorouter/multilayer_reconfigurer): Only relayer ratlines failed in best case
2025-10-28 15:09:47 +01:00
Mikolaj Wielgus
01b6691257
feat(autorouter/multilayer_reconfigurer): Increment layers of ratlines that failed to route
2025-10-28 02:51:20 +01:00
Mikolaj Wielgus
23f9eb3e35
feat(autorouter/multilayer_preconfigurer): At first autoroute ratlines on their layers
2025-10-28 00:08:07 +01:00
Mikolaj Wielgus
81e27f0f60
refactor(autorouter/multilayer_reconfigurer): Move multilayer reconfiguration trigger code
2025-10-27 22:55:53 +01:00
Mikolaj Wielgus
813345863e
feat(autorouter/multilayer_reconfigurator): Finally implement reconfiguration of layer map
2025-10-27 00:09:13 +01:00
Mikolaj Wielgus
8384c15a38
refactor(autorouter/anterouter): Represent terminating schemes preservably across reconfigurations
2025-10-26 22:04:30 +01:00
Mikolaj Wielgus
bd32885964
fix(autorouter/anterouter): Remove via from terminating dot map if fanout seg creation fails
2025-10-26 00:53:48 +02:00
Mikolaj Wielgus
1455da3ee5
fix(board/edit): Correctly removed nodes from pins
...
Was botched in previous commit.
2025-10-25 01:32:30 +02:00
Mikolaj Wielgus
c1880cfbb3
fix(board/edit): Record changes to pin nodes too, which was something I forgot
2025-10-25 00:32:28 +02:00
Mikolaj Wielgus
91fb18b166
refactor(autorouter/ratline): Don't store `layer` in ratlines
...
Translayer ratlines exist, so it makes no sense to assign them a layer.
2025-10-24 15:26:53 +02:00
Mikolaj Wielgus
4ad58f1654
refactor(autorouter/planar_autoroute): Don't use layer as one of keys in terminating dot map
2025-10-24 14:36:27 +02:00
Mikolaj Wielgus
d896fe7322
refactor(autorouter/autorouter): Store terminating dots in configuration instead of ratsnest
2025-10-24 03:48:35 +02:00
Mikolaj Wielgus
8d0e524f75
refactor(autorouter/autorouter): Store ratlines in `BTreeSet` before ordering
...
This makes the purpose of the preconfiguration step clearer.
2025-10-23 19:32:51 +02:00
Mikolaj Wielgus
5c39bd60de
refactor(autorouter/autorouter): Do some more refactors, renamings, struct-wrappings
2025-10-23 16:40:19 +02:00
Mikolaj Wielgus
0311aee613
refactor(autorouter/multilayer_reconfigurator): Wrap multilayer autoroute inputs in new structs
2025-10-23 02:44:28 +02:00
Mikolaj Wielgus
630c3f0202
refactor(autorouter/planar_autoroute): Wrap ratline vec in new "configuration" struct
...
This will be useful later.
2025-10-22 18:29:15 +02:00
Mikolaj Wielgus
d50e346706
feat(autorouter/autorouter): Remove "compare detours"
...
This was a time-expensive way to presort ratlines, it's much faster to
instead operate on ratline line segments.
2025-10-22 01:44:52 +02:00
Mikolaj Wielgus
b7fd6a0cab
feat(autorouter/autorouter): Impl. rudimentary multilayer reconfigurator (not yet functional)
2025-10-21 18:00:55 +02:00
Mikolaj Wielgus
0985e0a427
refactor(autorouter/multilayer_autoroute): Count planar reconfigurations (not used yet)
...
In preparation for implementation of rudimentary multilayer reconfiguration.
2025-10-20 18:26:24 +02:00
Mikolaj Wielgus
1b3ecc37b1
refactor(specctra-core): Remove `layer_count` from `SpecctraMesadata`
...
This information is already stored in `Drawing`, I somehow missed that
when I was adding this field.
2025-10-20 14:24:41 +02:00
Mikolaj Wielgus
1d8745e15d
refactor(autorouter/connected_components): Rename "conncomps" to "connected components"
...
It's easier to understand without abbreviation.
2025-10-20 14:05:44 +02:00
Mikolaj Wielgus
63764a7e29
test: Add stable multivibrator test, the first multilayer autorouting test
2025-10-20 00:30:44 +02:00
Mikolaj Wielgus
dd8a4c5808
fix(autorouter/conncomps): Take into account vias when computing connected components
2025-10-19 22:31:16 +02:00
Mikolaj Wielgus
10dc1a86aa
refactor(layout/layout): Add method to retrieve fixed dot's via (not used yet)
2025-10-19 20:51:44 +02:00
Mikolaj Wielgus
260aca064d
refactor(autorouter/planar_reconfigurator): Return different status upon reconfiguration
2025-10-19 16:08:26 +02:00
Mikolaj Wielgus
4306aa33c4
refactor(stepper): Have reconfigure configuration take any type, not only `Vec<_>`
2025-10-18 16:25:20 +02:00
Mikolaj Wielgus
f96728fbe0
refactor(autorouter/autorouter): Rename permut{e,er,ate,ator} to reconfigur{e,er,ate,ator}
...
Since, in more general cases, we don't only reorder, but also change
values of some parameters.
2025-10-18 15:59:39 +02:00
Mikolaj Wielgus
212a63aa57
refactor(autorouter/autorouter): Do some renaming to distinguish multilayer from planar
2025-10-18 15:04:18 +02:00