Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FPGA Praktikum WS2000/2001 2.Woche: FPGA Architektur Simulationsskripte Aufgaben.

Ähnliche Präsentationen


Präsentation zum Thema: "FPGA Praktikum WS2000/2001 2.Woche: FPGA Architektur Simulationsskripte Aufgaben."—  Präsentation transkript:

1 FPGA Praktikum WS2000/ Woche: FPGA Architektur Simulationsskripte Aufgaben

2 Architektur der XC4000XL Familie

3 Die XC4000XL Familie zDie XC4000XL Familie wird auf der im Praktikum verwendeten Experimentierplatine verwendet. zDie Architektur ist in vielen Punkten sehr typisch für heutige FPGAs. Ähnlich: yActel ProASIC yAltera yAtmel 40K yQuicklogic Eclipse) zHeute stelle ich die Architektur dieser Familie im Detail vor. zIn zwei Wochen werde ich Alternativen zu dieser Architektur vorstellen.

4 Elemente eines FPGAs zEin FPGA hat vier Hauptkomponenten: yVerdrahtung yLogik yI/O yKonfigurationsspeicher zHinzu kommen manchmal dedizierte Blöcke mit Spezialschaltungen: yRAM yMultiplizierer yProzessoren yPCI Interface zDer Konfigurationsspeicher ist für uns unsichtbar.

5 Struktuer der XC4000 Familie zMatrix von Logikblöcken (CLBs), umrandet von I/O Blöcken (IOBs)

6 Logik: Lookup Table (LUT) zDas Grundelement eines Logikblockes ist eine Lookuptable (LUT, Wertetabelle). zEin LUT ist ein Speicher in dem für jede Eingangskombination der Ausgabewert steht. zFür n Eingänge sind 2 n Einträge erforderlich. zEine Zahl vor der Abkürzung LUT bezeichnet in der Regel die Zahl der Eingänge. yZ.B. 4-LUT, n-LUT 3 x f(x) LUT

7 Größe der LUTs zLUTs sollten mindestens drei Eingänge haben, um Addierer bauen zu können: zAuch der häufig benötigte 2-zu-1 Multiplexer benötigt drei Eingänge LUT a b Carry_in Carry_out Sum

8 Größe der LUTs zAllerdings belegt die Logik nur einen kleinen Teil der Fläche des FPGAs (<1%) zDeshalb ist es Sinnvoll, die LUTs etwas größer zu machen, um die Schaltungstiefe kombinatorischer Schaltungen zu reduzieren. zAber auch nicht zu groß, da die Fläche der LUTs exponentiell wächst. y5-LUTs verwendet ausschließlich Lucent y4-LUTs dominieren den Markt y3-LUTs bei einigen Herstellern

9 LUTs bei Xilinx XC4000 zEin XC4000 CLB enthält zwei 4-LUTs und einen 3-LUT zMit dem 3-LUT lassen sich die 4-LUTs beispielsweise zu einem 5-LUT zusammen schließen. LUT

10 Flip-Flops zFlip-Flops sind sehr wichtige Schaltungselemente zFlip-Flops sind langsam, groß und unzuverlässig, wenn man sie in LUTs realisiert. zEin XC4K CLB enthält deshalb zwei D-Flip-Flops LUT

11 So sieht das im Datenblatt aus:

12 Addierer zAddierer sind sehr häufige Schaltungen. zIn der gezeigten CLB Architektur benötigt jedes Bit zwei 4-LUTs zElegante Lösung: 4-LUTs die sich in zwei 3-LUTs aufteilen lassen. zSchnellere Lösung: Spezialhardware für die Carry Chain zBei der XC4K Familie ist eine solche Carry Chain vor den LUTs angebracht.

13 Carry Chain z200ps pro Bit

14 Speicher zEin 4-LUT ist ein 16x1 ROM. zBei der XC4K Familie kann er auch als RAM konfiguriert werden: zein Speicher 32x1 Bit zzwei Speicher 16x1 Bit zein RAM 16x1 mit gleichzeitigem Lesen und Schrieben von getrennten Addressen (Dual Port RAM)

15 Distributed RAM

16 Verdrahtung zDie Verdrahtung macht 90% des FPGAs aus. zIn den meisten synthetisierten Schaltungen macht die Verdrahtung deutlich mehr als die Hälfte des delay aus. zFPGAs werden oft daran gemessen, wie gut sich die Logik ausnutzen läßt. zWichtiger wäre es, zu wissen, wie gut sich die Verdrahtung ausnutzen läßt. Das ist jedoch so gut wie nicht beschreibbar.

17 Verdrahtung des XC4000XL

18 Die Dahten des XC4010XL-PC84 zCLBs:400 z4-LUTs:800 zmax RAM: Bits = Bytes zLogik:ca Gatteräquivalente zFlip-Flops:1.120 (800 in CLBs, 320 in Ios) zI/O:ca. 60

