14
Praktikum DST (FPGA Teil) 5. Termin 29.11.2016 161129_Praktikum_5_DST_FPGA.doc 1 of 14 2012 .. 2016 © Zielinski Praktikum DST FPGA 5.Termin Projekterstellung & Simulation Inhalt Praktikum DST FPGA 5.Termin Projekterstellung & Simulation ......................................................... 1 1. Erstellung eines Projektes. ................................................................................................................. 1 2. VHDL-Projekt-Design: ...................................................................................................................... 3 3. Software - Simulation eines Projektes. .............................................................................................. 4 4. Hardware-Simulation ......................................................................................................................... 6 5. Modul 2: counter.vhd ...................................................................................................................... 10 6. Projekt aus 2 Modulen: .................................................................................................................... 11 7. Projekt: 4 Bit Binär - Sekundenzähler: ..................................................................................... 13 8. Projekt: 4 Bit HEX - Sekundenzähler: ...................................................................................... 14 9. Projekt: Dezimaler - Sekundenzähler: ( nur wenn noch Zeit ) .................................................... 14 Quartus II bietet dem Programmierer die Möglichkeit, die Projekte für die Beschreibung der digitalen Systeme in mehreren Design-Sprachen zu erstellen, die erstellten Projekte mit den dafür vorgesehenen Simulationswerkzeuge zu simulieren (z.B. mit ModelSim Altera), um Verhalten der entworfenen digitalen Systemmodelle auf Fehlerfreiheit zu prüfen. Mittels Quartus II können die Projekte auf der Hardware (z.B. auf DE1-Board Altera) simuliert werden. 1. Erstellung eines Projektes. Für die Erstellung eines Projektes in Quartus II-Umgebung gehen Sie folgendermaßen vor: 1. Erstellen Sie unter Windows-Umgebung ein Arbeitsverzeichnis, wo Sie alle Projekte speichern werden. z.B.: „M:\DST\T5“ . 2. Erstellen Sie einen Unterordner für das aktuelle Projekt z.B .: „A01_Clock“ 3. Starten Sie die Quartus II-Designumgebung. 4. Erstellen Sie ein neues Projekt [ File ] · [ New Project Wizard ] [Next >]. Geben Sie den Pfad zum Arbeitsverzeichnis (working directory) an, und definieren Sie den Projektnamen (z.B. “clock“). Bestätigen Sie die Eingabe mit . Anm.: 1) Tragen Sie Ihren Pfad ein. 2) Bei der Definition des Projektnamens wird der Name der „Haupt“-Einheit („Top-Level- Entity“) automatisch gleichgesetzt. (Ein Projekt kann mehrere Einheiten enthalten, wobei nur eine von denen als „Haupt“-Einheit gesetzt wird).

Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

Praktikum DST (FPGA – Teil) 5. Termin 29.11.2016

161129_Praktikum_5_DST_FPGA.doc 1 of 14 2012 .. 2016 © Zielinski

Praktikum DST – FPGA – 5.Termin Projekterstellung & Simulation

Inhalt Praktikum DST – FPGA – 5.Termin Projekterstellung & Simulation ......................................................... 1

1. Erstellung eines Projektes. ................................................................................................................. 1 2. VHDL-Projekt-Design: ...................................................................................................................... 3 3. Software - Simulation eines Projektes. .............................................................................................. 4 4. Hardware-Simulation ......................................................................................................................... 6 5. Modul 2: counter.vhd ...................................................................................................................... 10

6. Projekt aus 2 Modulen: .................................................................................................................... 11 7. Projekt: 4 – Bit – Binär - Sekundenzähler: ..................................................................................... 13

8. Projekt: 4 – Bit – HEX - Sekundenzähler: ...................................................................................... 14

9. Projekt: Dezimaler - Sekundenzähler: ( nur wenn noch Zeit ) .................................................... 14

