Multichannel bug: Topology error when GND connectivity varies on sheet's external nodes

Hi,

Multichannel placement (no routing or zones done yet, just component location) gave me a “Topology error” on the 3rd out of three replicas for no apparent reason. Internal component names are not the issue, that is, letter-digit format without underscores or the like.

What triggers the failure is when I connect GND differently on the sheet’s hierarchical nodes. That is, any signal on external node “A” and GND on external node “B” of all sheets works. But change one replica’s external node “A” to “GND” and I get a “topology mismatch” in Tools/Multichannel/Repeat layout.

Thought I’d pass this one on (awesome feature, BTW).

EDIT: Even a missing GND connection causes Topology error, it seems. Net ties to the rescue (outside the replicated sheet on any node that is potentially GNDed)

Just for the record if someone else reads this, hierarchical multichannel operation is apparently not supported (yet). So the replicated design needs to be “flat” without sub-sheets (happy to be corrected…)

Version as below:
Application: KiCad Schematic Editor x64 on x64
Version: 9.0.1, release build
Libraries:
wxWidgets 3.2.6
FreeType 2.13.3
HarfBuzz 10.2.0
FontConfig 2.15.0
libcurl/8.11.1-DEV Schannel zlib/1.3.1
Platform: Windows 11 (build 22621), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: Intel, Intel(R) UHD Graphics, 4.6.0 - Build 30.0.101.1122
Build Info:
Date: Mar 30 2025 01:11:30
wxWidgets: 3.2.6 (wchar_t,wx containers)
Boost: 1.86.0
OCC: 7.8.1
Curl: 8.11.1-DEV
ngspice: 44
Compiler: Visual C++ 1942 without C++ ABI
KICAD_IPC_API=ON
Locale:
Lang: en_US
Enc: UTF-8
Num: 1,234.5
Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)

Please attach an example project or at least illustrations.

That is fixed in the 9.0 nightly builds, and will be in the 9.0.2 release.

1 Like

I ran into this problem yesterday using sheets.

I have the 9.0.2 “testing build” from May 7 and this problem does not appear to be fixed. Is this still intended to be addressed in 9.0.2?

Version: 9.0.2-4-g8ccc548628, release build

Platform: macOS Sequoia Version 15.4.1 (Build 24E263), 64 bit, Little endian, wxMac

Build Info:
	Date: May  7 2025 03:45:48
	wxWidgets: 3.2.6 (wchar_t,wx containers)
	Boost: 1.87.0
	OCC: 7.8.1
	Curl: 8.7.1
	ngspice: 44.2
	Compiler: Clang 16.0.0 with C++ ABI 1002
	KICAD_IPC_API=ON

I have the “testing” build from May 7 … does this include the fix? I am encountering this problem.

Would you mind sharing the project (or DMing it)?

Tom

I’ve attached an example.
replicate.zip (21.3 KB)

In this example I have used a chip with an I2C interface and require each instance to have a different address so the A0 and A1 pins are brought out as hierarchical pins and tied to power or ground at the root sheet.

I attempted a scenario to avoid the hierarchical labels where I used the “Instance” variable and created labels A0_${Instance} and A1_${Instance} and tied them to power or ground as required (see the weird looking power/ground connections at the bottom of the sheet). This did not work either.

I tried the nightly from May 7 as well and encountered the same problem.

Using a NetTie the OP suggested as a workaround resolves the issue but that workaround requires an additional footprint which complicates the layout.

Application: KiCad x86_64 on x86_64

Version: 9.99.0-1205-gc519a6b827, release build

Libraries:
	wxWidgets 3.2.6
	FreeType 2.13.3
	HarfBuzz 10.2.0
	FontConfig 2.15.0
	libcurl/8.7.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.64.0

Platform: macOS Sequoia Version 15.4.1 (Build 24E263), 64 bit, Little endian, wxMac

Build Info:
	Date: May  7 2025 06:14:25
	wxWidgets: 3.2.6 (wchar_t,wx containers)
	Boost: 1.87.0
	OCC: 7.8.1
	Curl: 8.7.1
	ngspice: 44.2
	Compiler: Clang 16.0.0 with C++ ABI 1002
	KICAD_IPC_API=ON