Registros • Circuito secuencial que tiene capacidad de almacenar un dato de n bits. • Disponen de dos operaciones básicas: lectura y escritura. • En función de la lectura/escritura: – Serie-serie: escritura en serie, lectura en serie – Serie-paralelo: escritura en serie, lectura en paralelo – Paralelo-serie: escritura en paralelo, lectura en serie – Paralelo-paralelo: escritura en paralelo, lectura en paralelo • Escritura: implica la entrada de datos • Lectura: implica la salida de datos • Serie: los datos se leen/escriben bit a bit, en secuencia, a través de una única línea • Paralelo: todos los bits del dato se leen/escriben a la vez, a través de múltiples líneas • Los registros con algún modo serie se denominan “registros de desplazamiento” 1 Registro serie-serie • Circuito: RI D3 q3 D2 q2 D1 q1 D0 q0 RO clk • Cronograma: clk Valor escrito: B3-0 RI B0 q3 B1 q2 B2 q1 B3 RO=q0 Escritura Lectura 2 1 Registros serie-paralelo, paralelo-serie • Serie-paralelo: RI D3 q3 D2 q2 D1 q1 D0 q0 clk O3 O2 O1 O0 Di ≥1 CL i ≥1 PR i • Paralelo-serie: D3 D2 D1 D0 CC CC CC CC CL3 PR3 D3 q3 CL2 PR2 D2 q2 CL1 PR1 D1 q1 CL0 PR0 D0 q0 Load Load 0 RO clk 3 Registro paralelo-paralelo • Circuito: D3 D2 D3 q3 D1 D2 q2 D0 D1 q1 D0 q0 clk O3 O2 O1 O0 • Normalmente, los registros paralelos se construyen con biestables disparados por nivel. En tal caso, se denominan “latches”. 4 2 Desplazamiento a la izquierda y derecha • Desplazamiento a la derecha (SHR, SHift Right): X q3 q2 q1 q0 B3 B2 B1 B0 q3 q2 q1 q0 X B3 B2 B1 • Desplazamiento a la izquierda (SHL, SHift Left): q3 q2 q1 q0 B3 B2 B1 B0 X El sentido de desplazamiento toma como referencia el orden de los pesos de los bits del registro. Los ejemplos anteriores son todos SHR. q3 q2 q1 q0 B2 B1 B0 X 5 Registro universal • Dispone de todos los tipos de lecturas y escrituras. Por ejemplo: P3-0 RI clk Clear LO 4 REG[4] 4 LI S1 S0 RO S1 S0 Operación 0 0 1 1 SHR Load Inhibición (NOP) SHL 0 1 0 1 O3-0 6 3 Registro universal (2) • S 1 = 0, S 0 = 0 ⇒ Desplazamiento a la derecha: D3 = RI; D2 = q 3; D 1 = q2; D0 = q 1; R O = q 0; • S 1 = 0, S 0 = 1 ⇒ Load: D3 = P3; D2 = P2; D1 = P 1; D 0 = P0; • S 1 = 1, S 0 = 0 ⇒ Inhibición (NOP, No OPeration): D3 = q3; D2 = q2; D1 = q 1; D 0 = q0; • S 1 = 1, S 0 = 1 ⇒ Desplazamiento a la izquierda: L O = q3; D3 = q2; D2 = q 1; D 1 = q0; D0 = L I; O 3, LO RI P3 0 q3 q2 2 1 3 1 0 D3 q3 O2 q3 P2 0 q2 q1 2 1 3 1 0 D2 q2 O1 q2 P1 0 q1 q0 2 1 3 1 0 D1 q1 O 0, RO q1 P0 0 q0 LI 2 1 D0 q0 3 1 0 S1 S0 clk 7 4