Fix a bone-headed cause of non-determinism
This commit is contained in:
parent
965482bd7f
commit
9b69c1e198
|
@ -1864,12 +1864,13 @@ void CONNECTION_GRAPH::propagateToNeighbors( CONNECTION_SUBGRAPH* aSubgraph )
|
||||||
if( ( priority >= CONNECTION_SUBGRAPH::PRIORITY::POWER_PIN ) ||
|
if( ( priority >= CONNECTION_SUBGRAPH::PRIORITY::POWER_PIN ) ||
|
||||||
( !originalStrong && candidateStrong ) ||
|
( !originalStrong && candidateStrong ) ||
|
||||||
( priority >= highest && candidateStrong &&
|
( priority >= highest && candidateStrong &&
|
||||||
subgraph->m_sheet.size() < aSubgraph->m_sheet.size() ) ||
|
subgraph->m_sheet.size() < original->m_sheet.size() ) ||
|
||||||
( !originalStrong && !candidateStrong && candidateName < originalName ) )
|
( ( originalStrong == candidateStrong ) && candidateName < originalName ) )
|
||||||
{
|
{
|
||||||
original = subgraph;
|
original = subgraph;
|
||||||
highest = priority;
|
highest = priority;
|
||||||
originalStrong = candidateStrong;
|
originalStrong = candidateStrong;
|
||||||
|
originalName = subgraph->m_driver_connection->Name();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,181 @@
|
||||||
"cvpcb": {
|
"cvpcb": {
|
||||||
"equivalence_files": []
|
"equivalence_files": []
|
||||||
},
|
},
|
||||||
|
"erc": {
|
||||||
|
"erc_exclusions": [],
|
||||||
|
"meta": {
|
||||||
|
"version": 0
|
||||||
|
},
|
||||||
|
"pin_map": [
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
2
|
||||||
|
],
|
||||||
|
[
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2,
|
||||||
|
2
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"rule_severities": {
|
||||||
|
"bus_definition_conflict": "error",
|
||||||
|
"bus_label_syntax": "error",
|
||||||
|
"bus_to_bus_conflict": "error",
|
||||||
|
"bus_to_net_conflict": "error",
|
||||||
|
"different_unit_footprint": "error",
|
||||||
|
"different_unit_net": "error",
|
||||||
|
"duplicate_sheet_names": "error",
|
||||||
|
"global_label_dangling": "warning",
|
||||||
|
"hier_label_mismatch": "error",
|
||||||
|
"label_dangling": "error",
|
||||||
|
"lib_symbol_issues": "warning",
|
||||||
|
"multiple_net_names": "warning",
|
||||||
|
"net_not_bus_member": "warning",
|
||||||
|
"no_connect_connected": "warning",
|
||||||
|
"no_connect_dangling": "warning",
|
||||||
|
"pin_not_connected": "error",
|
||||||
|
"pin_not_driven": "error",
|
||||||
|
"pin_to_pin": "warning",
|
||||||
|
"power_pin_not_driven": "error",
|
||||||
|
"similar_labels": "warning",
|
||||||
|
"unresolved_variable": "error",
|
||||||
|
"wire_dangling": "error"
|
||||||
|
}
|
||||||
|
},
|
||||||
"libraries": {
|
"libraries": {
|
||||||
"pinned_footprint_libs": [],
|
"pinned_footprint_libs": [],
|
||||||
"pinned_symbol_libs": []
|
"pinned_symbol_libs": []
|
||||||
|
@ -40,16 +215,21 @@
|
||||||
"net_settings": {
|
"net_settings": {
|
||||||
"classes": [
|
"classes": [
|
||||||
{
|
{
|
||||||
|
"bus_width": 6.0,
|
||||||
"clearance": 0.2,
|
"clearance": 0.2,
|
||||||
"diff_pair_gap": 0.25,
|
"diff_pair_gap": 0.25,
|
||||||
"diff_pair_via_gap": 0.25,
|
"diff_pair_via_gap": 0.25,
|
||||||
"diff_pair_width": 0.2,
|
"diff_pair_width": 0.2,
|
||||||
|
"line_style": 0,
|
||||||
"microvia_diameter": 0.3,
|
"microvia_diameter": 0.3,
|
||||||
"microvia_drill": 0.1,
|
"microvia_drill": 0.1,
|
||||||
"name": "Default",
|
"name": "Default",
|
||||||
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||||
"track_width": 0.25,
|
"track_width": 0.25,
|
||||||
"via_diameter": 0.8,
|
"via_diameter": 0.8,
|
||||||
"via_drill": 0.4
|
"via_drill": 0.4,
|
||||||
|
"wire_width": 6.0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"meta": {
|
"meta": {
|
||||||
|
@ -64,26 +244,37 @@
|
||||||
"netlist": "",
|
"netlist": "",
|
||||||
"specctra_dsn": "",
|
"specctra_dsn": "",
|
||||||
"step": "",
|
"step": "",
|
||||||
"vmrl": ""
|
"vmrl": "",
|
||||||
|
"vrml": ""
|
||||||
},
|
},
|
||||||
"page_layout_descr_file": ""
|
"page_layout_descr_file": ""
|
||||||
},
|
},
|
||||||
"schematic": {
|
"schematic": {
|
||||||
"drawing": {
|
"drawing": {
|
||||||
"default_bus_thickness": 12,
|
"default_bus_thickness": 12.0,
|
||||||
"default_junction_size": 40,
|
"default_junction_size": 40.0,
|
||||||
"default_line_thickness": 6,
|
"default_line_thickness": 6.0,
|
||||||
"default_text_size": 50,
|
"default_text_size": 50.0,
|
||||||
"default_wire_thickness": 6,
|
"default_wire_thickness": 6.0,
|
||||||
"field_names": "(templatefields)",
|
"field_names": [],
|
||||||
|
"intersheets_ref_prefix": "",
|
||||||
|
"intersheets_ref_short": false,
|
||||||
|
"intersheets_ref_show": false,
|
||||||
|
"intersheets_ref_suffix": "",
|
||||||
|
"junction_size_choice": 3,
|
||||||
|
"pin_symbol_size": 25.0,
|
||||||
"text_offset_ratio": 0.3
|
"text_offset_ratio": 0.3
|
||||||
},
|
},
|
||||||
"legacy_lib_dir": "",
|
"legacy_lib_dir": "",
|
||||||
"legacy_lib_list": [],
|
"legacy_lib_list": [],
|
||||||
|
"meta": {
|
||||||
|
"version": 0
|
||||||
|
},
|
||||||
"net_format_name": "Pcbnew",
|
"net_format_name": "Pcbnew",
|
||||||
"page_layout_descr_file": "",
|
"page_layout_descr_file": "",
|
||||||
"plot_directory": "",
|
"plot_directory": "",
|
||||||
"spice_adjust_passive_values": false,
|
"spice_adjust_passive_values": false,
|
||||||
|
"spice_external_command": "spice \"%I\"",
|
||||||
"subpart_first_id": 65,
|
"subpart_first_id": 65,
|
||||||
"subpart_id_separator": 0
|
"subpart_id_separator": 0
|
||||||
},
|
},
|
||||||
|
|
|
@ -128,13 +128,13 @@
|
||||||
(node (ref "J2") (pin "1") (pinfunction "Pin_1"))
|
(node (ref "J2") (pin "1") (pinfunction "Pin_1"))
|
||||||
(node (ref "R1") (pin "1"))
|
(node (ref "R1") (pin "1"))
|
||||||
(node (ref "R2") (pin "1")))
|
(node (ref "R2") (pin "1")))
|
||||||
(net (code "3") (name "/sheet5CC165F1/LIVE_1")
|
(net (code "3") (name "/Sheet5CC15EF8/NEUTRAL")
|
||||||
(node (ref "J1") (pin "2") (pinfunction "Pin_2"))
|
|
||||||
(node (ref "R4") (pin "2")))
|
|
||||||
(net (code "4") (name "/sheet5CC165F1/NEUTRAL")
|
|
||||||
(node (ref "J2") (pin "3") (pinfunction "Pin_3"))
|
(node (ref "J2") (pin "3") (pinfunction "Pin_3"))
|
||||||
(node (ref "R1") (pin "2"))
|
(node (ref "R1") (pin "2"))
|
||||||
(node (ref "R3") (pin "2")))
|
(node (ref "R3") (pin "2")))
|
||||||
|
(net (code "4") (name "/sheet5CC165F1/LIVE_1")
|
||||||
|
(node (ref "J1") (pin "2") (pinfunction "Pin_2"))
|
||||||
|
(node (ref "R4") (pin "2")))
|
||||||
(net (code "5") (name "LIVE")
|
(net (code "5") (name "LIVE")
|
||||||
(node (ref "J1") (pin "1") (pinfunction "Pin_1"))
|
(node (ref "J1") (pin "1") (pinfunction "Pin_1"))
|
||||||
(node (ref "R2") (pin "2")))
|
(node (ref "R2") (pin "2")))
|
||||||
|
|
|
@ -117,15 +117,15 @@
|
||||||
(library (logical "Device")
|
(library (logical "Device")
|
||||||
(uri "/home/jon/kicad-library/kicad-symbols//Device.kicad_sym")))
|
(uri "/home/jon/kicad-library/kicad-symbols//Device.kicad_sym")))
|
||||||
(nets
|
(nets
|
||||||
(net (code "1") (name "/Merge/D1")
|
(net (code "1") (name "/Merge/A1")
|
||||||
(node (ref "R2") (pin "1"))
|
|
||||||
(node (ref "R4") (pin "1")))
|
|
||||||
(net (code "2") (name "/Merge/D2")
|
|
||||||
(node (ref "R2") (pin "2"))
|
|
||||||
(node (ref "R4") (pin "2")))
|
|
||||||
(net (code "3") (name "/Sub1/B1")
|
|
||||||
(node (ref "R1") (pin "1"))
|
(node (ref "R1") (pin "1"))
|
||||||
(node (ref "R3") (pin "1")))
|
(node (ref "R3") (pin "1")))
|
||||||
(net (code "4") (name "/Sub1/B2")
|
(net (code "2") (name "/Merge/A2")
|
||||||
(node (ref "R1") (pin "2"))
|
(node (ref "R1") (pin "2"))
|
||||||
(node (ref "R3") (pin "2")))))
|
(node (ref "R3") (pin "2")))
|
||||||
|
(net (code "4") (name "/Merge/D1")
|
||||||
|
(node (ref "R2") (pin "1"))
|
||||||
|
(node (ref "R4") (pin "1")))
|
||||||
|
(net (code "5") (name "/Merge/D2")
|
||||||
|
(node (ref "R2") (pin "2"))
|
||||||
|
(node (ref "R4") (pin "2")))))
|
||||||
|
|
Loading…
Reference in New Issue