Praktikum 2

Inkonsistenz???

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Praktikum 2
Hallo… :#:

Fliege gerade über das Aufgabenblatt Nummer 2. Irgendwie hab ich schon ein paar kleine Dümmlichkeiten gefunden:

  1. Die Aufgaben wo wir den Code ergänzen sollen, find ich komisch, da so wenig Platz ist, dass man nur das schreiben kann, was die auch wollen. Das is allerding schwer raus zu finden, weil man sich mit VHDL noch net so gescheit auskennt.
  2. Ich finde, dass der Wecker nicht mit den Zustandsbeschreibungen übereinstimmt:
    Zuerst das Weckerbild: Da steht, dass S_2 den Weckereinstellmodus macht, S_3 den Zeitmodus und S_2 + S_3 führt zum Timeset (zumindest würde ich die Weckerblende so auffassen). Alles in allem würde das Sinn machen.
    Dann die Zustandsbeschreibungen: Da steht, das Settime mit Schalter S_1 erreicht wird, Setalarm mit S_2 und bei S_1 und S_2 geht er in den time zurück…
    Irgendwie weiß ich net ganz was se da wollen… Was is richtig? Zumindest steht Tabelle 1 mit den Zustandsbeschreibungen im Einklang…
  3. Warum braucht man denn einen Speicher für die Zustände, wenn man die Knöpfe doch eh gedrückt halten muss um die Anzeige zu wechseln? Oder was passiert, wenn man keinen Schalter drückt? Irgendwie komisch, könnte doch so einfach sein…

Nun ja, ich finde, dass man über die Vorbereitungen (geht in 20minuten zu machen) nicht wirklich was abfragen kann. Sonst würde das ja noch mehr in die Vergangenheit ausarten. Was heißen würde, man muss nochmal lernen… Jetzt bin ich verwirrt… :rolleyes: :moody:

Gut, bis Bald!

EDIT:
Was bedeutet “–setzt nächsten Zustandbegin”???
Und wann wird current_state gesetzt?


Und noch eine andere Frage:
Muss man im zweiten Praktikum nun den gesamten Stoff (wie auch für das erste Praktikum) können, oder nur das neue Zeug, wie VHDL ?!
Denn hat es dann überhaupt Sinn, den “schlechten Leuten” des 1. Praktikums einen Nachtermin gemacht zu haben, wenn es hier sowieso wieder abgefragt wird ?


Für Leute die noch ein bißchen was zum lesen über VHDL brauchen:
http://tech-www.informatik.uni-hamburg.de/vhdl/doc/kurzanleitung/vhdl.pdf


@nico: mein ich doch!.. :wink:


Hallo!!!
Ich würde mich sehr freuen, wenn mir jemand beim Wecker helfen könnte!!!
1 Frage: Vervollständigung des Zustanddiagrammes!! Also ich hab zwei fehlende Zustandsübergänge gefunden: SET ALARM → TIME und
TIME → SET TIME!! Ist das so richtig oder nicht???
2 Frage: Wie stelle ich die Zustandzüberdeckungstabelle auf???
3 Frage: Ergänzung:
when 0 => digit-in <= … WAS MUS ICH HIER HINSCHREIBEN???
Fürs erste runde wären nur diese Fragen!! Ich würde sehr dankbar sein, wenn mir jemand helfen würde!!!
Das ist bestimmt nicht so schwer, ich bin wahrscheinlich ein bißchen :vogel: !!!
Gruß


Zu Frage 1: Ja, ich glaub schon, dass es richtig ist!!!
Zu Frage 2: Da steht doch nichts von einer Zustandsueberdeckungstablle!??!!!?!
Es wird eine Zustandsuebergangstabelle verlangt und wie die aussieht steht im Skript!!!
Zu Frage 3: digit_in is ein Array aus std_logic!!?!! Folglich musst du dort einen Vektor aus Einsen und Nullen hinschreiben!!!??!!
Zum Beispiel digit_in<= “0000000”;

!!!

??

Terry Pratchett sagt dazu: “Multiple exclamation marks are a sure sign for a diseased mind.”


also bei others schreibst du: “1011111”, d.h. nur das in der mitte leuchtet.

Zustandsübergängt:

SetTime → Time
Time → SetTime

Time->SetAlarm
SetAlarm-> Time

