Skip to content

Latest commit

 

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PCB_Planarity

PCB_Planarity is a tool for analyzing the planarity of PCB routing graphs. It determines whether a circuit’s connectivity can be routed on a single plane without trace crossings, using planarity analysis grounded in real PCB design constraints and graph theory.

Features

  • Models PCB connectivity as a graph
  • Detects nonplanar subgraphs (e.g. K₃,₃ and K₅)
  • Distinguishes fundamentally nonplanar graphs from poor embeddings
  • Handles large, realistic circuit topologies
  • Bridges graph theory and practical PCB routing

Overview

In PCB layout, traces behave like edges in a graph: they must be routed in physical space without crossing when constrained to a single copper layer. Whether this is possible is determined by the structure of the circuit’s connectivity, not by the specific geometry of a layout.

If the connectivity graph is nonplanar, crossings cannot be eliminated through rerouting alone—additional layers or vias are fundamentally required. Canonical nonplanar graphs such as K₃,₃ and K₅ represent these unavoidable routing conflicts. When such structures appear as subgraphs (or minors) of a circuit, single-layer routing is impossible.

This project models circuit connectivity as a graph and explicitly detects these nonplanar cases and configures them into potential arrangements without crossings.

Nonplanar v.s. Planar Examples

Nonplanar Case — K₃,₃

This animation shows a K₃,₃ connectivity pattern embedded as traces. Regardless of geometric rearrangement, at least one crossing is unavoidable. This reflects a fundamentally nonplanar routing problem: the trace crossings are not an artifact of poor layout, but of the graph itself.

Planar Re-Embedding of K₃,₃

Here, the same logical connectivity is rearranged into a planar embedding. By reconfiguring how edges are routed—without changing the underlying connections—the crossings are eliminated through the additions of new layers and VIAs.

Requirements

Run the following command:

pip install -r requirements.txt

Contributors:

Samuel Bloom, Connor Hoang, Pranav Bonthu, Lukas LittleJohn.

About

Discrete Mathematics Graph Theory Project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages