Register und paralleles Laden
← Alle Artikel

Register und paralleles Laden

5 Min

Ein Register sind einfach Flip-Flops mit gemeinsamem Takt

Ein D-Flip-Flop speichert ein Bit; verschalten Sie N davon mit demselben Taktsignal, und Sie erhalten ein N-Bit-Register, das bei jeder Taktflanke ein ganzes Wort ĂŒbernimmt. Das einzig Neue, das ein brauchbares Register braucht, ist ein Ladefreigabe-Eingang (Load), der entscheidet, ob das Register in diesem Takt einen neuen Wert ĂŒbernimmt oder seinen aktuellen Inhalt hĂ€lt.

Ladefreigabe aus einem Multiplexer aufbauen

Der einfachste Weg, einem Flip-Flop ohne eingebauten Enable-Pin eine Ladefreigabe hinzuzufĂŒgen, ist ein 2:1-Multiplexer vor seinem D-Eingang: Bei Load=1 lĂ€sst der Multiplexer den neuen Wert durch; bei Load=0 speist er den eigenen aktuellen Ausgang des Flip-Flops wieder in sich selbst ein, sodass der gespeicherte Wert unverĂ€ndert bleibt, obwohl der Takt weiterlĂ€uft. Boolflows REG4-Block ist die Flip-Flop-Bank ohne diese Zugabe: Er hat vier DateneingĂ€nge und einen Takt, sonst nichts, und ĂŒbernimmt deshalb bei jeder steigenden Flanke. Damit er seinen Wert hĂ€lt, setzen Sie vor jeden Dateneingang einen MUX: Q zurĂŒck auf Eingang A, die neuen Daten auf B und Load auf den Select-Eingang S. Vier Multiplexer, und das Register behĂ€lt seinen Inhalt, solange Load=0 ist.

DMUXLoadDFFQ

Von einem Register zu einer Registerdatei

Die Registerdatei einer CPU ist nichts weiter als mehrere solcher Register, die sich einen Satz Dateneingangsleitungen teilen, wobei ein Dekoder eine binĂ€re Registeradresse in genau eine aktive Load-Leitung umsetzt — so erreicht ein Schreibvorgang nur das adressierte Register, wĂ€hrend der Multiplexer jedes anderen Registers weiterhin dessen eigenen Ausgang zurĂŒckspeist. Bei nur zwei Registern genĂŒgt ein einziges NOT-Gatter (Load0 = ÂŹAddr, Load1 = Addr); bei mehr skalieren Boolflows Decoder-2:4- oder Decoder-3:8-Blöcke dieselbe Idee.

Probieren Sie es selbst

Bauen Sie im Schaltungseditor zwei REG4-Blöcke mit je vier MUX vor den DateneingĂ€ngen (Q zurĂŒck auf A, der gemeinsame 4-Bit-Datenbus auf B), steuern Sie die Select-EingĂ€nge der Multiplexer des einen direkt mit einem einzelnen Adressbit an und die des anderen ĂŒber ein NOT-Gatter, und bestĂ€tigen Sie, dass das Umschalten des Adressbits einen neuen Wert jeweils nur in ein Register leitet.

Das ladbare Register öffnen →