Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FPGA Praktikum WS2000/2001 1.Woche: Organisation Synthetisierbares VHDL.

Ähnliche Präsentationen


Präsentation zum Thema: "FPGA Praktikum WS2000/2001 1.Woche: Organisation Synthetisierbares VHDL."—  Präsentation transkript:

1 FPGA Praktikum WS2000/ Woche: Organisation Synthetisierbares VHDL

2 Gliederung z1. Organisation1. Organisation z2. Die Xilinx Foundation Software2. Die Xilinx Foundation Software z3. Synthetisierbares VHDL3. Synthetisierbares VHDL z4. Aufgaben für die erste Woche4. Aufgaben für die erste Woche

3 1. Organisation des Praktikums

4 Adressen zKolja Sulimma yRaum 309 y zTill Jahnke y zHomepage yhttp://www.em.informatik.uni-frankfurt.de/~prak/http://www.em.informatik.uni-frankfurt.de/~prak/

5 Das Praktikum Zuordnung: 4 SWS PT3 (P5, P6) Treffen: Mittwochs, 14:00 c.t. Raum 308 Georg-Voigt-Straße 16 Schein: Semesterprojekt

6 Ablauf zAcht wöchentliche Aufgaben yDabei wird Schritt für Schritt ein Computerspiel mit VGA-Grafik, Tastatursteuerung und Sound gebaut. zDanach acht Wochen Arbeit an einem Semesterprojekt zKurzvortrag über das Projekt

7 Inhalt zWir fangen erst mit ein paar Trockenübungen und Vorträgen an und werden dann im Laufe der Zeit immer mehr mit der Hardware spielen. yEigenschaften von FPGAs yWie entwickelt man effiziente Schaltungen für FPGAs? yWie kriege ich meine perfekt simulierte Schaltung tatsächlich zum laufen? yWie steuere ich echte Hardware an? xMonitor? xTastatur? xLautsprecher? xFernbedienung? xGlasfaserlink?

8 Arbeitsbedingungen zZwei reservierte Praktikumsrechner stehen im Diplomandenraum der Entwurfsmethodik yMars und Twix zAcht weitere Rechner in den Fischerräumen yKirke, Kreon,... zIhr könnt die Software mit nach Hause nehmen yAnforderungen: Pentium 166 mit 64 MB RAM zEs gibt nur sechs Experimentierplatinen

9 Arbeitsbedingungen zTill wird zu festen Zeiten im Diplomandenraum anwesend sein. yVorläufig mittwochs nach dem Treffen. zSonst: Fragen per an Till an Till zDie Aufgaben werden Mittwochs gestellt. zSie müssen spätestens am folgenden Dienstag abgegeben werden. yper an

10 Teamarbeit zDa es zu wenige Experimentierplatinen gibt müßt ihr ab der 4. Woche in Teams arbeiten zEinigt euch bitte frühzeitig, wie ihr das organisieren wollt

11 2. Die Xilinx Foundation Software

12 Xilinx Foundation z Die Xilinx Foundation Software erfüllt für uns die folgenden Aufgaben: yVHDL Editor ySynthese ySimulation yTechnologieabbildung yTiminganalyse yErstellung des Konfigurationsbitstreams

13 Xilinx Foundation z Auf der Praktikumshomepage findet ihr eine Anleitung für die Installation der Software.Anleitung für die Installation der Software z Zu diesem Zweck bekommt ihr alle eine Installations CD. Eine Update CD folgt später. z Als Aufgabe für die erste Woche sollt Ihr euch mit dieser Software vertraut machen, und sicher stellen, daß die Software einwandfrei funktioniert.

14 3. Synthetisierbares VHDL library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

15 Synthetisierbares VHDL zManche VHDL Konstrukte können die heutigen Synthesewerkzeuge nicht in Hardware Umwandeln. Sie dienen nur der Entwicklung von Verhaltensmodellen. zDa wir VHDL verwenden wollen, um konkrete Schaltungen zu generieren, müssen wir uns mit bestimmten Beschränkungen abfinden. zEinige dieser Einschränkungen sind allgemein gültig, andere sind spezifisch für das von uns verwendete Tool. (Synopsys FPGA Express) library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

16 Quellen zIhr solltet euch den in der Linkliste aufgeführten „VHDL Synthesis Guide“ anschauenLinkliste zEr enthält detaillierte Informationen darüber, wie VHDL für Foundation aussehen muß, damit bei der Synthese auch das herauskommt, was man geplant hatte zNützlich ist auch der Language Assistant im VHDL Editor library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

17 VHDL Praxis zIch gehe davon aus, daß Ihr im „Grundpraktikum Technische Informatik“ bereits VHDL benutzt habt. zDie folgenden Folien erklären die wichtigsten Punkte, die beim Entwickeln von VHDL für Synopsys FPGA Express beachtet werden müssen. library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

