27.01.2013 Aufrufe

[Geben Sie hier die Überschrift ein] - MPC

[Geben Sie hier die Überschrift ein] - MPC

[Geben Sie hier die Überschrift ein] - MPC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

.NOP {255:8 0:5 0:5 0:4 0:10 0:16 0:16 }<br />

.BRK {00000000b:8 0:5 0:5 0:4 0:10 0:16 0:16 }<br />

.JMP à {2:8 0:5 0:5 0:4 0:10 Cd:16 @1:16}<br />

.BRA Cà,à {2:8 0:5 0:5 0:4 0:10 @1:16 @2:16}<br />

.CALL Cà,à {3:8 0:5 0:5 0:4 0:10 @1:16 @2:16}<br />

Abbildung 3: Auszug aus der HASM-Def. mit Befehlsformaten.<br />

Init NOP<br />

BRK<br />

MISC MAGU1An, 0020h<br />

LOOP L_End, #3<br />

NOP<br />

L_End BRK<br />

NOP<br />

Abbildung 4: HASM Assemblerprogramm.<br />

sembler für beliebige Prozessoren, Mikrocontroller<br />

und Signalprozessoren generieren zu können.<br />

Die Generierung des Assemblers für den Soft-Core-<br />

Prozessor erfolgt dabei über <strong>ein</strong>e Tabelle, in der <strong>die</strong><br />

Befehle des Prozessors auf Bit-Ebene definiert sind.<br />

Außerdem können in der Tabelle physikalische und<br />

virtuelle Speicher-Segmente, Assemblerdirektiven und<br />

weitere Anweisungen definiert werden [8]. Der<br />

HASM Assembler basiert auf <strong>ein</strong>er Konfigurationstabelle,<br />

mit der <strong>die</strong> Architektur des Soft-Core-<br />

Prozessors abgebildet wird. Die Konfigurationstabelle<br />

ist zeilenorientiert und wird durch das erste Zeichen in<br />

der Zeile festgelegt. In Abbildung 3 ist <strong>ein</strong> Ausschnitt<br />

aus der Konfigurationstabelle zu sehen. Eine Prozessorinstruktion<br />

wird über <strong>ein</strong>en Punkt als Präfix <strong>ein</strong>geleitet<br />

und für den Assembler in Form von mnemonischen<br />

Abkürzungen definiert. Der Bezeichnung der<br />

Prozessorinstruktion folgt <strong>ein</strong>e Sequenz von Argumenten,<br />

<strong>die</strong> das Instruktionsformat repräsentieren.<br />

Die eigentlichen Umsetzungsanweisungen, zusammengesetzt<br />

aus den Anweisungen, müssen in geschweiften<br />

Klammern gesetzt werden. Alle Anweisungen<br />

haben dabei immer <strong>die</strong> Form :.<br />

Getrennt durch <strong>ein</strong>en Doppelpunkt steht <strong>hier</strong>bei auf<br />

der linken Seite das Argument und auf der rechten<br />

Seite <strong>die</strong> Anzahl der Bits, <strong>die</strong> für <strong>die</strong>ses Argument<br />

verwendet werden sollen. Ein variables Argument<br />

wird mit ‚@‘ gekennzeichnet und bei der Assemblierung<br />

durch <strong>ein</strong>en Wert ersetzt.<br />

In Abbildung 4 ist <strong>ein</strong> Ausschnitt aus <strong>ein</strong>em Assemblerbeispielprogramm<br />

zu sehen. Das Programm<br />

beginnt mit <strong>ein</strong>em Init-Label, gefolgt von <strong>ein</strong>er NOP<br />

Instruktion. Namen, <strong>die</strong> in der ersten Spalte des Assemblerprogramms<br />

stehen, werden als Labels interpretiert.<br />

Dabei ist darauf zu achten, dass zwischen den<br />

Labels und den Instruktionen mindestens <strong>ein</strong> Leerzeichen<br />