Time->Time (1/1)
Time->Time(0/0)

SetAlarm->SetAlarm
SetTime->SetTime

also insgesamt 7 (8) Zustandübergänge


naja aber eine schlaufe ist ja schon bei set alarm eingezeichnet, sollen wir die wegstreichen?


Ach so ein Quark, ich sollte lesen lernen.
Entschuldigt.


Zwei Anmerkungen:

  1. Uns wurde im Colloquium bei der Besprechung der Hausaufgaben erklärt, dass die Sieben-Segment-Anzeigen aus irgendeinem Grund genau falsch herum angesteuert werden, d.h. “High => Dunkel” und “Low => Licht”. Wer sich den VHDL-Code genau angeschaut, der wird feststellen, dass ganz unten in der [m]sevensegment[/m]-Ansteuerung das Invertieren des Signals bereits realisiert wird. Wenn man also z.B. nur den mittleren Balken zum Leuchten bringen will, muss man “0100000” schreiben, also so, wie die Anzeige dann auch wirklich leuchten soll.

  2. Zustandsübergänge habe ich insgesamt 9, weil ich den Fall mit einbezogen habe, dass man unmittelbar von “Set time” zu “Set alarm” springen kann und umgekehrt, indem man den gedrückten Knopf loslässt und exakt gleichzeitig den anderen drückt. Das ist zwar in der Praxis ziemlich unwahrscheinlich, aber ich denke mal, wenn die Spezifikation vollständig sein soll, gehört das trotzdem dazu.


Das habe ich vorhin gemeint.
Wenn man S1 und S2 gleichzeitig drueckt, so kommt man zu time und
wenn du auch nur einen loslaesst springt es auch zu time.
Ich meine, dass dieses „exakt im selben Moment“ nicht gibt.
Wir wuerden es blos nicht sehen.


Ich verstehe das schon wieder nicht!!!
Also bei der 7 Segment-Anzeige:
abcdefg
0000001
g steht ja für den mittleren Balken, also muß ich bei others das hinschreiben!!!
Und bei eins:
0110000
Aber ich verstehe was wahrscheinlich falsch, denn ihr habt das nicht geschrieben!!!


Die fuenf Kommentarzeilen unter process(number) zeigen doch,
welches Bit fuer welchen Balken steht.


schau dir doch noch mal die codierung auf dem blatt an - da ist als kommentar die belegung der 7s-anzeige gegeben und auch die reihenfolge in der der input erwartet wird, nämlich 6543210.

die codierung ist auf dem blatt wie folgt:

|-0-|
6 1
|-5-|
4 2
|-3-|


Das hast du bestimmt vom Übungsblatt 8 übernommen. Die Sieben-Segment-Anzeige vom Xilinx-FPGA wird dummerweise ein kleines bisschen anders angesteuert. Das steht allerdings auch in der Quellcode-Datei [m]sevensegment.vhd[/m] als Kommentar drin:

[quote=Quellcodeausschnitt][m]
– |-0-|
– 6 1
– |-5-|
– 4 2
– |-3-|
[/m][/quote]

Nachtrag: Ups, da war ich wohl etwas zu langsam… :slight_smile:


Jetzt hab ich doch mal eine Frage zu Punkt 2:
“Implementieren sie das Wecker-Schaltwek […]”
Bedeutet das, dass wir das gesamte Schaltwerk entwerfen sollen mit allem drum und dran.
Hoert sich ziemlich unwahrscheinlich an, da es doch viel zu ausfuehrlich waere.
Aber wer nicht fragt bleibt dumm.


Danke für eure Hilfe!!!
Obwohl ich das noch immer nicht verstehe, bedank ich mich für eure Hilfsbereitschaft so einen wie mir das erklären zu wollen!!!
Also danke nochmals!! Vielleicht trifft mich ja noch der Blitz des Wissens, und ich krieg das für morgen irgendwie hin!!!


Alles halb so wild!
Du musst nur die Zustandsübergangstabelle aufstellen und daraus die Überführungsfunktionen für die beiden benötigten FlipFlops ableiten. Praktischerweise brauchst du nicht mal eine Ansteuerungsfunktion, weil es sich um D-FlipFlops handelt.


Ja, so hab ich das auch gemacht.
Sah nur etwas zu wenig aus.