Aus VHDL-Code das Zeitdiagramm zeichnen |
14.07.2013, 22:21 | Auf diesen Beitrag antworten » | ||||||||||
deppensido | Aus VHDL-Code das Zeitdiagramm zeichnen hallo, beim Üben bin ich auf folgende Aufgabe gestoßen, bei der man den Zeitverlauf von A(0), A(1) und A(2) in ein Zeitdiagramm einzeichnen soll, wobei das clk und das rst Signal vorgegeben ist. Im folgenden der Code:
ich verstehe nun folgende Zeile nicht
was genau passiert da? Vielen Dank im voraus. |
||||||||||
|
|||||||||||
15.07.2013, 09:01 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl | sr ist ein Vektor aus 3 Variablen (2 downto 0). mit sr <= neues_sr2 & neues_sr1 & neues_sr0; kann das sr befüllt werden. invert an erster Stelle sorgt dafür, dass das neue sr2 das negierte alte sr0 ist. sr(2) & sr(1) verschiebt die anderen beiden Werte. Ich habe die Simulation nachbearbeitet: gleichfarbige Signale hängen durch verschieben/invertieren wie oben beschrieben voneinander ab. |
||||||||||
15.07.2013, 14:56 | Auf diesen Beitrag antworten » | ||||||||||
deppensido | hallo, ich versteh es ehrlich gesagt immer noch nicht. Bei der ersten Positiven Taktflanke ist ja invert = 1, sr(2) = 0 und sr(1) = 0 und A bekommt die Werte: A(2) = 1 (von invert) A(1) = 0 (von sr(2) und A(0) = 0 (von sr(0). Aber bei der nächsten steigenden Taktflanke bleibt A(2) = 1, obwohl invert doch 0 wird und A(1) und A(0) müssten doch 0 bleiben, weil sr(2) und sr(1) auch jeweils 0 bleiben. Was heißt dabei: "sr(2) & sr(1) verschiebt die anderen beiden Werte." Ich konnte leider auch durch den Signalverlauf das nicht nachvollziehen. Sorry, aber manchmal tu ich mich echt schwer sowas zu verstehen. Grüße |
||||||||||
15.07.2013, 20:08 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl |
Darüber solltest du nochmal nachdenken: invert ist not sr(0), das invertierte Signal kam aber erst bei s(2) an. s(0) ist immernoch 0, die Variable invert ist daher weiterhin 1. Das ändert sich erst, wenn eben jene 1 über s(2) und s(1) bis zu s(0) vorgedrungen ist. Du musst dich nicht entschuldigen, wenn du etwas nicht sofort verstehst, dafür ist das Forum ja da. So ist es mir lieber, als wenn ich mir die Zeit nehme und dann trotz Unklarheiten keine Nachfrage mehr kommt, da hätte ich es dann auch gleich bleiben lassen können |
||||||||||
Anzeige | |||||||||||
|
|||||||||||
15.07.2013, 22:14 | Auf diesen Beitrag antworten » | ||||||||||
deppensido | danke für die Hilfe. Ich hab es mir jetzt noch mal Schritt für Schritt aufgeschrieben, was passiert und hab es dann hinbekommen. Ich kam da im Kopf nicht so richtig mit, aber wenn man sich die Schritte nacheinander aufschreibt klappt es dann recht zügig. Ein weiterer Fehler bei mir war auch, dass ich den Logic_Vector (2 downto 0) so gelesen habe (A(0),A(1),A(2)) anstatt (A(2),A(1),A(0)) also genau umgekehrt gedacht. Habe auch nochmal ähnliche Aufgaben geübt und diese dann auch recht schnell hinbekommen. Ziel bei diesen Aufgaben ist es ja das Zeitdiagramm zu zeichnen. Nochmals Vielen Dank! Grüße |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|