Workshopband als PDF - Mpc.belwue.de
Workshopband als PDF - Mpc.belwue.de
Workshopband als PDF - Mpc.belwue.de
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Design-<br />
Komponente 1<br />
Synthese 1<br />
Abbildung 6: Synthese.<br />
HDL Co<strong>de</strong><br />
Design-<br />
Komponente 2<br />
Design Constraints<br />
Design-<br />
Komponente N<br />
Synthese 2 Synthese N<br />
Netzliste 1 Netzliste 2 Netzliste N<br />
Erstellung<br />
Gesamtsystem<br />
Gesamtsynthese<br />
V. SYNTHESE<br />
Die Synthese ist ein wesentlicher Bestandteil <strong>de</strong>r<br />
Entwicklung und hat großen Einfluss auf die Gesamtfrequenz,<br />
mit <strong>de</strong>r ein System betrieben wer<strong>de</strong>n kann.<br />
Im I<strong>de</strong>alfall wur<strong>de</strong> das Gesamtsystem schrittweise in<br />
mehrere Module geglie<strong>de</strong>rt, die alle einzeln synthetisiert<br />
und somit auch optimiert wer<strong>de</strong>n können. Auch<br />
bei <strong>de</strong>r Softcore-Entwicklung wur<strong>de</strong> auf diese Weise<br />
vorgegangen. Somit kann je<strong>de</strong>s Teilsystem einzeln auf<br />
maximale Frequenz optimiert wer<strong>de</strong>n. Die nach dieser<br />
Teilsynthese erhaltenen Netzlisten dienen anschließend<br />
<strong>als</strong> Basis für die Erstellung <strong>de</strong>s Gesamtsystems,<br />
welches aberm<strong>als</strong> optimiert wer<strong>de</strong>n kann bzw. sollte.<br />
Abbildung 6 stellt diesen Ablauf nochm<strong>als</strong> graphisch<br />
dar.<br />
Die eigentlichen Optimierungen wer<strong>de</strong>n bei einer<br />
Synthese mit Hilfe sogenannter Timing Constraints<br />
getroffen, mit <strong>de</strong>nen verschie<strong>de</strong>nste Einstellungen<br />
getroffen wer<strong>de</strong>n können. Beispielsweise können<br />
ganze Signalpfa<strong>de</strong> von <strong>de</strong>n Optimierungen ausgenommen<br />
wer<strong>de</strong>n, wie etwa asynchrone Reset-Logiken<br />
<strong>de</strong>r Flip-Flops. Alle Constraints an dieser Stelle aufzuführen<br />
wür<strong>de</strong> <strong>de</strong>n Rahmen sprengen. Einen guten<br />
Überblick gibt [3].<br />
Um korrekte Syntheseergebnisse zu erhalten, sollte<br />
<strong>de</strong>r System<strong>de</strong>signer möglichst alle wichtigen Pfa<strong>de</strong><br />
per Timing Constraints optimieren. Beim SIRIUS<br />
HULK zählt hierzu beispielsweise <strong>de</strong>r Datenpfad in<br />
<strong>de</strong>r Arithmetisch-Logischen-Einheit (ALU) <strong>de</strong>s<br />
Hardware-Divisors. Aufgrund seiner Konfiguration<br />
hat dieser für eine Berechnung sieben Systemtakte<br />
Zeit, das Ergebnis zu berechnen. Diese sieben Takte<br />
müssen auf diesem Pfad <strong>de</strong>r Synthese über einen<br />
set_multicycle_path-Constraint mitgeteilt wer<strong>de</strong>n. Erst<br />
mit diesem weiß die Synthese, dass dieser Pfad im<br />
Worst-Case-Fall nicht <strong>de</strong>n kritischen Pfad darstellt<br />
und kann sich <strong>de</strong>shalb <strong>de</strong>r Aufgabe <strong>de</strong>r Optimierung<br />
an<strong>de</strong>rer, wirklich kritischer Pfa<strong>de</strong>, widmen. Im Allgemeinen<br />
muss <strong>de</strong>r System<strong>de</strong>signer jedoch auch darauf<br />
achten, das System nicht zu beschränken. Es sollten<br />
stets realistische Vorgaben gemacht wer<strong>de</strong>n, insbeson<strong>de</strong>re<br />
in Bezug auf gewünschte Zielfrequenzen, da<br />
ansonsten negative Effekte auftreten können.<br />
42<br />
OPTIMIERUNG EINES 32-BIT-SOFTCORES MIT<br />
HARVARD-ARCHITEKTUR UND DUAL CACHE<br />
Tabelle 2: Syntheseergebnisse – Fmax.<br />
Erreichte<br />
Frequenz<br />
[MHz]<br />
ALU 250,5<br />
Control Unit 111,5<br />
HULK Core 108,0<br />
Cache<br />
132,8 /<br />
1287<br />
MMU 112,8<br />
Zielfrequenz<br />
[MHz]<br />
250<br />
Tabelle 2 gibt einen Überblick über die erreichten<br />
Maximalfrequenzen <strong>de</strong>r einzelnen Systeme. Wie ersichtlich<br />
ist, wäre mit <strong>de</strong>m Gesamtsystem eine Maximalfrequenz<br />
von 108 MHz auf einem FPGA <strong>de</strong>s Typs<br />
Altera Cyclone IV E – EP4CE115F29C7N möglich.<br />
Jedoch muss beachtet wer<strong>de</strong>n, dass die MMU über<br />
einen rein kombinatorischen Aufbau verfügt und somit<br />
<strong>de</strong>ren Delay <strong>de</strong>m <strong>de</strong>s Cores hinzugefügt wer<strong>de</strong>n<br />
muss, sodass sich in Kombination eine Maximalfrequenz<br />
von etwa 55 MHz ergeben wür<strong>de</strong>. Im Vergleich<br />
mit aktuellen Mikrocontrollern wäre dies eine respektable<br />
Systemfrequenz (vgl. Microchip dsPIC mit ca.<br />
40 MHz). Allgemein kann gesagt wer<strong>de</strong>n, dass eine<br />
direkte Gegenüberstellung von SoCs bzw. ICs allerdings<br />
immer nur dann Sinn ergibt, wenn sie in gleicher<br />
Technologie gefertigt bzw. emuliert wur<strong>de</strong>n.<br />
VI. AUSBLICK<br />
In naher Zukunft wird die vor kurzem implementierte<br />
FPU noch genaueren Tests unterzogen und dauerhaft<br />
mit in die Synthese eingebun<strong>de</strong>n. Weiterhin kann<br />
die maximale Systemfrequenz mit Hilfe präziserer<br />
Timing Constraints innerhalb <strong>de</strong>r Synthese erhöht und<br />
maximiert wer<strong>de</strong>n.<br />
Ebenfalls wäre ein SIRIUS HULK-ASIC <strong>de</strong>nkbar,<br />
welcher <strong>de</strong>n eigentlichen Core, <strong>de</strong>n Cache und die<br />
MMU enthält. In diesem Zuge wäre ebenso die Implementierung<br />
eines (seriellen) Bussystems wie PCI-<br />
Express möglich, um das klassische CPU-<br />
Northbridge-Southbridge-Prinzip zu erfüllen. Hierdurch<br />
könnte Peripherie schnell und problemlos an<br />
<strong>de</strong>n HULK-ASIC angebun<strong>de</strong>n wer<strong>de</strong>n.<br />
Unabhängig hiervon wäre ein Multicore-System, basierend<br />
auf <strong>de</strong>n SIRIUS HULK-Cores, <strong>de</strong>nkbar und<br />
durch die Einbindung <strong>de</strong>sselben in Altera Qsys realisierbar.<br />
Allerdings wäre somit die sinnvolle Multicore-Unterstützung<br />
seitens <strong>de</strong>r Software und <strong>de</strong>s Compilers<br />
Voraussetzung.