24.12.2012 Aufrufe

Schaltungsdesign mit VHDL

Schaltungsdesign mit VHDL

Schaltungsdesign mit VHDL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

C Anwendung von <strong>VHDL</strong><br />

Folgende Einzelschritte laufen bei der Logiksynthese <strong>mit</strong> kommerziellen<br />

Werkzeugen im allgemeinen ab:<br />

Flattening<br />

Alle Zwischenvariablen der Booleschen Ausdrücke werden zunächst<br />

entfernt und alle Klammern aufgelöst. Da<strong>mit</strong> erhält man beispielsweise<br />

eine zweistufige AND-OR-INVERT-Darstellung:<br />

p Vor dem Flattening:<br />

f = f1 ∧ f2; <strong>mit</strong>: f1 = a ∨ (e ∧ (c ∨ d)); f2 = c ∨ b<br />

p Nach dem Flattening:<br />

f = (a ∧ c) ∨ (a ∧ b) ∨ (c ∧ e) ∨ (e ∧ d ∧ c) ∨ (e ∧ c ∧ b) ∨<br />

(e ∧ d ∧ b)<br />

Das Flattening löst also die vorgegebene Struktur der Logik auf. Die<br />

Auflösung eines vorher strukturierten Blockes in seine Produktterme<br />

kann eventuell bzgl. Geschwindigkeit und Fläche schlechtere Ergebnisse<br />

liefern. Bei unstrukturierter, krauser Logik ist es aber möglich,<br />

durch die anschließende Minimierung sowohl schnellere als auch kleinere<br />

Schaltungen zu erzeugen. Weil durch das Auflösen der<br />

Zwischenterme große Datenmengen entstehen, kann in den meisten<br />

Synthesesystemen der Grad des Flattenings vorgegeben werden.<br />

Logikminimierung<br />

Die Darstellung aus Produkttermen wird <strong>mit</strong> Minimierungsverfahren,<br />

wie z.B. dem Nelson-Verfahren, weiterverarbeitet. Jede Funktion kann<br />

dabei einzeln oder innerhalb eines Funktionsbündels minimiert werden.<br />

Die Anzahl der Produktterme reduziert sich dadurch und redundante<br />

Logik wird entfernt.<br />

Structuring<br />

Beim Structuring oder Factoring werden gemeinsame Unterausdrücke<br />

ausgeklammert und als temporäre Variablen verwendet. Die Schaltung<br />

erhält erneut eine Struktur. Dabei wird zunächst ein Liste angelegt, die<br />

die möglichen Faktoren enthält. Die Bewertung der Faktoren (benötigte<br />

Halbleiterfläche, Anzahl ihrer Verwendung) wird so oft wiederholt,<br />

bis kein neuer Faktor er<strong>mit</strong>telt werden kann, der die Schaltung verbessert.<br />

Die Faktoren, die die Logik am stärksten reduzieren, werden zu<br />

temporären Variablen. Ein Beispiel zum Structuring:<br />

246 © G. Lehmann/B. Wunder/M. Selz

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!