Dieses Video dokumentiert den Entwurf, die ASIC-Synthese sowie den Silizium-Bring-up von „Breaking Taps“ (BTAP), einem benutzerdefinierten Mikroprozessor auf Basis einer Transport Triggered Architecture (TTA). Der Entwickler entwarf den Chip innerhalb eines Monats ohne Vorerfahrung in der Hardwarebeschreibung über die von Rust inspirierte Sprache Spade. Die Fertigung erfolgte über den Open-Source-Multi-Project-Wafer-Dienst Wafer.space im 180-nm-Prozess (GF180) von GlobalFoundries.
Der hochautomatisierte Entwurfsfluss stützte sich auf das Open-Source-Framework LibreLane (einschließlich Yosys, ABC und OpenROAD für Synthese, Platzierung, Clock-Tree-Synthese, Routing, DRC und LVS). Der fertige Prozessor ist superskalar ausgelegt (2 Befehle/Takt), arbeitet mit ca. 18–20 MHz und verfügt über zwei 32-Bit-Datenbusse, 4 KB SRAM, 1024 Befehlsspeicher-Slots sowie ~80 Instruktionen. Die Bare Dies wurden im Chip-on-Board-Verfahren (CoB) verpackt. Trotz anfänglicher Masse- und Signalintegritätsprobleme auf der Testplatine konnte die volle Kernfunktionalität der Architektur beim Bring-up nachgewiesen werden.
Wichtigste Punkte & Zeitstempel
00:00 Eigenes Prozessor-Design: Vorstellung des eigenständig entwickelten Mikroprozessors „Breaking Taps“ (BTAP), der zur Fertigung an eine kommerzielle Halbleiter-Foundry geschickt wurde.
00:30 Kooperation mit Wafer.space: Initiierung des Projekts nach dem Treffen mit dem Begründer von Wafer.space, einem Anbieter für erschwingliche Open-Source-Multi-Project-Wafer-Dienste (MPW).
01:07 Enge Deadline ohne Vorerfahrung: Das Projekt wurde ohne Vorkenntnisse in Chipdesign, FPGAs oder Verilog innerhalb eines strikten Zeitfensters von einem Monat bis zum Tape-out umgesetzt.
01:56 Transport-Triggered Architecture (TTA): Wahl der TTA-Architektur, bei der Befehle als Datenströme zu Funktions-Ports auslösen; dies verlagert die Steuerungskomplexität von der Schaltung in den Compiler.
03:56 Entwurf in Spade HDL: Nutzung der modernen, Rust-inspirierten Hardwarebeschreibungssprache Spade anstelle von herkömmlichem Verilog.
05:03 Kombinatorische vs. Sequenzielle Logik: Gegenüberstellung von kombinatorischer Logik (zustandlose Funktionen) und sequenzieller Logik unter Verwendung von D-Flip-Flops zur Zustandsspeicherung je Taktflanke.
07:08 Timing-Violations und Pipelining: Einbau von Pipelining-Registerstufen zur Vermeidung von Setup-Timing-Violations bei tiefen kombinatorischen Pfaden.
09:00 MAC-Einheit als Timing-Engpass: Eine unpipelinete 32-Bit Multiply-Accumulate (MAC)-Einheit benötigte exzessive Chipfläche und verursachte kritische Timing-Probleme bei der Ziel-Taktfrequenz.
10:18 BTAP-Systemarchitektur: Die BTAP-Architektur basiert auf zwei zentralen 32-Bit-Datenbussen, die alle internen Funktionseinheiten miteinander verbinden.
11:08 ALU-Struktur: Die Arithmetisch-Logische Einheit (ALU) führt Operationen mittels Pattern Matching über Steuersignale und Trigger-Inputs aus.
12:23 Technische Spezifikationen: Der BTAP-Prozessor erreicht 18–20 MHz, ist superskalar (2 Instruktionen/Takt), besitzt 1024 Befehlsspeicher-Slots (2048 Befehle), einen 256-Word-Stack, 4 KB SRAM, ~80 Instruktionen, 16 GPIOs, UART und einen 8-Bit-Parallel-Bootloader.
14:09 Teststrategie und Simulation: Mangels FPGA-Hardware erfolgte die Funktionsverifikation primär über Software-Simulationen mittels CocoTB und Verilator.
16:38 Open-Source EDA-Flow (LibreLane): Einsatz von LibreLane, Yosys und ABC zur mathematischen Logikoptimierung und Abbildung der Schaltung auf Standardzellen des PDKs.
18:13 Floorplanning und RePlace-Platzierung: OpenROAD nutzt den elektrostatisch inspirierten RePlace-Algorithmus zur Minimierung der Drahtlängen und Vermeidung lokaler Überlastung (Congestion).
20:22 Clock-Tree-Synthese und Antennendioden: Balancierung des Taktbaums zur Skew-Minimierung sowie automatisches Einfügen von Antennendioden zum Schutz der Transistorgates vor Plasmaladungen während der Ätzprozesse.
21:50 Detailed Routing, DRC und LVS: Durchführung von detailliertem Routing, langwierigen Design Rule Checks (DRC) auf einem mietbaren Server sowie Layout-versus-Schematic-Vergleichen (LVS).
24:38 Fertigung im GF180-Knoten: Der Chip wurde im GlobalFoundries 180-nm-Prozess über Wafer.space gefertigt; die Durchlaufzeit betrug 3 bis 4 Monate.
25:44 Chip-on-Board (CoB) Packaging: Kostengünstiges Packaging der Bare Dies direkt auf Leiterplatten mittels Drahtbonden (Wire Bonding) und Epoxidharz-Abdeckung („Glob Top“).
26:40 Bring-up und Fehlerbehebung: Erstes Einschalten mittels Raspberry Pi Pico als Bootloader; Beseitigung instabiler Taktverhalten durch Optimierung der Masseverbindungen auf den Steckbrettern.
30:03 Erfolgreicher Funktionstest: Validierung der Kernfunktionen (Bootloader, SRAM, Programmzähler, ALU, Sprungbefehle) durch ein korrekt ausgeführtes Zählerprogramm bis 100.
31:45 Ausblick und Folgeprojekte: Open-Source-Bereitstellung des Quellcodes und Ankündigung des Nachfolgechips „BTX“ zur Hardware-Raytracing-Beschleunigung.
Glossar
Antennendiode: Eine Schutzdiode, die an lange Metallleitungen im Chip-Layout angeschlossen wird, um während plasMabasierter Ätzschritte gesammelte Ladungen abzuleiten und Transistorgates vor Zerstörung zu schützen.
Clock Tree Synthesis (CTS): Ein Verfahren im EDA-Entwurf, das ein ausbalanciertes Taktverteilungsnetzwerk aufbaut, um Taktsignale mit minimaler Laufzeitdifferenz (Clock Skew) an alle sequenziellen Bausteine zu liefern.
CoB (Chip-on-Board): Eine Packaging-Methode, bei der der unverkapselte Halbleiter-Die direkt auf eine Leiterplatte geklebt, per Drahtbonden kontaktiert und mit einem Epoxidharztropfen („Glob Top“) geschützt wird.
D-Flip-Flop: Ein sequenzielles Bauelement, das ein einzelnes Bit an Information speichert und seinen Zustand synchron zu einer Taktflanke übernimmt.
DRC (Design Rule Check): Automatisierte geometrische Überprüfung des fertigen Chip-Layouts gegen die Fertigungsregeln (Abstände, Breiten, Überlappungen) der Foundry.
Floorplanning & Placement: Der Prozess der Festlegung der physikalischen Chipgrenzen, der Stromversorgungsleitungen sowie der optimalen Anordnung aller Standardzellen auf dem Die.
GDSII (GDS): Ein binäres Dateiformat, das die geometrischen Maskendaten eines integrierten Schaltkreises zur Übermittlung an die Foundry enthält.
HDL (Hardware Description Language): Eine spezialisierte Sprache (z. B. Verilog, VHDL, Spade) zur formalen Beschreibung von Struktur und Verhalten digitaler Schaltungen.
Kombinatorische Logik: Digitale Logikschaltung ohne internen Zustand/Speicher, deren Ausgänge direkt und ausschließlich von den aktuellen Eingängen abhängen.
LVS (Layout Versus Schematic): Ein Verifikationsschritt, der die aus dem physikalischen Layout extrahierte Netzliste mit dem ursprünglichen logischen Schaltplan vergleicht.
MAC (Multiply-Accumulate): Eine spezialisierte Recheneinheit, die zwei Werte multipliziert und das Ergebnis direkt zu einem Akkumulatorregister addiert.
MPW (Multi-Project Wafer): Ein Fertigungsverfahren, bei dem sich mehrere Kundenprojekte die Fläche desselben Halbleiter-Wafers teilen, um die Maskenkosten drastisch zu senken.
PDK (Process Design Kit): Eine herstellerspezifische Dokumentations- und Dateisammlung, die alle physikalischen Bausteine, Regeln und Modelle einer bestimmten Halbleitertechnologie enthält.
Pipelining: Die Unterteilung komplexer combinatorischer Datenpfade durch das Einfügen von Zwischenregistern zur Steigerung der Taktfrequenz und des Durchsatzes.
Sequenzielle Logik: Eine digitale Schaltung mit Speicherzuständen (z. B. Flip-Flops), deren Ausgänge sowohl von den aktuellen Eingängen als auch vom bisherigen Verlauf abhängen.
Setup Timing Violation: Ein Fehler im Schaltungsentwurf, der auftritt, wenn ein Datensignal vor dem Eintreffen der aktiven Taktflanke nicht lange genug an einem Register stabil anliegt.
Spade: Eine moderne, von der Programmiersprache Rust inspirierte Hardwarebeschreibungssprache.
Standardzelle: Ein vorgefertigter, grundlegender Logikbaustein (z. B. NAND, NOR, Inverter) innerhalb einer Halbleiter-Bibliothek.
TTA (Transport Triggered Architecture): Eine Prozessorarchitektur, bei der Rechenoperationen nicht explizit aufgerufen werden, sondern als Nebeneffekt des Datentransports zu bestimmten Ports ausgelöst werden.