Quartus II bietet dem Programmierer die Möglichkeit, die Projekte für die Beschreibung der digitalen Systeme in mehreren Design-Sprachen zu erstellen, die erstellten Projekte mit den dafür vorgesehenen Simulationswerkzeuge zu simulieren (z.B. mit ModelSim Altera), um Verhalten der entworfenen digitalen Systemmodelle auf Fehlerfreiheit zu prüfen. Mittels Quartus II können die Projekte auf der Hardware (z.B. auf DE1-Board Altera) simuliert werden.

1. Erstellung eines Projektes. Für die Erstellung eines Projektes in Quartus II-Umgebung gehen Sie folgendermaßen vor:

1. Erstellen Sie unter Windows-Umgebung ein Arbeitsverzeichnis, wo Sie alle Projekte speichern werden. z.B.: „M:\DST\T5“ .

2. Erstellen Sie einen Unterordner für das aktuelle Projekt z.B .: „A01_Clock“

3. Starten Sie die Quartus II-Designumgebung.

4. Erstellen Sie ein neues Projekt [ File ] · [ New Project Wizard ] [Next >]. Geben Sie den Pfad zum Arbeitsverzeichnis (working directory) an, und definieren Sie den Projektnamen (z.B. “clock“). Bestätigen Sie die

Eingabe mit . Anm.: 1) Tragen Sie Ihren Pfad ein.

2) Bei der Definition des Projektnamens wird der Name der „Haupt“-Einheit („Top-Level-Entity“) automatisch gleichgesetzt. (Ein Projekt kann mehrere Einheiten enthalten, wobei nur eine von denen als „Haupt“-Einheit gesetzt wird).

Page 2: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

29.11.2016 5. Termin Praktikum DST (FPGA – Teil)

2012 .. 2016 © Zielinski 2 of 14 161129_Praktikum_5_DST_FPGA.doc

* Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet:

1) Hierarchy - die hierarchische Struktur des Projektes. 2) Files - Auflistung der Dateien, die zum Projekt gehören

bzw. die im Projekt genutzt werden. 3) Design Units - Darstellung der einzelnen logischen Einheiten

(entities), die im Projekt definiert und verwendet werden.

3) Für die Auswahl des Projektnamens sind folgende Regeln zu beachten: • Der Name des Projektes muss mit einem lateinischen Buchstaben anfangen. Der

Projektnamen, der Umlaute oder Sonderbuchstaben enthält, ist nicht zulässig. • Verwendung des “_“-Zeichens ist erlaubt, soweit dieses nicht am Anfang und nicht

am Ende des Projektnamens steht. Die restlichen Sonderzeichen sind bei Auswahl des Projektnamens auszuschließen.

• Verwendung von Ziffern ist erlaubt, soweit diese nicht am Anfang des Projektnamens stehen.

• VHDL-Schlüsselwörter dürfen nicht als Projektnamen verwendet werden. Hier also „clock“ => der main-File in vhdl wäre clock.vhd

Im nächsten Fenster können (falls nötig) die Dateien, die nicht zum Projekt gehören aber im Projekt verwendet werden (z.B. WaveForm-Dateien aus den anderen Projekten, die vorher beschriebenen Komponenten…), zum Projekt hinzugefügt werden. Falls es keine solche Dateien gibt, weiter mit

. Als nächstes wird die für das Projekt relevante Hardware festgelegt. Für unseres Praktikum wählen Sie stets als Device-Family Cyclone II und als Hardware-Spezifikation EP2C20F484C7 aus. Diese Angaben spezifizieren das DE1-Board, das im Praktikum verwendet wird. Bestätigen Sie die Auswahl mit

: Im Project Navigator erscheint das leere Projekt :

5. Wählen Sie Design für Ihren Projektentwurf. Über [File] · [New …] kann man die verschiedenen Projekt-Designs auswählen.

Page 3: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

Praktikum DST (FPGA – Teil) 5. Termin 29.11.2016

161129_Praktikum_5_DST_FPGA.doc 3 of 14 2012 .. 2016 © Zielinski

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.numeric_std.all;

architecture RTL of clock is -- I used 24MHz

constant max_count : natural := 6;

begin

compute : process(Clk,rst)

variable count : natural range 0 to max_count;

begin

if rst = '0' then -- Reset = active low

