22.09.2013 Aufrufe

Workshopband als PDF - Mpc.belwue.de

Workshopband als PDF - Mpc.belwue.de

Workshopband als PDF - Mpc.belwue.de

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.

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!