XLS (Accelerated HW Synthesis) ist ein von Google entwickeltes, Open-Source-basiertes High-Level-Synthesis-Framework (HLS), das darauf abzielt, die Hardware-Software-Entwicklung im Zeitalter des Endes von Moores Gesetz durch Automatisierung und Co-Design zu beschleunigen. Die Toolchain generiert synthetisierbare Verilog- und SystemVerilog-Designs aus High-Level-Beschreibungen wie der Rust-inspirierten Domain-Specific Language (DSLX) oder experimentellem C++. Durch LLVM-basierte Just-in-Time-Kompilierung (JIT) können Hardware-Modelle als native Software ausgeführt und mittels SMT-Solvern formal auf funktionale Identität überprüft werden.
Wichtigste Punkte
DSLX (Domain-Specific Language): Eine immutable, datenflussorientierte Programmiersprache, die auf Hardware-Eigenschaften wie feste Bitbreiten, explizite Objektgrößen und analysierbare Aufrufgraphen optimiert ist.
LLVM-basierter JIT: Ermöglicht die native Ausführung von XLS-IR und DSLX-Programmen als Host-Software mit hoher Geschwindigkeit für Tests und Simulationen.
Formale Verifikation: Nutzung des Z3 SMT-Solvers zur Durchführung automatisierter logischer Äquivalenzprüfungen zwischen XLS-IR und generierten Netzen oder Verilog-Beschreibungen.
Toolchain-Integration: Integriert Build-Systeme wie Bazel, Simulationen über Icarus Verilog sowie Open-Source-Synthese- und Place-and-Route-Tools (Yosys, OpenROAD) mit offenen PDKs (ASAP7, SKY130).
C++ Support (xlscc): Ein experimentelles Subsystem zur Übersetzung bestehender C++-HLS-Quellbasen in die gemeinsame XLS Intermediate Representation (IR).
Diskussions-Highlights
Beschleunigung der Iterationsschleife: Kommentatoren heben hervor, dass die Fähigkeit, Hardware-Designs direkt in Software-Simulatoren auszuführen und zu verifizieren, der entscheidende Faktor für schnelle und robuste Hardware-Entwicklungszyklen ist.
Automatisierung und RSI: Das Konzept wird im Zusammenhang mit "Hardware RSI" (Recursive Self-Improvement / Rapid Systems Iteration) als vielversprechender Ansatz diskutiert, um hardwarenahe Entwicklungsprozesse durch Software-Methodologien zu skalieren.
Glossar
High-Level Synthesis (HLS): Ein automatisierter Entwurfsprozess, der Algorithmen aus abstrakten Programmiersprachen in digitale Hardwareschaltungen (z. B. Verilog) übersetzt.
Verilog / SystemVerilog: Hardwarebeschreibungssprachen (HDLs), die in der Elektronikindustrie standardmäßig zur Modellierung, Simulation und Synthese digitaler Schaltkreise verwendet werden.
Intermediate Representation (IR): Eine in Compilern verwendete, abstrakte Zwischensprache, die Quellcode in ein standardisiertes Format überführt, um plattformunabhängige Optimierungen und Codegenerierungen durchzuführen.
Just-In-Time (JIT) Kompilierung: Ein Verfahren, bei dem Programmcode während der Laufzeit anstelle einer Vorab-Kompilierung in Maschinencode übersetzt wird, um die Ausführungsgeschwindigkeit zu erhöhen.
SMT-Solver (Satisfiability Modulo Theories): Mathematische Software-Werkzeuge, die komplexe logische Formeln algorithmisch lösen und in der formalen Verifikation zur mathematischen Fehler- und Äquivalenzprüfung eingesetzt werden.
PDK (Process Design Kit): Eine Sammlung von Dateien und Design-Regeln, die von Halbleiter-Fertigungsstätten (Foundries) bereitgestellt werden, um elektronische Schaltungen für einen spezifischen Fertigungsprozess zu entwerfen und zu simulieren.