# Labor EDS: Labor 3

## Übung 5: Ampelsteuerung

### Vorbereitung 1

Aufgabenstellung aus der Email:

- Zustandsdiagramm der Ampelsteuerung vorbereiten
    - In Teams und Share gibt es das Projekt 'ampel'
    - Simulierung in Modelsim möglich
        - kompiliertes Module 'ampel' in Library 'designlib' unter der Library 'work'
        - Zustandsdiagramm per Reverse Engineering aus der Simulation entwickeln

### Hinweise zur Vorbereitung 1

- Bei den LED Vektoren ist das MSB rot, das LSB grün
- Die zwei Zähler div_1 und div_2 (der bekannte mod_n_counter_10bit) erzeugen basieren auf dem 50MHz Takt des DE2 Boards wieder ein ENABLE Signal, um eine geeignete Zeitbasis für eine Ampelsteuerung zu erhalten. In der Simulation sind die ‚N‘ Parameter wieder verkürzt gewählt.
- Die Ampelsteuerung ist als modifizierter Mealy Automat implementiert. Immer beim Verlassen eines Zustands werden die „Lichtsignale“ gesetzt.
- Im Zustand 2 wird entschieden, ob die Fußgängerampel auf grün geschaltet werden soll (Wenn per ‚Melder‘ ein Fußgänger grün angefordert hat). Dies wird dann aus Zustand 3 heraus geschaltet. Falls kein Fußgänger die Ampel überqueren wollte, kommt man direkt von Zustand 2 in Zustand 4.

### Vorbereitung 2

Code für ein JK-FlipFlop schreiben und simulieren:

- Eingänge: **CLK** (Takteingang), **RST** (asynchroner, 1-aktiver Reset), **EN** (Clock Enable, wie beim D-FF), **J**, **K** und **Q**

Wahrheitstabelle:

| R | CLK | EN | J | K | Q |
|:-:|:---:|:--:|:-:|:-:|:-:|
|1|X|X|X|X|0|
|0|Steigende Flanke|0|X|X|Behält Zustand bei|
|0|Steigende Flanke|1|0|0|Behält Zustand bei|
|0|Steigende Flanke|1|1|0|1|
|0|Steigende Flanke|1|0|1|0|
|0|Steigende Flanke|1|1|1|Invertiert den Zustand des Ausgangs|
|0|Alle anderen|X|x|X|Behält Zustand bei|

Email bei Fragen an: manuel.walz@advantest.com