Forum: FPGA, VHDL & Co. VHDL Verständnis


von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Hey Leute,

ihr müsstet mir einmal weiterhelfen. Und zwar habe ich folgende Aufgabe. 
Soweit nicht schwer, bis zum Punkt "else Reg <= Reg(2 downto 0) & 
(Reg(3) xor Reg(2));

Dieses habe ich mal wie folgt in eine boolsche Gleichung umgeformt:
R(3) = R(2)
R(2) = R(1)
R(1) = R(0)
R(0) = (R(3) und nicht R(2)) oder (nicht R(3) und R(2)),

Ist dieses soweit richtig?
Wenn ja wie geh ich bei der Zeichnung vor? Das die ersten beiden Signale 
auf 1 sein müssen, weil das Restesignal auf 1 ist habe ich verstanden, 
den Rest aber leider nicht. Könnte mir das einer erklären?
Wäre Euch sehr dankbar :)
LG Sebastian

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sebastian schrieb:
> Dieses habe ich mal wie folgt in eine boolsche Gleichung umgeformt:
Getaktete Bauteile lassen sich so nicht durch Boolsche Gleichungen 
beschreiben...

Was du da hingeschrieben hast, sollte eigentlich so lauten:
R(3)' = R(2)
R(2)' = R(1)
R(1)' = R(0)
R(0)' = (R(3) und nicht R(2)) oder (nicht R(3) und R(2)),

Und dieser Tic (') bedeutet: der Wert am Eingang des Registers, der dann 
mit der nächsten Taktflanke übernommen wird.
Du rechnest mit deinen Formeln also immer das aus, was bei der kommenden 
Taktflanke am Ausgang des Registers erscheinen wird. Wenn R3 ungleich R2 
ist, dann wird der nächste Wert vom R0 '1' sein, wenn die beiden Gleich 
sind, kommt eine '0' ins R0. Und die anderen Bits werden mit jedem Takt 
einfach weitergeschoben...

von Sebastian (Gast)


Lesenswert?

R(3)' = R(2)
Aber das bedeutet doch, dass das 2. Bit von R dem 3. Bit von R 
zugewiesen wird also R(3) bekommt den Wert von R(2) oder habe ich gerade 
einen Fehler im Vorgang?
Sprich ich bearbeite erst R(3), R(2), R(1) und lese daraus ab was R(0) 
ergeben soll?
So ganz leuchtet mir das ganze noch nicht ein. :)

von Sebastian (Gast)


Lesenswert?

Wäre vielleicht ganz toll wenn Du mir das Schrittweise erklären könntest 
:) Schreibe morgen die Klausur und das ist das einzige was ich noch 
nicht verstehe. Aber es scheint nicht schwer zu sein nur vom Verständnis 
her...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Naja, die R(3..0) sind Register = Flipflops (weil da ein Takt mit im 
Spiel ist). Und so ein Flipflop übernimmt mit der passenden Taktflanke 
den Zustand am Eingang und schaltet den auf den Ausgang durch.
Die Gleichunge, die du gechrieben hast, sind Richtig, allerdings bezieht 
sich alles rechts vom Gleichheitszeichen auf den Ausgang eines 
Flipflops/Registers. Und das, was links vom Gleichheitszeichen steht 
wird aus dem Ausgängen berechnet und liegt an den Eingängen an. Die 
nächste Taktflanke speichert die "neuen" Pegel im Register und das Spiel 
beginnt von vorn...

Du berechnset also "jetzt" den Wert, der "nach" der nächsten Taktflanke 
am Registerausgang erscheinen wird.

von Sebastian (Gast)


Lesenswert?

Ich glaube ich bin zu blöd :) Also was du da geschrieben hast ergibt 
Sinn, allerdings steh ich immernoch auf dem Schlauch wie ich vorgehen 
muss um das einzuzeichnen. Waren bei Reg(3) die ersten 3 Takte auf 1 
sind, dann 3 auf 0 und dann wieder aber nur einer auf 1...

von Sebastian (Gast)


Lesenswert?

Ahhh ich habe es verstanden :) Besten Dank Lothar :)

von Andre K. (andi44)


Lesenswert?

Hallo Sebastian,

diese Aufgabe ist identisch mit der die unser Prof in einer Klausur 
gestellt hat. Schreibe nächste Woche Digitaltechnik und vielleicht hast 
du noch mehr solche Aufgaben? Würdest mir damit sehr helfen.

MfG

Andi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.