mirror of
https://github.com/Architeuthis-Flux/Jumperless.git
synced 2025-02-21 04:47:29 +01:00
Update README.md
This commit is contained in:
parent
432fb443da
commit
70b278076f
@ -287,7 +287,7 @@ Here's the schematic of just the crosspoints, the Nano header, and the breadboar
|
||||
If you look closely, you'll see that there generally 2 connections (I'm calling these 2 connections **Lanes** between each breadboard chip, except for the chip that is across from it on the breadboard. And every breadboard chip has one connection to each of the special function chips. The pins on the Nano header has a connection to 2 special function chips (interleaved to make it easier to connect continuous pairs of pins to the breadboard).
|
||||
|
||||
|
||||
Here's the high level outline of what NetsToChipConnections.cpp is doing
|
||||
Here's the high level outline of what [NetsToChipConnections.cpp](src/NetsToChipConnections.cpp) is doing
|
||||
|
||||
- Sorts all the paths by Net
|
||||
This sort of sets priority, lower net numbers (so all the special function nets) will be picked first and are more likely to have direct connections chosen
|
||||
@ -312,10 +312,308 @@ At this point, any paths that have a simple direct connection should be done, no
|
||||
- Resolve uncommitted hops, anything set as -2 gets a random unconnected pin assigned to it at the very end so it doesn't take up connection space
|
||||
|
||||
|
||||
There's a lot more subltlety to this but if I go into any more detail you might as well just read the code itself. It will all be in the file NetsToChipConnections.cpp, and if you're running it on a Jumperless or just an RP2040, you can set the Chip Connections and Chip Connections Alt debug flags and it will show you everything it's doing in a somewhat nicely formatted way. There are comments in the code but there are a lot of nested array things that can get pretty confusing, if you need help understanding what's going on in a particular function, let me know and I'd be happy to walk you through it.
|
||||
There's a lot more subtlety to this but if I go into any more detail you might as well just read the code itself. It will all be in the file [NetsToChipConnections.cpp](src/NetsToChipConnections.cpp) , and if you're running it on a Jumperless or just an RP2040, you can set the Chip Connections and Chip Connections Alt debug flags and it will show you everything it's doing in a somewhat nicely formatted way. There are comments in the code but there are a lot of nested array things that can get pretty confusing, if you need help understanding what's going on in a particular function, let me know and I'd be happy to walk you through it.
|
||||
|
||||
|
||||
Here's the output with the debug flags on (with some redundant bits removed because it's really long)
|
||||
|
||||
```
|
||||
sorting paths by net
|
||||
|
||||
number of nets: 20
|
||||
path[0] net: 1
|
||||
path[1] net: 8
|
||||
path[2] net: 9
|
||||
path[3] net: 10
|
||||
path[4] net: 11
|
||||
path[5] net: 12
|
||||
path[6] net: 13
|
||||
path[7] net: 14
|
||||
path[8] net: 15
|
||||
path[9] net: 16
|
||||
path[10] net: 17
|
||||
path[11] net: 18
|
||||
path[12] net: 19
|
||||
number unique of nets: 26
|
||||
pathIndex: 13
|
||||
numberOfPaths: 13
|
||||
|
||||
0 [24,GND,Net 1], 1 [D4,14,Net 8], 2 [10,36,Net 9], 3 [D6,40,Net 10],
|
||||
4 [D7,39,Net 11], 5 [D8,38,Net 12], 6 [D9,6,Net 13], 7 [D10,7,Net 14],
|
||||
8 [D11,9,Net 15], 9 [D12,8,Net 16], 10 [D3,25,Net 17], 11 [D2,23,Net 18],
|
||||
12 [D1,45,Net 19],
|
||||
|
||||
|
||||
finding start and end chips
|
||||
|
||||
path[0]
|
||||
nodes [24-100]
|
||||
|
||||
finding chips for nodes: 24-GND
|
||||
|
||||
node: 1
|
||||
|
||||
chip: D
|
||||
|
||||
node: 2
|
||||
|
||||
special function candidate chips: I J L
|
||||
Path 0 type: BB to SF
|
||||
Node 1: 24 Node 2: 100
|
||||
Chip 1: 3 Chip 2: -1
|
||||
|
||||
|
||||
path[1]
|
||||
nodes [74-14]
|
||||
|
||||
finding chips for nodes: D4-14
|
||||
|
||||
node: 1
|
||||
|
||||
nano candidate chips: J K
|
||||
|
||||
node: 2
|
||||
|
||||
chip: B
|
||||
Path 1 type: BB to NANO
|
||||
Node 1: 14 Node 2: 74
|
||||
Chip 1: 1 Chip 2: -1
|
||||
|
||||
|
||||
... [removed for space]
|
||||
|
||||
|
||||
path[11]
|
||||
nodes [72-23]
|
||||
|
||||
finding chips for nodes: D2-23
|
||||
|
||||
node: 1
|
||||
|
||||
nano candidate chips: J K
|
||||
|
||||
node: 2
|
||||
|
||||
chip: D
|
||||
Path 11 type: BB to NANO
|
||||
Node 1: 23 Node 2: 72
|
||||
Chip 1: 3 Chip 2: -1
|
||||
|
||||
|
||||
path[12]
|
||||
nodes [71-45]
|
||||
|
||||
finding chips for nodes: D1-45
|
||||
|
||||
node: 1
|
||||
|
||||
nano chip: I
|
||||
|
||||
node: 2
|
||||
|
||||
chip: F
|
||||
Path 12 type: BB to NANO
|
||||
Node 1: 45 Node 2: 71
|
||||
Chip 1: 5 Chip 2: 8
|
||||
|
||||
|
||||
paths with candidates:
|
||||
0,1,3,4,5,6,7,8,9,10,11,
|
||||
|
||||
resolving candidates
|
||||
|
||||
chips least to most crowded:
|
||||
C: 0
|
||||
G: 0
|
||||
H: 0
|
||||
J: 0
|
||||
K: 0
|
||||
L: 0
|
||||
I: 1
|
||||
E: 2
|
||||
A: 3
|
||||
B: 3
|
||||
D: 3
|
||||
F: 3
|
||||
|
||||
|
||||
sf connections: I1
|
||||
sf connections: J0
|
||||
sf connections: K0
|
||||
sf connections: L0
|
||||
C: 0
|
||||
G: 0
|
||||
H: 0
|
||||
J: 0
|
||||
K: 0
|
||||
L: 0
|
||||
I: 1
|
||||
E: 2
|
||||
A: 3
|
||||
B: 3
|
||||
D: 3
|
||||
F: 3
|
||||
path[0] chip from D to chip J chosen
|
||||
|
||||
sf connections: I1
|
||||
sf connections: J1
|
||||
sf connections: K0
|
||||
sf connections: L0
|
||||
C: 0
|
||||
G: 0
|
||||
H: 0
|
||||
K: 0
|
||||
L: 0
|
||||
I: 1
|
||||
J: 1
|
||||
E: 2
|
||||
A: 3
|
||||
B: 3
|
||||
D: 3
|
||||
F: 3
|
||||
path[1] chip from B to chip K chosen
|
||||
|
||||
|
||||
... [removed for space]
|
||||
|
||||
|
||||
sf connections: I4
|
||||
sf connections: J4
|
||||
sf connections: K3
|
||||
sf connections: L0
|
||||
C: 0
|
||||
G: 0
|
||||
H: 0
|
||||
L: 0
|
||||
E: 2
|
||||
A: 3
|
||||
B: 3
|
||||
D: 3
|
||||
F: 3
|
||||
K: 3
|
||||
I: 4
|
||||
J: 4
|
||||
path[11] chip from D to chip K chosen
|
||||
|
||||
|
||||
path[0] net: 1 24 to GND chip[0]: D x[0]: 7 y[0]: 2 chip[1]: J x[1]: 15 y[1]: 3 1 1
|
||||
|
||||
path[1] net: 8 14 to D4 chip[0]: B x[0]: 11 y[0]: 6 chip[1]: K x[1]: 6 y[1]: 1 8 8
|
||||
|
||||
path[2] net: 9 10 to 36 chip[0]: B x[0]: 8 y[0]: 2 chip[1]: E x[1]: 2 y[1]: 5 9 9
|
||||
|
||||
path[3] net: 10 40 to D6 chip[0]: F x[0]: 11 y[0]: 2 chip[1]: J x[1]: 6 y[1]: 5 10 10
|
||||
|
||||
path[4] net: 11 39 to D7 chip[0]: F x[0]: 10 y[0]: 1 chip[1]: I x[1]: 7 y[1]: 5 11 11
|
||||
|
||||
path[5] net: 12 38 to D8 chip[0]: E x[0]: 1 y[0]: 7 chip[1]: K x[1]: 10 y[1]: 4 12 12
|
||||
|
||||
path[6] net: 13 6 to D9 chip[0]: A x[0]: 0 y[0]: 5 chip[1]: I x[1]: 9 y[1]: 0 13 13
|
||||
|
||||
path[7] net: 14 7 to D10 chip[0]: A x[0]: 1 y[0]: 6 chip[1]: J x[1]: 9 y[1]: 0 14 14
|
||||
|
||||
path[8] net: 15 9 to D11 no direct path, setting altPathNeeded flag (BBtoSF)
|
||||
|
||||
path[9] net: 16 8 to D12 no direct path, setting altPathNeeded flag (BBtoSF)
|
||||
|
||||
path[10] net: 17 25 to D3 chip[0]: D x[0]: 6 y[0]: 3 chip[1]: I x[1]: 3 y[1]: 3 17 17
|
||||
|
||||
path[11] net: 18 23 to D2 chip[0]: D x[0]: 15 y[0]: 1 chip[1]: K x[1]: 4 y[1]: 3 18 18
|
||||
|
||||
path[12] net: 19 45 to D1 no direct path, setting altPathNeeded flag (BBtoSF)
|
||||
|
||||
|
||||
alt paths
|
||||
|
||||
BBtoSF path: 8
|
||||
bb: A sfChip: K xMapBB: 0 yMapSF: 0 xStatus: 13
|
||||
bb: B sfChip: K xMapBB: -1 yMapSF: 1 xStatus: 65
|
||||
bb: C sfChip: K xMapBB: 4 yMapSF: 2 xStatus: -1
|
||||
bb: C sfChip: K xMapBB: 4 yMapSF: 2 xStatus: -1
|
||||
xMapL0c0: 4 xMapL1c0: 2 xMapL1c1: 5 xMapL0c1: 3
|
||||
|
||||
8 chip[0]: B x[0]: 4 y[0]: 1 chip[1]: K x[1]: 13 y[1]: 2 15 -1
|
||||
Found Path!
|
||||
|
||||
BBtoSF path: 9
|
||||
bb: A sfChip: J xMapBB: -1 yMapSF: 0 xStatus: 65
|
||||
bb: B sfChip: J xMapBB: 2 yMapSF: 1 xStatus: -1
|
||||
bb: B sfChip: J xMapBB: 2 yMapSF: 1 xStatus: -1
|
||||
xMapL0c0: 2 xMapL1c0: 0 xMapL1c1: 3 xMapL0c1: 1
|
||||
|
||||
9 chip[0]: A x[0]: 2 y[0]: 7 chip[1]: J x[1]: 10 y[1]: 1 16 -1
|
||||
Found Path!
|
||||
|
||||
BBtoSF path: 12
|
||||
bb: A sfChip: I xMapBB: 0 yMapSF: 0 xStatus: 13
|
||||
bb: B sfChip: I xMapBB: 2 yMapSF: 1 xStatus: 16
|
||||
bb: C sfChip: I xMapBB: 4 yMapSF: 2 xStatus: -1
|
||||
bb: C sfChip: I xMapBB: 4 yMapSF: 2 xStatus: 15
|
||||
xMapL0c0: 4 xMapL1c0: 10 xMapL1c1: 5 xMapL0c1: 11
|
||||
|
||||
12 chip[0]: F x[0]: 4 y[0]: 7 chip[1]: I x[1]: 1 y[1]: 2 19 -1
|
||||
Found Path!
|
||||
|
||||
resolving uncommitted hops
|
||||
path net node1 type chip0 x0 y0 node2 type chip1 x1 y1 altPath sameChp pathType chipL chip2 x2 y2 x3 y3
|
||||
|
||||
0 1 24 0 D 7 2 GND 2 J 15 3 0 0 BB to SF 0
|
||||
1 8 14 0 B 11 6 D4 1 K 6 1 0 0 BB to NANO 0
|
||||
2 9 10 0 B 8 2 36 0 E 2 5 0 0 BB to BB 0
|
||||
3 10 40 0 F 11 2 D6 1 J 6 5 0 0 BB to NANO 0
|
||||
4 11 39 0 F 10 1 D7 1 I 7 5 0 0 BB to NANO 0
|
||||
5 12 38 0 E 1 7 D8 1 K 10 4 0 0 BB to NANO 0
|
||||
6 13 6 0 A 0 5 D9 1 I 9 0 0 0 BB to NANO 0
|
||||
7 14 7 0 A 1 6 D10 1 J 9 0 0 0 BB to NANO 0
|
||||
8 15 9 0 B 4 1 D11 1 K 13 2 0 1 BB to NANO 0 C 2 -2 13 -1
|
||||
9 16 8 0 A 2 7 D12 1 J 10 1 0 1 BB to NANO 0 B 0 -2 3 -1
|
||||
10 17 25 0 D 6 3 D3 1 I 3 3 0 0 BB to NANO 0
|
||||
11 18 23 0 D 15 1 D2 1 K 4 3 0 0 BB to NANO 0
|
||||
12 19 45 0 F 4 7 D1 1 I 1 2 0 1 BB to NANO 0 C 10 -2 4 -1
|
||||
|
||||
path net node1 type chip0 x0 y0 node2 type chip1 x1 y1 altPath sameChp pathType chipL chip2 x2 y2 x3 y3
|
||||
|
||||
|
||||
taken connections (-1 is free)
|
||||
chip 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7
|
||||
A 13 14 16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 13 14 16
|
||||
B 16 -1 16 -1 15 -1 -1 -1 9 -1 -1 8 -1 -1 -1 -1 -1 15 9 -1 -1 -1 8 -1
|
||||
C -1 -1 15 -1 19 -1 -1 -1 -1 -1 19 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
|
||||
D -1 -1 -1 -1 -1 -1 17 1 -1 -1 -1 -1 -1 -1 -1 18 -1 18 1 17 -1 -1 -1 -1
|
||||
E -1 12 9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 9 -1 12
|
||||
F -1 -1 -1 -1 19 -1 -1 -1 -1 -1 11 10 -1 -1 -1 -1 -1 11 10 -1 -1 -1 -1 19
|
||||
G -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
|
||||
H -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
|
||||
|
||||
chip 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7
|
||||
I -1 19 -1 17 -1 -1 -1 11 15 13 -1 -1 -1 -1 -1 1 13 -1 19 17 -1 11 -1 -1
|
||||
J -1 -1 18 -1 8 -1 10 -1 12 14 16 -1 -1 -1 -1 1 14 16 -1 1 -1 10 -1 -1
|
||||
K -1 -1 -1 -1 18 17 8 -1 10 11 12 13 14 15 16 -1 -1 8 15 18 12 -1 -1 -1
|
||||
L -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1
|
||||
8 same chips: @, @, @, @, @, @, C, C,
|
||||
9 same chips: @, @, @, @, @, @, B, B,
|
||||
12 same chips: @, @, @, @, @, @, C, C,
|
||||
|
||||
final paths
|
||||
path net node1 type chip0 x0 y0 node2 type chip1 x1 y1 altPath sameChp pathType chipL chip2 x2 y2 x3 y3
|
||||
|
||||
0 1 24 0 D 7 2 GND 2 J 15 3 0 0 BB to SF 0
|
||||
1 8 14 0 B 11 6 D4 1 K 6 1 0 0 BB to NANO 0
|
||||
2 9 10 0 B 8 2 36 0 E 2 5 0 0 BB to BB 0
|
||||
3 10 40 0 F 11 2 D6 1 J 6 5 0 0 BB to NANO 0
|
||||
4 11 39 0 F 10 1 D7 1 I 7 5 0 0 BB to NANO 0
|
||||
5 12 38 0 E 1 7 D8 1 K 10 4 0 0 BB to NANO 0
|
||||
6 13 6 0 A 0 5 D9 1 I 9 0 0 0 BB to NANO 0
|
||||
7 14 7 0 A 1 6 D10 1 J 9 0 0 0 BB to NANO 0
|
||||
8 15 9 0 B 4 1 D11 1 K 13 2 0 1 BB to NANO 0 C 2 0 13 0
|
||||
9 16 8 0 A 2 7 D12 1 J 10 1 0 1 BB to NANO 0 B 0 0 3 0
|
||||
10 17 25 0 D 6 3 D3 1 I 3 3 0 0 BB to NANO 0
|
||||
11 18 23 0 D 15 1 D2 1 K 4 3 0 0 BB to NANO 0
|
||||
12 19 45 0 F 4 7 D1 1 I 1 2 0 1 BB to NANO 0 C 10 1 4 1
|
||||
|
||||
path net node1 type chip0 x0 y0 node2 type chip1 x1 y1 altPath sameChp pathType chipL chip2 x2 y2 x3 y3
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user