Fix disambiguation for vector buses with different ranges

Previously disambiguation was looking for exact matches,
but vector buses are permitted to have different ranges and
still participate in merging, so they need to be disambiguated.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5925
This commit is contained in:
Jon Evans 2020-10-08 22:25:57 -04:00
parent bd30a4a406
commit 61f731aa1d
9 changed files with 977 additions and 3 deletions

View File

@ -866,6 +866,16 @@ void CONNECTION_GRAPH::buildConnectionGraph()
wxString name = subgraph->m_driver_connection->Name( true );
m_net_name_to_subgraphs_map[full_name].emplace_back( subgraph );
// For vector buses, we need to cache the prefix also, as two different instances of the
// weakly driven pin may have the same prefix but different vector start and end. We need
// to treat those as needing renaming also, because otherwise if they end up on a sheet with
// common usage, they will be incorrectly merged.
if( subgraph->m_driver_connection->Type() == CONNECTION_TYPE::BUS )
{
wxString prefixOnly = full_name.BeforeFirst( '[' ) + wxT( "[]" );
m_net_name_to_subgraphs_map[prefixOnly].emplace_back( subgraph );
}
subgraph->m_dirty = true;
if( subgraph->m_strong_driver )
@ -1017,9 +1027,17 @@ void CONNECTION_GRAPH::buildConnectionGraph()
if( !subgraph->m_strong_driver )
{
auto& vec = m_net_name_to_subgraphs_map.at( name );
std::vector<CONNECTION_SUBGRAPH*>* vec = &m_net_name_to_subgraphs_map.at( name );
if( vec.size() > 1 )
// If we are a unique bus vector, check if we aren't actually unique because of another
// subgraph with a similar bus vector
if( vec->size() <= 1 && subgraph->m_driver_connection->Type() == CONNECTION_TYPE::BUS )
{
wxString prefixOnly = name.BeforeFirst( '[' ) + wxT( "[]" );
vec = &m_net_name_to_subgraphs_map.at( prefixOnly );
}
if( vec->size() > 1 )
{
wxString new_name = create_new_name( connection );
@ -1029,7 +1047,7 @@ void CONNECTION_GRAPH::buildConnectionGraph()
wxLogTrace( ConnTrace, "%ld (%s) is weakly driven and not unique. Changing to %s.",
subgraph->m_code, name, new_name );
vec.erase( std::remove( vec.begin(), vec.end(), subgraph ), vec.end() );
vec->erase( std::remove( vec->begin(), vec->end(), subgraph ), vec->end() );
m_net_name_to_subgraphs_map[new_name].emplace_back( subgraph );

View File

@ -0,0 +1,164 @@
(kicad_sch (version 20200828) (generator eeschema)
(page 4 4)
(paper "A4")
(lib_symbols
(symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "R" (id 0) (at 2.032 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "R" (id 1) (at 0 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at -1.778 0 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "R res resistor" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Resistor" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "R_*" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "R_0_1"
(rectangle (start -1.016 -2.54) (end 1.016 2.54)
(stroke (width 0.254)) (fill (type none))
)
)
(symbol "R_1_1"
(pin passive line (at 0 3.81 270) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -3.81 90) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
)
(bus_entry (at 147.32 67.31) (size 2.54 2.54)
(stroke (width 0.1524) (type solid) (color 0 0 0 0))
)
(bus_entry (at 147.32 77.47) (size 2.54 2.54)
(stroke (width 0.1524) (type solid) (color 0 0 0 0))
)
(bus_entry (at 147.32 92.71) (size 2.54 2.54)
(stroke (width 0.1524) (type solid) (color 0 0 0 0))
)
(bus_entry (at 147.32 102.87) (size 2.54 2.54)
(stroke (width 0.1524) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 149.86 69.85) (xy 165.1 69.85))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 149.86 80.01) (xy 165.1 80.01))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 149.86 95.25) (xy 165.1 95.25))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 149.86 105.41) (xy 165.1 105.41))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 165.1 69.85) (xy 165.1 71.12))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 165.1 78.74) (xy 165.1 80.01))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 165.1 95.25) (xy 165.1 96.52))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 165.1 104.14) (xy 165.1 105.41))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 128.27 64.77) (xy 147.32 64.77))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 128.27 90.17) (xy 147.32 90.17))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 147.32 64.77) (xy 147.32 67.31))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 147.32 67.31) (xy 147.32 77.47))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 147.32 77.47) (xy 147.32 85.09))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 147.32 90.17) (xy 147.32 92.71))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 147.32 92.71) (xy 147.32 102.87))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 147.32 102.87) (xy 147.32 110.49))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(label "A1" (at 152.4 69.85 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(label "A2" (at 152.4 80.01 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(label "D1" (at 152.4 95.25 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(label "D2" (at 152.4 105.41 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(hierarchical_label "A[10..0]" (shape input) (at 128.27 64.77 180)
(effects (font (size 1.27 1.27)) (justify right))
)
(hierarchical_label "D[10..0]" (shape input) (at 128.27 90.17 180)
(effects (font (size 1.27 1.27)) (justify right))
)
(symbol (lib_id "Device:R") (at 165.1 74.93 0) (unit 1)
(in_bom yes) (on_board yes)
(uuid "a8053649-8fd9-4481-b56e-122d712ddeb5")
(property "Reference" "R3" (id 0) (at 166.878 73.787 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (id 1) (at 166.8781 76.0793 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 163.322 74.93 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 165.1 74.93 0)
(effects (font (size 1.27 1.27)) hide)
)
)
(symbol (lib_id "Device:R") (at 165.1 100.33 0) (unit 1)
(in_bom yes) (on_board yes)
(uuid "2eeee84e-974a-4768-b3a0-fdfaed463e15")
(property "Reference" "R4" (id 0) (at 166.878 99.187 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (id 1) (at 166.8781 101.4793 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 163.322 100.33 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 165.1 100.33 0)
(effects (font (size 1.27 1.27)) hide)
)
)
)

View File

@ -0,0 +1,108 @@
(kicad_sch (version 20200828) (generator eeschema)
(page 2 4)
(paper "A4")
(lib_symbols
(symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "R" (id 0) (at 2.032 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "R" (id 1) (at 0 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at -1.778 0 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "R res resistor" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Resistor" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "R_*" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "R_0_1"
(rectangle (start -1.016 -2.54) (end 1.016 2.54)
(stroke (width 0.254)) (fill (type none))
)
)
(symbol "R_1_1"
(pin passive line (at 0 3.81 270) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -3.81 90) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
)
(bus_entry (at 146.05 78.74) (size 2.54 2.54)
(stroke (width 0.1524) (type solid) (color 0 0 0 0))
)
(bus_entry (at 146.05 88.9) (size 2.54 2.54)
(stroke (width 0.1524) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 148.59 81.28) (xy 163.83 81.28))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 148.59 91.44) (xy 163.83 91.44))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 163.83 81.28) (xy 163.83 82.55))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 163.83 90.17) (xy 163.83 91.44))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 127 76.2) (xy 146.05 76.2))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 146.05 76.2) (xy 146.05 78.74))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 146.05 78.74) (xy 146.05 88.9))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 146.05 88.9) (xy 146.05 96.52))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(label "B1" (at 151.13 81.28 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(label "B2" (at 151.13 91.44 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(hierarchical_label "B[10..0]" (shape input) (at 127 76.2 180)
(effects (font (size 1.27 1.27)) (justify right))
)
(symbol (lib_id "Device:R") (at 163.83 86.36 0) (unit 1)
(in_bom yes) (on_board yes)
(uuid "549fed29-2fe3-4199-8781-d64e3d55522a")
(property "Reference" "R1" (id 0) (at 165.608 85.217 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (id 1) (at 165.6081 87.5093 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 162.052 86.36 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 163.83 86.36 0)
(effects (font (size 1.27 1.27)) hide)
)
)
)

View File

@ -0,0 +1,108 @@
(kicad_sch (version 20200828) (generator eeschema)
(page 3 4)
(paper "A4")
(lib_symbols
(symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "R" (id 0) (at 2.032 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "R" (id 1) (at 0 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at -1.778 0 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "R res resistor" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Resistor" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "R_*" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "R_0_1"
(rectangle (start -1.016 -2.54) (end 1.016 2.54)
(stroke (width 0.254)) (fill (type none))
)
)
(symbol "R_1_1"
(pin passive line (at 0 3.81 270) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -3.81 90) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
)
(bus_entry (at 151.13 93.98) (size 2.54 2.54)
(stroke (width 0.1524) (type solid) (color 0 0 0 0))
)
(bus_entry (at 151.13 104.14) (size 2.54 2.54)
(stroke (width 0.1524) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 153.67 96.52) (xy 168.91 96.52))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 153.67 106.68) (xy 168.91 106.68))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 168.91 96.52) (xy 168.91 97.79))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(wire (pts (xy 168.91 105.41) (xy 168.91 106.68))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 132.08 91.44) (xy 151.13 91.44))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 151.13 91.44) (xy 151.13 93.98))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 151.13 93.98) (xy 151.13 104.14))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 151.13 104.14) (xy 151.13 111.76))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(label "B1" (at 156.21 96.52 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(label "B2" (at 156.21 106.68 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(hierarchical_label "B[20..0]" (shape input) (at 132.08 91.44 180)
(effects (font (size 1.27 1.27)) (justify right))
)
(symbol (lib_id "Device:R") (at 168.91 101.6 0) (unit 1)
(in_bom yes) (on_board yes)
(uuid "2099c994-a92c-409d-a12d-82f6c93cabc6")
(property "Reference" "R2" (id 0) (at 170.688 100.457 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R" (id 1) (at 170.6881 102.7493 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 167.132 101.6 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 168.91 101.6 0)
(effects (font (size 1.27 1.27)) hide)
)
)
)

View File

@ -0,0 +1,72 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "",
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"pads": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"ratsnest_display_mode": 0,
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": true,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
6,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
26,
27,
28,
29,
30,
31,
32,
36,
37
],
"visible_layers": "fffffff_ffffffff"
},
"meta": {
"filename": "5925.kicad_prl",
"version": 2
},
"project": {
"files": []
}
}

View File

@ -0,0 +1,274 @@
{
"board": {
"layer_presets": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"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": "error",
"no_connect_dangling": "error",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"similar_labels": "warning",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "5925.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
}
],
"meta": {
"version": 0
},
"net_colors": null
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"drawing": {
"default_bus_thickness": 12.0,
"default_junction_size": 40.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"default_wire_thickness": 6.0,
"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
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 0
},
"net_format_name": "Pcbnew",
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_external_command": "spice \"%I\"",
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"5476331a-76e1-4f09-aa87-8c73ab62dd13",
""
],
[
"911370ed-9eca-4408-af70-75f46ccb0cea",
"Sub1"
],
[
"48e15bb3-68ef-4111-84c2-95e07dc0e8bf",
"Sub2"
],
[
"b4665eb8-ef65-4980-bc76-c5100cd8fd0b",
"Merge"
]
],
"text_variables": {}
}

