Ok eigentlich doch Simpel

wenn man die Register entsprechend bezeichnet (q1,q2,q3 und Sequenz welche vorn in das Register geführt werden soll), kommt folgende Wahrheitstabelle raus:

1 2 3 | Sequenz
0 0 0 | 1
1 0 0 | 1
1 1 0 | 1
1 1 1 | 0
0 1 1 | 0
0 0 1 | 0

Daraus folgt die Funktion:
f = (!q1 * !q2 * !q3 ) + (q1 * !q2 * !q3 )+( q1 * q2 * !q3 )

Entsprechend vereinfacht:
f = ( !q2 * !q3) + (q1 * !q3)
jetzt noch !q3 ausklammern:
f = !q3 * (q1 + !q2)

das lässt sich doch wunderbar mit einem ODER und einem AND realisiern?

Seq
|
AND ----INV--- q3
|
OR --------- !q2
|--------- q1

Mit Inverter damit alle Laufzeiten gleich sind

Bitte schaut mal drauf ob das jetzt alles richtig ist.

EDIT: Ein Fehler ausgemerzt