Forum: FPGA, VHDL & Co. 11110000 im Schieberegister rotieren lassen


von Franz Ganz (Gast)


Lesenswert?

Beitrag "Re: 11110000 im Schieberegister rotieren lassen"

Hallo Leute, ich habe da eine Problemstellung bei der ihr euch 
hoffentlich auskennt. Ich möchte in einem 8-Bit- Schieberegister 
11110000 im Kreis rotieren lassen, so das immer vier zusammen hängende 
Einzen unterwegs sind. Das Rückkopplungsnetzwerk sollte aus jedem 
Anfangszustand zu diesem 11110000 Bitmuster hinkommen. Drei triviale 
Lösungen verwerfe ich:

1. Taktfrequenz durch 8 teilen und den Eingang des Schieberegisters 
damit füttern.

2. Eine 256 Bit Tabelle in einem EPROM etc.

3. Den vierten Ausgang invertiert auf den Eingang des Schieberegisters 
und hoffen, das das Schieberegister mit 00000000 startet...

Wie kann man so ein Rückkopplungsnetzwerk gestalten?
Sorry dafür, das ich zuerst einen Thread bei uC und digital gestartet 
habe.

von Jörg R. (solar77)


Lesenswert?

4. Ein 8-Pin Tiny und ein Parallel-In Serial-Out Schieberegister um den 
gewünschten Code einzulesen. Ausgabe erfolgt auf dem 74HC164.

5. Ein uC mit genügend Ein- bzw. Ausgängen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Franz Ganz schrieb:
> 2. Eine 256 Bit Tabelle in einem EPROM etc.

Dann nimmste halt diese Tabelle und vereinfachst die soweit moeglich; 
z.b. so:

https://de.wikipedia.org/wiki/Verfahren_nach_Quine_und_McCluskey

Abhaengig davon, nach wievielen Clks dein Schieberegister wieder 
"passen" sollte, wird sich dieser boolsche Ausdruck wahrscheinlich mehr 
oder weniger gut vereinfachen lassen.

Was ist der Sinn des ganzen? Sowas wie Trockenschwimmen?

Gruss
WK

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

> 5. Ein uC mit genügend Ein- bzw. Ausgängen.
Du bist raus. Das wäre viel zu einfach.

von Lotte (Gast)


Lesenswert?

Ben B. schrieb:
>> 5. Ein uC mit genügend Ein- bzw. Ausgängen.
> Du bist raus. Das wäre viel zu einfach.

Vor allem wegen:
> Forum: FPGA, VHDL & Co.

von Franz Ganz (Gast)


Angehängte Dateien:

Lesenswert?

Habe selber diese Lösung erarbeitet.
Erste Erkenntnis: nur die ersten 4 Bit im Schieberegister sind von 
Bedeutung.
Nur bei folgenden vier Kombinationen wird eine "1" nachgeschoben:

0000
1000
1100
1110

Die Gatter im Anhang.

von Franz Ganz (Gast)


Lesenswert?

Und jetzt wo ich es hochgeladen habe, sehe ich auch noch einen Fehler, 
die unterste D Leitung muss invertiert werden.

von Peter D. (peda)


Lesenswert?

Franz Ganz schrieb:
> Habe selber diese Lösung erarbeitet.

Sparsamer als die Lösung mit dem 74HC93 ist das aber auch nicht.

von Jörg R. (solar77)


Lesenswert?

Franz Ganz schrieb:
> Habe selber diese Lösung erarbeitet.

Da würde mich mal der gesamte Schaltplan interessieren, inkl. Benennung 
der Bauteile.

Aus dem Parallelthread geht hervor dass Du mit dem Muster flexibel sein 
möchtest. Ist dass in deiner Lösung implementiert?

Beitrag "Re: 11110000 im Schieberegister rotieren lassen"

Ich bin nach wie vor bei einem uC. Am besten einer mit genügend Ports, 
um zusätzliche ICs zu vermeiden.

Wozu dient das Ganze?

: Bearbeitet durch User
von vancouver (Gast)


Lesenswert?

Vielleicht stehe ich gerade auf der Leitung, aber was macht dieses Thema 
im FPGA-Forum, wenn es eigentlich um TTL-Bausteine geht?

Im FPGA würde man des Schieberegister rückkoppeln und auf 0x0F resetten, 
etwa so:

logic [7:0] sr;
always_ff @(posedge clk or negedge rstn) begin
   if (!rstn)
      sr <= 8'h0F;
   else
      sr <= {sr, sr[7:1]};
end

von vancouver (Gast)


Lesenswert?

vancouver schrieb:
> sr <= {sr, sr[7:1]};

sr <= {sr[0], sr[7:1]};

Sorry

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.