Aufrufe
vor 4 Jahren

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik 6.2 Einflüsse auf das Syntheseergebnis Synthesewerkzeuge bilden Synthesemodelle auf Strukturen mit verfügbaren Komponenten ab. Dies erfolgt abhängig vom Modell, von der Bibliothek/Zielhardware und der Steuerung des Werkzeugs. Für Schaltungen gibt es immer mehrere Modellierungsvarianten. Durch geschickte Verwendung von Sprachelementen kann bereits bei der Modellierung eine Entscheidung über eine mehr oder weniger geeignete Schaltung getroffen werden. Neben dem Modellierungsstil haben die verfügbaren Komponenten und die Steuerung des Syntheseprogramms erheblichen Einfluß auf das Ergebnis. Der Benutzer gibt durch das Synthesemodell vor, welche Funktion er realisiert haben möchte. Durch die Angabe von Synthesezielen und Randbedingungen (Constraints) kann er dem Syntheseprogramm vorgeben, welche Ziele erfüllt werden sollen. VHDL-Modell (Modellierungsstil) Synthesewerkzeug Bibliothek/ Vorgaben/Steuerung Zielhardware des Synthesewerkzeugs Abbildung 6.1: Einflüsse auf das Syntheseergebnis Syntheseergebnis Grundlegende Syntheseziele sind neben einer funktionierenden Schaltung ein möglichst geringer Flächenverbrauch und eine möglichst hohe Taktfrequenz. Die Constraints können über Menüs oder Befehlsskripte vorgegeben werden. Nach dem Syntheselauf liefern die Synthesewerkzeuge die Information, ob und inwieweit die Vorgaben eingehalten wurden. Es ist i.d.R. nicht sinnvoll, Randbedingungen auf unmögliche Werte zu setzen (z.B. Laufzeit 0 ns), sondern Werte nahe des Machbaren zu verwenden. Durch die Abhängigkeiten zwischen Fläche und Geschwindigkeit liegen die optimalen Lösungen der Synthese, aufgetragen in einem Diagramm Laufzeit über Fläche, auf einer Hyperbel. In der Praxis erhält man eine endliche Anzahl von (nicht immer optimalen) Syntheseergebnissen. Laufzeit Fläche optimale Lösungen nicht optimale Lösungen Abbildung 6.2: Syntheseergebnisse im Fläche-Laufzeit-Diagramm VHDL-SYNTHESE 130

Hardware-Entwurf mit VHDL Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik Ein Überblick über mögliche Lösungen steht zu Beginn der Synthese i.d.R. nicht zur Verfügung. Das Ziel bei der Vorgabe von Constraints ist es, dem Syntheseprogramm mitzuteilen, welche Realisierung gewünscht wird. Leider kann man kaum vorhersagen, welche Constraints zu welcher Lösung führen, so dass ein iteratives Vorgehen notwendig wird. Man geht dabei sinnvollerweise so vor, dass man mit leicht verwirklichbaren Constraints beginnt und diese so lange verschärft, bis die Synthese keine bessere Lösung mehr liefert. Neben der Vorgabe von Constraints können bei Synthesewerkzeugen meist auch verschiedene Optimierungsstrategien ausgewählt werden. Beispiele hierfür sind die teilweise oder vollständige Auflösung der Hierarchie oder die gemeinsame Nutzung von Ressourcen. Die Handbücher der Synthesewerkzeuge geben darüber Auskunft (siehe z.B. Design Compiler). 6.3 Synthese kombinatorischer Schaltungen In diesem Kapitel soll anhand von Beispielen gezeigt werden, wie mit Hilfe von sequentiellen und nebenläufigen Anweisungen kombinatorische Logik synthesegerecht modelliert werden kann. Alle Beispiele verwenden den Datentyp std_logic bzw. die davon abgeleiteten Datentypen und folgende Bibliothekskonfiguration: LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; USE IEEE. STD_LOGIC_ARITH.ALL; USE IEEE. STD_LOGIC_UNSIGNED.ALL; Die folgenden Syntheseergebnisse wurden mit dem Design Compiler der Fa. Synopsys erzeugt. 6.3.1 AND-OR-Gatter Dieses Beispiel verwendet für ein AND-OR-Gatter die Operatoren AND und OR aus dem Package STD_LOGIC_1164 in Einzel- (aor_1) und Mehrbitversion (aor_8). Zwischen den Versionen ändert sich lediglich die Portdefinition in den Entities, die Zuweisung in der Architecture bleibt gleich. Im Syntheseergebnis für die vektorielle Form ist erkennbar, dass die AND-OR-Verknüpfung bitweise angewendet wird. Einzelbitversion (aor_1): --------------------------------------------------------------------------- ENTITY aor_1 IS PORT ( a: IN STD_LOGIC; END aor_1; b: IN STD_LOGIC; c: IN STD_LOGIC; y: OUT STD_LOGIC ); VHDL-SYNTHESE 131

Verification.pdf
VHDL Kompakt - CES
VHDL Einführung
Schaltungsdesign mit VHDL
VHDL Design Guidelines