count := 0;

op <= '0';

elsif rising_edge(Clk) then -- bei jeder Flanke

if count < (max_count/2)-1 then

op <='1';

count := count + 1;

elsif count < max_count-1 then

op <='0';

count := count + 1;

else -- Periode fertig => neu

count := 0;

op <='1';

end if;

end if;

end process compute;

end RTL;

entity clock is

Port (

Clk : in std_logic;

rst : in std_logic;

op : out std_logic

);

end clock;

2. VHDL-Projekt-Design: VHDL-Tutorium_Link https://de.wikibooks.org/wiki/VHDL-Tutorium (zum schnellen nachschauen!)

Bitte wählen Sie -Option und bestätigen Sie die Auswahl mit . Es erscheint ein VHDL-Editor. Mit diesem Editor können Sie die VHDL-Programme erstellen. Speichern Sie den leeren Editor-File mit [File] · [Save as …] unter dem vorgegebenen Namen „clock.vhd“. Unser Clock-Generator soll im ersten Test die Eingangsfrequenz durch 6 teilen und symmetrisch ausgeben. Wir benutzen die Standart-Library:

Festlegung der Ports: Die Schnittstelle des VHDL-Modells verfügt über die folgenden Ein-/Ausgangssignale: Das Verhalten des Objektes:

6. Inhalt als Textfile ist P: Ordner als A01_clock.vhd.txt zu finden! 7. Kopieren Sie den Inhalt in Ihren main-File clock.vhd und speichern Sie alles. 8. Kompilieren Sie das komplette Projekt.

Das Kompilieren wird durch [Processing] · [Start Compilation] oder [Strg L] oder direkt mit dem Symbol

auf der Quartus II – Standard-Leiste aufgerufen. ist OK! 10 Warnungen sind durch nicht erworbene Lizenzen und eine besagt, dass die Objekte nicht angeschlossen sind!

Page 4: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

29.11.2016 5. Termin Praktikum DST (FPGA – Teil)

2012 .. 2016 © Zielinski 4 of 14 161129_Praktikum_5_DST_FPGA.doc

3. Software - Simulation eines Projektes. Die Simulation eines Projektes kann sowohl softwaretechnisch als auch hardwaretechnisch erfolgen. Hier betrachten wir die beiden Simulationsarten.

1. Software-Simulation Um die Software-Simulation zu ermöglichen, verfügt Quartus II über den integrierten WaveForm-Editor. Diesen kann man unter [File] · [New] · [University Program VWF] aufrufen. Im Rahmen des Praktikums wird ModelSim-Simulator verwendet. Es erscheint das folgende Fenster:

Bei der Softwaresimulation gehen Sie wie folgt vor:

a) Ein-/Ausgabepins einfügen: [Edit] · [Insert] · [Insert Node or Bus…] · [Node Finder] · [List]

Hier können Sie die nötigen Pins markieren und nach rechts mit Taste schieben. Sollen alle

Pins ausgewählt werden, drücken Sie die Taste .

b) Die ausgewählten Pins werden dem Simulationsbild hinzugefügt. Die Simulationsdarstellung sieht wie folgt aus:

Page 5: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

Praktikum DST (FPGA – Teil) 5. Termin 29.11.2016

161129_Praktikum_5_DST_FPGA.doc 5 of 14 2012 .. 2016 © Zielinski

Alle Eingangssignale haben LOW(‘0‘)-Pegel, der Wert des Ausgangssignals ist noch nicht bestimmt und daher unbekannt.

c) Jetzt können die Werte für die Eingangssignale in den bestimmten Zeitintervallen definiert werden. Dies geschieht durch Markierung des relevanten Zeitintervalls und Auswahl des logischen Pegels. Die Auswahl des logischen Pegels erfolgt durch die Symbole

. Stellen Sie Reset [rst] auf Passive also ‚1‘. Die Taster sind auch hier mit negativer Logik implementiert!

d) Das Symbol bietet die Möglichkeit die periodischen Eingangssignale zu definieren. Stellen Sie [Clk] auf 40 ns ein.

