Electronic Design Automation (EDA) Technology Mapping

Ähnliche Dokumente
Logiksynthese. Register-Transfer- Synthese Makrozellgeneratoren Beispiel Addierer

Electronic Design Automation (EDA) Logikoptimierung

2.3 Logikoptimierung. Überblick digitale Synthese. Logikoptimierung

Electronic Design Automation (EDA) Register-Transfer-Synthese

Lösung 2.1 PROM - Dual-zu-Siebensegmentdecoder

2.2 Register-Transfer-Synthese

Digitale Systeme und Schaltungen

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

Rechnergestützter VLSI-Entwurf

Kapitel 6 Programmierbare Logik. Literatur: Kapitel 6 aus Oberschelp/Vossen, Rechneraufbau und Rechnerstrukturen, 9. Auflage

Inhaltsverzeichnis. 1 Boolesche Algebra, Schaltalgebra - Begriffsbestimmung 1. 2 Operationssystem der Schaltalgebra 4. 3 Boolesche Funktionen 6

Digitaltechnik Grundlagen 5. Elementare Schaltnetze

Binary Decision Diagrams

Technische Grundlagen der Informatik

Datenstrukturen und Algorithmen (SS 2013)

Eingebettete Systeme

Grundlagen der Technischen Informatik. 9. Übung

Technische Informatik I

Grundlagen digitaler Systeme WS12

Entscheidungsverfahren für die Software-Verifikation. 4 - BDDs

Rechnerarithmetik. Vorlesung im Sommersemester Eberhard Zehendner. FSU Jena. Thema: Addierschaltungen

Effiziente Bibliotheken für FPGA-Resynthese- Algorithmen

Proseminar Statische CMOS- Schaltungen. Thema: CMOS-NOR-Gatter Gehalten von: Björn Fröhlich Prof. Dr. Zehendner SS05 - FSU Jena

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2

Ein Signal ist eine zeitlich veränderliche physikalische Größe, die eine auf sie abgebildete Information trägt.

Digital Design 2 Schaltnetze (kombinatorische Logik) Digital Design

Synthese und Analyse Digitaler Schaltungen

Lehrveranstaltung: Digitale Systeme. KS-Praktikums-Vorbereitung Dipl.-Inf. Markus Appel , , ,

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen

13. Vorlesung. Logix Klausuranmeldung nicht vergessen! Übungsblatt 3 Logikschaltungen. Multiplexer Demultiplexer Addierer.

5. Vorlesung: Normalformen

Dynamisches Huffman-Verfahren

Übung zu Grundlagen der Technischen Informatik

Basisinformationstechnologie I

Algorithmus von McClusky: Der Algorithmus von McCluskey liefert durch wiederholte Anwendung der ersten und zweiten Vereinfachungsregel:

Kapitel 2. Elementare Schaltwerke. 2.1 RS-Flipflop

Informatik Abitur Bayern 2017 / II - Lösung

Algorithmen und Datenstrukturen

VHDL Synthese. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010

Aufgabe 1. Aufgabe 2. Abbildung 1: Schaltung für die Multiplikation mit 4

Relationen und DAGs, starker Zusammenhang

Baum-Matching in einer Anwendung auf Gefäßsysteme im menschlichen Körper (Andre Bläul)

GTI ÜBUNG 12. Komparator und Addierer FRIEDRICH-ALEXANDER UNIVERSITÄT ERLANGEN-NÜRNBERG JAN SPIECK 1

Algorithmen und Datenstrukturen

(Digital) Sorting. October 25, Algorithms & Datastructures 2 Exercises WS 2016

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

Aufgabe 3.1 Schaltalgebra - Schaltnetze

Schaltungstechnik 1. Univ.-Prof. Dr. techn. Josef A. Nossek. Mittwoch, den Uhr

Hochschule Emden / Leer. Ausarbeitung. Speicherung digitaler Signale

Technische Informatik I, SS03. Boole sche Algebra, Kombinatorische Logik

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 14/15

Übungsklausur - Beispiellösung

Grundlagen der Technischen Informatik

N Bit binäre Zahlen (signed)

