Está en la página 1de 50

6 .

1 REGISTROS
Elena Valderrama
Universidad Autónoma de Barcelona
6 .1
1. Registros
El registro es el módulo secuencial más simple. Un registro de n bits es simplemente
un conjunto de n biestables controlados todos ellos por las mismas señales de reloj y
de Reset o Set.
Almacenan n bits de información.
inn-1 inn-2 in1 in 0
....
inn-1

inn-2

inn-3

in0
Reset
Load Reg n bits

....
S S S S
D Q D Q D Q D Q
_ _ _ (n) _ outn-1 outn-2 out1 out0
......
Λ

Λ
Q Q Q Q
R R R R
In (n-1,0)
Load
Reset Reset
Load Reg n bits
outn-1

outn-2

outn-3

out0
Out (n-1,0)

2
6 .1
1. Registros
Salida OE (Output Enable): Permite la conexión directa a un bus

… …
....

Reset
Registro n bits
Load
....

…. Bus n bits

3
6 .1
2. Registros de desplazamiento
Los registros de desplazamiento (shift registers) son registros que permiten desplazar su
contenido hacia la derecha o hacia la izquierda en cada pulso de reloj.
in

Serial in

Reset
S S S (n) S
Shift Reg n bits
CK
D Q D Q D Q .... D Q
_ _ _ _ ....
Λ
Λ

Λ
Λ

Q Q Q Q
R R R R outn-1 out n-2 out1 out0

Shift
CK
Reset
Serial in
Reset Shift Reg n bits
CK
Outn-1

Outn-2

Outn-3

out0
Out (n-1,0)

4
6 .1
2.1 Tipos de registros de desplazamiento
1. En función del sentido del desplazamiento:
a) A la derecha (con relleno o no a 0s) o a la izquierda (con relleno o no a 0s)
b) Cíclicos a derecha o a izquierda
c) Bidireccionales

EJEMPLO: Registro de desplazamiento bidireccional de 5 bits.


L/R: Left/Right
E/D
L/R
in

0 S 0 S 0 S 0 S 0 S
D Q 1 D Q D Q 1 D Q 1 D Q
1 _ _ 1 _ _ _
Q

Λ
Λ

Λ
Q Q Q Q
R R R R R
CK
Shift

Reset

Out2

out0
Out4

Out3

out1
5
6 .1
2.1 Tipos de registros de desplazamiento
2. En función del tipo de entrada y de salida.
a) Entrada serie y/o paralelo
b) Salida serie y/o paralela

6
6 .1
2.1 Tipos de registros de desplazamiento
2. En función del tipo de entrada. Los chips comerciales suelen llevar ambas salidas, la
serie y la paralelo incorporadas:
a) Entrada serie
b) Entrada paralela

EJEMPLO: Registro de desplazamiento con entrada serie y paralelo y salida serie.


Carga síncrona

inn-3
inn-1

inn-2

inn-4
L/S: Load/Shift

D/C
L/S
S
D
S
Q
0
1 D
S
Q
0
1 D
S
Q
0
1
..... D Q
_ _ _ _ Serial
Q
Λ

Λ
Q Q Q out
R R R R
CK
Shift

Reset

7
6 .1
2.2 Controles especiales
Señal PL (Parallel Load): Los bits de entrada se cargan en el registro con independencia
de la señal de reloj. Señal de carga asíncrona.
Señal CE (Clock Enable): Cuando está activa, permite que la señal de reloj llegue al
circuito. Si está desactivada, el circuito queda parado.
Las señales OE (Output Enable): Ya vista. Cuando está desactivada, las salidas de datos
están en alta impedancia.
… …
.... Carga síncrona:
Reset Serial_Out L/S: Load/Shift
PL or L/S
Registro de desplazamiento Carga asíncrona:
CE
CK
PL
....

8
6 .1
Pregunta 1
En el circuito de desplazamiento que se muestra en la figura:

Cuando la señal L/S está configurada en modo ”L”


