Programmierbare Logikbausteine

pld_all_prakt1.jpg

Praktikum PLD Aufgabe 1, im Raum H 1555

Am Praktikum beteiligt sind:


Fett gedruckte Links sind aktuell und stimmen mit dem Code der WIki überein!


Termine:

  • Mon 11.07.2005 - 08:00h
  • Mon 20.06.2005 - 08:00h
  • Mon 06.06.2005 - 08:00h
    • Realisierung des restlichen Designs
      • checkpas
      • 7segment
      • light
    • Erweiterung auf 0-99 Zähler
      • light_99
      • count4fb_99
    • beim checkpas war ein Zustandswechsel falsch
  • Mon 18.04.2005 - 08:00h
    • 0-15 Zähler über Carrykette realisiert

Links

Teil (1/4): count4fb

  • 4 bit BCD 0 bis 9 Vor- Rückwärts- Zähler
  • nicht über Wahrheitstabelle lösen
  • später soll ein 0-99 Zähler realisiert werden
  • Entwurf im GraficEditor
  • Bildungsvorschrift vorwärts zählen:
    • Graph
    • Graph
    • Graph
    • Graph
  • Bildungsvorschrift rückwärts zählen:
    • Graph
    • Graph
    • Graph
    • Graph

Lösung (0-15 Vor- Rückwärtszähler)reveal hidden content

Lösung (0-99 Vor- Rückwärtszähler, VHDL)reveal hidden content

Teil (2/4): light

  • Light bei I[0..3] > 0
  • Full bei I[0..3] > 4
  • Entwurf im Waveform-Editor

Zustände

Zustand 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
I0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
I1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
I2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
I3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Light 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Full 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1

Lösungreveal hidden content

Lösung (0-99 Comperator, VHDL)reveal hidden content

Teil (3/4): 7segment

  • einfacher BCD zu 7 Segment Decoder
  • Entwurf in HDL

7-Segment Aufbau

-A-
|F |B
-G-
|E |C
-D-
.H

Wahrheitstabelle

Bit[3..0] Display[A..G]
dezimal hex 3 2 1 0 A B C D E F G H sum
0 0x00 0 0 0 0 1 1 1 1 1 1 0 0 0xfc
1 0x01 0 0 0 1 0 1 1 0 0 0 0 0 0x60
2 0x02 0 0 1 0 1 1 0 1 1 0 1 0 0xda
3 0x03 0 0 1 1 1 1 1 1 0 0 1 0 0xf2
4 0x04 0 1 0 0 0 1 1 0 0 1 1 0 0x66
5 0x05 0 1 0 1 1 0 1 1 0 1 1 0 0xb6
6 0x06 0 1 1 0 1 0 1 1 1 1 1 0 0xbe
7 0x07 0 1 1 1 1 1 1 0 0 0 0 0 0xe0
8 0x08 1 0 0 0 1 1 1 1 1 1 1 0 0xfe
9 0x09 1 0 0 1 1 1 1 1 0 1 1 0 0xfb
10 0x0a 1 0 1 0 1 1 1 0 1 1 1 0 0xee
11 0x0b 1 0 1 1 0 0 1 1 1 1 1 0 0x3e
12 0x0c 1 1 0 0 1 0 0 1 1 1 0 0 0x9c
13 0x0d 1 1 0 1 0 1 1 1 1 0 1 0 0x7a
14 0x0e 1 1 1 0 1 0 0 1 1 1 1 0 0x9e
15 0x0f 1 1 1 1 1 0 0 0 1 1 1 0 0x8e

Lösung (AHDL)reveal hidden content

Teil (4/4): checkpas

Es sind gesamt 4 Lichtschranken vorhanden, bei denen jeweils 2 für ein Ein- bzw. Ausgang benutzt werden.

  • Bildung eines Blockes mit 2 Eingängen und 1 Ausgang
  • 2 Blöcke entgegengesetzt zusammen schalten → 2 Ausgänge, einer für vorwärts einer für rückwärts
  • Lösung durch Automaten → FlipFlops
  • Moore Automat benutzen (synchron mit Takt) zur Vermeidung von Hazards
    • Ausgang ist abhängig von den internen Zuständen
  • eventuell können gleichzeitig 2 Lichtschranken ausgelöst werden → ein checkpass sollte dann im Ausgang Takt-verschoben sein (damit der Zähler 2 Impulse bekommt)
  • Y0 ist der Zählausgang
  • Y1 ist der Ausgang zum Blockieren
  • Entwurf in HDL


Zustände

  • 7 verschiedene Zustände
  • bei X2==1 wird der Automat blokiert, wenn er in Z5 ist
  • man kann sicher Z7 und Z0 kombinieren
Zustand 0 1 2 3 4 5 6 7 8
X0 d 0 1 1 0 0 d d d
X1 d 0 0 1 1 0 d d d
X2 d d d d d 1 1 0 d
Y0 0 0 0 0 0 0 0 1 0
Y1 0 0 0 0 0 1 1 1 1

Lösung (Automatengraph)reveal hidden content

Lösung (AHDL)reveal hidden content

Lösung (AHDL von Ello)reveal hidden content

 
wiki/study/prakt/pld.txt · Last modified: 2005/09/19 10:49 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki