EESchema ERC does not flag unconnected hierarchical pins
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Expired
|
Medium
|
Bug Description
When running ERC on EEScheme, it is possible for exposed hierarchical sheet pins to be unconnected on either the top level or child sheets, without triggering a ERC error.
More specifically, it appears there is no check to confirm that an exposed port is electrically connected across a top level sheet and a child sheet. This can result in parts of the design not being connected.
===
Example 1:
1. On the top level sheet of a hierarchical design, add a child sheet, with some ports.
2. Pick a port that is connected (within the child sheet) to at least two pins. For example, select an IO port that connected within the child sheet to a capacitor and to the input port of an IC.
3. On the top level sheet, delete all connections to that port (the net to the port should be floating).
4. Run eeschema DRC.
===
RESULT:
1. No errors or violations will be noted.
===
Expected:
1. I expect that unconnected sheet ports are flagged; if we've exported them to a sheet, then that sheet should be treated similarly to a symbol; unless you deliberately place an NC on that pin, then it's clear the port should be connected somewhere else in the schematic.
2. It is also possible for this to result in missed connections between child and parent sheets; if the top level net on the parent sheet is otherwise connected (or passes the DRC checks), and the port within the child sheet is unconnected, this also does not flag a DRC check.
===
Note that there already exists a specific error in the event sheet pins are not synchronized (ie; ErrType(6): Mismatch between hierarchical labels and pins sheets), though there is no error if the hierarchical labels or pin sheet are not connected.
===
Version Information
Application: eeschemather
Libraries:
wxWidgets 3.0.4
libcurl/7.60.0 OpenSSL/1.1.0h zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.4) nghttp2/1.32.0
Platform: Linux 4.17.4-1-ARCH x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,
Boost: 1.67.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.60.0
Compiler: GCC 8.1.1 with C++ ABI 1012
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=ON
tags: | added: eeschema erc |
description: | updated |
Changed in kicad: | |
assignee: | nobody → Jon Evans (craftyjon) |
This is a valid request. I think the correct approach to implement is 1) check for unexposed hierarchical pins and 2) check that hierarchical pins are either NC'd or connected at the top level. This should also fix lp:1747310