e) Nach der Definition der Eingangssignale kann die erstellte Wave-Form-Datei simuliert werden. Es gibt die folgenden Simulationsmöglichkeiten:

Funktionale Simulation : Simulation der funktionalen Logik eines digitalen Systems.

Zeitliche Simulation : Simulation der Logik eines digitalen Systems unter Berücksichtigung der Laufzeiten (der zeitlichen Verzögerungen bei der Bearbeitung der Signale durch logische Gatter).

Der simulierte Schaltplan sieht wie folgt aus:

Page 6: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

29.11.2016 5. Termin Praktikum DST (FPGA – Teil)

2012 .. 2016 © Zielinski 6 of 14 161129_Praktikum_5_DST_FPGA.doc

4. Hardware-Simulation

Für die Hardware-Simulation muss man die Device-Familie und den Device-Namen im Projekt festlegen. Schließen Sie die Softwaresimulationen! Falls bei der Erstellung des Projektes die Hardware nicht definiert oder falsch definiert wurde, kann deren Spezifikation unter [Assignments] · [Device] festgelegt oder geändert werden. Für unseres Praktikum ist Device EP2C20F484C7 der Familie “Cyclone II“ von Bedeutung. Es sind die folgenden Optionen zu wählen: Diese Bezeichnung definiert das Altera DE1 Board, das im Praktikum verwendet wird. Bei der Hardwaresimulation gehen Sie wie folgt vor:

a) Wählen Sie die Ein-/Ausgangspins, die für die Simulation notwendig sind. Dies geschieht durch Aufruf des Assignment-Editors: [Assignments] · [Assignment Editor]. Durch Doppelklick mit der linken Maustaste in der Spalte [To] auf [<<new>>] sehen Sie das Fernglas-Symbol . Ein Klick mit der linken Maustaste auf das Symbol ruft das „Node Find“ - Fenster auf. In dem Fenster wählen

Sie als Filter-Option aus, und drücken Sie auf [List]. Es erscheint das folgende: Die einzelnen Pins können hier markiert und mit

der Taste nach rechts als Selected Nodes verschoben werden. Sollen alle Pins ausgewählt

werden, drücken Sie die Taste . Bestätigen

Sie Ihre Auswahl mit . Der Assignment-Editor sieht jetzt wie folgt aus:

Page 7: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

Praktikum DST (FPGA – Teil) 5. Termin 29.11.2016

161129_Praktikum_5_DST_FPGA.doc 7 of 14 2012 .. 2016 © Zielinski

b) Starten Sie jetzt den Pin-Planer mit [Assignments] · [Pin Planner] : In Location geben Sie nun die PIN-Namen PIN_xx (nur B12, R20 und R22 eingeben!) an dehnen die Signale an die Außenwelt gelangen sollen (s.u.) an.

c) In der Spalte “Location“ tragen Sie die Schlüsselwörter für die DE1 Board-Pins. Z.B. für den Eingang rst sollte Taster0 KEY0 belegt werden. So tragen Sie in “Location“ das Schlüsselwort PIN_R22 ein. Bestätigen Sie die Eingabe mit der Eingabetaste. clk an CLOCK_24[1] PIN_B12 Eingangstakt 24 MHz op an LEDR0 PIN_R20 Ausgangstakt 24MHz / Faktor rst an KEY0 PIN_R22 Reset – Taste (invertierte Logik aktiv ‘0’) s. u. !!! Um die LED mit 1Hz blinken zu lassen, muss max_count natürlich auf 24 000 000 stehen ! !!! Den rst natürlich im Programm als ‚0‘ erkennen !

d) Hier können die Pins auf dem DE1-Board für die Ein-/Ausgangssignale belegt werden. Das DE1-Board verfügt über: 4 Tasten (KEY0,…, KEY3) entprellt und neg. Logik

10 Schiebeschalter (SW0,…, SW9)

8 grüne Leuchtdioden (LEDG0,…, LEDG7)

10 rote Leuchtdioden (LEDR0,…, LEDR9)

4 Siebensegmentanzeigen (HEX0,…, HEX3)