View File

@ -0,0 +1,92 @@
(kicad_sch (version 20200828) (generator eeschema)
(page 1 4)
(paper "A4")
(lib_symbols
)
(bus (pts (xy 170.18 63.5) (xy 193.04 63.5))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 170.18 95.25) (xy 193.04 95.25))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 193.04 63.5) (xy 193.04 76.2))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 193.04 82.55) (xy 193.04 95.25))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 193.04 82.55) (xy 207.01 82.55))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(bus (pts (xy 207.01 76.2) (xy 193.04 76.2))
(stroke (width 0) (type solid) (color 0 0 0 0))
)
(sheet (at 207.01 71.12) (size 38.1 16.51)
(stroke (width 0) (type solid) (color 132 0 132 1))
(fill (color 255 255 255 0.0000))
(uuid b4665eb8-ef65-4980-bc76-c5100cd8fd0b)
(property "Sheet name" "Merge" (id 0) (at 207.01 70.4845 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(property "Sheet file" "merge.kicad_sch" (id 1) (at 207.01 88.1385 0)
(effects (font (size 1.27 1.27)) (justify left top))
)
(pin "A[10..0]" input (at 207.01 76.2 180)
(effects (font (size 1.27 1.27)) (justify left))
)
(pin "D[10..0]" input (at 207.01 82.55 180)
(effects (font (size 1.27 1.27)) (justify left))
)
)
(sheet (at 127 50.8) (size 43.18 29.21)
(stroke (width 0) (type solid) (color 132 0 132 1))
(fill (color 255 255 255 0.0000))
(uuid 911370ed-9eca-4408-af70-75f46ccb0cea)
(property "Sheet name" "Sub1" (id 0) (at 127 50.1645 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(property "Sheet file" "sub1.kicad_sch" (id 1) (at 127 80.5185 0)
(effects (font (size 1.27 1.27)) (justify left top))
)
(pin "B[10..0]" output (at 170.18 63.5 0)
(effects (font (size 1.27 1.27)) (justify right))
)
)
(sheet (at 128.27 85.09) (size 41.91 24.13)
(stroke (width 0) (type solid) (color 132 0 132 1))
(fill (color 255 255 255 0.0000))
(uuid 48e15bb3-68ef-4111-84c2-95e07dc0e8bf)
(property "Sheet name" "Sub2" (id 0) (at 128.27 84.4545 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
)
(property "Sheet file" "sub2.kicad_sch" (id 1) (at 128.27 109.7285 0)
(effects (font (size 1.27 1.27)) (justify left top))
)
(pin "B[20..0]" output (at 170.18 95.25 0)
(effects (font (size 1.27 1.27)) (justify right))
)
)
(symbol_instances
(path "/911370ed-9eca-4408-af70-75f46ccb0cea/549fed29-2fe3-4199-8781-d64e3d55522a"
(reference "R1") (unit 1) (value "R") (footprint "")
)
(path "/48e15bb3-68ef-4111-84c2-95e07dc0e8bf/2099c994-a92c-409d-a12d-82f6c93cabc6"
(reference "R2") (unit 1) (value "R") (footprint "")
)
(path "/b4665eb8-ef65-4980-bc76-c5100cd8fd0b/a8053649-8fd9-4481-b56e-122d712ddeb5"
(reference "R3") (unit 1) (value "R") (footprint "")
)
(path "/b4665eb8-ef65-4980-bc76-c5100cd8fd0b/2eeee84e-974a-4768-b3a0-fdfaed463e15"
(reference "R4") (unit 1) (value "R") (footprint "")
)
)
)

View File

@ -0,0 +1,131 @@
(export (version "D")
(design
(source "/home/jon/Downloads/kicad_bugs/5925/5925.kicad_sch")
(date "Thu 08 Oct 2020 22:18:41 EDT")
(tool "Eeschema (5.99.0-3905-gefcf7a6f1-dirty)")
(sheet (number "1") (name "/") (tstamps "/")
(title_block
(title)
(company)
(rev)
(date)
(source "5925.kicad_sch")
(comment (number "1") (value ""))
(comment (number "2") (value ""))
(comment (number "3") (value ""))
(comment (number "4") (value ""))
(comment (number "5") (value ""))
(comment (number "6") (value ""))
(comment (number "7") (value ""))
(comment (number "8") (value ""))
(comment (number "9") (value ""))))
(sheet (number "2") (name "/Sub1/") (tstamps "/911370ed-9eca-4408-af70-75f46ccb0cea/")
(title_block
(title)
(company)
(rev)
(date)
(source "sub1.kicad_sch")
(comment (number "1") (value ""))
(comment (number "2") (value ""))
(comment (number "3") (value ""))
(comment (number "4") (value ""))
(comment (number "5") (value ""))
(comment (number "6") (value ""))
(comment (number "7") (value ""))
(comment (number "8") (value ""))
(comment (number "9") (value ""))))
(sheet (number "3") (name "/Sub2/") (tstamps "/48e15bb3-68ef-4111-84c2-95e07dc0e8bf/")
(title_block
(title)
(company)
(rev)
(date)
(source "sub2.kicad_sch")
(comment (number "1") (value ""))
(comment (number "2") (value ""))
(comment (number "3") (value ""))
(comment (number "4") (value ""))
(comment (number "5") (value ""))
(comment (number "6") (value ""))
(comment (number "7") (value ""))
(comment (number "8") (value ""))
(comment (number "9") (value ""))))
(sheet (number "4") (name "/Merge/") (tstamps "/b4665eb8-ef65-4980-bc76-c5100cd8fd0b/")
(title_block
(title)
(company)
(rev)
(date)
(source "merge.kicad_sch")
(comment (number "1") (value ""))
(comment (number "2") (value ""))
(comment (number "3") (value ""))
(comment (number "4") (value ""))
(comment (number "5") (value ""))
(comment (number "6") (value ""))
(comment (number "7") (value ""))
(comment (number "8") (value ""))
(comment (number "9") (value "")))))
(components
(comp (ref "R1")
(value "R")
(datasheet "~")
(libsource (lib "Device") (part "R") (description "Resistor"))
(property (name "Sheet name") (value "Sub1"))
(property (name "Sheet file") (value "sub1.kicad_sch"))
(sheetpath (names "/Sub1/") (tstamps "/911370ed-9eca-4408-af70-75f46ccb0cea/"))
(tstamp "549fed29-2fe3-4199-8781-d64e3d55522a"))
(comp (ref "R2")
(value "R")
(datasheet "~")
(libsource (lib "Device") (part "R") (description "Resistor"))
(property (name "Sheet name") (value "Sub2"))
(property (name "Sheet file") (value "sub2.kicad_sch"))
(sheetpath (names "/Sub2/") (tstamps "/48e15bb3-68ef-4111-84c2-95e07dc0e8bf/"))
(tstamp "2099c994-a92c-409d-a12d-82f6c93cabc6"))
(comp (ref "R3")
(value "R")
(datasheet "~")
(libsource (lib "Device") (part "R") (description "Resistor"))
(property (name "Sheet name") (value "Merge"))
(property (name "Sheet file") (value "merge.kicad_sch"))
(sheetpath (names "/Merge/") (tstamps "/b4665eb8-ef65-4980-bc76-c5100cd8fd0b/"))
(tstamp "a8053649-8fd9-4481-b56e-122d712ddeb5"))
(comp (ref "R4")
(value "R")
(datasheet "~")
(libsource (lib "Device") (part "R") (description "Resistor"))
(property (name "Sheet name") (value "Merge"))
(property (name "Sheet file") (value "merge.kicad_sch"))
(sheetpath (names "/Merge/") (tstamps "/b4665eb8-ef65-4980-bc76-c5100cd8fd0b/"))
(tstamp "2eeee84e-974a-4768-b3a0-fdfaed463e15")))
(libparts
(libpart (lib "Device") (part "R")
(description "Resistor")
(docs "~")
(footprints
(fp "R_*"))
(fields
(field (name "Reference") "R")
(field (name "Value") "R")
(field (name "Datasheet") "~"))
(pins
(pin (num "1") (name "~") (type "passive"))
(pin (num "2") (name "~") (type "passive")))))
(libraries
(library (logical "Device")
(uri "/home/jon/kicad-library/kicad-symbols//Device.kicad_sym")))
(nets
(net (code "1") (name "/B1")
(node (ref "R2") (pin "1"))
(node (ref "R4") (pin "1")))
(net (code "2") (name "/B1_1")
(node (ref "R1") (pin "1"))
(node (ref "R3") (pin "1")))
(net (code "3") (name "/B2")
(node (ref "R2") (pin "2"))
(node (ref "R4") (pin "2")))
(net (code "4") (name "/B2_1")
(node (ref "R1") (pin "2"))
(node (ref "R3") (pin "2")))))

View File

@ -241,4 +241,11 @@ BOOST_AUTO_TEST_CASE( ComplexHierarchy )
}
BOOST_AUTO_TEST_CASE( WeakVectorBusDisambiguation )
{
doNetlistTest( "weak_vector_bus_disambiguation" );
}
BOOST_AUTO_TEST_SUITE_END()