Allow bus elements to connect
Previously, bus elements that were not instantiated as individual nets
could not connect to each other. This caused issues for complex
schematics where busses needed to connect to other busses with elements
that resolved to the same net names. Functionally, this means mixing
bus elements, which we will replace with first-class elements in version
8 but currently can only be accomplished either by using bus aliases and
this patch or by individually instantiating each bus element as a
local label
Fixes https://gitlab.com/kicad/code/kicad/issues/14300
(cherry picked from commit 16b4ec3c7e
)
This commit is contained in:
parent
907761f14e
commit
68dfcddbe9
|
@ -195,7 +195,7 @@ bool CONNECTION_SUBGRAPH::ResolveDrivers( bool aCheckMultipleDrivers )
|
|||
m_driver_connection->SetDriver( m_driver );
|
||||
m_driver_connection->ClearDirty();
|
||||
}
|
||||
else
|
||||
else if( !m_is_bus_member )
|
||||
{
|
||||
m_driver_connection = nullptr;
|
||||
}
|
||||
|
@ -246,7 +246,36 @@ wxString CONNECTION_SUBGRAPH::GetNetName() const
|
|||
}
|
||||
|
||||
|
||||
std::vector<SCH_ITEM*> CONNECTION_SUBGRAPH::GetBusLabels() const
|
||||
std::vector<SCH_ITEM*> CONNECTION_SUBGRAPH::GetAllBusLabels() const
|
||||
{
|
||||
std::vector<SCH_ITEM*> labels;
|
||||
|
||||
for( SCH_ITEM* item : m_drivers )
|
||||
{
|
||||
switch( item->Type() )
|
||||
{
|
||||
case SCH_LABEL_T:
|
||||
case SCH_GLOBAL_LABEL_T:
|
||||
{
|
||||
CONNECTION_TYPE type = item->Connection( &m_sheet )->Type();
|
||||
|
||||
// Only consider bus vectors
|
||||
if( type == CONNECTION_TYPE::BUS || type == CONNECTION_TYPE::BUS_GROUP )
|
||||
labels.push_back( item );
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return labels;
|
||||
}
|
||||
|
||||
|
||||
std::vector<SCH_ITEM*> CONNECTION_SUBGRAPH::GetVectorBusLabels() const
|
||||
{
|
||||
std::vector<SCH_ITEM*> labels;
|
||||
|
||||
|
@ -971,6 +1000,108 @@ void CONNECTION_GRAPH::collectAllDriverValues()
|
|||
}
|
||||
|
||||
|
||||
void CONNECTION_GRAPH::generateBusAliasMembers()
|
||||
{
|
||||
std::vector<CONNECTION_SUBGRAPH*> new_subgraphs;
|
||||
|
||||
SCH_CONNECTION dummy( this );
|
||||
|
||||
for( auto&& subgraph : m_driver_subgraphs )
|
||||
{
|
||||
auto vec = subgraph->GetAllBusLabels();
|
||||
|
||||
for( auto& item : vec )
|
||||
{
|
||||
SCH_LABEL_BASE* label = static_cast<SCH_LABEL_BASE*>( item );
|
||||
|
||||
dummy.ConfigureFromLabel( label->GetText() );
|
||||
|
||||
wxLogTrace( ConnTrace, wxS( "new bus label (%s)" ), label->GetText() );
|
||||
|
||||
for( auto& conn : dummy.Members() )
|
||||
{
|
||||
wxString name = conn->FullLocalName();
|
||||
|
||||
CONNECTION_SUBGRAPH* new_sg = new CONNECTION_SUBGRAPH( this );
|
||||
SCH_CONNECTION* new_conn = new SCH_CONNECTION( this );
|
||||
|
||||
new_conn->SetName( name );
|
||||
new_conn->SetType( CONNECTION_TYPE::NET );
|
||||
int code = assignNewNetCode( *new_conn );
|
||||
|
||||
wxLogTrace( ConnTrace, wxS( "SG(%ld), Adding full local name (%s) with sg (%d)" ), subgraph->m_code,
|
||||
name, code );
|
||||
|
||||
new_sg->m_driver_connection = new_conn;
|
||||
new_sg->m_code = m_last_subgraph_code++;
|
||||
new_sg->m_sheet = subgraph->GetSheet();
|
||||
new_sg->m_is_bus_member = true;
|
||||
new_sg->m_strong_driver = true;
|
||||
/// Need to figure out why these sgs are not getting connected to their bus parents
|
||||
|
||||
NET_NAME_CODE_CACHE_KEY key = { new_sg->GetNetName(), code };
|
||||
m_net_code_to_subgraphs_map[ key ].push_back( new_sg );
|
||||
m_net_name_to_subgraphs_map[ name ].push_back( new_sg );
|
||||
m_subgraphs.push_back( new_sg );
|
||||
new_subgraphs.push_back( new_sg );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::copy( new_subgraphs.begin(), new_subgraphs.end(), std::back_inserter( m_driver_subgraphs ) );
|
||||
}
|
||||
|
||||
void CONNECTION_GRAPH::generateBusAliasMembers()
|
||||
{
|
||||
std::vector<CONNECTION_SUBGRAPH*> new_subgraphs;
|
||||
|
||||
SCH_CONNECTION dummy( this );
|
||||
|
||||
for( auto&& subgraph : m_driver_subgraphs )
|
||||
{
|
||||
auto vec = subgraph->GetAllBusLabels();
|
||||
|
||||
for( auto& item : vec )
|
||||
{
|
||||
SCH_LABEL_BASE* label = static_cast<SCH_LABEL_BASE*>( item );
|
||||
|
||||
dummy.ConfigureFromLabel( label->GetText() );
|
||||
|
||||
wxLogTrace( ConnTrace, wxS( "new bus label (%s)" ), label->GetText() );
|
||||
|
||||
for( auto& conn : dummy.Members() )
|
||||
{
|
||||
wxString name = conn->FullLocalName();
|
||||
|
||||
CONNECTION_SUBGRAPH* new_sg = new CONNECTION_SUBGRAPH( this );
|
||||
SCH_CONNECTION* new_conn = new SCH_CONNECTION( this );
|
||||
|
||||
new_conn->SetName( name );
|
||||
new_conn->SetType( CONNECTION_TYPE::NET );
|
||||
int code = assignNewNetCode( *new_conn );
|
||||
|
||||
wxLogTrace( ConnTrace, wxS( "SG(%ld), Adding full local name (%s) with sg (%d)" ), subgraph->m_code,
|
||||
name, code );
|
||||
|
||||
new_sg->m_driver_connection = new_conn;
|
||||
new_sg->m_code = m_last_subgraph_code++;
|
||||
new_sg->m_sheet = subgraph->GetSheet();
|
||||
new_sg->m_is_bus_member = true;
|
||||
new_sg->m_strong_driver = true;
|
||||
/// Need to figure out why these sgs are not getting connected to their bus parents
|
||||
|
||||
NET_NAME_CODE_CACHE_KEY key = { new_sg->GetNetName(), code };
|
||||
m_net_code_to_subgraphs_map[ key ].push_back( new_sg );
|
||||
m_net_name_to_subgraphs_map[ name ].push_back( new_sg );
|
||||
m_subgraphs.push_back( new_sg );
|
||||
new_subgraphs.push_back( new_sg );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::copy( new_subgraphs.begin(), new_subgraphs.end(), std::back_inserter( m_driver_subgraphs ) );
|
||||
}
|
||||
|
||||
void CONNECTION_GRAPH::generateInvisiblePinSubGraphs()
|
||||
{
|
||||
// Generate subgraphs for invisible power pins. These will be merged with other subgraphs
|
||||
|
@ -1115,7 +1246,7 @@ void CONNECTION_GRAPH::processSubGraphs()
|
|||
|
||||
name = new_name;
|
||||
}
|
||||
else
|
||||
else if( subgraph->m_driver )
|
||||
{
|
||||
// If there is no conflict, promote sheet pins to be strong drivers so that they
|
||||
// will be considered below for propagation/merging.
|
||||
|
@ -1355,7 +1486,8 @@ void CONNECTION_GRAPH::processSubGraphs()
|
|||
if( subgraph->m_absorbed )
|
||||
continue;
|
||||
|
||||
subgraph->ResolveDrivers();
|
||||
if( !subgraph->ResolveDrivers() )
|
||||
continue;
|
||||
|
||||
if( subgraph->m_driver_connection->IsBus() )
|
||||
assignNetCodesToBus( subgraph->m_driver_connection );
|
||||
|
@ -1412,6 +1544,8 @@ void CONNECTION_GRAPH::buildConnectionGraph( std::function<void( SCH_ITEM* )>* a
|
|||
|
||||
generateInvisiblePinSubGraphs();
|
||||
|
||||
generateBusAliasMembers();
|
||||
|
||||
PROF_TIMER proc_sub_graph( "ProcessSubGraphs" );
|
||||
processSubGraphs();
|
||||
|
||||
|
@ -1610,7 +1744,7 @@ void CONNECTION_GRAPH::buildConnectionGraph( std::function<void( SCH_ITEM* )>* a
|
|||
// As a visual aid, we can check sheet pins that are driven by themselves to see
|
||||
// if they should be promoted to buses
|
||||
|
||||
if( subgraph->m_driver->Type() == SCH_SHEET_PIN_T )
|
||||
if( subgraph->m_driver && subgraph->m_driver->Type() == SCH_SHEET_PIN_T )
|
||||
{
|
||||
SCH_SHEET_PIN* pin = static_cast<SCH_SHEET_PIN*>( subgraph->m_driver );
|
||||
|
||||
|
@ -1740,22 +1874,30 @@ void CONNECTION_GRAPH::buildConnectionGraph( std::function<void( SCH_ITEM* )>* a
|
|||
}
|
||||
|
||||
|
||||
int CONNECTION_GRAPH::assignNewNetCode( SCH_CONNECTION& aConnection )
|
||||
int CONNECTION_GRAPH::getOrCreateNetCode( const wxString& aNetName )
|
||||
{
|
||||
int code;
|
||||
|
||||
auto it = m_net_name_to_code_map.find( aConnection.Name() );
|
||||
auto it = m_net_name_to_code_map.find( aNetName );
|
||||
|
||||
if( it == m_net_name_to_code_map.end() )
|
||||
{
|
||||
code = m_last_net_code++;
|
||||
m_net_name_to_code_map[ aConnection.Name() ] = code;
|
||||
m_net_name_to_code_map[ aNetName ] = code;
|
||||
}
|
||||
else
|
||||
{
|
||||
code = it->second;
|
||||
}
|
||||
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
int CONNECTION_GRAPH::assignNewNetCode( SCH_CONNECTION& aConnection )
|
||||
{
|
||||
int code = getOrCreateNetCode( aConnection.Name() );
|
||||
|
||||
aConnection.SetNetCode( code );
|
||||
|
||||
return code;
|
||||
|
@ -2235,7 +2377,7 @@ std::vector<const CONNECTION_SUBGRAPH*> CONNECTION_GRAPH::GetBusesNeedingMigrati
|
|||
if( !connection->IsBus() )
|
||||
continue;
|
||||
|
||||
auto labels = subgraph->GetBusLabels();
|
||||
auto labels = subgraph->GetVectorBusLabels();
|
||||
|
||||
if( labels.size() > 1 )
|
||||
{
|
||||
|
|
|
@ -76,6 +76,7 @@ public:
|
|||
m_graph( aGraph ),
|
||||
m_dirty( false ),
|
||||
m_absorbed( false ),
|
||||
m_is_bus_member( false ),
|
||||
m_absorbed_by( nullptr ),
|
||||
m_code( -1 ),
|
||||
m_multiple_drivers( false ),
|
||||
|
@ -108,8 +109,11 @@ public:
|
|||
*/
|
||||
wxString GetNetName() const;
|
||||
|
||||
/// Returns all the bus labels attached to this subgraph (if any)
|
||||
std::vector<SCH_ITEM*> GetBusLabels() const;
|
||||
/// Returns all the vector-based bus labels attached to this subgraph (if any)
|
||||
std::vector<SCH_ITEM*> GetVectorBusLabels() const;
|
||||
|
||||
/// Returns all the all bus labels attached to this subgraph (if any)
|
||||
std::vector<SCH_ITEM*> GetAllBusLabels() const;
|
||||
|
||||
/// Returns the candidate net name for a driver
|
||||
const wxString& GetNameForDriver( SCH_ITEM* aItem ) const;
|
||||
|
@ -160,6 +164,12 @@ public:
|
|||
/// True if this subgraph has been absorbed into another. No pointers here are safe if so!
|
||||
bool m_absorbed;
|
||||
|
||||
/**
|
||||
* True if the subgraph is not actually part of a net. These are created for bus members
|
||||
* to ensure that bus-to-bus connection happens but they don't have any valid data
|
||||
*/
|
||||
bool m_is_bus_member;
|
||||
|
||||
/// If this subgraph is absorbed, points to the absorbing (and valid) subgraph
|
||||
CONNECTION_SUBGRAPH* m_absorbed_by;
|
||||
|
||||
|
@ -421,6 +431,11 @@ private:
|
|||
*/
|
||||
void generateInvisiblePinSubGraphs();
|
||||
|
||||
/**
|
||||
* Iterate through labels to create placeholders for bus elements
|
||||
*/
|
||||
void generateBusAliasMembers();
|
||||
|
||||
/**
|
||||
* Process all subgraphs to assign netcodes and merge subgraphs based on labels
|
||||
*/
|
||||
|
@ -433,6 +448,13 @@ private:
|
|||
*/
|
||||
int assignNewNetCode( SCH_CONNECTION& aConnection );
|
||||
|
||||
/**
|
||||
*
|
||||
* @param aNetName string with the netname for coding
|
||||
* @return existing netcode (if it exists) or newly created one
|
||||
*/
|
||||
int getOrCreateNetCode( const wxString& aNetName );
|
||||
|
||||
/**
|
||||
* Ensures all members of the bus connection have a valid net code assigned
|
||||
* @param aConnection is a bus connection
|
||||
|
|
|
@ -84,7 +84,7 @@ void DIALOG_MIGRATE_BUSES::loadGraphData()
|
|||
status.subgraph = subgraph;
|
||||
status.approved = false;
|
||||
|
||||
std::vector<SCH_ITEM*> labels = subgraph->GetBusLabels();
|
||||
std::vector<SCH_ITEM*> labels = subgraph->GetVectorBusLabels();
|
||||
wxASSERT( labels.size() > 1 );
|
||||
|
||||
for( SCH_ITEM* label : labels )
|
||||
|
@ -205,7 +205,7 @@ void DIALOG_MIGRATE_BUSES::onAcceptClicked( wxCommandEvent& aEvent )
|
|||
m_items[sel].approved_label = m_cb_new_name->GetStringSelection();
|
||||
m_items[sel].approved = true;
|
||||
|
||||
std::vector<SCH_ITEM*> labels = m_items[sel].subgraph->GetBusLabels();
|
||||
std::vector<SCH_ITEM*> labels = m_items[sel].subgraph->GetVectorBusLabels();
|
||||
|
||||
for( SCH_ITEM* label : labels )
|
||||
static_cast<SCH_LABEL_BASE*>( label )->SetText( m_items[sel].approved_label );
|
||||
|
|
|
@ -0,0 +1,160 @@
|
|||
(kicad_sch (version 20230221) (generator eeschema)
|
||||
|
||||
(uuid 30edb06d-0398-4b73-a0e5-4a4fb8ab4463)
|
||||
|
||||
(paper "A5")
|
||||
|
||||
(lib_symbols
|
||||
(symbol "~ Connector_Generic:Conn_01x03" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
|
||||
(property "Reference" "J" (at 0 5.08 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "Conn_01x03" (at 0 -5.08 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_keywords" "connector" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_description" "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(symbol "Conn_01x03_1_1"
|
||||
(rectangle (start -1.27 -2.413) (end 0 -2.667)
|
||||
(stroke (width 0.1524) (type default))
|
||||
(fill (type none))
|
||||
)
|
||||
(rectangle (start -1.27 0.127) (end 0 -0.127)
|
||||
(stroke (width 0.1524) (type default))
|
||||
(fill (type none))
|
||||
)
|
||||
(rectangle (start -1.27 2.667) (end 0 2.413)
|
||||
(stroke (width 0.1524) (type default))
|
||||
(fill (type none))
|
||||
)
|
||||
(rectangle (start -1.27 3.81) (end 1.27 -3.81)
|
||||
(stroke (width 0.254) (type default))
|
||||
(fill (type background))
|
||||
)
|
||||
(pin passive line (at -5.08 2.54 0) (length 3.81)
|
||||
(name "Pin_1" (effects (font (size 1.27 1.27))))
|
||||
(number "1" (effects (font (size 1.27 1.27))))
|
||||
)
|
||||
(pin passive line (at -5.08 0 0) (length 3.81)
|
||||
(name "Pin_2" (effects (font (size 1.27 1.27))))
|
||||
(number "2" (effects (font (size 1.27 1.27))))
|
||||
)
|
||||
(pin passive line (at -5.08 -2.54 0) (length 3.81)
|
||||
(name "Pin_3" (effects (font (size 1.27 1.27))))
|
||||
(number "3" (effects (font (size 1.27 1.27))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(bus_entry (at 96.52 44.45) (size -2.54 2.54)
|
||||
(stroke (width 0) (type default))
|
||||
(uuid cc1f5d51-2d54-4ea2-b1c3-c8bba22126a2)
|
||||
)
|
||||
(bus_entry (at 109.22 44.45) (size -2.54 2.54)
|
||||
(stroke (width 0) (type default))
|
||||
(uuid d1f02c97-da28-49e7-b9a4-dec79a488f13)
|
||||
)
|
||||
(bus_entry (at 100.33 44.45) (size -2.54 2.54)
|
||||
(stroke (width 0) (type default))
|
||||
(uuid def8b9b5-2505-48ff-9b3b-cd8ce28b6206)
|
||||
)
|
||||
|
||||
(wire (pts (xy 74.295 49.53) (xy 97.79 49.53))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 0794b1de-3f74-42d6-8eec-5e4f7d432643)
|
||||
)
|
||||
(wire (pts (xy 106.68 46.99) (xy 106.68 52.07))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 0c5b4c22-8511-4de6-a97b-e12c5795e14e)
|
||||
)
|
||||
(bus (pts (xy 96.52 44.45) (xy 78.105 44.45))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 0dfc5bc1-999f-4a77-9576-ff0db5ad0680)
|
||||
)
|
||||
|
||||
(wire (pts (xy 97.79 46.99) (xy 97.79 49.53))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 40d65368-33f8-4f19-9dbc-d07f44c268af)
|
||||
)
|
||||
(wire (pts (xy 74.295 46.99) (xy 93.98 46.99))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 5630bc71-58d3-4869-a158-8f363547975f)
|
||||
)
|
||||
(bus (pts (xy 109.22 44.45) (xy 100.33 44.45))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 59cbc292-22cd-44a9-b912-1d2fd61c7afc)
|
||||
)
|
||||
(bus (pts (xy 114.935 44.45) (xy 109.22 44.45))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid a58ab488-7e75-430f-8acd-861726ee59ac)
|
||||
)
|
||||
(bus (pts (xy 100.33 44.45) (xy 96.52 44.45))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid c6ff4f7f-1274-4425-ae92-d843cc7b63a2)
|
||||
)
|
||||
|
||||
(wire (pts (xy 74.295 52.07) (xy 106.68 52.07))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid f8e1eb65-4c18-4582-8471-178984b3b373)
|
||||
)
|
||||
|
||||
(label "z" (at 83.82 52.07 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 0b652e90-2f82-45c2-9d01-0e4e7248afb8)
|
||||
)
|
||||
(label "x" (at 83.82 46.99 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 47e30a02-cde0-4086-b28d-ab9fe93f63dd)
|
||||
)
|
||||
(label "y" (at 83.82 49.53 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 5bd0a741-c441-41e3-9f70-0283739d5646)
|
||||
)
|
||||
|
||||
(hierarchical_label "{a_xyz}" (shape bidirectional) (at 114.935 44.45 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid 7a76ade4-916b-44d8-bd14-1cdd87bc3758)
|
||||
)
|
||||
|
||||
(symbol (lib_id "~ Connector_Generic:Conn_01x03") (at 69.215 49.53 0) (mirror y) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid b606574e-10df-4dfe-9667-bc4a052fb03b)
|
||||
(property "Reference" "J1" (at 69.215 44.45 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "Conn_01x03" (at 69.215 54.61 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" "" (at 69.215 49.53 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 69.215 49.53 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid 54680977-9c2b-43fe-96e3-95cd1de0091b))
|
||||
(pin "2" (uuid f15a7bd3-0c82-41ae-ade7-f790a2585e98))
|
||||
(pin "3" (uuid e74902b5-0fe1-49bf-b8be-bdb50a5aa04c))
|
||||
(instances
|
||||
(project "bus_connection"
|
||||
(path "/3082b26f-b83d-4458-bb0e-9c16987db84d/409e30f5-e026-4121-aa4f-ead0fa3cc75d"
|
||||
(reference "J1") (unit 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
|
@ -0,0 +1,103 @@
|
|||
(kicad_sch (version 20230221) (generator eeschema)
|
||||
|
||||
(uuid 65d67cd4-61d3-4c2e-ab3f-57d073d8e5c5)
|
||||
|
||||
(paper "A5")
|
||||
|
||||
(lib_symbols
|
||||
)
|
||||
|
||||
|
||||
(bus_entry (at 125.095 60.325) (size -2.54 2.54)
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 2cfa0c33-3a80-46bf-be1f-9e5e2543d076)
|
||||
)
|
||||
|
||||
(polyline (pts (xy 94.615 55.88) (xy 94.615 55.88))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 300762f2-ee23-4493-a534-946205569afe)
|
||||
)
|
||||
(polyline (pts (xy 105.41 54.61) (xy 94.615 55.88))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 3a5a4b9a-5c35-4302-ba94-1e3c75b273e8)
|
||||
)
|
||||
|
||||
(wire (pts (xy 122.555 62.865) (xy 114.935 62.865))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 4714ee9d-d58e-4b5e-a14d-1ecea4ec0ed4)
|
||||
)
|
||||
(polyline (pts (xy 94.615 55.88) (xy 105.41 60.325))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 5b22aa0d-72f0-4a19-a129-a1aead2ea2ac)
|
||||
)
|
||||
|
||||
(bus (pts (xy 111.125 54.61) (xy 139.7 54.61))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 6997dea3-a1bb-4070-8e43-0a60adb64917)
|
||||
)
|
||||
|
||||
(polyline (pts (xy 94.615 55.88) (xy 94.615 55.88))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 74854b28-ca76-44db-b157-efbfb0e70205)
|
||||
)
|
||||
|
||||
(bus (pts (xy 111.125 60.325) (xy 125.095 60.325))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 9db4f7b4-6417-4133-8c2e-58f8aa4b978d)
|
||||
)
|
||||
(bus (pts (xy 58.42 55.88) (xy 85.725 55.88))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid df7258c0-53f9-48b3-afcd-dffad21b67e1)
|
||||
)
|
||||
(bus (pts (xy 125.095 60.325) (xy 139.7 60.325))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid fe0aac26-1edf-483b-92d6-7bc528cf128d)
|
||||
)
|
||||
|
||||
(label "test{b_x}" (at 117.475 54.61 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 0d9421f7-6251-461d-9a64-1c622095e206)
|
||||
)
|
||||
(label "test.y" (at 114.935 62.865 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 45c6ede6-8190-4988-bc48-67133564f0e5)
|
||||
)
|
||||
(label "test{b_yz}" (at 117.475 60.325 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 77ea9433-722b-41a5-8fa8-8f72cb1250e8)
|
||||
)
|
||||
(label "test{a_xyz}" (at 77.47 55.88 180) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify right bottom))
|
||||
(uuid 98889db7-b464-4b21-991d-ba7b664faeb8)
|
||||
)
|
||||
|
||||
(hierarchical_label "test{a_xyz}" (shape bidirectional) (at 58.42 55.88 180) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid 45904479-9bfb-4ad7-b655-749e792c2b18)
|
||||
)
|
||||
|
||||
(sheet (at 139.7 50.165) (size 26.035 14.605) (fields_autoplaced)
|
||||
(stroke (width 0.1524) (type solid))
|
||||
(fill (color 0 0 0 0.0000))
|
||||
(uuid 2866a517-6cac-46c4-af83-6d16fab5045c)
|
||||
(property "Sheetname" "b" (at 139.7 49.4534 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
)
|
||||
(property "Sheetfile" "b.kicad_sch" (at 139.7 65.3546 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left top))
|
||||
)
|
||||
(pin "{b_yz}" bidirectional (at 139.7 60.325 180)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid 64bfb41c-6f1c-4d96-89e7-e286f4d8d767)
|
||||
)
|
||||
(pin "{b_x}" bidirectional (at 139.7 54.61 180)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid 8e5d7f46-f036-4567-95f9-877f28e425f0)
|
||||
)
|
||||
(instances
|
||||
(project "bus_connection"
|
||||
(path "/3082b26f-b83d-4458-bb0e-9c16987db84d/8e047953-57e8-499d-89c7-aaeb7ad61c51" (page "4"))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
|
@ -0,0 +1,183 @@
|
|||
(kicad_sch (version 20230221) (generator eeschema)
|
||||
|
||||
(uuid 16fed816-fc7d-4533-b4bb-3767a33f90e6)
|
||||
|
||||
(paper "A5")
|
||||
|
||||
(lib_symbols
|
||||
(symbol "~ Connector_Generic:Conn_01x03" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
|
||||
(property "Reference" "J" (at 0 5.08 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "Conn_01x03" (at 0 -5.08 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" "" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_keywords" "connector" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_description" "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(symbol "Conn_01x03_1_1"
|
||||
(rectangle (start -1.27 -2.413) (end 0 -2.667)
|
||||
(stroke (width 0.1524) (type default))
|
||||
(fill (type none))
|
||||
)
|
||||
(rectangle (start -1.27 0.127) (end 0 -0.127)
|
||||
(stroke (width 0.1524) (type default))
|
||||
(fill (type none))
|
||||
)
|
||||
(rectangle (start -1.27 2.667) (end 0 2.413)
|
||||
(stroke (width 0.1524) (type default))
|
||||
(fill (type none))
|
||||
)
|
||||
(rectangle (start -1.27 3.81) (end 1.27 -3.81)
|
||||
(stroke (width 0.254) (type default))
|
||||
(fill (type background))
|
||||
)
|
||||
(pin passive line (at -5.08 2.54 0) (length 3.81)
|
||||
(name "Pin_1" (effects (font (size 1.27 1.27))))
|
||||
(number "1" (effects (font (size 1.27 1.27))))
|
||||
)
|
||||
(pin passive line (at -5.08 0 0) (length 3.81)
|
||||
(name "Pin_2" (effects (font (size 1.27 1.27))))
|
||||
(number "2" (effects (font (size 1.27 1.27))))
|
||||
)
|
||||
(pin passive line (at -5.08 -2.54 0) (length 3.81)
|
||||
(name "Pin_3" (effects (font (size 1.27 1.27))))
|
||||
(number "3" (effects (font (size 1.27 1.27))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(bus_entry (at 102.235 60.96) (size -2.54 2.54)
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 3b511746-2bc6-475f-86a1-1d3f9104a48a)
|
||||
)
|
||||
(bus_entry (at 111.125 60.96) (size -2.54 2.54)
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 72af7004-c121-4a1c-b459-4ea3e5468598)
|
||||
)
|
||||
(bus_entry (at 98.425 50.165) (size -2.54 2.54)
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 85d4833f-eb40-430d-8a9f-08a5572cc531)
|
||||
)
|
||||
|
||||
(wire (pts (xy 108.585 63.5) (xy 108.585 68.58))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 17aa2347-e3d1-4a22-9cd5-135fed5df610)
|
||||
)
|
||||
(wire (pts (xy 70.485 57.785) (xy 70.485 68.58))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 489778e1-01ed-4742-9c6f-fd77c10d7bcb)
|
||||
)
|
||||
(wire (pts (xy 65.405 55.245) (xy 72.39 55.245))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 60c6901a-ee12-4adc-a4a9-900daa3c1d3c)
|
||||
)
|
||||
(wire (pts (xy 65.405 57.785) (xy 70.485 57.785))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 7347a216-d108-44de-ba7a-ae236d6bdc99)
|
||||
)
|
||||
(bus (pts (xy 80.01 60.96) (xy 102.235 60.96))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 7ad7c6ef-6b7c-4762-bc3c-ddbf9a703eea)
|
||||
)
|
||||
(bus (pts (xy 98.425 50.165) (xy 80.01 50.165))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 7c38bae9-4512-42bf-bdc9-28421ee84941)
|
||||
)
|
||||
(bus (pts (xy 111.125 60.96) (xy 102.235 60.96))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 7ca2c0d9-073c-460e-8a30-0b7b73ab96c6)
|
||||
)
|
||||
|
||||
(wire (pts (xy 65.405 52.705) (xy 95.885 52.705))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 95c7c359-76de-4ccb-a611-d72b625445bc)
|
||||
)
|
||||
(wire (pts (xy 72.39 66.04) (xy 99.695 66.04))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid bf1ebdaf-06e1-471d-9578-e11273a9dcbf)
|
||||
)
|
||||
(wire (pts (xy 70.485 68.58) (xy 108.585 68.58))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid c663a086-81a8-42a1-a455-2639e13f24ce)
|
||||
)
|
||||
(wire (pts (xy 99.695 63.5) (xy 99.695 66.04))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid d7de1da6-5a37-4b58-b8dc-ed9ab31d7e31)
|
||||
)
|
||||
(wire (pts (xy 72.39 55.245) (xy 72.39 66.04))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid e0d86b2d-3926-41bc-be33-0cb97efda5cb)
|
||||
)
|
||||
(bus (pts (xy 98.425 50.165) (xy 116.84 50.165))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid e267daec-e366-4386-b62f-e6dc27de20f6)
|
||||
)
|
||||
(bus (pts (xy 116.84 60.96) (xy 111.125 60.96))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid f48ae99f-9e30-4937-803d-8e15eee62273)
|
||||
)
|
||||
|
||||
(label "z" (at 85.725 68.58 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 1fe76f15-7eb4-43fb-8c9f-bfe9eb3bbb9b)
|
||||
)
|
||||
(label "y" (at 85.725 66.04 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 4a2efd8a-d778-47e5-9434-6a5b64d07b9f)
|
||||
)
|
||||
(label "x" (at 85.725 52.705 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid 4a7e2d72-7fdd-44d8-a478-1559bd072c65)
|
||||
)
|
||||
|
||||
(hierarchical_label "{b_x}" (shape bidirectional) (at 116.84 50.165 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid 31b92389-713f-4a0f-b1eb-e2a5cc08afab)
|
||||
)
|
||||
(hierarchical_label "{b_yz}" (shape bidirectional) (at 116.84 60.96 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid 95ee20fa-b8a7-454a-a246-daec0b2caf11)
|
||||
)
|
||||
|
||||
(symbol (lib_id "~ Connector_Generic:Conn_01x03") (at 60.325 55.245 0) (mirror y) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid 7237f2f6-7a70-470a-83e2-356d7d23087b)
|
||||
(property "Reference" "J2" (at 60.325 50.165 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Value" "Conn_01x03" (at 60.325 60.325 0)
|
||||
(effects (font (size 1.27 1.27)))
|
||||
)
|
||||
(property "Footprint" "" (at 60.325 55.245 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(property "Datasheet" "~" (at 60.325 55.245 0)
|
||||
(effects (font (size 1.27 1.27)) hide)
|
||||
)
|
||||
(pin "1" (uuid e8152456-44bc-40e6-beab-169440849142))
|
||||
(pin "2" (uuid c28b7e4a-c2fe-4667-866e-38b09b002c62))
|
||||
(pin "3" (uuid 506f2f0a-d537-4521-8898-191da9fa39b4))
|
||||
(instances
|
||||
(project "bus_connection"
|
||||
(path "/3082b26f-b83d-4458-bb0e-9c16987db84d/8e047953-57e8-499d-89c7-aaeb7ad61c51/2866a517-6cac-46c4-af83-6d16fab5045c"
|
||||
(reference "J2") (unit 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
|
@ -0,0 +1,411 @@
|
|||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"board_outline_line_width": 0.1,
|
||||
"copper_line_width": 0.2,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"other_line_width": 0.15,
|
||||
"silk_line_width": 0.15,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.15
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [],
|
||||
"rules": {
|
||||
"min_copper_edge_clearance": 0.0,
|
||||
"solder_mask_clearance": 0.0,
|
||||
"solder_mask_min_width": 0.0
|
||||
},
|
||||
"track_widths": [],
|
||||
"via_dimensions": []
|
||||
},
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"erc": {
|
||||
"erc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"pin_map": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
],
|
||||
"rule_severities": {
|
||||
"bus_definition_conflict": "error",
|
||||
"bus_entry_needed": "error",
|
||||
"bus_label_syntax": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"conflicting_netclasses": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "warning",
|
||||
"missing_bidi_pin": "warning",
|
||||
"missing_input_pin": "warning",
|
||||
"missing_power_pin": "error",
|
||||
"missing_unit": "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",
|
||||
"simulation_model_issue": "error",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "bus_connection.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"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
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"bom_fmt_presets": [],
|
||||
"bom_fmt_settings": {
|
||||
"field_delimiter": ",",
|
||||
"keep_line_breaks": false,
|
||||
"keep_tabs": false,
|
||||
"name": "CSV",
|
||||
"ref_delimiter": ",",
|
||||
"ref_range_delimiter": "",
|
||||
"string_delimiter": "\""
|
||||
},
|
||||
"bom_presets": [],
|
||||
"bom_settings": {
|
||||
"exclude_dnp": false,
|
||||
"fields_ordered": [
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Reference",
|
||||
"name": "Reference",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Value",
|
||||
"name": "Value",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Datasheet",
|
||||
"name": "Datasheet",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Footprint",
|
||||
"name": "Footprint",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Qty",
|
||||
"name": "Quantity",
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": true,
|
||||
"name": "Grouped By Value",
|
||||
"sort_asc": true,
|
||||
"sort_field": "Reference"
|
||||
},
|
||||
"drawing": {
|
||||
"dashed_lines_dash_length_ratio": 12.0,
|
||||
"dashed_lines_gap_length_ratio": 3.0,
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
"intersheets_ref_show": false,
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.375,
|
||||
"operating_point_overlay_i_precision": 3,
|
||||
"operating_point_overlay_i_range": "~A",
|
||||
"operating_point_overlay_v_precision": 3,
|
||||
"operating_point_overlay_v_range": "~V",
|
||||
"pin_symbol_size": 25.0,
|
||||
"text_offset_ratio": 0.15
|
||||
},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"net_format_name": "KiCad",
|
||||
"ngspice": {
|
||||
"fix_include_paths": true,
|
||||
"fix_passive_vals": false,
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"model_mode": 0,
|
||||
"workbook_filename": ""
|
||||
},
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": ".",
|
||||
"spice_adjust_passive_values": false,
|
||||
"spice_current_sheet_as_root": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"spice_model_current_sheet_as_root": true,
|
||||
"spice_save_all_currents": false,
|
||||
"spice_save_all_dissipations": false,
|
||||
"spice_save_all_voltages": false,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"3082b26f-b83d-4458-bb0e-9c16987db84d",
|
||||
""
|
||||
],
|
||||
[
|
||||
"409e30f5-e026-4121-aa4f-ead0fa3cc75d",
|
||||
"a"
|
||||
],
|
||||
[
|
||||
"8e047953-57e8-499d-89c7-aaeb7ad61c51",
|
||||
"a2"
|
||||
],
|
||||
[
|
||||
"2866a517-6cac-46c4-af83-6d16fab5045c",
|
||||
"b"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
(kicad_sch (version 20230221) (generator eeschema)
|
||||
|
||||
(uuid 3082b26f-b83d-4458-bb0e-9c16987db84d)
|
||||
|
||||
(paper "A5")
|
||||
|
||||
(lib_symbols
|
||||
)
|
||||
|
||||
(bus_alias "b_x" (members "x"))
|
||||
(bus_alias "a_xyz" (members "x" "y" "z"))
|
||||
(bus_alias "b_yz" (members "y" "z"))
|
||||
|
||||
(bus (pts (xy 85.725 48.26) (xy 113.665 48.26))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid 6a3f32a3-fa94-40d4-b2c7-ea69521bd6e2)
|
||||
)
|
||||
|
||||
(label "top{a_xyz}" (at 95.25 48.26 0) (fields_autoplaced)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid ea738e62-37a3-40e2-9e94-fa1e0c67ca38)
|
||||
)
|
||||
|
||||
(sheet (at 69.85 41.275) (size 15.875 13.97) (fields_autoplaced)
|
||||
(stroke (width 0.1524) (type solid))
|
||||
(fill (color 0 0 0 0.0000))
|
||||
(uuid 409e30f5-e026-4121-aa4f-ead0fa3cc75d)
|
||||
(property "Sheetname" "a" (at 69.85 40.5634 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
)
|
||||
(property "Sheetfile" "a.kicad_sch" (at 69.85 55.8296 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left top))
|
||||
)
|
||||
(pin "{a_xyz}" bidirectional (at 85.725 48.26 0)
|
||||
(effects (font (size 1.27 1.27)) (justify right))
|
||||
(uuid 1560bde8-b48c-4bba-bc9a-d0b992953eb8)
|
||||
)
|
||||
(instances
|
||||
(project "bus_connection"
|
||||
(path "/3082b26f-b83d-4458-bb0e-9c16987db84d" (page "2"))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(sheet (at 113.665 43.18) (size 16.51 13.335) (fields_autoplaced)
|
||||
(stroke (width 0.1524) (type solid))
|
||||
(fill (color 0 0 0 0.0000))
|
||||
(uuid 8e047953-57e8-499d-89c7-aaeb7ad61c51)
|
||||
(property "Sheetname" "a2" (at 113.665 42.4684 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
)
|
||||
(property "Sheetfile" "a2.kicad_sch" (at 113.665 57.0996 0)
|
||||
(effects (font (size 1.27 1.27)) (justify left top))
|
||||
)
|
||||
(pin "test{a_xyz}" bidirectional (at 113.665 48.26 180)
|
||||
(effects (font (size 1.27 1.27)) (justify left))
|
||||
(uuid 62edb4b4-8dde-4234-a79c-0f056d5d0643)
|
||||
)
|
||||
(instances
|
||||
(project "bus_connection"
|
||||
(path "/3082b26f-b83d-4458-bb0e-9c16987db84d" (page "3"))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(sheet_instances
|
||||
(path "/" (page "1"))
|
||||
)
|
||||
)
|
|
@ -0,0 +1,113 @@
|
|||
(export (version "E")
|
||||
(design
|
||||
(source "/tmp/bus_connection/bus_connection.kicad_sch")
|
||||
(date "Tue 04 Apr 2023 03:12:09 PM PDT")
|
||||
(tool "Eeschema 7.99.0-693-ge4714b9abf-dirty")
|
||||
(sheet (number "1") (name "/") (tstamps "/")
|
||||
(title_block
|
||||
(title)
|
||||
(company)
|
||||
(rev)
|
||||
(date)
|
||||
(source "bus_connection.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 "/a/") (tstamps "/409e30f5-e026-4121-aa4f-ead0fa3cc75d/")
|
||||
(title_block
|
||||
(title)
|
||||
(company)
|
||||
(rev)
|
||||
(date)
|
||||
(source "a.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 "/a2/") (tstamps "/8e047953-57e8-499d-89c7-aaeb7ad61c51/")
|
||||
(title_block
|
||||
(title)
|
||||
(company)
|
||||
(rev)
|
||||
(date)
|
||||
(source "a2.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 "/a2/b/") (tstamps "/8e047953-57e8-499d-89c7-aaeb7ad61c51/2866a517-6cac-46c4-af83-6d16fab5045c/")
|
||||
(title_block
|
||||
(title)
|
||||
(company)
|
||||
(rev)
|
||||
(date)
|
||||
(source "b.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 "J1")
|
||||
(value "Conn_01x03")
|
||||
(libsource (lib "~ Connector_Generic") (part "Conn_01x03") (description "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(property (name "Sheetname") (value "a"))
|
||||
(property (name "Sheetfile") (value "a.kicad_sch"))
|
||||
(property (name "ki_description") (value "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(property (name "ki_keywords") (value "connector"))
|
||||
(sheetpath (names "/a/") (tstamps "/409e30f5-e026-4121-aa4f-ead0fa3cc75d/"))
|
||||
(tstamps "b606574e-10df-4dfe-9667-bc4a052fb03b"))
|
||||
(comp (ref "J2")
|
||||
(value "Conn_01x03")
|
||||
(libsource (lib "~ Connector_Generic") (part "Conn_01x03") (description "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(property (name "Sheetname") (value "b"))
|
||||
(property (name "Sheetfile") (value "b.kicad_sch"))
|
||||
(property (name "ki_description") (value "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)"))
|
||||
(property (name "ki_keywords") (value "connector"))
|
||||
(sheetpath (names "/a2/b/") (tstamps "/8e047953-57e8-499d-89c7-aaeb7ad61c51/2866a517-6cac-46c4-af83-6d16fab5045c/"))
|
||||
(tstamps "7237f2f6-7a70-470a-83e2-356d7d23087b")))
|
||||
(libparts
|
||||
(libpart (lib "~ Connector_Generic") (part "Conn_01x03")
|
||||
(description "Generic connector, single row, 01x03, script generated (kicad-library-utils/schlib/autogen/connector/)")
|
||||
(docs "~")
|
||||
(footprints
|
||||
(fp "Connector*:*_1x??_*"))
|
||||
(fields
|
||||
(field (name "Reference") "J")
|
||||
(field (name "Value") "Conn_01x03")
|
||||
(field (name "Datasheet") "~"))
|
||||
(pins
|
||||
(pin (num "1") (name "Pin_1") (type "passive"))
|
||||
(pin (num "2") (name "Pin_2") (type "passive"))
|
||||
(pin (num "3") (name "Pin_3") (type "passive")))))
|
||||
(libraries)
|
||||
(nets
|
||||
(net (code "8") (name "/test.x")
|
||||
(node (ref "J1") (pin "1") (pinfunction "Pin_1") (pintype "passive"))
|
||||
(node (ref "J2") (pin "1") (pinfunction "Pin_1") (pintype "passive")))
|
||||
(net (code "9") (name "/test.z")
|
||||
(node (ref "J1") (pin "3") (pinfunction "Pin_3") (pintype "passive"))
|
||||
(node (ref "J2") (pin "3") (pinfunction "Pin_3") (pintype "passive")))
|
||||
(net (code "10") (name "/top.y")
|
||||
(node (ref "J1") (pin "2") (pinfunction "Pin_2") (pintype "passive"))
|
||||
(node (ref "J2") (pin "2") (pinfunction "Pin_2") (pintype "passive")))))
|
|
@ -179,4 +179,10 @@ BOOST_AUTO_TEST_CASE( HierNoConnect )
|
|||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE( BusConnection )
|
||||
{
|
||||
TestNetlist( "bus_connection" );
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
|
|
@ -20,8 +20,7 @@
|
|||
#include <qa_utils/wx_utils/unit_test_utils.h>
|
||||
#include "eeschema_test_utils.h"
|
||||
|
||||
|
||||
class TEST_NETLIST_EXPORTER_KICAD_FIXTURE : publc TEST_NETLIST_EXPORTER_FIXTURE<NETLIST_EXPORTER_KICAD>
|
||||
class TEST_NETLIST_EXPORTER_KICAD_FIXTURE : public TEST_NETLIST_EXPORTER_FIXTURE<NETLIST_EXPORTER_KICAD>
|
||||
{
|
||||
public:
|
||||
void CompareNetlists() override
|
||||
|
@ -171,4 +170,9 @@ BOOST_AUTO_TEST_CASE( BusEntries )
|
|||
doNetlistTest( "bus_entries" );
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE( BusConnections )
|
||||
{
|
||||
doNetlistTest( "bus_connection" );
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
|
Loading…
Reference in New Issue