Hardware-Entwurf mit VHDL
Hardware-Entwurf mit VHDL
Hardware-Entwurf mit VHDL
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Hardware</strong>-<strong>Entwurf</strong> <strong>mit</strong> <strong>VHDL</strong><br />
Prof. Dr.-Ing. Stefan Wolter Elektrotechnik und Informatik<br />
• Retiming:<br />
Retiming beschreibt eine sequentielle Optimierung, in der kombinatorische Logik über Registergrenzen<br />
hinweg verschoben wird. Hauptzweck ist die Angleichung der Länge zeitkritischer Pfade.<br />
• Register Allocation (Registerzuordnung):<br />
Bei der Registervergabe werden die Werte, die in einem späteren Taktzyklus wieder gebraucht<br />
werden, in Registern gespeichert.<br />
Beispiel: Registerzuordnung für acht Werte<br />
Takt 1<br />
Takt 2<br />
Takt 3<br />
Takt 4<br />
V1 V2 V3<br />
R1 R2 R3<br />
- +<br />
+<br />
V4 V5<br />
R1 R3<br />
SHL<br />
V6<br />
R1 R2 R3<br />
SHR<br />
R2 R3<br />
V7 V8<br />
SHL:<br />
Shift left<br />
SHR:<br />
Shift right<br />
Abbildung 5.6: Registerzuordnung für acht Werte<br />
• Resource Allocation / Resource Sharing / Binding:<br />
Es kommen ingesamt acht Werte vor:<br />
drei Eingangswerte (V1-V3),<br />
drei Zwischenwerte (V4-V6) und<br />
zwei Ausgangswerte (V7-V8)<br />
Für die Speicherung der acht Werte<br />
genügen jedoch 3 Register (R1, R2, R3).<br />
- Resource Allocation (Ressourcen-Zuordnung):<br />
Das ist die Zuordnung von Komponenten (Addierer, ALUs, etc.) zu Operationen (z.B. arithmetische<br />
oder logische Operationen) auf der Basis von vorhandenen Komponenten.<br />
- Resource Sharing (gemeinsame Ressourcennutzung):<br />
Manche Ressourcen können mehrfach verwendet werden, wenn feststeht, dass da<strong>mit</strong> auszuführende<br />
Operationen nicht gleichzeitig (d.h. in einem Taktzyklus) stattfinden müssen.<br />
- Binding (Modulbindung):<br />
Dies bedeudet die Selektion von spezifischen Implementierungen von Ressourcen. Beispielsweise<br />
wird für einen zu implementierenden Addierer eine Carry-Ripple-, Carry-Select- oder<br />
eine Carry-Lookahead-Implementierung ausgewählt.<br />
ÜBERBLICK ZUR HARDWARE-SYNTHESE 124