3 Frequenzgeber (24 MHz, 27 MHz, 50 MHz)

Die Pinbelegung des im Praktikum verwendeten DE1-Boards ist folgende: Tasten Pinbelegung

KEY3* KEY2* KEY1* KEY0*

T21 T22 R21 R22

Schiebeschalter Pinbelegung

*Besonderheiten bei der Verwendung der Tasten KEY0..KEY3: Die mit den Tasten KEY0..KEY3 erzeugten Signale werden als „active low“ betrachtet:

Taste Signalwert

nicht gedrückt ‘1‘

gedrückt ‘0‘

Page 8: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

29.11.2016 5. Termin Praktikum DST (FPGA – Teil)

2012 .. 2016 © Zielinski 8 of 14 161129_Praktikum_5_DST_FPGA.doc

SW9 SW8 SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW0

L2 M1 M2 U11 U12 W12 V12 M22 L21 L22

Leuchtdioden GRÜN Pinbelegung

LEDG

7

LEDG

6

LEDG

5

LEDG

4

LEDG

3

LEDG

2

LEDG

1

LEDG

0

Y21 Y22 W21 W22 V21 V22 U21 U22

Leuchtdioden ROT Pinbelegung

LEDR

9

LEDR

8

LEDR

7

LEDR

6

LEDR

5

LEDR

4

LEDR

3

LEDR

2

LEDR

1

LEDR

0

R17 R18 U18 Y18 V19 T18 Y19 U19 R19 R20

7-Segmentanzeige Pinbelegung

Anm.: Punkt ist durch Pin nicht definiert und kann deshalb nicht genutzt werden.

Frequenzgeber Pinbelegung

EXT_CLK 24 MHz 50 MHz 27 MHz

M21 CLOCK_24[0] A12

L1 CLOCK_27[0] D12

CLOCK_24[1] B12 CLOCK_27[1] E12

e) Nach der Belegung der Pins für alle Ein-/Ausgangssignale speichern Sie alles nochmal ab und kompilieren Sie das gesamte Projekt. ist ok!

f) Jetzt muss DE1-Board programmiert werden. Zu diesem Zweck rufen Sie unter “Tools“ das

“Programmer“-Fenster auf · oder einfach : Falls das Board noch nicht benutzt wurde erscheint : No Hardware muss das Hardware Setup … durchgeführt werden. Currently selected hardware: auf USB-Blaster. Bitte überzeugen Sie sich, dass für die Hardware die Bezeichnung “USB-Blaster [USB-x]“ eingetragen ist. Sollte dies nicht der Fall sein, wählen Sie die

Hardware mithilfe der Taste “Hardware-Setup“ aus. Dann mit beenden!

HEX3 HEX2 HEX1 HEX0

HEX3[0] F4 HEX2[0] G5 HEX1[0] E1 HEX0[0] J2

HEX3[1] D5 HEX2[1] G6 HEX1[1] H6 HEX0[1] J1

HEX3[2] D6 HEX2[2] C2 HEX1[2] H5 HEX0[2] H2

HEX3[3] J4 HEX2[3] C1 HEX1[3] H4 HEX0[3] H1

HEX3[4] L8 HEX2[4] E3 HEX1[4] G3 HEX0[4] F2

HEX3[5] F3 HEX2[5] E4 HEX1[5] D2 HEX0[5] F1

HEX3[6] D4 HEX2[6] D3 HEX1[6] D1 HEX0[6] E2

Page 9: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

Praktikum DST (FPGA – Teil) 5. Termin 29.11.2016

161129_Praktikum_5_DST_FPGA.doc 9 of 14 2012 .. 2016 © Zielinski

Mit der Taste fügen Sie die Datei ein, mit der das DE1-Board programmiert werden soll. Diese Datei hat eine Endung *.sof und befindet sich in der Regel im Ordner “output_files“ im Projektverzeichnis. Nach dem erfolgreichen Einfügen dieser Datei hat das “Programmer“-Fenster die folgende Ansicht:

g) Starten Sie den Programmiervorgang mit der Taste [ ] und testen Sie die Funktion Ihres Programms.

