Logische Synthese - Logic synthesis

In der Computertechnik ist die Logiksynthese ein Prozess, bei dem eine abstrakte Spezifikation des gewünschten Schaltungsverhaltens , typischerweise auf Registertransferebene (RTL), in eine Entwurfsimplementierung in Bezug auf Logikgatter umgewandelt wird , typischerweise durch ein Computerprogramm, das als Synthesewerkzeug bezeichnet wird . Häufige Beispiele für diesen Prozess sind die Synthese von Designs, die in Hardwarebeschreibungssprachen , einschließlich VHDL und Verilog, spezifiziert sind . Einige Synthesetools erzeugen Bitstreams für programmierbare Logikbausteine wie PALs oder FPGAs , während andere auf die Erstellung von ASICs abzielen . Die Logiksynthese ist ein Aspekt der Automatisierung des elektronischen Designs .

Geschichte der Logiksynthese

Die Wurzeln der Logiksynthese lassen sich auf die Behandlung der Logik durch George Boole (1815 bis 1864) zurückführen, in der heute als Boolesche Algebra bezeichnet wird . 1938 zeigte Claude Shannon , dass die zweiwertige Boolesche Algebra die Funktionsweise von Schaltkreisen beschreiben kann. In den frühen Tagen, Logik - Design beteiligt , die Manipulation von Wahrheitstabelle Darstellungen als Karnaugh Karten . Die Karnaugh-Map-basierte Minimierung der Logik wird durch eine Reihe von Regeln geleitet, wie Einträge in den Maps kombiniert werden können. Ein menschlicher Designer kann normalerweise nur mit Karnaugh-Maps arbeiten, die bis zu vier bis sechs Variablen enthalten.

Der erste Schritt zur Automatisierung der Logikminimierung war die Einführung des Quine-McCluskey-Algorithmus , der auf einem Computer implementiert werden konnte. Diese exakte Minimierungstechnik präsentierte die Vorstellung von Primimplikanten und minimalen Kostendeckungen, die zum Eckpfeiler der zweistufigen Minimierung werden würden . Heutzutage ist der viel effizientere heuristische Logik-Minimierer Espresso das Standardwerkzeug für diese Operation. Ein weiterer Bereich der frühen Forschung war die Zustandsminimierung und -codierung von Finite-State-Machines (FSMs), eine Aufgabe, die der Fluch der Designer war. Die Anwendungen für die Logiksynthese liegen hauptsächlich im digitalen Computerdesign. Daher spielten IBM und Bell Labs eine entscheidende Rolle bei der frühen Automatisierung der Logiksynthese. Die Entwicklung von diskreten Logikkomponenten zu programmierbaren Logikarrays (PLAs) beschleunigte die Notwendigkeit einer effizienten Minimierung auf zwei Ebenen, da das Minimieren von Termen in einer zweistufigen Darstellung die Fläche in einer PLA reduziert.

Zweistufige Logikschaltungen sind jedoch in einem Entwurf mit sehr großer Integration (VLSI) von begrenzter Bedeutung ; die meisten Designs verwenden mehrere Logikebenen. Tatsächlich ist fast jede Schaltungsdarstellung in RTL oder Verhaltensbeschreibung eine mehrstufige Darstellung. Ein frühes System, das zum Entwerfen von Mehrebenenschaltungen verwendet wurde, war LSS von IBM. Es verwendete lokale Transformationen, um die Logik zu vereinfachen. Die Arbeit an LSS und dem Yorktown Silicon Compiler beflügelte in den 1980er Jahren rasante Forschungsfortschritte in der Logiksynthese. Mehrere Universitäten trugen dazu bei, ihre Forschung der Öffentlichkeit zugänglich zu machen, insbesondere SIS von der University of California, Berkeley , RASP von der University of California, Los Angeles und BOLD von der University of Colorado, Boulder . Innerhalb eines Jahrzehnts wurde die Technologie zu kommerziellen Logiksyntheseprodukten migriert, die von Unternehmen zur Automatisierung des elektronischen Designs angeboten wurden.

