2.Woche: FPGA Architektur Simulationsskripte Aufgaben

Slides:



Advertisements
Ähnliche Präsentationen
Partner Homepage Erste Schritte
Advertisements

LOGIK - TEST Wir fangen an... Jetzt kostenlos bei unserem Newsletter anmeldenJetzt kostenlos bei unserem Newsletter anmelden
... für alle, die mal Ihren IQ testen wollen!
Mit dem Computer kann man ganz toll präsentieren
JDF Tools: Einsatz bei Agfa
Suche in Texten (Stringsuche )
Einfügen einer Scanchain in ein Chipdesign mittels DFT- Compiler.
Bitte zu zweit an einen Rechner setzen
Atmel AVR JTAG Einführung
Werkzeuge und Softwareumgebung von Christian Michele.
Technische Informatik I
Reverse Engineering K2 1 Ziele Heute Nachlese Volltextsuche Dokumentation in Quelltext einbetten JavaDoc Vorbereitung für Compileransatz.
Excel Kurs Teil I Excel starten, Verknüpfungen auf dem Desktop anlegen. F. Bäumer.
Eine Homepage für die Fachberatung Thomas Scholz.
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
Wismar Business School
Kennlinie Lichtregelung in JavaNNS Version 1.1
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Informationen finden und beurteilen
Outlook_03 - Freigabe von Postfächern für Kollegen
Externe Bewertung in IB-Biologie
LOGIK - TEST Wir fangen an
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Ich möchte gerne mehrere Bilder auf ein Folie
Wer ist der Richtige für wen?
Ansprechpartner: Excel für SEOs =Wenn(A1=zuhören;gute Ideen;Feierabend) Samstag
Kriterien für das „Schriftliche“
Auf Wunsch einer einzelnen Dame
Ein Autofahrer fährt ohne Licht aufuf einer verlassenen Straße.
Test-Checker: Lehrer Version Manual Programm von Martin Schügerl.
Moin. Ich benutze PPT 2002 und möchte drei Bilder nacheinander 1
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Hallo, ich würde gerne wissen, wie ich einen graphen, den ich mit
Wer von euch hat Lust auf ein Spiel?
PG5 Building Advanced / DDC Suite 2.0 BACnet
Hilfe Dokumente.
1 SWeb Alarmin Erweitert PG5 Building Advanced / DDC Suite 2.0 SWeb Alarming Erweitert SWeb Alarming Erweitert - Erweitert.
Einführung Pinakothek der Stadt Karditsa Klickt nun bitte weiter auf Aufgabe.Aufgabe EinführungEinführung Aufgabe Schritte Materialien Rückblick PräsentationAufgabeSchritteMaterialienRückblickPräsentation.
Erste Schritte in DELPHI
Herzlich willkommen in Oberpullendorf! Üdvözöllek Felsőpulyán!
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Hier eine mögliche Antwort:
Maya Kindler 5c. 1.Voraussetzungen für die Installation 2.Installation 3.Template lade, installieren und anpassen 4.Kategorie und Inhalt 5.Menü.
Wie erstelle ich meinen Stundenplan?!
Bilder einfügen Hier eine Variante um Bilder einzufügen, nachdem man sie ins Forum hochgeladen hat.
1.Woche: Organisation Synthetisierbares VHDL
Klicke zuerst auf die Kategorie zu der deine Location gehört.
6.Woche: VGA Monitoransteuerung
DSD I Trainingsstunde 4 LESEVERSTEHEN Teil 4.
Linear Rückgekoppelte Schieberegister und Tristate Treiber
Barrierefreies Internet Tipps und Tools Präsentation auf dem #OTC2015
CompuTreff: „Blog“ und „Skype“ Wichtig! Schauen Sie sich die Kassensturz- Sendung vom 11. November 2008 an. Thema Informations-Sammler „Google“
FPGA Praktikum WS2000/ Woche: VHDL Tips Ein Schläger für das Spiel.
Prüfungstraining Leseverstehen Teil 2
FPGA Praktikum WS2000/ Woche: Die Experimentierplatine Aufgaben.
FPGA Praktikum WS2000/ Woche: FPGA Architektur Simulationsskripte Aufgaben.
FPGA Praktikum WS2000/ Woche: Ein Ball Blöcke zum Abräumen Projektvorschläge.
2. Woche: Timingmodelle Synthetisierbares VHDL Aufgaben
UNSERER HOMEPAGE Anleitung zur Registrierung europa.eu Stand
Schritt für Schritt-Anleitung
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Chemie Olympiade Forschungsthema: Der Atombau.
Binärbäume.
Arbeiten mit WordSmith 4. Inhalt 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus) 1. Arbeiten mit der Funktion Wortliste (im getaggten Korpus)
Teilchenbewegung im Alltag NaWi, Klasse 8. Teilchenbewegung im Alltag Ziele der Stunde: 1.Ich kann Phänomene aus dem Alltag mit der Teilchenbewegung in.
Trainingscamp Leseverstehen Katharina Leiss 2016.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
Hexadezimale Darstellung von Zahlen
Hilfe Dokumente.
E-Aufgaben in Stud.IP mit ViPS – erste Schritte –
 Präsentation transkript:

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

Architektur der XC4000XL Familie