19 Simulationsskripte

20 zDie Einzige Dokumentation zur Simulationsskriptsprache die ich finden konnte ist in der Onlinehilfe des Simulators: zIm folgenden erläutere ich die wichtigsten Makros

21 Skript: Initial Settings zDie folgenden Zeilen werden für den Anfang der meisten Simulationsskripte sinnvoll sein: zdelete_signals restart stepsize 10 ns zDadurch werden alle Signale aus der Ansicht gelöscht, die Simulation auf den Zeitpunkt 0 gesetzt, alle Signalzuweisungen gelöscht und eine Sinnvolle Schritteweite für die Beschreibung von Wellenformen gesetzt.

22 Skript: Vector definitions zDem Silumator muß mitgeteilt werden, daß er Vektoren nicht als einzelne Signale darstellt, sondern zu einem mehrbittigen Wert zusammenfaßt. Dies geht mit dem „v“ Makro:  v h_out h_out[2:0]

23 Skript: Watch List zSignale und Vectoren, die im Waveformviewer angezeigt werden sollen, werden mit „watch“ asugewählt  watch clk h_out zeichen zKommentarzeilen beginnen mit „|“  | Start der Testvektoren

24 Skript: Stimulus zPeriodische Signale werden mit „clock“ definiert  clock clk 0 1 zDabei wechseln die aufgelisteten Zustände in dem durch „stepsize“ definierten Zeitintervall zBeispiel mit zwei um 90° verschobenen Taktsignalen: zclock clk clock clk

25 Skript: Stimulus (Fortsetzung) zBeliebige, nicht periodische Wellenformen lassen sich mit „wfm“ beschreiben. Dabei wird jeweils einem Zeitpunkt ein Zustandswechsel zugeordnet:  @40ns=0 zDie Zeitpunkte können auch relativ angegeben werden: zwfm 20ns=1 20ns=0  Das ist nützlich für Wiederhohlungen: (10ns=0 10ns=1)*5 zAußer ns sind auch ps, us, ms und s möglich.

26 Skript: Vektorwerte zVektoren können Werte in verschiedenen Zahlenbasen zugewiesen werden. yBinär (\B), Octal (\O), Decimal (\D) and Hexadecimal (\H) yBeliebige Basis: \2 \3 \16 yStandard ist Binärdarstellung zBeispiele: ywfm ywfm ywfm ywfm

27 Aufgaben 3. Woche

28 zAufgabe 3.1: Implementierung des Designs yIhr habt letztes mal eine Schaltung entworfen, synthetisiert und simuliert. Jetzt soll sie auf die Zieltechnologie abgebildet werden. yWählt im Project Manager sicherheitshalber den Menüpunkt „Project->Clear Implementation Data“ und bestätigt. Dies löscht die bisherigen Syntheseergebnisse. yDrückt auf den Knopf „Synthesis“

29 Aufgaben 3. Woche zAufgabe 3.1: Implementierung des Designs (Fortsetzung) yWählt den Chip für den Synthetisiert werden soll: xFamily: XC4000XL xDevice: 4010XLPC84 xSpeed: XL-3 yFalls Ihr bereits mehrere VHDL Dateien in eurem Projekt habt: xAchtet darauf, daß bei „Top Level“ die richtige Komponente ausgewählt ist. yDrückt auf „Run“ um die Synthese zu starten. yEs sollten ausschließlich Warnung über „set/reset“ kommen und ein grünes Ausrufezeichen beim Knopf „Synthesis“ erscheinen.

30 Aufgaben 3. Woche zAufgabe 3.1: Implementierung des Designs (Fortsetzung) yDrückt auf den Knopf „Implementation“ yDrückt auf „Run“ yFertig.

31 Aufgaben 3. Woche zAufgabe 3.2: Der Map Report yDer zweite Schritt des automatisch ausgeführten Implementierungs Toolflows ist die Technologieabbildung. (Map) ySie bildet die von der Synthese generierte Netzliste auf die Bauteile des FPGAs ab. Die Ergebnissen stehen im Map Report. yZum öffnen des Reports geht klickt Ihr auf den „Reports“ Reiter und öffnet den Ordner „Implementation Report Files“. yDoppelklick auf den „Map Report“ öffnet diesen.

32 Aufgaben 3. Woche zAufgabe 3.2: Der Map Report (Fortsetzung) yDer Map Report ist sehr nützlich um: xDie Qualität des Ergebnisses zu beurteilen xMögliche Fehler früh zu erkennen ySchaut euch das Design Summary an: xWieviele Flip-Flops gibt es? (CLB Flip-Flops und IOB Flops) xWieviele 3-LUTs und 4-LUTs wurden verwendet? xWieviele IO Blöcke gibt es? xStimme diese Ergebnisse mit euren Erwartungen überein? xGibt es Fehler in Abschnitt 1? xSind die Warnungen in Abschnitt 2 vertretbar? xWurde in Abschnitt 5 unerwartet Logik entfernt? ySchreibt die Antworten an

