Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dtpr_versuch_8 [2011/12/04 22:00] beckmanf syncsm ergänzt |
dtpr_versuch_8 [2014/01/03 15:42] (current) beckmanf [Zustandsautomat syncsm] - VHDL Automatencode eingefügt |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Versuch 8 ===== | ===== Versuch 8 ===== | ||
+ | |||
+ | Drucken Sie die Checkliste {{:dtpr-checkliste-v8.pdf}} aus. | ||
==== Zustandsautomat syncsm ==== | ==== Zustandsautomat syncsm ==== | ||
Line 16: | Line 18: | ||
* Stellen Sie eine Zustandsübergangstabelle für den Automaten auf. | * Stellen Sie eine Zustandsübergangstabelle für den Automaten auf. | ||
- | Die Zustandsübergangslogik °ìö²Ô²Ô³Ù±ð jetzt aus der Zustandsübergangstabelle abgeleitet und mit booleschen Gleichungen formuliert werden. Alternativ soll hier die Zustandsübergangslogik mit Hilfe eines Multiplexers umgesetzt werden. In der folgenden Abbildung | + | Die Zustandsübergangslogik kann jetzt aus der Zustandsübergangstabelle abgeleitet und mit booleschen Gleichungen formuliert werden. |
- | {{:dtpr-v8-mux.png}} Ìý | + | * Geben Sie die Zustandsübergangslogik und die Ausgangslogik als boolesche Gleichungen an. |
- | Ìý | + | |
- | ist ein 4 zu 1 Multiplexer so mit Konstanten beschaltet, dass sich eine UND Funktion bezüglich der select Eingänge ergibt. Die Dateneingänge des Multiplexers können auch vom Typ std_ulogic_vector sein. Damit kann dann auch eine Logik mit mehreren Ausgängen beschrieben werden. Ìý | + | |
- | Ìý | + | |
- | <code vhdl>Ìý | + | |
- | entity mux4 is Ìý | + | |
- | generic (Ìý | + | |
- | width : integer);Ìý | + | |
- | port (Ìý | + | |
- | d0_i : in std_ulogic_vector(width-1 downto 0);Ìý | + | |
- | d1_i : in std_ulogic_vector(width-1 downto 0);Ìý | + | |
- | d2_i : in std_ulogic_vector(width-1 downto 0);Ìý | + | |
- | d3_i : in std_ulogic_vector(width-1 downto 0);Ìý | + | |
- | s_i : in std_ulogic_vector(1 downto 0); Ìý | + | |
- | y_o : out std_ulogic_vector(width-1 downto 0)Ìý | + | |
- | );Ìý | + | |
- | end; Ìý | + | |
- | </code>Ìý | + | |
- | Ìý | + | |
- | * Stellen Sie die Zustandsübergangslogik mit Hilfe eines Multiplexers mit konstanten Eingängen dar. Ìý | + | |
- | * Geben Sie die Ausgangslogik als boolesche Gleichungen an. | + | |
* Skizzieren Sie Ihre Gesamtschaltung mit Speicher, Zustandsübergangslogik und Ausgangslogik. | * Skizzieren Sie Ihre Gesamtschaltung mit Speicher, Zustandsübergangslogik und Ausgangslogik. | ||
Line 45: | Line 27: | ||
Erklären Sie einer anderen Gruppe Ihren Entwurf. | Erklären Sie einer anderen Gruppe Ihren Entwurf. | ||
- | === Designphase === | + | === Designphase (syncsm, syncgen und vgatop) === |
- | Setzen Sie Ihren Entwurf in VHDL um. Laden Sie dazu die folgenden Designdaten herunter {{:dtpr-v8-syncgen.zip}}. Ìý | + | Setzen Sie Ihren Entwurf in VHDL um. |
- | Ìý | + | |
- | * Der synccnt Entwurf ist nicht vollständig. Kopieren Sie Ihren Entwurf in das src Verzeichnis. Ìý | + | |
- | * Der syncgen Entwurf ist schon fertig, d.h. die Verbindung von synccnt und syncsm. Ìý | + | |
- | * Fügen Sie das syncgen Modul in den vgatop ein und konfigurieren Sie die Zähler so, dass das hsync Signal korrekt erzeugt wird. | + | |
=== Verifikationsphase === | === Verifikationsphase === | ||
- | Laden Sie Ihr Design auf das FPGA und verifizieren Sie das Timing des HSYNC Signals. | + | * Verifizieren Sie das Design im SimulatorÌý |
+ | * Verifizieren Sie das Design auf dem FPGA und messen Sie das hsync und vsync TimingÌý | ||
+ | Ìý | ||
+ | === Umsetzung mit VHDL Automatencode ===Ìý | ||
+ | Ìý | ||
+ | * Setzen Sie jetzt den Automaten mit VHDL um und verwenden Sie dazu die Beschreibung wie in play_rtl.vhdÌý | ||
+ | * Verifizieren Sie den Automaten im Simulator Ìý | ||
+ | * Finden Sie mit Quartus die Anzahl der benötigten Flipflops für den Automaten heraus. Ìý | ||