(Load), los datos inn-1,…,in1,in0 se cargan en los flip-
flops inmediatamente … …
....
Cuando la señal L/S está configurada en modo ”L”
Reset
(Load), los datos inn-1,…,in1,in0 se cargan en los flip- Serial_Out
L/S Registro de desplazamiento
flops en el siguiente flanco de reloj CE (derecha)
CK
El contenido de los flip-flops se desplaza una posición a
....
la derecha cada vez que se recibe un flanco de la señal
CK, independientemente del valor que tenga la señal
L/S
El contenido de los flip-flops se desplaza una posición a
la derecha cada vez que se recibe un flanco de la señal
CK y L/S está en modo ”S”
9
6 .1
Pregunta 2

En el circuito de desplazamiento que se muestra en la figura:

Cuando la señal PL está activa, los datos inn-1,…,in1,in0


se cargan en los flip-flops inmediatamente … …
Cuando la señal PL está activa, los datos inn-1,…,in1,in0 ....
se cargan en los flip-flops en el siguiente flanco de reloj Reset Serial_Out
PL Registro de desplazamiento
El contenido de los flip-flops se desplaza una posición a CE (derecha)
la derecha cada vez que se recibe un flanco de la señal CK
CK y PL está activa. ....

El contenido de los flip-flops se desplaza una posición a


la derecha cada vez que se recibe un flanco de la señal
CK, independientemente del valor de PL.

10
6 .1
2.3 Usos más habituales de los regs de desplazamiento
1. En UALs, por su capacidad de multiplicar y dividir por 2
2. En transmisión de señales, como conversores serie-paralelo y paralelo-serie
3. Como reconocedores de secuencias

CONVERSORES SERIE-PARALELO Y PARALELO-SERIE


SR entrada paralelo/salida

serie/salida paralela
SR entrada



serie

Origen CANAL DE TRANSMISIÓN Destino

11
6 .1
2.3 Usos más habituales de los regs de desplazamiento
RECONOCEDORES DE SECUENCIAS (de 1 bit)

in
... 1001 ... D Q D Q D Q D Q
_ _ _ _
Q Q Q Q

CK

out

12
6 .1
2.3 Usos más habituales de los regs de desplazamiento
RECONOCEDORES DE SECUENCIAS (varios bits)
in1
0001 D Q D Q D Q D Q
_ _ _ _
Q Q Q Q

in2
0011 D Q D Q D Q D Q
_ _ _ _
Q Q Q Q

out
in3
1000 D Q D Q D Q D Q
_ _ _ _
Q Q Q Q

1026
CK
13
6 .1
RESUMEN
1. Registros: Almacenan n bits de información. Bloques fundamentales en los
computadores.
2. Registros de desplazamiento. Tipos y usos más frecuentes.

14
6 .2 CONTADORES
Elena Valderrama
Universidad Autónoma de Barcelona
6 .2
1. Contadores
Un “contador” es un circuito secuencial que a cada pulso de reloj incrementa en 1 el
valor de su estado.
No tiene entradas de datos
Sigue una secuencia cíclica
Las salidas coinciden con los estados de los biestables que lo forman
Tipos:
Contador binario ascendente. P.e., para n=3, (000, 001, 010, 011, 100, 101, 110, 111).
Contador binario descendente. P.e., para n=3, (111, 110, 101, 100, 011, 010, 001, 000).
Contador BCD (4 bits). (0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001)
Contador Gray. P.e., para n=3, (000, 010, 110, 100, 101, 111, 011, 001)
Contadores bidireccionales,

16
6 .2
1. Contadores
Ejemplo: Contador binario ascendente de 3 bits
(000, 001, 010, 011, 100, 101, 110, 111)

Est. actual Est siguiente


∆ ∆ ∆
q0 q 1 q 2 q0 q1 q2
0 0 0 0 0 1
0 0 1 0 1 0
0 1 0 0 1 1
0 1 1 1 0 0
1 0 0 1 0 1
1 0 1 1 1 0
1 1 0 1 1 1
1 1 1 0 0 0

17
6 .2
1. Contadores
Ejemplo: Contador binario ascendente de 3 bits
(000, 001, 010, 011, 100, 101, 110, 111)

Est. actual Est siguiente


