2. praktische übung


Hm scheint echt krass zu sein, wie sehr das vom prüfer abhängt. Bei den einen kommt echt alles dran, bei den anderen fast nur VHDL.

Glücksspiel für sich. Über Sinn und Unsinn der Dinge will ich garnet erst anfangen zu denken :smiley:

Gratualtion an die , die es geschafft haben und viel Erfolg an den Rest.


beides, bei uns wurde besonders wert auf den unterschied zwischen signalen und variablen gelegt, musste da für einen vorgegebenen prozess nen signalverlauf hinpinseln und so


Bei uns wurde auch noch folgendes gefragt:

  • Unterschied zwischen impliziete/expliziete Prozesse?
  • Was ist die Sensitivitätsliste bei einem implizieten Prozess?
  • Schreiben sie eine entity hin, die 2 Eingänge und 1 Ausgang hat.
  • Wie kann man den Wert von zwei Signale ohne Zwischenvariable vertauschen?
  • Alle möglichen Werte, die std_logic annehmenn kann.

Wünsch allen die’s noch vor sich haben viel Glück.


hast du die miniklausuren bestanden oder waren das miniklausur-zusatzfragen

und was is die dritte sorte bei flankenerkennung (vorder-, rueck-, ?)?


beid- ?


:motz:
die zaehlt nich :wink:


wechsel- (sprich: nur, wenn aenderung, nicht welche richtung)


hatte beide miniklausuren bestanden.
zusatzfragen im sinne von, nachdem wir die 3 fragen auf dem zettel bearbeitet hatten wollte er danach halt noch von jedem zusätzliches zeug wissen, was ihm grad so eingefallen is eigentlich (hat zumindest so gewirkt).
und das wurd net alles ich gefragt :wink: warn halt so paar fragen, die aufgetreten sind bei uns, aber auch net alle.

& yah: 3. sorte ist XNOR → vorder + rück


Unterschied zwischen impliziete/expliziete Prozesse?

Wie kann man den Wert von zwei Signale ohne Zwischenvariable vertauschen?

Kann mir jemand vielleicht die Antwort dazu sagen?? Ich fidne im Skript nix dazu…entweder ich bin blind oder ich hab das nicht mitbekommen.

Danke im Vorraus


Expliziter Prozess: steht in einem Process-Block und hat (normalerweise) eine Sensitivitätsliste in Klammern angegeben. Wenn er das nicht hat, dann ruft er sich dauernd selber auf.
Impliziter Prozess: steht in keinem Process-block und wir aufgerufen, wenn sich auf seiner rechten Seite was ändert.

Und die Sache mit dem Werte-Tausch von Signalen: Du weist sie einfach gegenseitig zu, so:

a <= b; b <= a;

Sieht völlig bescheuert aus, geht aber, weil der Wert von Signalen erst am Prozessende auf den letzen zugewiesenen Wert gesetzt wird.

But obacht: Don’t try this mit Variablen for it doesn’t work!


Vielen Dank!!


was is ein Process-Block ??
dachte impliziter process hat ne sensitiblitäts-liste in klammer dahinter und der explizite nicht… (oder andersrum??)


so wie mir das erklärt wurde:
expliziter prozess ist ein prozess-block, wie er in den meisten beispielen drinsteht, z.b.

name: process (a,b)
begin

end name;

(a,b) ist hierbei die sensitivitätsliste (ändern sich a oder b, wird der prozess durchlaufen)

impliziter prozess:

c <= d;

eine zuweisung ist im prinzip ja auch ein prozess. die sensitivitätsliste hierbei die rechte seite (d).


was wurde heute alles gefragt??
kriegt noch jemand paar fragen zusammen? :slight_smile:


Ich war beim Dirk Koch
er hat zuerst mal die Hausaufgabe bissel abgefragt und dann hat noch jeder eine Frage ausm Stoff bekommen

  • Welche Automatentypen gibt es (was sind die Unterschiede)
  • Was ist der Unterschied zwischen transport/inertial delay
  • dritte weiss ich leider nicht mehr, war aber auch ned so schwer
    Dann sollte jeder noch ein RS-FlipFlop in VHDL auf nen Zettel schreiben. Wobeis hier irgendwie nen Unterschied gemacht hat, ob man das FlipFlop in nem process angegeben hat (dann warens einfach ifs und zuweisungen wie in der hausaufgabe) oder ob mans direkt in der architecture angegeben hat, dann warens irgendwie nur zwei XOR-Ausdruecke.
    Beim VHDL waren paar unsicher, aber er hat alle drei durchkommen lasssen und hat gemeint, dass wir das im Praktikum dann scho lernen :slight_smile:

aja und falls ihr bei der praktischen uebung bissel zeit sparen wollt, beachtet folgendes bei eurem vhdl code:
die zustandsuebergaenge sind unabhaenging vom momentanen zustand. Also baut die zustandsuebergaenge vor den case mit den drei zustaenden. in den case mit den drei zustaenden kommt dann nur rein was der wecker wirklich machen soll und zwar z.b. minuten/stunden hochzaehlen im case settime bzw. setalarm mit S(3) bzw S(4) und alarm ausloesen im case ntime, falls hours=whours minutes=wminutes und S(5) angeschaltet ist.
und wenns dann praktisch gut funktionieren soll, muesst ihr noch beachten, dass ihr ne frontflankenerkennung von den schaltern macht oder zusaetzlich den sekundentakt mit reinnehmt. sonst zaehlt die zeit unendlich schnell hoch, wenn ihr z.b. die stunden inkrementieren wollt und dann laesst sich der wecker ned steuern.


a=> b müsste auch ein expliziter sein

weils ja eigentlich nix anderes als

p1: process(a)
begin

–b
end p1;

ist

das mit dem unendlich schnell hochzählen dürfte eigentlich nicht passieren da der case block im elsif mit dem clk’event steht


unendlich nicht, aber im takt, der von clk angegeben wird. und das is ziemlich schnell


ja, bestätigt, wir hatten aus versehen (eigtl zu testzwecken, und dann vergessen wieder zu ändern) den timer von (13 downto 0) auf (1 downto 0) gestellt, das gab ne ganz tollte Discobeleuchtung im time-modus :cheesy:


stimmt scho hab mich vertan dieser sectrigger sollte in die zählerfunktion mit rein