33 Aufgaben 3. Woche zAufgabe 3.3: Timing Analyse yDie Xilinx Software analysiert die maximale Taktfrequenz des Designs. Wie hoch ist diese? (Steht im „Post Layout Timing Report“ und im „Implementation Log File“ yDie Software hat außerdem detaillierte informationen über das Timing der Einzelteile der Schaltung generiert. Dadurch läßt sich jetzt eine Timingsimulation durchführen. yStartet den Timingsimulator (Linke Hälfte des „Verification“ Knopfes) yStartet das Simulationsskript und schaut euch genau die Wellenformen an. Die Signale ändern sich jetzt teilweise erst 10ns nach der steigenden Taktflanke.

34 Aufgaben 3. Woche zAufgabe 3.3: Timing Analyse yDie Xilinx Software analysiert die maximale Taktfrequenz des Designs. Wie hoch ist diese? (Steht im „Post Layout Timing Report“ und im „Implementation Log File“ yDie Software hat außerdem detaillierte informationen über das Timing der Einzelteile der Schaltung generiert. Dadurch läßt sich jetzt eine Timingsimulation durchführen. yStartet den Timingsimulator (Linke Hälfte des „Verification“ Knopfes) yStartet das Simulationsskript und schaut euch genau die Wellenformen an. Die Signale ändern sich jetzt teilweise erst 10ns nach der steigenden Taktflanke.

35 Aufgaben 3. Woche zAufgabe 3.4: FPGA Editor yUm einen Eindruck davon zu gewinnen, was die Foundation Software mit euren Design angestellt hat, startet den FPGA Editor. (Im Menu Tools->Implementation->FPGA Editor) yIhr seht ein Layout des Chips, in dem Ihr herumscrollen und Zoomen könnt. yMit diesen Knöpfen könnt Ihr verschiedene Teile des Layouts ein- und ausblenden: yBenutzte CLBs und IOBs könnt Ihr euch per Doppelklick genauer anschauen.

36 Aufgaben 3. Woche zAufgabe 3.5: Eigenleistung yDamit Ihr diese Woche auch etwas kreatives macht, und nicht nur Knöpfe drückt. yEntwerft in VHDL einen DNA Pattern Matcher, der aus vier der von euch letzte Woche entworfenen Zellen besteht, die korrekt hintereinander geschaltet sind. yDie Zellen sollen als „Components“ in das Design eingefügt werden. Die Zellen können in einer seperaten Datei oder in der gleichen Quelldatei wie das top level design beschrieben werden. yÄndert das Simulationsskript so, daß es ein vier Zeichen langes Muster lädt, und testet ob das Muster erkannt wird. (Denkt daran, auch den einen oder anderen negativen Fall zu testen ;-) ySchickt den VHDL Text und das Simulationsskript ein.

37 Aufgaben 3. Woche zAufgabe 3.Z: Zusatzaufgabe y3.1 bis 3.5 lassen sich sehr schnell lösen, wenn alles glatt geht. Wer der keine Hilfe bei Till suchen mußte, sollte deshalb die folgende Aufgabe lösen. Alle anderen sollten sie lesen und verstehen. yFPGAs können dyamisch rekonfiguriert werden. Deshalb kann die Logik für das Laden des gesuchten Musters entfallen, wenn man das Muster stattdessen in die Schaltungsbeschreibung aufnimmt. yWir müssen die Schaltung für jedes Muster neu Synthetisieren und Implementieren, in der Praxis kann man diesen Prozess auf wenige Millisekunden abkürzen

38 Aufgaben 3. Woche zAufgabe 3.Z: Zusatzaufgabe (Fortsetzung) yEntfernt das „load“ Signal aus der Interface Beschreibung der Zelle. yÄndert die Zelle so, daß sie immer mit dem selben Zeichen Vergleicht. (Z.B. mit „A“=„1010“) yImplementiert die Zelle und schaut euch den MAP Report an. Wieviel Platz spart diese Zelle im Vergleich zur ladbaren Zelle? Ist sie schneller? yKopiert die Zelle, ändert den Namen und erstellt eine Zelle, die mit einem anderen Zeichen vergleicht. (Z.B. „F“) yHängt mehrere dieser Zellen zu einem Muster zusammen und ändert die Simulation so, daß Ihr testen könnt, ob dieses Muster gefunden wurde. ySchickt den VHDL Text, die Antworten auf die Fragen zu MAP und das Simulationsskript ein. (An


Herunterladen ppt "FPGA Praktikum WS2000/2001 2.Woche: FPGA Architektur Simulationsskripte Aufgaben."

Ähnliche Präsentationen


Google-Anzeigen