000
03.03.2026, 14:47 Uhr
Dresdenboy
|
Hallo zusammen,
wie einige schon mitbekommen haben, analysiere ich gerade die Schaltung auf diesem ASIC, welches für die Grafikausgabe (zusammen mit dem GDC, meist ein NEC µPD7220A) zuständig ist. Hier möchte ich meine Fortschritte dokumentieren und freue mich auch über Rat und Tat.
Richi hat das Die ja schon fotografiert und aufbereitet, aber derzeit nicht die Kapazität für eine Analyse wie die des SVGs. Dennoch kann man hier und auf Basis der SVG-Analyse gut ansetzen: https://www.richis-lab.de/logic52.htm
Die Analysen des SVG-ASICs (U1525FC007) im BIC findet man hier: https://www.richis-lab.de/logic_as.htm
Dabei ist auch schon erkennbar, wieviel mühselige Arbeit da drin steckt. Beim VIS ist nun der Vorteil, dass sich die Standardzellen gleichen, so dass gut auf Basis von Richis Erkenntnissen weitergearbeitet werden kann. Daher sah ich eine Chance, das großteils automatisiert anzugehen. So versuche ich dem VIS-Die, welches Richi als detailliertes Bild bereitgestellt hat, mit OpenCV in Python beizukommen. Für die weitere Verarbeitung habe ich das Foto von ca. 20kpx x 20kpx auf 10kpx x 10kpx reduziert. Das entspricht der Auflösung des Ausschnittes unten.
Aktueller werden ca. 90% der Standardzellen (von der Gesamtzahl) vom Python-Skript identifiziert. Dafür habe ich derzeit 14 Standardzellen hinterlegt. Teils können diese auch als gespiegelte Variante gefunden werden. Nicht immer reicht dafür eine gespiegelte Suchvorlage (Template), weshalb dann separate Vorlagen dafür verwendet werden.

Es gibt auch erste Fortschritte in der Schaltungs-Analyse. Mit einem passend platzierten Grid (Zellgröße 19px x 19px, im Originalbild 38px x 38 px) mit minimaler Drehung und abschnittweiser Lagenkorrektur in vertikaler Richtung (unter jeder Standardzellen-Zeile) können die Bahnen, Kreuzungen und Verbindungen zellenweise erkannt werden.
So sieht derzeit die Detektion der Leitungen aus (zellenweise Analyse mit etwas Bildverarbeitung). Als nächstes muss ich noch Logik implementieren, um durch das Grid zu gehen und die Leitungen zu verfolgen.

Der erste Detektor-Prototyp erkennt schon etwas.
| Quellcode: | .....|...........|............ Legende: .....|...........?............ ".": leer =====#==========??............ "|": vertikale Leitung .....|...........?O==O======== "=": horizontale Leitung .....|..........?O?==O======== "O": Via .....|.........?O?#==O====?=== "#": Kreuzung .....|........?O?##==O======== "?": nicht leer und auch nicht richtig erkannt (z.B. ein kleiner überlappender .....|.......?O?###==O===?==== Teil von einem VIA oder eine Leitung mit etwas Verschmutzung) .....|........|||||........... .....|........|||||........... .....|........|||||........... .....|........|||||........... .....|......?O##?##==O======== .....|.......||||||........... .....|.....?O#?#?##==O======== .....|......||||||??.......... .....|......|||||||........... .....|......|||||||........... .....|......|||||||........... .....|......|||||||........... .....|......|||||||........... .....|......|||||||........... .....|......|||||||........... .....|......|||||?|........... .....|......|||?|||........... .....|......|||||?|........... .....|......|||||||........... .....|......|||||||........... .....|......|||||||........... .....|......|||||||.?OOO?????? |
Das entspricht diesem Bereich:

Nächste von mir geplante Schritte: - Leitungen nachverfolgen und Verbindungen identifizieren - Ein-/Ausgänge der Standardzellen verorten (hierzu hinterlege ich Koordinaten der Verbindungsstellen) - Vernetzung rekonstruieren und ggf. in ein Format für andere Software konvertieren - Benennung der Leitungen und Gruppierung (angefangen bei den Bonding Pads)
Edit: Details zu Auflösung, Verkleinerung und Erkennungs-Grid für Leitungen hinzugefügt
Viele Grüße, Matthias -- ___________________________________ Produktionen im Rahmen der "The Computer Art Community" (Demoszene): https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos Aktuelle Projekte: GDC-Analysen für Grafikeffekte u. Demo/Game-Framework, universelles BIC-Modul auf Pico-Basis, Packer mit sehr kleinem 6502-Dekompressor HW: BIC, MSX2+, KC87, KC85/2-4, KCC, LC-80, PC1715, C64, C16, Plus/4, A500, A1200, Mega 65, µCs ... Dieser Beitrag wurde am 03.03.2026 um 16:01 Uhr von Dresdenboy editiert. |