q0 q 1 q 2 q0

q1

q2
∆ D0 = q0∆ = q0 .q1 + q0 .q2 + q0 .q1.q2 = q0 ⊕ q1.q2
0 0 0 0 0 1 D1 = q1∆ = q1 ⊕ q2
0 0 1 0 1 0
0 1 0 0 1 1 D2 = q2∆ = q2
0 1 1 1 0 0
1 0 0 1 0 1
1 0 1 1 1 0 D0 S q0 D1 S q1 D2 S q2
1 1 0 1 1 1 D Q
_
D Q
_
D Q
_
1 1 1 0 0 0 >CP Q >CP Q >
CP Q
R R R

CK
Reset

q0 q1 q2
18
6 .2
1. Contadores
Ejemplo: Contador binario ascendente de 3 bits
(000, 001, 010, 011, 100, 101, 110, 111)

Incrementador (+1)

n n

Reset
Load
Registro 3 bits

n
out

19
6 .2
1. Contadores
Señal INC (Increment): El contador incrementa su estado a cada pulso de la señal INC.
Señal OE (Output Enable).
Señal CE (Count Enable) = Clock Enable
Señal TC (Terminal Count): TC=1 cuando el contador ha llegado a su valor máximo. Sirve para
conectar contadores en serie.

Reset
Contador de n bits TC
CE
INC

… …

20
6 .2
Pregunta 1
Los módulos que se muestran en la figura son contadores binarios ascendentes de 4 bits.
Cada uno de ellos, en el ciclo de reloj en que su estado alcanza el valor 1111 generan una
señal TC=1. El circuito formado por los dos contadores:

o Cuenta de 0 a 31 Reset
CE CONT 4bits TC CE CONT 4bits TC
o Cuenta de 0 a 63 INC > INC
>
o Cuenta de 0 a 127
q0 q1 q2 q3 q4 q5 q6 q7
o Cuenta de 0 a 255

21
6 .2
2. Contadores bidireccionales
Incrementa o decrementa su valor dependiendo de la señal U/D (Up/Down)

U/D=1 U/D
000
U/D=1 Reset
U/D=0
001 CE Contador de n bits TC
INC/DEC
U/D=1 U/D=0
010
… …
U/D=1 U/D=0

U/D=1 U/D=0
111

U/D=0
22
6 .2
3. Contadores con carga paralela
Carga paralela síncrona cuando Load está activa

… …

Reset
Load
Contador de n bits TC
, , .
INC
....
… …

23
6 .2
3. Contadores con carga paralela
Reset asíncrono o reset síncrono

… … Gnd

Reset Reset
PL or L/C Contador de n bits TC Load Contador de n bits TC
INC INC
.... ....
… … … …

24
6 .2
4. Usos más habituales de los contadores
1. Contar intervalos de tiempo (temporizadores)
2. Contar eventos
3. Divisores de frecuencia
4. Generadores de secuencias

25
6 .2
4. Usos más habituales de los contadores
1. Contar intervalos de tiempo (temporizadores)
Construir un circuito que genere una señal z=1 cada 5 segundos
Seleccionar el periodo de reloj
“recortar” el conteo

26
6 .2
4. Usos más habituales de los contadores
3. Divisores de frecuencia
Construir un circuito que a partir de una señal de reloj de frecuencia f genere una
nueva señal de reloj de frecuencia f/4

27
6 .2
Pregunta 2

El módulo que se muestra en la figura es un contador binario ascendente de 4 bits. CK1 es una
señal de reloj frecuencia igual a 256KHz. En el ciclo de reloj en el que alcanza el valor 1111, el
contador genera una señal TC=1. Si se desea utilizar la salida TC como señal de reloj (CK2), ¿cuál
será la frecuencia de dicho reloj?

o 16 Hz.
Reset
o 1 KHz. CK1 > CONT 4bits TC (CK2)

o 16 KHz
o Ninguna de las anteriores q0 q1 q2 q3

28
6 .2
4. Usos más habituales de los contadores
4. Generadores de secuencias
a) Construir un circuito que genere la secuencia 10010101
b) Idem la secuencia 100101