h) Für nachfolgende Projekte benötigen wir lediglich den File clock.vhd !

Page 10: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

29.11.2016 5. Termin Praktikum DST (FPGA – Teil)

2012 .. 2016 © Zielinski 10 of 14 161129_Praktikum_5_DST_FPGA.doc

5. Modul 2: counter.vhd Erstellen Sie auf gleiche Weise, in einem neuen Projekt mit dem Namen „counter“ in einem neuen Ordner, einen 4-Bit-Binär-Zähler, dessen 4 Ausgänge Binär zur Verfügung stehen und einen enable-Eingang besitzt.

library ieee ;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity counter is

port(

clk: in std_logic;

reset: in std_logic;

enable: in std_logic;

count: out std_logic_vector(3 downto 0)

);

end counter;

architecture behav of counter is

signal pre_count: std_logic_vector(3 downto 0);

begin

process(clk, enable, reset)

begin

if reset = '1' then

pre_count <= "0000";

elsif (clk='1' and clk'event) then

if enable = '1' then

pre_count <= pre_count + "1";

end if;

end if;

end process;

count <= pre_count;

end behav;

Inhalt als Textfile ist P: Ordner als A05_counter.vhd.txt zu finden! Führen Sie lediglich die Softwareanalyse des aktuellen Projektes durch.

Testen Sie zuerst mit 40ns clk, enable = 1, und reset = 0. Dann mit Aktivität der beiden Eingänge z.B.:

Page 11: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

Praktikum DST (FPGA – Teil) 5. Termin 29.11.2016

161129_Praktikum_5_DST_FPGA.doc 11 of 14 2012 .. 2016 © Zielinski

6. Projekt aus 2 Modulen: Erstellen ein komplett neues Projekt „zaehler“ im neuen Ordener „A06_zaehler_clock“. Kopieren Sie Ihren funktionierenden clock.vhd Files in diesen Ordner. Legen Sie den main-File Zaehler „zaehler.vhd“ an. Importieren Sie Ihr vhld – Objekt clock.vhd in den Project Navigator s.r.. mittels rechte

Maustaste auf [Add/Remove Files …] auswählen und . Importieren Sie die nachfolgenden Zeilen Block für Block in zaehler.vhd.

--- Includes ----------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.numeric_std.all;

--- PINS im main - Modul ----------

ENTITY zaehler IS

PORT (

CLOCK_24 : IN STD_LOGIC;

KEY : IN STD_LOGIC;

LEDR : OUT STD_LOGIC

);

END zaehler;

--- Wie haengt alles zusammen ----------

ARCHITECTURE Behavior OF zaehler IS

--- Headerfiles ----------

COMPONENT clock

PORT(

Clk : IN STD_LOGIC;

rst : in std_logic;

op : out std_logic

);

END COMPONENT;

--- Signal - Zwischen - Bezeichner ----------

SIGNAL rst : STD_LOGIC;

SIGNAL clk : STD_LOGIC;

SIGNAL op : STD_LOGIC;

--- Zuweisungen ----------

BEGIN

rst <= NOT(KEY);

clk <= CLOCK_24;

LEDR <= op;

--- Object - Zuweisungen ----------

m_clock: clock PORT MAP (clk, rst, op);

END Behavior;

Page 12: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

29.11.2016 5. Termin Praktikum DST (FPGA – Teil)

2012 .. 2016 © Zielinski 12 of 14 161129_Praktikum_5_DST_FPGA.doc

Laden Sie im Assignment – Editor alle Pins! Ordnen Sie im PIN-Planer die Location zu (s.r. oder s.o.) ! Prog-File = M:\DST\T5\A06_zaehler_clock\output_files\zaehler.sof Projekt neu übersetzen und hardwaremäßig testen bis alles klappt. LEDR[0] blinkt mit 1 Hz. Wenn KEY[0] betätigt wird hört es auf.

Blockschaltbild: [Analysis&Synthesis] · [Netlist Viewers] · [RTL Viewer]

Page 13: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

Praktikum DST (FPGA – Teil) 5. Termin 29.11.2016

161129_Praktikum_5_DST_FPGA.doc 13 of 14 2012 .. 2016 © Zielinski

7. Projekt: 4 – Bit – Binär - Sekundenzähler:

Speichern Sie Ihr Project 6. Kopieren Sie den Ordner => A07_Zaehler . Fahren Sie jetzt mit dem Projekt fort, indem Sie Ihre counter.vhd in das System implementieren. Der counter hat als Input –Takt den op –Takt vom clock, reset von KEY[0] und enable KEY[1]. Output soll zu den LEDR[1..4] geleitet werden. Gehen Sie vor wie unter 6.

--- LEDR besteht jetzt also aus 5 – Bit -----------------

LEDR : OUT STD_LOGIC_VECTOR(4 downto 0)

--- Headerfiles ---------- noch COMPONENT counter hinzufügen -----

--- Signal - Zwischen - Bezeichner ----------

SIGNAL cclk : STD_LOGIC;

SIGNAL cena : STD_LOGIC;

SIGNAL ccnt : STD_LOGIC_VECTOR(3 downto 0);

--- Zuweisungen ----------

cclk <= op;

cena <= KEY(1);

LEDR <= ccnt( 3 downto 0) & op;

--- Object - Zuweisungen ----------

m_counter: counter PORT MAP (cclk, rst, cena, ccnt);

Da wir KEY und LEDR von Binär auf VECTOR umdefiniert haben sollten wir die Assignments erst mal löschen und dann wenn keine Fehler mehr da sind neu hinzufügen. Testen Sie die komplette Funktionalität mit reset und enable.

Page 14: Inhalt - FH-Aachen FB5 Zielinski€¦ · * Projekt-Navigator verfügt über mehrere Registerkarten. Hier werden einige von denen aufgelistet: 1) Hierarchy - die hierarchische Struktur