Logikelemente

Logikentwurf ist ein Schritt im Standardentwurfszyklus, in dem der funktionale Entwurf einer elektronischen Schaltung in eine Darstellung umgewandelt wird, die logische Operationen , arithmetische Operationen , Kontrollfluss usw. erfasst . Eine gemeinsame Ausgabe dieses Schrittes ist die RTL-Beschreibung . Auf den Logikentwurf folgt üblicherweise der Schritt des Schaltungsentwurfs . In der modernen Elektronikdesignautomatisierung können Teile des logischen Designs unter Verwendung von High-Level-Synthesewerkzeugen basierend auf der Verhaltensbeschreibung der Schaltung automatisiert werden .

Verschiedene Darstellungen von Booleschen Operationen

Logische Operationen bestehen normalerweise aus booleschen UND-, ODER-, XOR- und NAND-Operationen und sind die grundlegendsten Formen von Operationen in einer elektronischen Schaltung. Arithmetische Operationen werden normalerweise unter Verwendung von logischen Operatoren implementiert.

High-Level-Synthese oder Verhaltenssynthese

Mit dem Ziel, die Designerproduktivität zu steigern, führten Forschungsbemühungen zur Synthese von auf Verhaltensebene spezifizierten Schaltungen im Jahr 2004 zu kommerziellen Lösungen, die für komplexe ASIC- und FPGA-Designs verwendet werden. Diese Tools synthetisieren automatisch Schaltungen, die unter Verwendung von Hochsprachen wie ANSI C/C++ oder SystemC spezifiziert wurden, zu einer RTL-Spezifikation (Register Transfer Level), die als Eingabe für einen Logiksynthesefluss auf Gate-Ebene verwendet werden kann. Bei der High-Level-Synthese, auch ESL-Synthese genannt, erfolgt die Arbeitsaufteilung auf Taktzyklen und über Strukturkomponenten wie Gleitkomma-ALUs durch den Compiler durch ein Optimierungsverfahren, während bei RTL-Logiksynthese (auch Verilog oder VHDL, wo ein Ausführungs-Thread mehrere Lese- und Schreibvorgänge in einer Variablen innerhalb eines Taktzyklus durchführen kann), wurden diese Zuordnungsentscheidungen bereits getroffen.

Mehrstufige Logikminimierung

Typische praktische Implementierungen einer Logikfunktion verwenden ein mehrstufiges Netzwerk von Logikelementen. Ausgehend von einer RTL-Beschreibung eines Designs konstruiert das Synthesewerkzeug ein entsprechendes mehrstufiges boolesches Netzwerk .

Als nächstes wird dieses Netzwerk unter Verwendung mehrerer technologieunabhängiger Techniken optimiert, bevor technologieabhängige Optimierungen durchgeführt werden. Die typische Kostenfunktion bei technologieunabhängige Optimierungen ist total wörtliche Zählung der faktorisierter Darstellung der Logikfunktion (die mit Schaltungsbereich recht gut korreliert).

Schließlich transformiert die technologieabhängige Optimierung die technologieunabhängige Schaltung in ein Netzwerk von Gattern in einer gegebenen Technologie. Die einfachen Kostenschätzungen werden während und nach dem Technologie-Mapping durch konkretere, umsetzungsorientierte Schätzungen ersetzt. Das Mapping wird durch Faktoren wie die verfügbaren Gates (Logikfunktionen) in der Technologiebibliothek, die Treibergrößen für jedes Gate und die Verzögerungs-, Leistungs- und Flächeneigenschaften jedes Gates eingeschränkt.

Siehe auch

Verweise

  • Electronic Design Automation for Integrated Circuits Handbook , von Lavagno, Martin und Scheffer, ISBN  0-8493-3096-3 Ein Überblick über das Gebiet der Electronic Design Automation . Die obige Zusammenfassung wurde mit freundlicher Genehmigung aus Band 2, Kapitel 2, Logic Synthesis von Sunil Khatri und Narendra Shenoy abgeleitet.

Weiterlesen