29
6 .2
4. Usos más habituales de los contadores
4. Generadores de secuencias
a) Construir un circuito que genere la secuencia 10010101
b) Idem la secuencia 100101

30
6 .2
RESUMEN
1. Hemos visto los contadores, bloques secuenciales sin entrada de datos y cuyas salidas
son los propios estados de los biestables, que aumentan el valor de su estado en 1
cada vez que detectan un flanco en la señal de reloj (o equivalente)
2. Tipos y usos más frecuentes.

31
6 .2

32
6 .3 MEMORIAS
Elena Valderrama
Universidad Autónoma de Barcelona
6 .3
1. Memorias
Las memorias son módulos secuenciales capaces de almacenar un número elevado de
bits de información.
Una memoria se puede ver como un conjunto de registros “apilados” a los cuales se puede
acceder individualmente ya sea para cargar información (escribir) o para leer la información
existente.

34
6 .3
1. Memorias líneas de
palabra

líneas
0

Decodificador de direcciones
de
Bus de direcciones bit

a1 1

a0
2
A todas
las
celdas
3

Circuitería de lectura/escritura R/W

d5 d4 d3 d2 d1 d0
Bus de datos
35
6 .3
1. Memorias: Tipos

Memorias

Volátiles No volátiles

Lectura Lectura + escritura en


Solo lectura
/escritura condiciones especiales

DRAM SRAM EPROM flash ROM por OTP ROM


máscara
EEPROM

36
6 .3
1. Memorias: Tipos

permanence
Storage
Mask-programmed ROM In-system Ideal memory
programmable
OTP ROM
Life of product

EPROM EEPROM FLASH


Tens of years
NVRAM
Battery life Nonvolatile
(10 years)

SRAM/DRAM
Near zero
Write
ability
During External External External External
fabrication programmer, programmer, programmer programmer In-system,
writes,
fast
only one time only OR in-system, OR in-system,
1.000s block-oriented unlimited
of cycles 1.000s Writes. cycles
of cycles
1.000s of cycles

37
6 .3
2. Memorias RAM

Línea de bit
Memorias volátiles que permiten lectura y escritura
RAMs estáticas (SRAM) R/W
RAMs dinámicas (DRAM) D Q
líneas de
<
Q Celda SRAM
palabra

líneas
0
Decodificador de direcciones

de
bit
Línea de palabra
Bus de direcciones

a1 1

Línea de bit
a0
2
A todas Celda DRAM
las
celdas
3

Circuitería de lectura/escritura R/W


Línea de palabra
d5 d4 d3 d2 d1 d0
Bus de datos
38
6 .3
2.1 Memorias SRAM
líneas de
palabra

Línea de bit
líneas
0
R/W
Decodificador de direcciones

de
bit
L/E:
D Q
Bus de direcciones

a1 1 <
Q 1. Si L: Datos en Bus de datos
a0
2 2. Dirección en Bus de direcciones
A todas
las
celdas
3. R/W=1 si L; R/W=0 si E
3

Circuitería de lectura/escritura R/W Línea de palabra


d5 d4 d3 d2 d1 d0
Bus de datos

Chips de hasta 64Mbits (no confundir el tamaño del chip con el tamaño de un banco de memoria)
Tiempos de L/E típicos en el rango de 10-100ns. (depende del tamaño)
Menor consumo que las DRAM (salvo a frecuencias muy altas)
39
6 .3
2.2 Memorias DRAM

Línea de bit
Línea de bit
Pre-carga +
comparador
Circuitería de lectura/escritura y R/W
R/W refresco
Línea de palabra

Bus de datos

di

Requiere refresco
La lectura es destructiva
Chips de hasta 2 Gbits (tamaño del chip ≠ tamaño del banco de memoria)
Más lenta que la SRAM debido a los refrescos
Mayor consumo, en general, que las DRAM
40
6 .3
2. Memorias ROM
Estudiadas en la lección 1.3 (semana 1)
La información viene “de fábrica” (ROM por máscara), o la introduce una única vez el usuario
(OTP ROM: One Time Programmable ROM)
líneas de palabra

