Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1.Woche: Organisation Synthetisierbares VHDL

Ähnliche Präsentationen


Präsentation zum Thema: "1.Woche: Organisation Synthetisierbares VHDL"—  Präsentation transkript:

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

2 Gliederung 1. Organisation 2. Die Xilinx Foundation Software
3. Synthetisierbares VHDL 4. Aufgaben für die erste Woche

3 1. Organisation des Praktikums

4 Adressen Kolja Sulimma Till Jahnke Homepage kolja@prowokulta.org
Raum 309 Till Jahnke Homepage

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 Acht wöchentliche Aufgaben
Dabei wird Schritt für Schritt ein Computerspiel mit VGA-Grafik, Tastatursteuerung und Sound gebaut. Danach acht Wochen Arbeit an einem Semesterprojekt Kurzvortrag über das Projekt

7 Inhalt Wir fangen erst mit ein paar Trockenübungen und Vorträgen an und werden dann im Laufe der Zeit immer mehr mit der Hardware spielen. Eigenschaften von FPGAs Wie entwickelt man effiziente Schaltungen für FPGAs? Wie kriege ich meine perfekt simulierte Schaltung tatsächlich zum laufen? Wie steuere ich echte Hardware an? Monitor? Tastatur? Lautsprecher? Fernbedienung? Glasfaserlink?

8 Arbeitsbedingungen Zwei reservierte Praktikumsrechner stehen im Diplomandenraum der Entwurfsmethodik Mars und Twix Acht weitere Rechner in den Fischerräumen Kirke, Kreon, ... Ihr könnt die Software mit nach Hause nehmen Anforderungen: Pentium 166 mit 64 MB RAM Es gibt nur sechs Experimentierplatinen

9 Arbeitsbedingungen Till wird zu festen Zeiten im Diplomandenraum anwesend sein. Vorläufig mittwochs nach dem Treffen. Sonst: Fragen per an Till Die Aufgaben werden Mittwochs gestellt. Sie müssen spätestens am folgenden Dienstag abgegeben werden. per an

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

11 2. Die Xilinx Foundation Software

12 Xilinx Foundation Die Xilinx Foundation Software erfüllt für uns die folgenden Aufgaben: VHDL Editor Synthese Simulation Technologieabbildung Timinganalyse Erstellung des Konfigurationsbitstreams

13 Xilinx Foundation Auf der Praktikumshomepage findet ihr eine Anleitung für die Installation der Software. Zu diesem Zweck bekommt ihr alle eine Installations CD. Eine Update CD folgt später. 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; 3. Synthetisierbares VHDL

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

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

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

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

19 Parallele Zuweisungen
library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED; Parallele Zuweisungen Signalzuweisungen 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; a und b werden vertauscht, da Signalzuweisungen infinitesimal verzögert ausgeführt werden.

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

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

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

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

24 If not rising_edge(clk)
library IEEE; use IEEE.std_logic entity HEX2LED is port ( HEX: in ST LED: out S ); end HEX2LED; 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;

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

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

27 4. Aufgaben

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

29 Aufgabe 1.2: Anmeldung Schickt eine Mail an Vor- und Nachname Geburtsdatum Matrikelnummer adresse Praktikumsaccount

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

31 fertig Noch etwas? Fragen?


Herunterladen ppt "1.Woche: Organisation Synthetisierbares VHDL"

Ähnliche Präsentationen


Google-Anzeigen