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] – syncsm ergänzt beckmanf | dtpr_versuch_8 [2014/01/03 15:42] (current) – [Zustandsautomat syncsm] - VHDL Automatencode eingefügt beckmanf | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Versuch 8 ===== | ===== Versuch 8 ===== | ||
| + | |||
| + | Drucken Sie die Checkliste {{: | ||
| ==== 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 | + | Die Zustandsübergangslogik |
| - | {{: | + | * Geben Sie die Zustandsübergangslogik |
| - | + | ||
| - | 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; | + | |
| - | </ | + | |
| - | + | ||
| - | | + | |
| - | * 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 |
| - | Setzen Sie Ihren Entwurf in VHDL um. Laden Sie dazu die folgenden Designdaten herunter {{: | + | 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 | + | * Verifizieren |
| + | * Verifizieren Sie das Design auf dem FPGA und messen | ||
| + | |||
| + | === 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. | ||