29.11.2016 5. Termin Praktikum DST (FPGA – Teil)

2012 .. 2016 © Zielinski 14 of 14 161129_Praktikum_5_DST_FPGA.doc

8. Projekt: 4 – Bit – HEX - Sekundenzähler:

Speichern Sie Ihr Project 7. Kopieren Sie den Ordner => A08a_Zaehler . Jetzt den gegebenen File „LED7Seq.vhd“ in das neue Projekt einbinden. „BIN“ ist eine 4-Bit-Binär-Zahl deren Hex-Wert in der 7-Segmentanzeige erscheint. Fügen Sie die Initialisierung, das Routing und den Aufruf ins main zaehler.vhd ein.

--- Die main-PORTs ----------------------------------

HEX0 : OUT STD_LOGIC_VECTOR(6 downto 0);

--- Der Objekt - Aufbau ------------------------------

COMPONENT LED_anzeige_hex is

PORT(

BIN : in std_logic_vector(3 downto 0);

LED_HEX : out std_logic_vector(6 downto 0)

);

END COMPONENT;

--- Signal - Zwischen - Bezeichner -----------------

SIGNAL SEG7_DIG : STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL HEXS0 : STD_LOGIC_VECTOR(6 downto 0);

--- Zuweisungen ----------------------------------------

HEX0 <= HEXS0;

SEG7_DIG <= ccnt;

--- Object - Zuweisungen ------------------------------

m_HEX0: LED_anzeige_hex PORT MAP (SEG7_DIG, HEXS0);

Nachdem Ihr Programm Fehlerfrei kompiliert ist, müssen Sie noch die PINs zuweisen. Die neuen PINs verbinden.

9. Projekt: Dezimaler - Sekundenzähler: ( nur wenn noch Zeit ) 9a. Bauen Sie im neuen Projekt den Sekundenzähler counter.vhd so um, dass er dezimal zählt also im (BCD-Code). 9b. Jetzt den Zähler so erweitern, dass er bis zu einem variablen übergebenen End-Wert zählt. 9c. Erstellen Sie mit einer zusätzlichen HEX-Anzeige die Sekundenausgabe der Uhr.

– Ende des FPGA - Praktikums für das WS 2016 / 2017 –