This is an old revision of the document!
The connection lookup algorithm starts at an object and looks for any objects that touch the starting object or any object touching the starting object. This code is implemented in find.c and used throughout the code base for a variety of purposes.
The connection lookup process starts at an object (pins/pads only?) and searches for intersecting objects. For each object it finds, it sets a specified flag. (todo: eventually this should build a list of objects instead).
The DRC uses the connection lookup code in combination with the “Bloat” and “Shrink” settings to detect places with insufficient spacing and overlap.
action.c
action.c
action.c
action.c
action.c
netlist window
Saves list of unused pins and pads: ActionSaveTo:action.c:5752 LookupUnusedPins:find.c:2464 PrintAndSelectUnusedPinsAndPadsOfElement:find.c:1982 DoIt:find.c:2000, 2044
Saves list of element connections ActionSaveTo:action.c:5752 LookupElementConnections:find.c:2255 PrintElementConnections:find.c:2120 DoIt:find.c:2136, 2161
There are quite a few of these. (action.c: 905, 906, 1366, 2314, 2315, 2789, 2792) LookupConnection:find.c:2376 (netlist.c: 171, 180) LookupConnection:find.c:2376 (report.c: 598) LookupConnection:find.c:2376 DoIt:find.c:2417
(ipcd356.c: 493, 514, 538) LookupConnectionByPin:find.c:2431 DoIt:find.c:2439
(gsvit.c:433) RatFindHook:find.c:2450 (lesstif/netlist.c:140) RatFindHook:find.c:2450 (gtk/gui-netlist-window.c:543) RatFindHook:find.c:2450 (rats.c:474) RatFindHook:find.c:2450 (select.c:996) RatFindHook:find.c:2450 DoIt:find.c:2456
start_do_it_and_dump:find.c:2681 DoIt:find.c:2689