líneas de bit

Decodificador de direcciones
Bus de direcciones 0

a1 1

a0
2

Circuitería de lectura R

d5 d4 d3 d2 d1 d0
Bus de datos 41
6 .3
3. Memorias PROM
Memorias en que la escritura sólo se puede realizar en condiciones especiales. La celda
básica contiene un único transistor “de puerta flotante”
EPROM (Erasable Programmable ROM)
La información se borra por radiación ultravioleta. El borrado afecta a toda la memoria
Se cargan mediante un dispositivo programador

EEPROM (Electrically Erasable Programmable ROM)


La información se borra selectivamente aplicando un voltaje “alto”
La circuitería necesaria para la carga se integra dentro del propio sistema

Flash memories
Evolución de las EEPROM en las que el borrado y la carga se realizan por bloques, optimizando el HW
La circuitería necesaria para la carga se integra dentro del chip
Uso en “pens”, cámaras digitales, celulares, … alternativas al disco duro (SSD)
42
6 .3
Pregunta 1

¿Qué tipo/s de memoria/s es no-volátil y puede ser escrita miles de veces?

SRAM
DRAM
OTP ROM
EPROM
Flash
Ninguna de ellas

43
6 .3
4. Banco de memoria
¿Cómo se puede construir una memoria de, p.e., 64 Gb (2Giga-palabras de 32 bits)?: La
respuesta es … interconectando chips de memoria como los vistos hasta ahora.

EJEMPLO:
Construir un banco de memorias de 1.024 palabras de 8 bits (1.024x8) utilizando chips
de memoria SRAM de 256 palabras de 4 bits (256x4)

R/W ME R/W ME

1.024 x 8 256 x 4
OE A D OE A D

(10) (8) (8) (4)

44
6 .3
4. Banco de memoria
EJEMPLO:
Construir un banco de memorias de 1.024 palabras de 8 bits (1.024x8) utilizando chips
de memoria SRAM de 256 palabras de 4 bits (256x4)
bits
3 2 1 0
a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
0 0 0 0 0 0 0 0 0 0
MEMORY MAPPING

0 0 0 0 0 0 0 0 0 1
… … Chip 1 R/W ME
0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 0 0 0 0
direcciones

0 1 0 0 0 0 0 0 0 1
… … Chip 2
256 x 4
0 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 OE A D
1 0 0 0 0 0 0 0 0 1
… …
Chip 3 (8) (4)

1 0 1 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 1
… …
Chip 4
1 1 1 1 1 1 1 1 1 1

45
6 .3
4. Banco de memoria
EJEMPLO:
Construir un banco de memorias de 1.024 palabras de 8 bits (1.024x8) utilizando chips
de memoria SRAM de 256 palabras de 4 bits (256x4)
R/W
ME

46
6 .3
4. Banco de memoria
EJEMPLO:
Construir un banco de memorias de 1.024 palabras de 8 bits (1.024x8) utilizando chips
de memoria SRAM de 256 palabras de 4 bits (256x4)

Chip 1 Chip 2 Chip 3 Chip 4 Chip 5 Chip 6 Chip 7 Chip 8

d7d6d5d4 d3d2d1d0
47
6 .3
Pregunta 2

¿Cuántos bloques de memoria de 256x4 bits son necesarios para construir un banco de
memoria de 1Mx4 bits?

o 2
o 4
o 8
o 16

48
6 .3
Pregunta 3

¿Cuántos bloques de memoria de 256x4 bits son necesarios para construir un banco de memoria
de 256x64 bits?

o 2
o 4
o 8
o 16

49
6 .3
RESUMEN
1. Hemos visto los parámetros que definen los distintos tipos de memorias:
Volatilidad, permanencia de la información y número de ciclos de L/E que admite el
chip.
2. Hemos estudiado que las memorias se organizan en palabras y se identifican por una
dirección.
3. Hemos conocido los tipos de memoria de uso más frecuente (SRAM, DRAM, ROM,
EPROM, EEPROM y flash)
4. Hemos aprendido el concepto de “banco de memoria” con un ejemplo.

50