Die XC4000XL Familie Die XC4000XL Familie wird auf der im Praktikum verwendeten Experimentierplatine verwendet. Die Architektur ist in vielen Punkten sehr typisch für heutige FPGAs. Ähnlich: Actel ProASIC Altera Atmel 40K Quicklogic Eclipse) Heute stelle ich die Architektur dieser Familie im Detail vor. In zwei Wochen werde ich Alternativen zu dieser Architektur vorstellen.

Elemente eines FPGAs Ein FPGA hat vier Hauptkomponenten: Verdrahtung Logik I/O Konfigurationsspeicher Hinzu kommen manchmal dedizierte Blöcke mit Spezialschaltungen: RAM Multiplizierer Prozessoren PCI Interface Der Konfigurationsspeicher ist für uns unsichtbar.

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

Logik: Lookup Table (LUT) x Das Grundelement eines Logikblockes ist eine Lookuptable (LUT, Wertetabelle). Ein LUT ist ein Speicher in dem für jede Eingangskombination der Ausgabewert steht. Für n Eingänge sind 2n Einträge erforderlich. Eine Zahl vor der Abkürzung LUT bezeichnet in der Regel die Zahl der Eingänge. Z.B. 4-LUT, n-LUT 3 0 0 0 0 0 0 0 1 f(x) LUT

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

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

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

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

So sieht das im Datenblatt aus:

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

Carry Chain 200ps pro Bit

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

Distributed RAM

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

Verdrahtung des XC4000XL

Die Dahten des XC4010XL-PC84 CLBs: 400 4-LUTs: 800 max RAM: 12.800 Bits = 1.600 Bytes Logik: ca. 10.000 Gatteräquivalente Flip-Flops: 1.120 (800 in CLBs, 320 in Ios) I/O: ca. 60

Simulationsskripte

Simulationsskripte Die Einzige Dokumentation zur Simulationsskriptsprache die ich finden konnte ist in der Onlinehilfe des Simulators: Im folgenden erläutere ich die wichtigsten Makros

Skript: Initial Settings Die folgenden Zeilen werden für den Anfang der meisten Simulationsskripte sinnvoll sein: delete_signals restart stepsize 10 ns Dadurch 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.

Skript: Vector definitions Dem 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]

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

Skript: Stimulus Periodische Signale werden mit „clock“ definiert clock clk 0 1 Dabei wechseln die aufgelisteten Zustände in dem durch „stepsize“ definierten Zeitintervall Beispiel mit zwei um 90° verschobenen Taktsignalen: clock clk1 0 1 1 0 clock clk2 0 0 1 1

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

Skript: Vektorwerte Vektoren können Werte in verschiedenen Zahlenbasen zugewiesen werden. Binär (\B), Octal (\O), Decimal (\D) and Hexadecimal (\H) Beliebige Basis: \2 \3 \16 Standard ist Binärdarstellung Beispiele: wfm char_in @0ns=1111 wfm char_in @0ns=1111\B wfm char_in @0ns=F\H wfm char_in @0ns=15\D

Aufgaben 3. Woche

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

Aufgaben 3. Woche Aufgabe 3.1: Implementierung des Designs (Fortsetzung) Wählt den Chip für den Synthetisiert werden soll: Family: XC4000XL Device: 4010XLPC84 Speed: XL-3 Falls Ihr bereits mehrere VHDL Dateien in eurem Projekt habt: Achtet darauf, daß bei „Top Level“ die richtige Komponente ausgewählt ist. Drückt auf „Run“ um die Synthese zu starten. Es sollten ausschließlich Warnung über „set/reset“ kommen und ein grünes Ausrufezeichen beim Knopf „Synthesis“ erscheinen.

Aufgaben 3. Woche Aufgabe 3.1: Implementierung des Designs (Fortsetzung) Drückt auf den Knopf „Implementation“ Drückt auf „Run“ Fertig.

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

Aufgaben 3. Woche Aufgabe 3.2: Der Map Report (Fortsetzung) Der Map Report ist sehr nützlich um: Die Qualität des Ergebnisses zu beurteilen Mögliche Fehler früh zu erkennen Schaut euch das Design Summary an: Wieviele Flip-Flops gibt es? (CLB Flip-Flops und IOB Flops) Wieviele 3-LUTs und 4-LUTs wurden verwendet? Wieviele IO Blöcke gibt es? Stimme diese Ergebnisse mit euren Erwartungen überein? Gibt es Fehler in Abschnitt 1? Sind die Warnungen in Abschnitt 2 vertretbar? Wurde in Abschnitt 5 unerwartet Logik entfernt? Schreibt die Antworten an prak@em.informatik.uni-frankfurt.de

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

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

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

Aufgaben 3. Woche Aufgabe 3.5: Eigenleistung Damit Ihr diese Woche auch etwas kreatives macht, und nicht nur Knöpfe drückt. Entwerft in VHDL einen DNA Pattern Matcher, der aus vier der von euch letzte Woche entworfenen Zellen besteht, die korrekt hintereinander geschaltet sind. Die 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. Ä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 ;-) Schickt den VHDL Text und das Simulationsskript ein.

Aufgaben 3. Woche Aufgabe 3.Z: Zusatzaufgabe 3.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. FPGAs 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. Wir müssen die Schaltung für jedes Muster neu Synthetisieren und Implementieren, in der Praxis kann man diesen Prozess auf wenige Millisekunden abkürzen

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