enthalten ist. Enthält <strong>ein</strong>e Zeile nur Code, muss<br />

<strong>die</strong>se mit <strong>ein</strong>em Leerzeichen beginnen.<br />

SOFT-CORE-PROZESSOR MIT<br />

MULTITHREADING FÜR DSP-ANWENDUNGEN<br />

Tabelle 1: Auszug aus der Report-Datei mit dem Ressourcen-<br />

Verbrauch des Soft-Core-Prozessors nach der Synthese für <strong>die</strong><br />

Spartan6-Familie.<br />

Ressourcen Utilization Available Utilization<br />

Register 3021 54576 5 %<br />

LUT 3793 27288 13 %<br />

Slice 1235 6822 18 %<br />

IO 34 218 15 %<br />

RAMB 11 116 9 %<br />

BUFG 2 16 12 %<br />

VII. VERIFIKATION<br />

Die Funktionalität des Designs wurde mittels <strong>ein</strong>er<br />

Simulation überprüft. Für <strong>die</strong> Simulation des Soft-<br />

Core-Prozessors wurde <strong>ein</strong>e Testbench implementiert,<br />

<strong>die</strong> alle notwendigen Signalwechsel (Stimuli) an den<br />

Eingängen der zu testenden Einheit (DUT - Device<br />

Under Test) bereitstellt. Die Ausgangssignale vom<br />

DUT wurden anhand <strong>ein</strong>er grafischen Darstellung des<br />

zeitlichen Verlaufs überprüft. Mit <strong>die</strong>ser Testbench<br />

lassen sich typische Fehler bei der Abarbeitung von<br />

Instruktionen im Prozessor erkennen. Diese Testbench<br />

basiert auf <strong>ein</strong>em Testprogramm, welches mit dem<br />

HASM-Assembler generiert wurde und verschiedene<br />

Testfälle abdeckt, um so <strong>die</strong> Eigenschaften des Soft-<br />

Core-Prozessors zu testen. Das Testprogramm b<strong>ein</strong>haltet<br />

im Wesentlichen <strong>ein</strong>zelne Tests für arithmetisch-logische<br />

Operationen, bedingte und unbedingte<br />

Sprünge sowie Schleifenanweisungen für <strong>die</strong> korrekte<br />

Adressgenerierung und Interrupts. Des Weiteren wird<br />

durch <strong>die</strong> Testbench <strong>die</strong> funktionale Korrektheit gewährleistet,<br />

wenn der Soft-Core-Prozessor mit <strong>ein</strong>er<br />

variablen Anzahl an Threads skaliert wird. Insbesondere<br />

stellt <strong>die</strong> Testbench sicher, dass der Threadkontext<br />

des jeweiligen Threads auch bei maximaler Auslastung<br />

des Prozessors konsistent bleibt. Weiterführende<br />

Informationen zur funktionalen Verifikation<br />

sind in [9], [10] zu finden.<br />

VIII. SYNTHESEERGEBNISSE<br />

Die Analyse wurde mit PlanAhead, <strong>ein</strong>er leistungsfähigen<br />

Analyse- und Floorplanning Software durchgeführt.<br />

Tabelle 1 listet <strong>ein</strong>ige wesentliche Kennzahlen<br />

nach dem Place & Route (PAR) zur Ressourcenauslastung<br />

des DSP auf dem XC6SLX45-CSG324 aus<br />

der Spartan6 Familie auf. Bei <strong>die</strong>sen Werten handelt<br />

es sich um <strong>ein</strong>en Mindestbedarf. Dieser Bedarf erhöht<br />

sich entsprechend, wenn <strong>die</strong> Applikation Threads über<br />

<strong>die</strong> Mindestanzahl hinaus benötigt. Der Soft-Core-<br />

Prozessor wurde auf <strong>ein</strong>em Spartan6 der Firma Xilinx<br />

platziert. Nach dem Place und Route kann er mit <strong>ein</strong>er<br />

maximalen Taktrate von 133,245 MHz betrieben werden.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!