18 IEEE.std_logic  Die IEEE Bibliothek wird immer verwendet ylibrary IEEE; use IEEE.std_logic_1164.all; zAlle Signale sind vom Typ std_logic ySIGNAL xyz: std_logic := '1'; zVariablen werden nur in Ausnahmefällen verwendet. Bei Signalen ist es leichter einen Zusammenhang zwischen VHDL und Syntheseergebnis herzustellen. library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

19 Parallele Zuweisungen zSignalzuweisungen verhalten sich anders als Variablen in einem Programm.  Was macht der folgende Prozess? process(clk) if (rising_edge(clk)) then a <= b; b <= a; end if; end process; za und b werden vertauscht, da Signalzuweisungen infinitesimal verzögert ausgeführt werden. library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

20 D-Flip-Flops zVergeßt Latches, JK-Flips, etc. zZustandsspeicher werden mit D-Flip-Flops gebaut und das geht so:  process(clk) if (rising_edge(clk)) then a <= b; end if; end process; library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

21 Sensitivitätsliste zDie Sensitivitätsliste wird ignoriert. zDer folgende Prozess liefert zwar eine Fehlermeldung oder Warnung, funktioniert aber einwandfrei  process if (rising_edge(clk)) then a <= b; end if; end process; library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

22 Sensitivitätsliste zInsbesonder kann man die Sensitivitätsliste nicht benutzen, um Funktionalität zu beschreiben. zDer folgende Prozess generiert kein Flip-Flop yprocess(clk) a <= b; end process; zEr verhält sich jedoch in einem VHDL Simulator eventuell wie ein Flip-Flop. library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

23 DFF Enable  Synopsis versteht keine if Anweisungen, die sowohl von einer Flanke als auch von einem Signalpegel abhängen. zDas folgende Konstrukt ist unzulässig: yif (rising_edge(clk) and enable=‘1‘)then a <= b; end if; zEin Flip-Flop mit Enable sieht stattdessen so aus  if (rising_edge(clk)) then if (enable=‘1‘) then a <= b; end if; end if; library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

24 If not rising_edge(clk)  Schreibt man if rising_edge(CLK)... dann ist ein zugehöriges else ungültig, da die Synthese keine Schaltung erzeugen kann, die ein Signal immer zuweist, außer bei der steigenden Flanke.  Die Synthese akzeptiert das else auch dann nicht, wenn danach statements kommen, die die Synthese ermöglichen würden, wie z.B. im folgenden Beispiel:  if rising_edge(CLK) then a<=b; else if falling_edge(CLK) then a<= c; end if;  Statt dessen kann man das else einfach weglassen:  if rising_edge(CLK) then a<=b; end if; if falling_edge(CLK) then a<=c; end if; library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

25 Keine asynchronen Rückkopplungen library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED; zAsynchrone Rückkopplungen werden zwar korrekt synthetisiert, machen aber nur Ärger. yRace conditions yUngenaue Timinganalyse y.... zDeshalb sollten ausschließlich synchrone Schaltungen verwendet werden. yIn jeder Rückkopplung muß mindestens ein Flip-Flop sein yMöglichst nur ein globaler Takt

26 Zustandsreset zDie bisher beschriebenen Flip-Flops haben nach einem Reset einen undefinierten Zustand. (In der Regel 0) zBei Pipelining oder Retiming Flip-Flops spielt das keine Rolle zBei endlichen Automaten ist es jedoch wichtig, daß sie nach dem Reset im Startzustand sind. Am einfachsten verwendet man dazu ein explizites Reset Signal: zif (reset=‘1‘) then a <= ‘1‘; else if (rising_edge(clk)) then a <= b; end if; library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED;

27 4. Aufgaben

28 Aufgabe 1.1: Accounts zLogt euch auf einem Praktikumsrechner mit eurem neuen Account ein zPaßwort: frosch zÄndert das Paßwort und merkt es euch

29 Aufgabe 1.2: Anmeldung  Schickt eine Mail an yVor- und Nachname yGeburtsdatum yMatrikelnummer y adresse yPraktikumsaccount

30 Aufgabe 1.3: Software zArbeitet die „Multimedia QuickStart Presentation“ durch yStart->Programme->Xilinx Foundation Series 3.1i-> yDie Informationen über den Schaltplaneditor könnt Ihr ignorieren yVerwendet XC4010XL-PQ84 Chips anstelle der im Beispiel verwendeten Spartan XCS05 zWer seinen eigenen Rechner benutzen will sollte das Tutorial auf diesem durchgehen

31 fertig Noch etwas? Fragen?


Herunterladen ppt "FPGA Praktikum WS2000/2001 1.Woche: Organisation Synthetisierbares VHDL."

Ähnliche Präsentationen


Google-Anzeigen