Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision Next revision Both sides next revision | ||
dtpr_versuch_8 [2011/12/01 11:13] beckmanf created |
dtpr_versuch_8 [2011/12/04 22:15] beckmanf Checkliste 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 könnte jetzt aus der Zustandsübergangstabelle abgeleitet und mit booleschen Gleichungen formuliert werden. Alternativ soll hier die Zustandsübergangslogik mit Hilfe eines Multiplexers umgesetzt werden. | + | Die Zustandsübergangslogik könnte 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 |
+ | |||
+ | {{:dtpr-v8-mux.png}} | ||
+ | |||
+ | 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. | ||
+ | |||
+ | === Erklärphase === | ||
+ | |||
+ | Erklären Sie einer anderen Gruppe Ihren Entwurf. | ||
+ | |||
+ | === Designphase (syncsm, syncgen und vgatop) === | ||
+ | |||
+ | Setzen Sie Ihren Entwurf in VHDL um. Laden Sie dazu die folgenden Designdaten herunter {{:dtpr-v8-syncgen.zip}}. | ||
+ | |||
+ | * 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 === | ||
+ | * Verifizieren Sie das Design im Simulator | ||
+ | * Erzeugen Sie eine FPGA Belegung auf Basis des "de1_vgatop". Laden Sie das Design auf das FPGA und verifizieren Sie das hsync Timing mit dem Logikanalysator. | ||