Rechnerorganisation 5. Vorlesung

Rechnerorganisation. H.-D. Wuttke `

Klausur - Digitaltechnik

Informationsverarbeitung auf Bitebene

Algorithmen und Datenstrukturen 2

Verifikation. Simulation und formale Methoden

Digitale Synthese. 2.1 Algorithmensynthese. Beispiel für einen Algorithmus Abhängigkeitsgraph Schleifen Bedingte Verzweigungen Schritte der

Praktikumsanleitung. "Technische Informatik"

Zeitabhängige binäre Schaltungen. Prof. Metzler 1

Integrierte Schaltungen

Kapitel 10. (Mehrstufige) Schaltkreise. Übersicht. é Technologien é Definition, Kosten é Semantik von kombinatorischen Schaltkreisen, Simulation

Rechnerorganisation 5. Vorlesung

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer.

Einführung in. Logische Schaltungen

3.6 Bemerkungen zur Umformung boolescher Formeln (NAND): doppelte Negation

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14

Datenstrukturen Teil 3. Traversierung und AVL- Bäume. Traversierung. Traversierung. Traversierung

Lösungen zu Kapitel 5

Query Translation from XPath to SQL in the Presence of Recursive DTDs

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Aufgabe 1 Bipolare Transistoren

11.1 Grundlagen - Denitionen

V0~~ärts-RUckw~-Dezim~lef74190undCBit-Binllnatiler

Entwurf von digitalen Schaltungen und Systemen mit HDLsundFPGAs

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden

Statischer Speicher - Schaltsymbol

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Informatik Übungsaufgaben

kanonische disjunktive Normalform (KDNF, DKF) Disjunktion einer Menge von Mintermen mit gleichen Variablen

C.34 C Normalformen (4) 5.7 Hauptsatz der Schaltalgebra. 5.7 Hauptsatz der Schaltalgebra (2) 5.7 Hauptsatz der Schaltalgebra (3)

Modul Computersysteme Prüfungsklausur SS Prof. Dr. J. Keller LG Parallelität und VLSI Prof. Dr.-Ing. W. Schiffmann LG Rechnerarchitektur

Darstellung von negativen binären Zahlen

Graphen. Definitionen

Zeitabhängige binäre Schaltungen. Prof. Metzler

ASIC. Application-Specific Integrated Circuit. Technische Informatik K. Slotala

Kapitel 5. Standardschaltnetze. Prof. Dr. Dirk W. Hoffmann. Hochschule Karlsruhe w University of Applied Sciences w Fakultät für Informatik

Aufgabe: Platz-effiziente Kompression von Textdaten

2. Funktionen und Entwurf digitaler Grundschaltungen

3.1 Schaltungselemente 129. b) Tragen Sie in nachfolgende Abbildung die Realisierung eines 1 Bit 4-auf-1 Multiplexers aus Logikgattern ein.

Übungen zu Informatik 1

Entwurfsverfahren digitaler Schaltungen. Name: Vorname: Matrikelnr.:

Transkript:

Electronic Design Automation (EDA) Technology Mapping Überblick digitale Synthese Technology Mapping Abbildung durch die Abdeckung eines Baumes Partitionierung des DAG Dekomposition und Abdeckung Beispiel

Technology Mapping: Überblick digitale Synthese

Technology Mapping: Technology Mapping Die Technologie-Abbildung bildet den Abschluss der Synthese. Da Flipflops und Treiber in der Regel unmittelbar durch entsprechende Elemente einer Bibliothek ersetzt werden, ist die Hauptaufgabe der Technologie-Abbildung die Optimierung kombinatorischer Schaltungsteile. Ausgangspunkt hierfür sind zwei- oder mehrstufige logische Gleichungen. In diesem Kapitel werden nur Methoden für mehrstufige Darstellungen beschrieben. Zweistufige Darstellungen dienen im Allgemeinen als Eingabe für PLA- Generatoren und werden hier nicht behandelt. Die booleschen Gleichungen werden mit verfügbaren Zellen einer Bibliothek implementiert, die zu einer bestimmten Technologie gehört. Die Bibliotheken enthalten Gatter (NOR, Inverter,...) und komplexere Elemente wie Komparatoren, Halbaddierer o.ä.. Die Gatter sind als boolesche Funktionen beschrieben und durch ihre Fläche und ihre Verzögerungszeiten charakterisiert. Die Verzögerungszeit setzt sich meist aus einem lastabhängigen und einem lastunabhängigen Anteil zusammen.

Technology Mapping: Abbildung durch die Abdeckung eines Baumes In erster Linie wird eine Implementierung gesucht, deren Kosten möglichst gering sind, indem eine flächenminimale Zellenkombination gesucht wird. Bei zeitkritischen Pfaden können stattdessen auch die schnellsten verfügbaren Zellen ausgewählt werden. Die Berücksichtigung der Performance in Form von Verzögerungszeiten während der Abbildung ist schwierig, da der lastabhängige Teil der Verzögerung erst am Ende der Abbildung bestimmt werden kann. Häufig verwendete heuristische Methoden basieren auf einer Baum-Abdeckung. Diese besteht aus vier Schritten: Aufbau des DAG Partitionierung des Graphs (der Schaltung) in Bäume Dekomposition der Bäume (Schaltungsteile) in Basisfunktionen Abdeckung aller Bäume (der Schaltung) mit Zellen aus der Bibliothek Die Abdeckung eines DAGs ist ein NP-hartes Problem, seine exakte Lösung ist daher zu aufwendig. Dagegen sind Abdeckungsalgorithmen für Bäume praktikabel. Daher wird der DAG in einen Wald von Bäumen zerlegt.

Technology Mapping: Partitionierung des DAG Ein einfacher Weg, den DAG in Bäume zu zerlegen, besteht darin, alle Verzweigungen aufzutrennen und anschließend alle Bäume einzeln abzudecken. Der Nachteil davon ist, dass beim Abdecken nur lokal innerhalb eines Baums optimiert werden kann und nicht baumübergreifend. Eine bessere Partitionierung kann erreicht werden, indem an den aufgetrennten Stellen zusätzliche Logik eingefügt wird. Der Pfad von den Eingangsvariablen bis zum aufgetrennten Knoten wird für jede Verzweigung hinzugefügt. Das erzeugt zwar Redundanz, ermöglicht aber eine baumübergreifende Optimierung.

Technology Mapping: Dekomposition und Abdeckung Für die eigentliche Abdeckung erfolgt eine Dekomposition der Schaltung in eine kanonische Darstellung mit Basisfunktionen (z.b. NAND-, NOR-Gatter mit 2 Eingängen und Invertern) für den DAG (Subject Graph genannt) und die Bibliothek (Pattern Graph genannt). Da die Bibliothek in der Regel auch diese Basisfunktionen enthält, gibt es mindestens eine triviale Abdeckung. Ziel ist es jedoch durch Verwendung komplexer Zellen der Bibliothek (Komplexgatter), z.b. Gatter mit mehr als zwei Eingängen, eine flächengünstigere Lösung zu finden. Der Lösungsraum für die Abdeckung wird durch die Partitionierung und die Dekomposition eingeschränkt. Die Lösung erfolgt in zwei Schritten mit einem dynamischen Algorithmus: Matching mit Optimierung Für alle Teilbäume eines Baums wird eine Liste mit allen möglichen Matchings erstellt. D.h. Teilbäume des Subject Graphs werden durch isomorphe Pattern Graphs ersetzt. Dies ist ein rekursives Bottom-Up-Verfahren, das das optimale Matching für jeden Teilbaum findet. Dabei wird von den Eingängen des Subject Graphs schrittweise zu den Ausgängen vorgegangen. Für jede zugeordnete Zelle eines Knotens des Baums werden die Kosten der Zelle und der optimalen Matchings der Eingänge dieser Zelle berechnet. Am Ende wird das optimale Matching an der Wurzel des Baums bestimmt (Matching mit den niedrigsten Kosten). Akkumulation Hier werden in einem Top-Down-Verfahren die Ergebnisse der Optimierung genutzt, um eine Abdeckung des gesamten Baums zu erzielen. Ausgehend von der optimalen Zelle der Wurzel des Baumes, werden rekursiv die Teilbäume der Eingänge der zugeordneten Zelle zugeordnet.

Technology Mapping: Beispiel Das Bild zeigt zwei Dekompositionen einer Schaltung (eines Baumes) in AND-Gatter mit zwei Eingängen und Inverter. Als einfaches Beispiel für eine Abdeckung wird die obere Dekomposition betrachtet. Die Bibliothek beinhaltet NAND- und NOR-Zellen mit bis zu drei Eingängen und Inverter. Die Kosten werden vereinfacht durch die Anzahl der Transistoren der Zelle bestimmt und setzen sich für die einzelnen Matchings zusammen aus den Kosten der zugeordneten Zelle und den Kosten für die optimalen Matchings der Pfade bis zu den Eingängen dieser Zelle. 1. Matching Zuerst werden die Gatter an den Eingängen betrachtet. Für die Gatter 1, 2 und 4 gibt es jeweils nur ein Matching, nämlich einen Inverter, der hier die Kosten zwei hat. Für Gatter 3 gibt es zwei Matchings: Zum einen Weglassen der beiden Inverter 1 und 3 mit den Kosten null, oder einen Inverter. Die Kosten für das zweite Matching setzen sich zusammen aus der zugeordneten Zelle, einem Inverter mit den Kosten zwei, und dem Pfad zum Eingang dieser Zelle. In dem Beispiel besteht dieser Pfad aus dem Gatter 1, für das gerade die Kosten zwei ermittelt wurden. Die Kosten insgesamt betragen also vier. Für Gatter 10 gibt es nur ein Matching und zwar eine 2-fach NOR-Zelle, die Gatter 2, 3 und 10 abdeckt (not(x1+x2)=(not x1)(not x2)). Die Kosten davon sind vier für die NOR-Zelle und wiederum zwei für den Eingang von Gatter 3, d.h. Gatter 1. Insgesamt hat dieses Matching die Kosten sechs. Für Gatter 6 gibt es zwei Matchings: Das eine ist ein Inverter mit den Kosten acht (zwei für den Inverter und sechs für dessen Eingang, das Matching für Gatter 10) und das andere ein 2-fach NAND, das die Gatter 10 und 6 abdeckt. Letzteres hat insgesamt die Kosten sechs (vier für die NAND-Gatter plus zwei für Gatter 2 plus Null für die sich aufhebenden Gatter 1 und 3). Da das erste teurer ist, wird es verworfen. So werden alle weiteren Gatter bis zum Ausgang bearbeitet. 2. Akkumulation Danach werden ausgehend vom optimalen Matching des letzten Gatters die optimalen Matchings für dessen Eingänge bestimmt, und danach die Matchings für dessen Eingänge usw.. Für das Beispiel

wird das Ausgangsgatter am besten durch ein 3-fach NAND abgedeckt, das die Gatter 5, 6, 7, 10 und 12 beinhaltet. Diese Zelle wird als Teillösung gewählt. Danach müssen die optimalen Matchings für die Eingänge dieser Zelle der Lösung hinzugefügt werden. In diesem Falle sind dies die optimalen Matchings für die Gatter 2, 3 und 4 und das sind zwei Inverter für Gatter 2 und 4. Die Kosten der Lösung sind insgesamt zehn. Dieser Algorithmus liefert für die zweite Dekomposition eine andere Lösung, nämlich ein 2-fach NOR, das die Gatter 1, 2, 3, 4, 8, 9 und 11 abdeckt, und ein 2-fach NAND für den restlichen Teil der Schaltung. Diese Lösung hat die Kosten acht und ist damit billiger als die erste Lösung. Nachteile dieses Verfahrens sind, dass das Ergebnis von der Dekomposition abhängt und dass einige Gatter sich nicht als Baum darstellen lassen (wie z.b. XOR). Es gibt einige Erweiterungen dieses Verfahrens, die diese Nachteile vermeiden, dafür aber aufwendiger sind oder den Lösungsraum weiter einschränken.