Tutorium Tech II
-
Upload
cameron-bullock -
Category
Documents
-
view
23 -
download
1
description
Transcript of Tutorium Tech II
Daniel BetzWintersemester 2011/12
*Tutorium Tech II
Daniel Betz • [email protected]
2
*WiederholungSequentielles VHDL
*wait-Ausdrücke
*wait – Prozess wird deaktiviert
*wait for 10ns – Prozess wartet 10ns
*wait on a, b – Prozess wartet auf Änderung in a oder b
*wait until a = '1' – Prozess wartet Bedingung – impliziert wait on a until a = '1'
* Im Prinzip beliebig kombinierbar
*if … then … [elsif … then] … [else …] end if;
15.11.2011
Daniel Betz • [email protected]
3 15.11.2011
*WiederholungSequentielles VHDL
* case-Ausdrücke
* Im Prinzip die bedingte Anweisung für sequentielles VHDL
*Achtung: Alles verdreht
* Funktioniert natürlich auch mit std_logic und std_logic_vector
* Im Digitallabor eher unbeliebt
*loop-Schleife
*Unendliche Schleife bis exit
* Schleifen können benannt werden zum gezielten Beenden in verschachtelten Schleifen
*Wichtig für Testbenches
Daniel Betz • [email protected]
4 15.11.2011
*WiederholungSequentielles VHDL
*for-Schleife
*Bereich mit downto oder to
*while-Schleife
*Funktioniert wie gewohnt
*Hat mit next auch ein continue-Äquivalent
Daniel Betz • [email protected]
6 15.11.2011
*VHDL-BezeichnerSS06
*Ich_bin_richtig!
*Register
*10_Bit_Addierer
*SehrKomisch
*Was-fehlt-hier
Daniel Betz • [email protected]
7 15.11.2011
*Strukturelles VHDLSS06
*Gegeben:
*Modell von UND2
*Aufgabe:
*Vollständiges strukturelles VHDL-Modell von UND6
*Eingang: 6-Bit-Vektor
*Teilaufgaben:
*Skizze
*Modell schreiben
entity UND2 is Port (a, b : in std_logic; y : out std_logic);end;
UND6Ein aus
6
Daniel Betz • [email protected]
8 15.11.2011
*RotationsregisterSS06
*Aufgabe:
* 32 Bit breites Register, das Wörter rotiert
*Asynchroner bei Reset = 0
*Fun: Funktionsauswahl
* 00: Nichts tun
* 01: Rechts rotieren
* 10: Links rotieren
* 11: Dateneingang laden
*Kleine Abkürzung hier: ror, rol
rot32Q
32
Takt
Reset
D32
Fun2
Daniel Betz • [email protected]
9 15.11.2011
*Satz komplettieren
*Komplettieren Sie folgenden Satz
Sequentielle Statements sind VHDL ausschließlich zulässig …
Daniel Betz • [email protected]
10 15.11.2011
*Signalverläufe / VHDL "ausführen"
WS06/07
*Gegeben: Prozesse, Signalverläufe A und B
*Gefragt: Signalverläufe C, D und Eprocess (a, b)begin c <= a xor b;end process;
process (b)begin d <= a xor b;end process;
processbegin wait until a /= b; e <= a xor b;end process;
A
B
Daniel Betz • [email protected]
11 15.11.2011
*T-FlipflopWS06/07
*Aufgabe:
*Vollständiges VHDL-Modell für ein T-Flipflop
*Schalten bei positiver Taktflanke
*Asynchroner Reset bei 1
*Bonusaufgabe:
*Vollständiges VHDL-Modell für UND2
T_FFQ
Takt
Reset
T
Daniel Betz • [email protected]
12 15.11.2011
*3-Bit-Zähler StrukturWS06/07
*Aufgabe:
*Zunächst: Skizze
*Vollständiges Strukturmodell
*Asynchroner Reset bei 1CNT_8
Q(2..0)
Takt
Reset
Daniel Betz • [email protected]
13 15.11.2011
*SignalverläufeSS07
*Gegeben: Prozesse, Signalverläufe A und B
*Gefragt: Signalverläufe C, D und Eprocessbegin wait on b c <= a and b; wait;end process;
processbegin wait until a = b; d <= a and b;end process;
processbegin wait on a, b; e <= a and b;end process;
A
B
Daniel Betz • [email protected]
14 15.11.2011
*VHDL ModellvariantenSS07
*Welches sind die drei hauptsächlichen Varianten eines VHDL-Modells?
*Außenansicht:entity simpel is Port (a, b, c : IN std_logic; y : OUT std_logic);end simpel;
Daniel Betz • [email protected]
15 15.11.2011
*Dual Port RAMSS07
*Aufgabe
*Ein Register mit zwei Dateneingängen
*Auswahl mit Sel2
*Schalten bei negativer Taktflanke
*Asynchroner Reset bei 1
DPD
Takt
Reset
Sel2
D1(7..0)
D2(7..0)
Q(7..0)
Daniel Betz • [email protected]
16 15.11.2011
*4-Bit-Zähler mit Ladefkt.WS07/08
*Aufgabe
*4-Bit-Zähler
*Ladefunktion
*Laden bei 1
*Asynchroner Reset bei 0
CNT_4
Takt
Reset
Lade
D(3..0)
Q(3..0)
Daniel Betz • [email protected]
17 15.11.2011
*SignalverläufeWS07/08
*Gegeben: Prozesse, Signalverläufe A und B
*Gefragt: Signalverläufe C, D und Eprocess (b)begin c <= a nor b;end process;
process (a, b)begin d <= a nor b;end process;
processbegin wait on a until b = 0; e <= a nor b;end process;
A
B