0% encontró este documento útil (0 votos)
213 vistas122 páginas

Fundamentos de Electrónica Digital

Este documento describe las funciones lógicas básicas utilizadas en sistemas digitales, incluyendo comparadores, sumadores, multiplicadores, codificadores, decodificadores, multiplexores, registros, memorias y contadores. También explica operaciones lógicas como AND, OR y NOT.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
213 vistas122 páginas

Fundamentos de Electrónica Digital

Este documento describe las funciones lógicas básicas utilizadas en sistemas digitales, incluyendo comparadores, sumadores, multiplicadores, codificadores, decodificadores, multiplexores, registros, memorias y contadores. También explica operaciones lógicas como AND, OR y NOT.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Fundamentos de

FUNDAMENTOS DE
sistemas digitales
ELECTRÓNICA DIGITAL

Oihane Barcenilla Martin

UNED
FUNCIONES LÓGICAS BÁSICAS

Función de comparación
Comparador
A>B
Esta función comprueba si dos cantidades
binarias A y B son iguales o no, y si son distintas A
cual de ellas es mayor.
A=B

B
A<B
Funciones aritméticas

Sumador Suma: Esta función es realizada por un


sumador. Su función es sumar dos números
A binarios A y B junto con una entrada de acarreo
S (Cin) y genera la suma (S) u un acarreo de salida
(Cout).
Cout
B Resta: Esta función se realiza mediante un
Cin restador, este requiere de tres entradas, los dos
números a restar y el acarreo negativo (borrow).
Las salidas corresponden a la resta y a un acarreo
negativo.
Multiplicación: Esta función es llevada a cabo or un circuito denominado
multiplicador. Donde entran los dos números a multiplicar y la salida es el producto.

División: La división puede realizarse mediante una serie de sustracciones,


comparaciones y desplazamientos. Posee dos entradas y las salidas generadas
corresponden al cociente y al resto.

Función de conversión de código


Un código es un conjunto de bits ordenados de acuerdo a un modelo único y se emplea
para representar una información especifica. Estos dispositivos se emplean para
generar dichos códigos.

Función de codificación
Un codificador convierte la información en algún tipo de código, así un nivel alto en la
entrada 9 genera el código binario correspondiente en una calculadora.

9 Codificador
8
7
6
5 Código
binario
4
del 9
3
2
1
0

1
Función de decodificación
Un decodificador convierte la información codificada, en otra información no
codificada

Decodificador

Entrada
binaria

Función de selección de datos

Multiplexor Demultiplexor
A D
Datos de Datos de Datos de Datos de
Dt1 AaD BaE CaF AaD Dt1
B Dt2 Dt1 Dt2 Dt3 Dt1 Dt2 E

C Dt3 Dt3 F

Entrada de control Entrada de control


de la secuencia de la secuencia
de comunicación de comunicación

Un multiplexor es un circuito lógica que pasa los datos digitales procedentes de varias
lineas de entrada a un única linea de salida según una secuencia de tiempos específica.

El demultiplexor es un circuito que pasa los datos digitales procedentes de na linea


de entrada a varias lineas de salida según una determinada secuencia de tiempo, es un
multiplexor invertido

Función de almacenamiento
El almacenamiento es una función que conserva una serie de datos binarios durante
un periodo de tiempo. Los tipos más comunes son:
Flip-flops: Es un circuito lógico biestable que solo puede almacenar un bit cada vez,
un 1 ó un 0. La salida de un flip-flops indica que bit está almacenado.
Registro: se forma a partir de varios fip-flops de manera que puedan almacenar
grupos de bits, por ejemplo un registro de 8 bits está formado por ocho flip-flops.
Además de almacenar bits, los registros se pueden emplear para desplazarlos de una
posición a otra dentro del registro o fuera del mismo a otro circuito. Estos dispositivos
de conocen como registros de desplazamiento.

2
Los dos tipos básicos de registros de desplazamiento son serie y paralelo.

Registro de desplazamiento en serie


Bits en serie
en las lineas de
entrada

0101 0 0 0 0 Inicialmente el registro solo contiene


datos no válidos o ceros

010 1 0 0 0 El primer bit (1) entra en el registro

01 0 1 0 0 El segundo bit (0) entra en serie en el


registro y el primero se desplaza hacia
la derecha

0 1 0 1 0 El tercer bit (1) entra en serie en el


registro y el primero y el segundo se
desplazan hacia la derecha

0 0
El cuarto bit (0) entra en serie en el

1 1 registro y el primero, el segundo y el


tercero se desplazan hacia la derecha.
El registro almacena cuatro bits y el
registro está lleno.

Registro de desplazamiento en paralelo

Bits en paralelo
en las lineas de
entrada
0 1 0 1
0 0 0 0 Inicialmente el registro está vacío,
conteniendo solo ceros

0 1 0 1 Se desplaza todos los bits y se


almacenan simultáneamente

Memorias semiconductoras: Sn dispositivos diseñados para almacenar una gran


cantidad de bits. Existen dos tipos de memoria:

? ROM (Read Only Memory): Los datos se almacenan de forma permanente o


semipermanente y no se pueden cambiar instantáneamente.
? RAM (Random Access Memory): Los datos binarios se almacenan temporalmente
y pueden cambiarse fácilmente.

Memorias magnéticas: Este tipo de menoría se emplean para almacenamiento


masivo de datos, por ejemplo los discos duros, cintas, discos magneto-ópticos, etc.

3
Función de recuento
Los contadores digitales cuentan sucesos representados por cambios de nivel o por
impulsos.

Contador
Lineas de
salida en
paralelo Código Código Código Código Código
binario binario binario binario binario
para el 1 para el 2 para el 3 para el 4 para el 5
1 2 3 4 5
Secuencia de códigos binarios que representan
el número de impulsos de entrada contados

OPERACIONES LÓGICAS BÁSICAS

A B F
A F 0 0 0
AND F = A·B 0 1 0
B 1 0 0
1 1 1

A B F
A F 0 0 0

B
OR F=A+B 0 1 1
1 0 1
1 1 1

F A F
A NOT F=A 0 1
1 0

A B F
A F 0 0 1
NAND F = A·B = A + B 0 1 1
B 1 0 1
1 1 0

A B F
A F 0 0 1
NOR F=A+B=A·B 0 1 0
B 1 0 0
1 1 0

A B F
A F 0
0
0 0
1 1
B
XOR
F=A+B=A·B+A·B 1 0 1
1 1 0

A B F
A F 0 0 1
XNOR
F=A+B=A·B+A·B 0 1 0
B 1 0 0
1 1 1

4
LEYES Y REGLAS DEL ÁLGEBRA DE BOOLE

Leyes del álgebra de Boole


Ley conmutativa de la suma

A
B
A+B º B
A
B+A

Ley conmutativa de la multiplicación

A
B
A·B º B
A
B·A

Ley asociativa de la suma

º
A A
A + (B + C) A+B
B
B
B+C (A + B) + C
C C

Ley asociativa de la multiplicación

º
A A
A·(B·C) A·B
B
B
B·C (A·B)·C
C C

Ley distributiva
A·(B + C) = A·B + A·C

A
B A·B

º
B
B+C
C
X
X A
A
C A·C

X = A·(B + C) X = A·B + A·C

Reglas del álgebra de Boole

Regla 1. A + o = A

A=1 A=0
1 0
0 0

5
Regla 2. A + 1= 1

A=1 A=0
1 1
1 1

Regla 3. A·0= 0

A=1 A=0
0 0
0 0

Regla 4. A·1= A

A=0 A=1
0 1
1 1

Regla 5. A + A= A

A=0 A=1
0 1
A=0 A=1

Regla 6. A + A = 1

A=0 A=1
1 1
A=1 A=0

Regla 7. A· A = A

A=0 A=1
0 1
A=0 A=1

Regla 8. A· A = 0

A=1 A=0
0 0
A=0 A=1

Regla 9. A· A = 0

A=1 A=0
A=0 0 A=1 0

6
Regla 10. A + A·B = A
A
A B A·B A + A·B
0 0 0 0
0 1 0 0 B
1 0 0 1
1 1 1 1
A conexión directa
igual

Regla 11. A + A·B = A + B

A
A
B
B

A B A·B A + A·B A+B


0 0 0 0 0
0 1 1 1 1
1 0 0 1 1
1 1 0 1 1

igual

Regla 12. (A + B)·(A + C) = A + B·C

A B C A+B A+C (A + B)·(A + C) B·C A + B·C


0 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0
0 1 0 1 0 0 0 0
0 1 1 1 1 1 1 1
1 0 0 1 1 1 0 1
1 0 1 1 1 1 0 1
1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1

igual

7
A
B A

B
C
C

Teoremas de DeMorgan

A·B = A + B
A+B=A·B

A
B A·B º A
B A+B

A
B A+B º A
B A·B

miniterm
0 A·B·C·D 0000
1 A·B·C·D 0001
2 A·B·C·D 0010
3 A·B·C·D 0011
4 A·B·C·D 0100
5 A·B·C·D 0101
6 A·B·C·D 0110
7 A·B·C·D 0111
8 A·B·C·D 1000
9 A·B·C·D 1001
10 A·B·C·D 1010
11 A·B·C·D 1011
12 A·B·C·D 1100
13 A·B·C·D 1101
14 A·B·C·D 1110
15 A·B·C·D 1111

8
MAPAS DE KARNAUGH

B BC
A 0 1 A 00 01 11 10
m0 m1 m0 m1 m3 m2

0 AB AB 0 ABC ABC ABC ABC

m2 m3 m4 m5 m6 m7

1 AB AB 1 ABC ABC ABC ABC

CD
AB 00 01 11 10
m0 m1 m3 m2

00 ABCD ABCD ABCD ABCD

m4 m5 m7 m6

01 ABCD ABCD ABCD ABCD

m12 m13 m15 m14

11 ABCD ABCD ABCD ABCD

m8 m9 m11 m10

10 ABCD ABCD ABCD ABCD

LÓGICA COMBINACIONAL
Circuitos lógicos combinacionales básicos

A·B
A
B
A·B + C·D Lógica AND-OR
C Suma de productos
D
C·D

Lógica AND-OR-inversor
A·B
A
B A·B + C·D
A·B + C·D =
= (A + B)·(C + D)
C
D Productos de sumas
C·D

9
La propiedad universal de las puertas NAND y NOR
Las puertas NAND como elemento lógico universal

A A º A A

A
B
A·B
A·B = A·B º A
B
A·B

A
A
A·B = A + B º A
B
A+B
B
B

A
A
A+B A+B º A
B
A+B
B
B

Las puertas NOR como elemento lógico universal

A A º A A

A
B
A+B
A+B º A
B
A+B

A
A
A + B = A·B º A
B
A·B
B
B

A
A
A·B
A·B º A
B
A·B
B
B

10
FUNCIONES DE LA LÓGICA COMBINACIONAL

Sumadores básicos

Semisumadores (HA)

A S=A+B=A·B+A·B
S
A S B Cout = A·B
HA
A B S Cout
B Cout
0 0 0 0
Cout 0 1 1 0
1 0 1 0
1 1 0 1
Sumador completo (FA)

A
S
A+B
B FA A S
Cout HA1 HA2
Cin (A + B)·Cin
B

S = (A + B) + Cin Cin
A·B Cout
Cout = A·B + (A + B)·Cin

A B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Sumadores binarios en paralelo


Dos bits A2 B2 A1 B1

0
A B Cin A B Cin
A2 B 2
FA FA + A1 B1
S3 S2 S1
Cout S Cout S

(MSB) S3 S2 S1 (LSB)

11
Cuatro bits

A4 B4 A3 B3 A2 B2 A1 B1 C0

A B Cin A B Cin A B Cin A B Cin

FA FA FA FA

Cout Cout S Cout S Cout S


S

C4 C3 C2 C1
S4 S3 S2 S1

C3 C2 C1 C0
A4 A3 A2 A1
B4 B3 B2 B1
(MSB) C4 S4 C3 S3 C2 S2 C1 S1 (LSB)

S = C4S4S3S2S1

Cn-1 An Bn Sn Cn
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

Sumador paralelo de 4 bits (74LS283)

12
Sumadores serie
A5 A4 A3 A2 A1
0 1 0 1 1
S5 S4 S3 S2 S1
A
S 1 1 0 0 0
B FA

B5 B4 B3 B2 B1 Cout
Cin
Reloj 0 1 1 0 1

Retardo

Sumador con Generador de Acarreo Adelantado (GAA)


Propagación del acarreo Pi = Ai + Bi

Generador del acarreo G i = A i · Bi


S1 = Pi + Ci GAA
Ci+1 = Gi + Pi · Ci

C4

B3 P3
A3
G3

B2 P2 P3
A2 S3
G2 C3

B1 P2
A1 P1
G1 S2
C2

B0 P1
A0 P0
S1
G0 C1

P0
C0 S0

13
Restadores
Semirestadores (HS)

A D=A+B=A·B+A·B
D
A D B Cout = A·B
HS
A B D Cout
B Cout
0 0 0 0
Cout 0 1 1 1
1 0 1 0
1 1 0 0
Restador completo (FS)

A
S
A+B
B FS A D
Cout HS1 HS2
Cin (A + B)·Cin
B

S = (A + B) + Cin Cin
A·B Cout
Cout = A·B + (A + B)·Cin

A B Cin Cout D
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1

14
Comparadores
Un comparador de palabras de n bits es un circuito que determina cual de estas
palabras es mayor, cuál es menor y cuando son iguales. Tiene que producir tres salidas:

A>B A=B A<B


La base de estos circuitos es el circuito coincidencia o igualdad. La idea es comparar
dos bits, de manera que si son iguales (A = B = "0", A = B = "1") la salida sea 1. El
complemento del OR-exclusivo cumple esta condición:
A B E
0 0 1
E = AB + AB 0 1 0
1 0 0
1 1 1

La condición A > B se detecta a partir de la función lógica:

A B C
0 0 0
C = AB 0 1 0
1 0 1
1 1 0

La condición A< B se detecta a partir de la función lógica:

A B D
0 0 0
D = AB 0 1 1
1 0 0
1 1 0
Comparador de palabras de un bit
D = AB
A
B
E = AB + AB

C = AB
Comparador de palabras de cuatro bits

En un comparador de cuatro bits utiliza el procedimiento es el siguiente:

A = B Þ Deben ser iguales cada uno de sus bits.

A3 = B3, A2 = B2, A1 = B1, A0 = B0


La función lógica será:

E = (A3B3 + A3B3)·(A2B2 + A2B2)·(A1B1 + A1B1)·(A0B0 + A0B0) = E3·E2·E1·E0

Si E = 1 Þ A = B

15
A > B Þ Recorremos todos los bits de A y B desde el mas significativo hasta que A sea 1 y
B sea 0.

Es decir:

A3 > B3 Þ A3·B3
ó
A3 = B3 y A2 > B2 Þ E3·A2·B2
ó
A3 = B3 y A2 = B2 y A1 > B1 Þ E3·E2·A1·B1
ó
A3 = B3 y A2 = B2 y A1 = B1 y A0 > B0 Þ E3·E2·E1·A0·B0

C = A3·B3 + E3·A2·B2 + E3·E2·A1·B1 + E3·E2·E1·A0·B0

A < B Þ Recorremos todos los bits de A y B desde el mas significativo hasta que A sea 0
y B sea 1. En este caso si E = 1 y C = 0 entonces D = 1

A3 D3
B3
E3

C3

A2 D2
B2
E2

C2

A<B
A1 D1
B1
E1

C1

A>B
A0 D0
B0
E0

C0

A=B

16
Unidad Aritmético-Lógica (ALU) SN74181
Selectores
de función

6 5 4 3

S0 S1 S2 S3
2 9
A0 F0
10

Palabra A
1 24 23
B0 Vcc A1 F1 Salidas
A0 2 23 A1 21 11 de función
S3 3 22
A2 F2
B1
19 13
S2 4 21 A2 A3 F3
5
SN74181

S1 20 B2
S0 6 19 A3
1 14 Salidas de
Cn 7 18 B3 A=B
B0 comparación
M 8 17 G
Palabra B

22
F0 9 16 Cn+4 B1
16 Salidas
F1 10 15 P
20 Cn+4 de acarreo
B2
F2 11 14 A=B 18
GND 12 13 F3
B3

Entrada 7
de acarreo
Cn 17
Salidas
G
15 de acarreo
Selector 8
M anticipado
de modo P
Vcc GND
24 12

M=0
Códigos M=1
Funciones aritméticas
de selección Funciones
lógicas Cn =0 con acarreo
S3 S2 S1 S0 Cn = 1 sin acarreo

0 0 0 0 F=A F=A F=A+1


0 0 0 1 F=A+B F=A+B F = (A + B) + 1
0 0 1 0 F=A·B F=A+B F = (A + B) + 1
0 0 1 1 F=0 F = -1 (comp. a 2) F=0
0 1 0 0 F=A·B F = A + A·B F = A + A·B + 1
0 1 0 1 F=B F = (A + B) + A·B F = (A + B) + A·B + 1
0 1 1 0 F=A+B F=A-B-1 F=A-B
0 1 1 1 F=A·B F = A·B - 1 F = A·B
1 0 0 0 F=A+B F = A + A·B F = A + A·B + 1
1 0 0 1 F=A+B F=A+B F=A+B+1
1 0 1 0 F=B F = (A + B) + A·B F = (A + B) + A·B + 1
1 0 1 1 F=A·B F = A·B - 1 F = A·B
1 1 0 0 F=1 F=A+A F = A + A +1
1 1 0 1 F=A+B F = (A + B) + A F = (A + B) + A + 1
1 1 1 0 F=A+B F = (A + B) + A F = (A + B) + A + 1
1 1 1 1 F=A F=A-1 F=A
+ Operador OR + Signo aritmético mas - Signo aritmético menos

17
Decodificadores
Un decodificador es un circuito que convierte un código de entrada binario de N bits
N
en M líneas de salida (N puede ser cualquier entero y M es un entero menor o igual a 2 ),
tales que cada línea de salida será activada para una sola de las combinaciones posibles
de entrada.

Decorificador

N M
salidas salidas

En la figura se muestra un esquema general de un decodificador de N entradas y M


salidas. Puesto que cada una de las entradas puede ser 1 ó 0, hay 2N códigos de entrada.
Para cada una de estas combinaciones de entrada sólo una de la M salidas estará
activada 1, para lógica positiva; todas las otras salidas estarán en 0.

Muchos decodificadores se diseñan para producir salidas 0 activas, lógica negativa,


donde la salida seleccionada es 0 mientras que las otras son 1. Esto último se indica
siempre por la presencia de pequeños círculos en las líneas de salida del diagrama del
decodificado

Decodificador de cuatro bits

Función de
Entradas descodificación Salidas
BIN/DEC
0 0 0 0 0 A3A2A1A0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 1 A3A2A1A0 101 1 1 1 1 1 1 1 1 1 1 1 1 1
2 0 0 1 0 A3A2A1A0 1 101 1 1 1 1 1 1 1 1 1 1 1 1
3 0 0 1 1 A3A2A1A0 1 1 1 01 1 1 1 1 1 1 1 1 1 1 1
4 0 1 0 0 A3A2A1A0 1 1 1 101 1 1 1 1 1 1 1 1 1 1
5 0 1 0 1 A3A2A1A0 1 1 1 1 1 01 1 1 1 1 1 1 1 1 1
6 0 1 1 0 A3A2A1A0 1 1 1 1 1 1 01 1 1 1 1 1 1 1 1
Entrada binaria

1 7 0 1 1 1 A3A2A1A0 1 1 1 1 1 1 101 1 1 1 1 1 1 1
Pesos

2 8 1 0 0 0 A3A2A1A0 1 1 1 1 1 1 1 101 1 1 1 1 1 1
4 9 1 0 0 1 A3A2A1A0 1 1 1 1 1 1 1 1 1 01 1 1 1 1 1
8 10 1 0 1 0 A3A2A1A0 1 1 1 1 1 1 1 1 1 101 1 1 1 1
11 1 0 1 1 A3A2A1A0 1 1 1 1 1 1 1 1 1 1 1 01 1 1 1
12 1 1 0 0 A3A2A1A0 1 1 1 1 1 1 1 1 1 1 1 101 1 1
13 1 1 0 1 A3A2A1A0 1 1 1 1 1 1 1 1 1 1 1 1 1 01 1
14 1 1 1 0 A3A2A1A0 1 1 1 1 1 1 1 1 1 1 1 1 1 101
15 1 1 1 1 A3A2A1A0 1111111111111110

18
Decodificador BCD a decimal
Dígito Función de
decimal Código BCD descodificación
BCD/DEC
0 0 0 0 0 0 A3A2A1A0
1 1 0 0 0 1 A3A2A1A0
2 2 0 0 1 0 A3A2A1A0
A0 1 3 3 0 0 1 1 A3A2A1A0
A1 2 4 4 0 1 0 0 A3A2A1A0
A2 4 5 5 0 1 0 1 A3A2A1A0
A3 8 6 6 0 1 1 0 A3A2A1A0
7 7 0 1 1 1 A3A2A1A0
8 8 1 0 0 0 A3A2A1A0
9 9 1 0 0 1 A3A2A1A0

74HC42
Decodificador BCD 7 segmentos

BCD/7-seg a
a
b b
Entrada BCD

A0 1
c f
A1 2
d
A2 4 g
e c
A3 8
f e
g
d

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

A3 A2 A1 A0 a b c d e f g
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 0 0 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 1 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 0 0 1 1
10 1 0 1 0 0 0 0 1 1 0 1
11 1 0 1 1 0 0 1 1 0 0 1
12 1 1 0 0 0 1 1 0 0 1 1
13 1 1 0 1 1 0 0 1 0 1 1
14 1 1 1 0 0 0 0 1 1 1 1
15 1 1 1 1 0 0 0 0 0 0 0

19
Codificadores
Codificador decimal BCD

Dígito Código BCD


decimal
DEC/BCD A3 A2 A1 A0
0 0 0 0 0 0
1 1 0 0 0 1
2 2 0 0 1 0
3 1 A0 3 0 0 1 1
4 2 A1 4 0 1 0 0
5 4 A2 5 0 1 0 1
6 8 A3 6 0 1 1 0
7 7 0 1 1 1
8 8 1 0 0 0
9 9 1 0 0 1

Multiplexores (selectores de datos)


Un multiplexor (MUX) es un dispositivo que permite dirigir la información digital
procedente de diversas fuentes a una única línea para ser transmitida a través de dicha
linea a un destino común.

Multiplexor de cuatro entradas a una


A B

MUX
Datos de entrada Control

A 0
B 1
Salida D0
Y
D0
0
D1 D1 Y
1
D2
2
D3
3 D2

D3

Control Salida Y
0 0 D0
0 1 D1
1 0 D2
1 1 D3

20
Multiplexor de ocho entradas a una

G MUX As151
A
Control

D0

D1
Datos de entrada

D2

D3
Y

D4 W

D5

D6

D7

Control Strobe Salidas


C B A G Y W
x x x 1 0 1
0 0 0 0 D0 D0
0 0 1 0 D1 D1
0 1 0 0 D2 D2
0 1 1 0 D3 D3
1 0 0 0 D4 D4
1 0 1 0 D5 D5
1 1 0 0 D6 D6
1 1 1 0 D7 D7

21
Demultiplexores
Un demultiplexor (DEMUX) básicamente realiza la función inversa a la del
multiplexor. Toma datos de una línea y los distribuye a un determinado número de
lineas de salida.
En la figura siguiente se puede ver un demultiplexor de una linea de entrada a cuatro de
salida:
Entrada
de datos D0
S1 S0 Salida
0 0 D0
D1
0 1 D1
S0
selección
Lineas de

1 0 D2
D2
1 1 D3
S1
D3

Los demultiplexores se pueden utilizar como decodificadores, solo hay que emplear las
lineas de selección representan números binarios puros o en BCD, activando en cada
instante una linea de salida.

22
LÓGICA COMBINACIONAL PROGRAMABLE (PDL)

Procesamiento digital de la información a3 a2 a1 a0 f

La lógica programable busca una estructura modular y 0 0 0 0 0


general que nos permita obtener cualquier función 0 0 0 1 x1 · x0
lógica a través de una programación eléctrica o 0 0 1 0 x1 · x0
funcional del esquema de conexión de esos módulos. El 0 0 1 1 x1
modelo formal subyacente a los PDL, consiste en la 0 1 0 0 x1 · x0
representación de cualquier función lógica de la forma 0 1 0 1 x0
normal disyuntiva que enlaza n variables de entrada 0 1 1 0 x1 + x0
con m variables de salida. Así si tenemos los términos 0 1 1 1 x1 + x0
mínimos de n variables de entrada podemos obtener en 1 0 0 0 x0 · x1
paralelo cualquiera de las m funciones de salida con tal 1 0 0 1 x1 + x0
de programar las matrices de conexión 1 0 1 0 x0
correspondiente. 1 0 1 1 x0 + x1
1 1 0 0 x1
Consideremos dos variables (x0, x1), disponemos de 1 1 0 1 x1 + x2
cuatro términos mínimos (x1·x0, x1·x0, x1·x0, x1·x0) y 16 x1 + x2
1 1 1 0
funciones (f) de dos variables. 1 1 1 1 1

x1 x0

x1·x0

x1·x0

f
x1·x0

x1·x0

x1 x1 x0 x0

a0 a1 a2 a3

Para obtener una función universal de dos variables, primero se obtienen las inversas y
después se construyen los cuatro términos producto. Sola hay que controlar el paso de
cada uno de los términos mínimos por medios de los términos de control (a0, a1, a2, a3)

23
Para duplicar el numero de funciones que componen el mismo número de términos
mínimos se duplican los vectores de control (a0, a1, a2, a3)

x1 x0

a0o

a1o f0

a20

a30
x1 x1 x0 x0

a01

a11 f1

a21

a31

Arquitectura básica

La generalización se consigue mediante dos matrices de conexiones programables. Una


matriz AND se encarga de generar los 2 términos mínimos de n variables de entrada (x0
n

··· xn ) y otra matriz OR que se encarga de permitirnos agrupar de una forma cómoda el
n
n 2
conjunto de los 2 términos mínimos para generar cualquiera de las 2 funciones lógicas
diferentes de estas n variables de entrada.

24
xn ... x1 x0 Buffers e
inversores

Matriz de
... Conexiones (Array)
Elementos
OR
AND

m0

m1

m2

m3
...

m2 -4 n

m2 -3 n

m2 -2 n

m2 -1 n

Matriz de Elementos
Conexiones (Array) OR
AND

f0 f1 f2 f3

25
En función de donde esté situada la matriz programable se clasifican en:

Arquitectura Matriz Matriz


AND OR
PROM Fija Programable
(Programable Read Only Memory)

PAL Programable Fija


(Programable Array Logic)

PLA Programable Programable


(Programable Logic Array)

Notación
Representación del estado funcional de la conexión

º º

Conexión permanente Conexión programable Conexión programable


intacta fundida

Puerta AND con entrada múltiple

A A B B
A
A f(A, B) f(A, B)
B
B
Se especifica el estado funcional de la conexión

Ejemplos:

A A B B A A B B
f=0 f = A·B

A A B B A A B B
f=0
º f = A·A·B·B = 0

A A B B A A B B
f =1 f = A·B

26
Puerta OR con entrada múltiple
Términos mínimos m0, m1, m2, m3

m0 m1 m2 m3
m0
f(m0, m1, m2, m3) f(m0, m1, m2, m3)
m1
m2
m3
Se especifica el estado funcional de la conexión

Ejemplos:
m0 m1 m2 m3 m0 m1 m2 m3
f=1 f =m0 + m2

m0 m1 m2 m3 m0 m1 m2 m3
f=1
º f =m0+m1+m2+m3 = 1

m0 m1 m2 m3 m0 m1 m2 m3
f =0 f =m0 + m2

Memorias PROM, EPROM, EEPROM y FLASH


Bajo el nombre genérico de PROMs englobamos toda la familia de circuitos de memoria
no volátil: ROM, PROM, EPROM, EEPROM y FLASH.

Las PROM son PLDs en los que la parte AND es fija y completa, estando así accesibles
todos los términos mínimos de las n variables de entrada, y la parte OR es programable.

La figura de la página siguiente muestra la arquitectura de una PROM de tres entradas


(xo, x1, x2) y cuatro salidas (f0, f1, f2, f3). Al disponer de todos los términos mínimos de tres
variables, (mo,m1, ... , m7) para obtener nuevas funciones de salida (f4,f5, ...) sólo hay que
añadir nuevas puertas OR. Es decir, nuevas columnas a la matriz OR Un inconveniente
de las PROM es la necesidad de duplicar la complejidad de la parte fija AND cada vez
que queramos añadir una nueva variable de entrada (x3, x4, ...).

Otro inconveniente de las PROMs es que no son reprogramables y, por consiguiente, no


admiten errores. Así, el siguiente paso en la evolución de las memorias no volátiles
PROM fue conseguir que fueran reprogramables. Esto exige que podamos borrar
primero el programa que ya tenía almacenado la matriz de conexiones sin destruir la
estructura.

Dependiendo del mecanismo usado para borrar tenemos dos nuevos tipos de memorias
no volátiles: EPROM y EEPROM (ó E2PROM).

27
xn x1 x0

Elementos Matriz OR
AND Programable

m0

m1

m2

m3

m4

m5

m6

m7

Matriz AND
Fijo Elementos
OR

f0 f1 f2 f3

Las EPROM (Erasable PROM) se borran usando luz ultravioleta y se programan


eléctricamente y las EEPROM (Electrically Erasable PROM) se borran y se graban
eléctricamente, por 10 que pueden realizarse ambos procesos sin necesidad de extraer
el circuito de memoria del resto de los circuitos que constituían la aplicación.

En las memorias FLASH se resuelve este problema al mantener las características de


almacenamiento no volátil y la posibilidad de borrado y regrabación eléctrica de las
EEPROMs pero aumentando la densidad de integración como consecuencia de usar
celdas diseñadas usando un único transistor.

28
PALs y PLAs
El diseño de la arquitectura Arquitectura de los circuitos PAL
PROM tiene algunos
problemas ya que la parte AND x3 x2 x1 x0
genera todos los términos Matriz OR
mínimos de n variables (2n) y Fija
para añadir una nueva variable
hay que duplicar el tamaño de
la matriz. Además, en un
número importante de
situaciones de diseño muchos
de esos términos mínimos no
se usan. Por ejemplo, en
aquellas situaciones en las que
se quiere usar el mismo circuito
programable para sintetizar
funciones diferentes que
necesitan una combinación no
preestablecida de variables de
entrada y variables de salida, o
cuando se desea diseñar a la vez
funciones combinacionales y
secuenciales. En estas
circunstancias es mejor
disponer de un circuito que
deje fija la parte OR y permita
la programación de la parte
AND. Así aparecieron los PAL
(Programable Arrays Logic)
como un dispositivo universal
de diseño lógico.

La figura muestra esta


arquitectura para el caso
sencillo de cuatro variables de
entrada (xo, x1, x2, x3)y cuatro
funciones de salida (f0, f1, f2, f3).
Obsérvese que cada puerta OR
sólo puede sumar un cierto
número de términos mínimos
(4 en el caso de la figura) l0 que
limita el repertorio de
funciones posibles. Sin
embargo, tiene la gran ventaja
de no tener que duplicar el
tamaño de la matriz cada vez Matriz AND
que se necesite una nueva Programable
variable de entrada. f0 f1 f2 f3

29
Si l0 que buscamos en el diseño combinacional es un modelo universal versátil, la
arquitectura más plástica es la PLA (Programable Logic Array) en la que tanto la matriz
de puertas AND como la de puertas OR son programables, tal como se muestra en la
figura . Evidentemente, la contrapartida de la versatilidad es la complejidad y el coste
del circuito resultante. Por consiguiente, las PLAs son recomendables en aquellas
situaciones de diseño en las que sean justificables las facilidades de programación que
ofrecen.

xn ... x1 x0 Buffers e
inversores

Matriz de
... Conexiones (Array)
Elementos
OR
AND

m0

m1

m2

m3
...

m2 -4n

m2 -3n

m2 -2n

m2 -1n

Matriz de Elementos
Conexiones (Array) OR
AND
f0 f1 f2 f3

Arquitectura de los circuitos PLA

30
Configuraciones de salida

Salida a través de XOR Þ invers. programable


Tipos de Salidas

Combinacionales Þ Salidas programables como entradas


Realimentación

Básicas Þ biestables de salida


Secuenciales Þ
Macroceldas Þ biestables + multiplexor

Salida a través de XOR

Control
Triestado

De la
matriz de
Salida
puerta
AND

Salidas programables como entradas

Control
Triestado

De la
matriz de
puerta
AND Entrada/Salida
E/S

Control C X Salida
Triestado 0 0 0
0 1 1
1 0 1
1 1 0
De la
matriz de X
puerta
AND C Entrada/Salida
E/S
Fusible Programeble

31
Biestables de salida

Control OE
(facilitación)

De la
matriz de
D Q Salida
puerta
AND
Ck Q
(reloj)

Macrocelda

10
RA
(reset síncrono)
11

MUX
.
. D Q 00 E/S
. Q 01
Ck
(reloj)
PS
(Preset síncrono)

0
MUX

S0 S1

S0 S1 Configuración de salida
0 0 A través del biestable D y activa en baja

0 1 A través del biestable D y activa en alta

1 0 Combinacional y activa en baja

1 1 Combinacional y activa en alta

32
CIRCUITOS BIESTABLES

Autómatas finitos: Concepto de estado


Consideremos un sistema formado por un bolígrafo tipo pulsador, cuya punta puede
estar dentro o puede estar fuera. Si pulsamos y la punta esta fuera, esta entra, y si
pulsamos y la punta esta dentro esta sale.

Luego el sistema bolígrafo necesita un Espacio de Entrada con una variable x que toma
dos valores:

x = x1 = 1 = pulsar x = x2 = 0 = no pulsar

El bolígrafo puede estar en dos estados, S:

S = S1 = punta dentro S = S2 =punta fuera

Y las respuestas posibles al pulsar (espacio de salidas y) serían:

y = y1 = sale la punta y= y2 = entra la punta y= y3 = no se mueve

Diagrama de transición

x1 / y1

pulsar/ sale punta

S1 S2
x2 / y3 x2 / y3

no pulsar/ no se mueve no pulsar/ no se mueve


Punta Punta
dentro fuera

x1 / y2

pulsar/entra punta

33
Tablas de producción de salidas y nuevos estados
S S1 S2 S S1 S2
x x
x1 S2 S1 x1 y1 y2

x2 S1 S2 x2 y3 y3

Definición formal de autómata


En términos más formales diremos que un autómata finito y determinístico es una
máquina matemática que opera en una escala cuantificada de tiempos y viene definido
por un quinteto:
A=(X, Y, S, f, g)
Donde:

X es el conjunto finito de posibles entradas, {xi} i =1, ... ,n


Y: es el conjunto finito de posibles salidas, {yk} k =1, ... ,p
S: es el conjunto finito de posibles estados internos, {Sj} j =1, ... ,m
f y g: son dos conjuntos de reglas de decisión que representan la dinámica del sistema
en la producción de nuevos estados (reglas j) y en la producción de salidas (reglas g).

La función de producción de nuevos estados, f, se define en extenso como una


aplicación del producto cartesiano X ´ S sobre S y la función de producción de salidas, g,
es una aplicación del producto cartesiano X ´ S sobre Y.

f: X ´ S ® S : S (t + Dt) = f[x(t), S(t)]


g: X´ S ® Y: y(t + Dt) = g[x(t), S(t)]

Es decir, el nuevo estado, S(t+Dt), es una función, f(x,S), del estado actual, S(t), y de la
entrada, x(t). Ante una misma entrada, pueden producirse distintas transiciones de
estado. A su vez, las mismas entradas x(t) y el mismo estado S(t) participan a través de
otra función, g(x,S), en la producción de las salidas. Estas variables de salida son las
respuestas del autómata a un medio externo que 10 ha activado a través de las entradas,
x(t). Es decir, un autómata finito siempre se interpreta en su relación con un medio
externo de forma que las salidas del autómata son las entradas del medio y viceversa.

Producción del S Retardo Producción


nuevo Estado Dt de Salidas
f (Memoria local) S g

Mundo externo

34
Un circuito secuencial es aquel en que las salidas dependen del estado de las entradas
en el instante t y del estado de las salidas en el instante t-1.

Arquitectura general de un autómata finito en el que las variables son pulsos o niveles,
las funciones son lógica combinacional y el estado se almacena en N biestables. El
resultado se muestra en la figura siguiente. Tenemos un circuito secuencial de M
variables de entrada, (xo, x1, ... ,xM), N variables de salida (yo, y1, ... ,yN) y Q estados
(siendo Q ³ 2N), se puede sintetizar de forma modular de acuerdo con el esquema de la
figura:

x0 x1 ... xM-1

PLD - 1

Función f

D0 D1 ... DN-1

Reloj Dt Dt ... Dt

Q0 Q1 ... QN-1(t) = DN(t-Dt)

PLD - 2

Función g

y0 y1 ... yN-1

Comportamiento síncrono
En electrónica combinacional no existía el tiempo, la computación era "instantánea".
En cambio, en electrónica secuencial el tiempo es esencial. La posición relativa en la
que ocurren los sucesos define la computación. Hay dos tipos de circuitos digitales,
síncronos y asíncronos.

Aunque todos los circuitos a ver en este cursos son de tipo síncrono

35
Son circuitos síncronos aquellos que están gobernados por un reloj central de forma
que todos los sucesos de interés computacional ocurren en los entornos de los pulsos de
reloj. El intervalo entre dos pulsos sucesivos se usa para estabilizar los niveles de
tensión, pero los cambios de estado no se producen hasta que no llega el nuevo pulso.
Más específicamente, la conmutación se produce en los flancos del pulso de reloj,
cuando este pasa de baja a alta (flanco positivo) o viceversa (flanco negativo).

1
RELOJ
(Astable) Ck
0
T = 1/f

Todos los circuitos secuenciales síncronos poseen junto a las entradas necesarias para
realizar su función, una entrada adicional (Ck - clock) para la señal de reloj que es la que
controla los instantes en que se hacen efectivos los cambios que definen la función. La
frecuencia del reloj define la máxima velocidad de operación permitida en un sistema
digital. Cualquier función necesita,al menos, un periodo (dos pulsos sucesivos) para
ejecutarse.

RELOJ Ck
Ck
x CIRCUITO
DIGITAL
z = f(x,y;Ck)
y

Antes de cada subida del pulso de reloj, las señales x e y deben tener valores estables.
Hay un intervalo de seguridad llamado tiempo de asentamiento (setup time, tsu) que
garantiza que las señales de entrada ya han alcanzado su estado estacionario un tiempo
tsu antes de la subida del pulso. De forma complementaria, se define el tiempo de
retención (hold time, th) como el intervalo de tiempo durante el cual las entradas
todavía tienen que permanecer estables después de haberse producido la subida de baja
a alta del pulso de reloj. Si no se cumplen las restricciones de estos tiempos, (tsu y th),
puede producirse un comportamiento inesperado.

tsu th

36
Biestables
Los circuitos biestables son circuitos binarios (con dos estados) en los que ambos
estados son estables de forma que hace falta una señal externa de excitación para
hacerlos cambiar de estado. Esta función de excitación define el tipo de biestable (D, T,
R-S ó J-K).

Clasificación
Asíncronos ⇒ No tienen reloj
Latches ⇒ Activos por nivel
Reloj Þ
Flancos ⇒ Activos por flancos
Master-Slave ⇒ Pulsos

RS ( Set Reset)
Constitución Þ JK
D (Delay)
T (Toggle)

R-S (Reset-Set)

R-S básico

R S
Q Q

Q Q
S R

S Q

R Q

Hay que hallar la expresión lógica que nos relacione el valor de la salida del biestable en
un cierto intervalo de tiempo (Q(t+Dt)) que por simplificación en la escritura
llamaremos Qn+l en función de los valores de las entradas de control (Rn y Sn) y del estado
(salida en el instante actual, o sea, Qn).

Qn+l =f(Rn, Sn; Qn)

Además, vamos a obtener esta función construyendo la tabla de verdad. Es decir,


viendo cuál es el valor estable cuando establecemos como condiciones iniciales los ocho
valores posibles de Rn, Sn y Qn (000, 001, ..., 111).

37
R=0 R=0
Q=0 Q=1
Q=1 Q=0
Estado estable Estado estable

Q=0 Q=1
Q=1 Q=0
S=0 S=0

R S Qn Qn+1 R S Qn Qn+1
0 0 0 0 0 0 1 1

R=0 R=0
Q=0®0®1
Q=1
Q=1®0®0 Q=0
Estado
inestable
® estable
Estado
Estado estable
Q=0®0®1 Q=1
Q=1®0®0 Q=0
S=1 S=1

R S Qn Qn+1 R S Qn Qn+1
0 1 0 1 0 1 1 1

R=1 R=1
Q=0 Q=1®0®0
Q=1 Q=0®0®1
Estado estable Estado
inestable
® estable
Estado

Q=0 Q=1®0®0
Q=1 Q=0®0®1
S=0 S=0

R S Qn Qn+1 R S Qn Qn+1
1 0 0 0 1 0 1 0

R=1 R=1
Q=0®0®0 Q=1®0®0
Q=1®0®0 Q=0®0®0
Configuración Configuración
no permitida no permitida
Q=0®0®0 Q=Q
Q=1®0®0 Q=Q
Q=1®0®0 Q=0®0®0
S=1 S=1

R S Qn Qn+1 R S Qn Qn+1
1 1 0 0 1 1 1 0

R S Qn Qn+1
R S Qn+1
0 0 0 0
0 0 Qn
0 0 1 1
0 1 0 1
0 1 1
0 1 1 1 1 0 0
1 0 0 0 1 1 ?
1 0 1 0
1 1 0 ?
Qn+l = R·S + R·Qn
1 1 1 ?

38
Autómata biestable
01/1

00, 10/0 Q=0 Q=1 00, 01/1

10/0

R-S sincronizada por nivel


En la configuración R-S básica las transiciones de estado pueden ocurrir en cualquier
momento, en función del valor que tomen en ese momento los niveles de tensión en las
entradas de set (S) y reset (R). En este sentido el circuito es asíncrono. Para acotar con
más precisión los intervalos de tiempo en los que pueden ocurrir las transiciones, se
añaden dos puertas AND delante de las NOR junto con una entrada adicional de los
pulsos de un reloj. Así, las entradas a las puertas NOR sólo estarán activas cuando el
pulso de reloj esté en alta y por eso se llama a este circuito biestable R-S sincronizado a
niveles.
S Q
R R’
Q
Ck

Ck R Q

S’ Q
S

Ck

Ck R S Qn+1
0 x x Qn
1 0 0 Qn
1 0 1 1
1 1 0 0
No
1 1 1 permitido

39
R-S sincronizada por flanco

Si el pulso de reloj es muy ancho es posible que se cometan errores debidos a cambios en
el valor de R ó S durante el intervalo de tiempo en el cual el pulso de reloj está en alta.
Para resolver este problema se procura que el pulso de reloj sea muy estrecho y,
además, se usan sólo sus transiciones de baja a alta (o de alta a baja) para definir el
instante en el que se deja actuar a las variables R y S. Decimos entonces que el biestable
R-S está disparado por flancos (positivos, "subidas" o negativos, "bajadas"). Así, como
R y S son asíncronas, lo usual es que los correspondientes niveles de tensión estén
"esperando" a que el pulso de reloj realice una transición para ser operativas,
disminuyendo así la probabilidad de que justo en esa transición se produzca de forma
no deseada otra transición en R ó S.

R R’
Q

Ck’
Ck

S’ Q
Pequeño retardo
S

S Q

Ck

R Q

Ck

Ck’

40
R-S sincronizada por Preset y Clear
En la anterior configuración del R-S los cambios de estado no podían producirse más
que a través de las entradas R y S y de forma síncrona, coincidiendo con el estado de alta
de los pulsos del reloj. Sin embargo, para conseguir una mayor flexibilidad en el diseño
de otros circuitos tales como contadores o registros de desplazamiento, para establecer
condiciones iniciales y para provocar cambios forzados de forma asíncrona, sin
necesidad de coincidencia con los pulsos de reloj, se incluyen dos nuevas entradas
asíncronas adicionales llamadas de preset (puesta a uno) y clear (puesta a cero). Esto se
puede conseguir añadiendo dos puertas OR detrás de las NOR y cerrando ahora los
lazos de realimentación desde estas puertas OR adicionales, tal como se muestra en el
circuito de la figura:
Pr

R R’ Q

Ck

S’ Q
S
Cl

Así, independientemente del valor de las entradas R y S y del reloj y, actuando de forma
prioritaria, siempre que preset pase a alta (Pr = 1), la salida del biestable pasará
también a alta (Q = 1). Inversamente, si clear pasa a alta (Cl = 1), la salida pasará a baja
(Q =0), independientemente también del valor de las otras señales y con prioridad.

Pr Cl Ck R S Qn+1
0 1 x x x 0
1 0 x x x 1
1 1 x x x No permitido

0 0 0 x x Qn
0 0 1 0 0 Qn
0 0 1 0 1 1
0 0 1 1 0 0
0 0 1 1 1 No permitido

Biestables J-K

Un problema importante de los biestables R-S es su ambigüedad ante la configuración


R=S =1, que hacía que la salida Q fuera igual a la Q. Este problema lo resuelve la
configuración J-K haciendo que en este caso (R=S=1) el biestable cambie de estado (Qn+1
= Qn). Así queda perfectamente definido el comportamiento para las cuatro
configuraciones posibles en las señales de control. La entrada J hace la función de la S
("Set", puesta a 1) y la K la de la R ("Reset", puesta a O), de forma que ahora, cuando no
hay pulso de reloj no hay cambios, pero cuando al pulso de reloj está en alta actúan las
entradas J y K. Así:

41
Si J=K=0 ® No cambia de estado ® Qn+1 = Qn

Si J=1y K=0 ® Pasa a 1 ® Qn+1 = 1

Si J=0y K=1 ® Pasa a 0 ® Qn+1 = 0

Si J=K=1 ® Cambia de estado ® Qn+1 = Qn

R’
K
Q J Q

Ck
Ck
K Q
S’ Q
J

Ck J K Qn Qn+1
0 x x x Qn
1 0 0 0 0 Ck J K Qn+1
1 0 0 1 1 0 x x Qn
1 0 1 0 0 1 0 0 Qn
1 0 1 1 0 1 0 1 0
1 1 0 0 1 1 1 0 1
1 1 0 1 1 1 1 1 Qn
1 1 1 0 1
KQn
1 1 1 1 0 J 00 01 11 10

10, 01/1 0 0 1 0 0
J

00, 01/0 J Q=0 Q=1 K 00, 10/1 1 1 1 0 1

K
01, 11/0
Qn+l =( J·S + K·Qn)· Ck
Autómata

42
El problema fundamental del biestable J-K es que cuando J=K=1 y el pulso de reloj está
en alta se produce una situación inestable, con la salida oscilando entre "0" y "1" como
consecuencia de los retardos de propagación de las señales a través de los dos lazos de
realimentación que se cierran sobre las puertas NOR (como en el R-S) y sobre las
puertas AND de entrada.
Configuración “Master-Slave”
Para evitar estos problemas de los biestables J-K disparados a nivel, se usa una
configuración con dos biestables conectados en serie y con relojes complementarios
que interrumpen la conexión lógica entre la salida y la entrada. Es decir, entre la
generación de la orden de disparo (función de las señales de control J, K y Ck) y su
ejecución (función de la salida del primer biestable), que opera en la fase
complementaria del reloj. Así, se rompe la parte interna del lazo de realimentación.

Master R2 Slave
R’ R’’
K Q1
Q

Ck1

Q1
S’ S’’ Q
J
S2

Ck2

Al maestro le entra directamente el pulso de reloj y las señales J y K. Al esclavo le entra


las salidas del primero y el pulso de reloj invertido de forma que nunca pueden estar
ambas secciones facilitadas a la vez. Cuando el pulso de reloj realiza una transición, el
maestro captura los datos presentes en las entradas J y K. A continuación se inhibe y
queda aislado tanto de las entradas como de las realimentaciones de la señal de salida
(Q y Q del esclavo). La desconexión del maestro coincide con la conexión del esclavo de
forma que cualquier cambio que pueda presentarse en la entrada ya no afectará a la
salida.
Biestables T
El biestable T cambia de estado ante cada pulso de reloj. Es el ejemplo que usamos para
introducir la teoría de autómatas al comienzo del tema. Se obtiene, por ejemplo, a partir
de un J-K conectando ambas entradas juntas.

La ecuación lógica de este biestable se puede escribir por simple inspección de los dos
términos mínimos que posee Qn+1 en función de T y Qn. La ecuación lógica de este
biestable se puede escribir por simple inspección de los dos términos mínimos que
posee Qn+1 en función de T y Qn.

Es decir, el biestable T genera un estado de salida que, es el "OR-exclusivo" de la entrada


y el estado anterior. Se dispara siempre que no hay coincidencia entre el estado actual
(Qn) y la entrada (T). Ante un tren de impulsos en su entrada de reloj, cambia de estado
cada nuevo pulso, con T = 1.

43
K R’
T
Q
T Q

Ck C

Q
S’ Q
J

Ck T Qn Qn+1
0 x x Qn Ck T Qn+1
1 0 0 0 0 x Qn
1 0 1 1 1 0 Qn
1 1 0 1 1 1 Qn
1 1 1 0
Qn+l =(T·Qn + T·Qn)· Ck

Autómata
T=1

T=0 Q=0 Q=1 T=0

T=1

Biestables D
D Síncrona por nivel
El biestable D (Delay) representa el retardo. Su salida en cada intervalo coincide con la
entrada en el intervalo anterior. Al igual que en el T, se puede obtener a partir de un R-S
ó un J-K uniendo la entrada D directamente a S ó J y usando un inversor para activar la
R ó la K. La línea D es la línea de entrada de datos al biestable.

Cuando D=1, S = 1 y R=0 y el biestable pasa a alta. Inversamente, cuando D=0, S=0 y
R=1 y el biestable pasa a baja. Al estar unidas R y S a través de un inversor, la
configuración R=S=1, no puede darse nunca. Al estar sincronizado a niveles, el dato
(D=0, D=1) sólo se puede transmitir a la salida durante el pulso de reloj, Ck.

44
D R
R’
Q D Q

Ck
C

Q
S’ Q

Ck T Qn+1 D=1

0 x Qn
D=0 Q=0 Q=1 D=1
1 0 0
1 1 1 D=0
Autómata
Qn+l = Ck · D

D Master-Slave

D R Master Slave
R’ R2 R’’
Q1 Q

Ck Ck Ck

S’’ Q
S’
S S2

D por flancos

Celda de set

Celda de salida
S
Q

Ck

Q
R

D B

Celda de reset
45
DISEÑO SECUENCIAL. CONTADORES Y REGISTROS

Diseño secuencial con biestables D, T y J-K


En la síntesis de un circuito secuencial concreto, el proceso es el inverso ala del análisis.
Ahora el dato, lo que sabemos, es el diagrama de transición de estados que necesitamos
sintetizar. Es decir, las relaciones entre Qn y Qn+1 para todos y cada uno de los
biestables que forman el estado

Diseño con biestables D


Hay que tener en cuenta que en una báscula D el valor de la salida Q sigue siempre al
valor de la entrada D cuando entra el impulsos de reloj. Por lo tanto la entrada “D” será
siempre igual al del valor de la Q final que se quiera obtener.
Ejemplo:
Como tiene dos estados, asociamos S0
1/1 a Q = 0 y S1 a Q = 1. Llamamos x a la
entrada e y a la salida y obtenemos las
tablas de verdad volviendo a escribir la
información contenida en el diagrama
0/0 S0 S1 1/0
de transición de estados teniendo en
cuenta que las transiciones están
marcadas por x/y, que en el caso más
0/0 general es: configuración de
entrada/conjiguración de salida

Tabla de verdad

Variable Estado Estado Variable Entada


entrada inicial final salida biestable

x Qn Qn+1 y D
0 0 0 0 0
0 1 0 0 0
1 0 1 1 1
1 1 1 0 1

x
D Q
D=x y = x·Q
Ck

Q y

46
Diseño con biestables T
Hay que tener en cuenta que la respuesta de un biestable T es:

Entrada “T” Salida


0 La salida no cambia
1 La salida bascula
Ejemplo:

0/1

1/0 S0 S1 1/0

0/0

Tabla de verdad

Variable Estado Estado Variable Entada


entrada inicial final salida biestable

x Qn Qn+1 y T
0 0 1 1 1
0 1 0 0 1
1 0 0 0 0
1 1 1 0 0

T=x y = x·Q = x·Q = x + Q

x y
Q
T

Ck
Q

47
Diseño con biestables J-K
La respuesta de un biestable J-K es:

Respuesta
Estado inicial Estado final del J K
biestable
No cambiar 0 0
0 0 o
poner a 0 0
0
1
*
Cambiar 1 1
0 1 o
poner a 1 1
1
0 *
Cambiar 1 1
1 0 o
* 1
poner a 0 0 1
No cambiar 0 0
1 1 o
* 0
poner a 1
1 0
Ejemplo:
0/1

1/0 S0 S1 1/0

0/0

Tabla de verdad

Variable Estado Estado Variable Entada Entada


entrada inicial final salida biestable biestable
x Qn Qn+1 y J K
0 0 1 1 1 *
0 1 0 0 0 *
1 0 0 0 * 0
1 1 1 0 * 1

y=x·Q J=x K=x

x y
J Q

Ck

K Q

48
Procedimiento general de sintesis

P.1. Descripción en lenguaje natural de forma clara, completa, precisa e inequívoca de


la función que queremos sintetizar.

P.2. Representación de esa descripción en términos de autómatas finitos,


especificando los espacios de entradas y salidas, el espacio de estados internos
necesarios y las funciones de transición de estados y producción de salidas a partir de
las entradas y los estados.

P.3. Minimización (en su caso) del número de estados. En un sistema secuencial hay
tantos estados distintos como historias de estímulos distinguibles. Y no hacen falta más
para duplicar la función. Si existen estados redundantes, conviene eliminarlos para
conseguir una síntesis mínima sobre clases de equivalencia de estados.

P.4. Selección de biestables (D, T, J-K) y cálculo de las funciones de excitación


correspondientes.

P.5. Asignación de estados. La asignación de estados es el procedimiento mediante el


cual se hacen corresponder biestables específicos a cada uno de los bits resultado de la
codificación en binario de los estados del autómata. Por ejemplo, podemos usar el
siguiente procedimiento.

P.5.1. Sea A el número de estados del autómata. Para su síntesis necesitamos un


número de biestables, N, tal que 2N ³ A ³ 2N-1.

P.5.2. Entonces, ordenamos de forma arbitraria esos estados desde So=0 hasta
N
SA-1=2 -1 y rescribimos en binario el subíndice que identifica al estado:

S0 = (00... 0), S1 = (00... 1), ... , SA-1 = (11...1)

P.5.3. Finalmente elegimos un biestable, (Qo, Q1, ..., QN-1), para cada bit del
estado.

P.5.4. Aplicamos los algoritmos de síntesis para obtener las funciones yk(t) =
Dk(t) de excitación de los N biestables D, a partir de las matrices de transición del
autómata.

P.6. Obtenemos de las funciones de excitación, correspondientes a cada uno de esos N


biestables.

Ya tenemos la descripción formal (P.2), la minimización (P.3), la selección del tipo de


biestable con el que queremos realizar la síntesis (P.4) y la asignación de los bits que
definen el estado (P.5). La última etapa del diseño es la obtención de las funciones de
excitación (Di, Ti ó Ji-Ki), de los N biestables, (Qo,Q1, ..., QN-1) que definen el estado del
autómata.

49
Representación, síntesis y análisis
En la figura, ya vista en el tema anterior, vimos la arquitectura general de un circuito
secuencial basada en el uso de dos PLDs, uno para la producción de los nuevos estados a
partir de las entradas y el estado actual (PLD-l) y otro para producir las salidas a partir
de las entradas y el estado (PLD-2). Este segundo circuito es de naturaleza
combinacional y no usa los biestables D de sus macroceldas de salida, por lo que no
vamos a detenemos ahora en su diseño.

x0 x1 ... xM-1

PLD - 1

Función f

D0 D1 ... DN-1

Reloj Dt Dt ... Dt

Q0 Q1 ... QN-1(t) = DN(t-Dt)

PLD - 2

Función g

y0 y1 ... yN-1

Vamos a centramos en el primer PLD que es el que se encarga de la síntesis de las


transiciones entre estados. Es decir, de la componente secuencial del autómata . Su
arquitectura es la que reproducimos en la figura (a). Por razones pedagógicas hemos
separado los retardos de la parte combinacional previa pero ya sabemos que si usamos
un PLD descrito en un tema anterior, sus macroceldas de salida (figura b) incluyen un
biestable D y dos multiplexos para controlar la salida al exterior del circuito y la
realimentación. Suponemos entonces las configuraciones de control adecuadas en esos
multiplexos (00 en el primero y 0 en el segundo) para que lo que sale de la PAL es el
estado Q del biestable O y, a la vez, se realimenta para presentar a la entrada Q y Q ,junto
a otras entradas externas y otras realimentaciones del resto de las macroceldas.

50
(a) x0 ... xM-1

Q0 ... QN-1

Q0 Q0 ... QN-1 QN-1 ... x0 x0 ... xM-1 xM-1

a2M+N-1 a2M+1 a2M a2M-1 a1 a0

... ...

DN-1 D0
D D N macroceldas
...
Q Q

QN-1 ... Q0

(b) macroceldas

10
RA
(reset síncrono)
11
MUX

.
. D Q 00 E/S
. Q 01
Ck
(reloj)
PS
(Preset síncrono)

0
MUX

S0 S1

51
Como tenemos M variables externas y, en general también tenemos la realimentación
de las N macroceldas, las funciones de excitación de los N biestables D son funciones
universales de (N+M) variables lógicas:

Dk(tn) = fk [xo(tn-1), ... ,xM-1(tn-1); Qo(tn-1), ... ,QN-1(tn-1)] k =0,1, ... , N-1

Cada biestable D (cada macrocelda) representa una variable de estado, de forma que la
N
PAL es de hecho un procesador paralelo en el que la síntesis de un autómata de 2
estados se realiza yuxtaponiendo N autómatas de dos estados, uno por cada bit de la
palabra que representa el estado. La programación del autómata se realiza cargando en
el PLD la configuración de coeficientes {ai} correspondientes a los términos mínimos
que participan (para un autómata concreto) en las funciones de excitación, Dk(tn), de los
biestables D de sus N macroceldas de salida. La reprogramación del autómata (su
reconfiguración) puede realizarse cuantas veces sea necesario cargando los nuevos
valores de los coeficientes {ai}.
Representación

Dado un problema, se obtiene la descripción del circuito que necesitaríamos en


M-1
términos del número de configuraciones de entrada necesarias, {Xm }, (m = 0, 1, ..., 2 ),
del número de estados necesarios, {Si}, (i = 0, 1, ..., 2N-1), y de las transiciones entre estos
estados para cada uno de los valores mutuamente exclusivos de las configuraciones de
entrada Xm . Es decir, buscamos reglas de la forma: (Si, pasa a Sj bajo Xm):
Xm
Si ¾® Sj

Una vez elegidos los biestables D, la asignación de estados es automática a través de la


codificación en binario del subíndice, sólo nos falta obtener las matrices de transición
m
de estados, {Tij }, que es la representación formal del problema. Como para A estados
necesitamos N biestables (2 ³ A), las matrices de transición serán de dimensión 2 ·2 .
N N N

M-1
Como hemos necesitado {Xm} configuraciones de entrada (m = 0, 1, ..., 2 ),
necesitaremos para su síntesis M variables lógicas (xo,x1, ..., xM-1) y por consiguiente
M
tendremos, en general, 2 matrices de transición distintas, una para cada configuración
de entrada.
Los elementos de estas matrices booleanas, {Tijm}, son ti = 1 si bajo Xm el autómata pasa
de Si a Sj y tij = 0 si no se produce esa transición. Como bajo cualquier entrada Xm, el
autómata tiene que realizar alguna transición, estas matrices sólo tienen un uno por
fila. Además como las configuraciones de entrada son distintas y mutuamente
exclusivas, podemos usar una representación más compacta mediante una matriz
paramétrica, llamada matriz funcional, M(Xm), resultado de multiplicar cada matriz
m
de transición, {Tij },por la configuración de entrada que la produce, (Xm), y sumar estos
productos. Así, la matriz funcional será:
2M - 1
M(Xm) = å Tij ·Xm
m

m=0

Obsérvese que esta matriz es una matriz de representación. Es decir, es una forma
compacta de representar el conjunto de expresiones lógicas que controlan todas y cada
una de las transiciones de estado para todas y cada una de las posibles configuraciones
de entrada.

52
Cada configuración de valores en las variables de entrada, Xm, selecciona una matriz de
m
transición, {Tij },que describe los cambios de estado que se producen cuando dejamos
esa configuración de entrada constante. La figura resume el proceso de representación.

Xm

Tijm

Xm

Selecciona Sj
el plano

Estados finales
Si
Estados S0 S1 S2 S3
iniciales S0 0 0 1 0 Sj
S1 0 1 0 0
Plano de S2 1 0 0 0
trabajo S3 0 0 0 1 Transición S0 ® S2

bajo Xm

Si

Síntesis
Si hemos hallado la representación de un autómata de 2N estados y 2M configuraciones
de entrada, {Xm}, el siguiente paso es la obtención de las funciones de excitación,
{Dk(t)}, de los N biestables D que sintetizan al autómata. El algoritmo de síntesis y
análisis de autómatas modulares se debe a R. Moreno Díaz y es el siguiente:

2N-1 2N-1
Dk(t) = å { åM (Xij m )·Sj} = å åM (X ij m )·Q0a·Q1b· ... QN-1f
i=0 j i=0 j

La suma sobre el subíndice j se extiende a todos los estados, Sj, pertenecientes al


subconjunto de estados, Sk, en los que la salida del biestable correspondiente, Qk, está
en alta:
j | Sj Î{Sk | Qk = 1}

53
El estado inicial, Si =Q0a·Q1b· ... QN-1f, recorre todos los valores posibles de i, desde cero
N
hasta 2 -1 puesto que en principio desde cualquier estado inicial se puede llegar a un
estado final, Sj Los exponentes de las variables de estado (a, b, ... , f) son las
codificaciones en binario del estado Si. Conviene recordar que hemos usado la notación
de Gilstrap en la que:
a a
Qi = Qi si a =1 y Qi = Qi si a =0

Ejemplo
Supongamos que queremos sintetizar un autómata de dos estados (Qo = 0, Qo = 1) y una
entrada (xo), cuya matriz funcional es:
Qo = 0 Qo = 1

Qo = 0 0 1
M(xo) =
Qo = 1 xo xo

Es decir, si está en Qo = 0, al siguiente pulso de reloj pasa a Qo = 1, independientemente


del valor de la entrada. En cambio, si está en Qo = 1, pasará a Qo = 0 si la entrada está en
alta (xo= 1) ó se quedará en Qo = 1 si la entrada está en baja. La suma de los elementos de
una fila de la matriz debe ser igual a 1.

Los caminos para llegar a Qo = 1 son los de la segunda columna, es decir cuando el
estado anterior era Qo = o para cualquier valor de la entrada y cuando el estado anterior
es Qo = 1, para xo= 0 (xo). La función de excitación será:

D0 = Qo·1 + Qo · xo= Qo + Qo· xo

El circuito por lo tanto será:

x0 D0 Q0

Ck

Q0

Análisis
El análisis consiste en obtener la matriz funcional y/o el diagrama de etapas a partir de
un circuito determinado.

Para estudiar el procedimiento vamos a partir del ejemplo:

Analizar el circuito secuencial de la figura, presentando el resultado del análisis


mediante las expresiones lógicas correspondientes, la matriz funcional y el diagrama
de transición de estados.

54
x0

x1

QB

DB
QA
QB
DA
QA

En primer lugar obtendremos las funciones correspondientes a cada variable (Di e “y”)
a partir del esquema suministrado:

D A = x1 + Q A DB = x1·x2·QB + (x1 + x2)·QB y = (QA + QB)·x2 + x1

Matriz funcional
Estado inicial Estado final

QBQA 00 01 10 11

00 m00 m01 m02 m03

01 m10 m11 m12 m13

10 m20 m21 m22 m23

11 m30 m31 m32 m33

mij Þ celda de la fila i y columna j

El cálculo de cada una de las celdas se efectuará:

1. La función de la fila de cada celda se obtendrá de sustituir las Qm por su valor


correspondiente a las variables del estado inicial.
2. La función de la columna de cada celda se obtendrá de sustituir las Qm por su valor
correspondiente a las variables del estado final

DA = x1 + QA DB = x1·x2·QB + (x1 + x2)·QB

55
QBQA = 00

Estados iniciales
DA = x1 + QA= x1 + 0 = x1
DB = x1·x2·QB + (x1 + x2)·QB = x1·x2·0 + (x1 + x2)·1 = (x1 + x2)
Estados finales

m00 = DB·DA = (x1 + x2)·x1 = x1· x1· x2= x1· x2

m01 = DB·DA = (x1 + x2)·x1 = x1· x1· x2= 0

m02 = DB·DA = (x1 + x2)·x1 = x1 ·x1 + x1 ·x2 = x1· x2

m03 = DB·DA = (x1 + x2)·x1 = x1 ·x1 + x1 ·x2 = x1

QBQA = 01

Estados iniciales
DA = x1 + QA= x1 + 1 = 1

DB = x1·x2·QB + (x1 + x2)·QB = x1·x2·0 + (x1 + x2)·1 = (x1 + x2)


Estados finales

m10 = DB·DA = (x1 + x2)·1= 0

m11 = DB·DA = (x1 + x2)·1= (x1 + x2)= x1· x2

m12 = DB·DA = (x1 + x2)·1= 0

m13 = DB·DA = (x1 + x2)·1 = x1 + x2

QBQA = 10
Estados iniciales
DA = x1 + QA= x1 + 0 = x1
DB = x1·x2·QB + (x1 + x2)·QB = x1·x2·1 + (x1 + x2)·0 = x1·x2
Estados finales

m10 = DB·DA = x1·x2·x1= (x1+x2)·x1= x1·x2

m11 = DB·DA = x1·x2·x1= (x1+x2)·x1= x1

m12 = DB·DA = x1·x2·x1= x1·x2

m13 = DB·DA = x1·x2·x1= 0

56
QBQA = 11
Estados iniciales
DA = x1 + QA= x1 + 1 = 1

DB = x1·x2·QB + (x1 + x2)·QB = x1·x2·1 + (x1 + x2)·0 = x1·x2


Estados finales

m10 = DB·DA = x1·x2·0= 0

m11 = DB·DA = x1·x2·1= x1+x2

m12 = DB·DA = x1·x2·0= 0

m13 = DB·DA = x1·x2·1= x1·x2

Matriz funcional
Estado inicial Estado final

QBQA 00 01 10 11

00 x1·x2 0 x1·x2 x1

01 0 x1·x2 0 x1 + x2

10 x1·x2 x1 x1·x2 0

11 0 x1 + x2 0 x1·x2

Se puede comprobar que la matriz es correcta ya que la suma de cada línea da como
resultado el nivel “1”

Contadores
Los contadores son circuitos secuenciales capaces de recorrer una secuencia
previamente especificada de estados. Reciben un tren de impulsos y responden con una
sucesión de estados correspondientes a la representación en binario del número de
impulsos recibidos desde que se inició el ciclo.
Tipos de contadores
Asíncronos: Los biestables que componen el contador no cambian de estado
exactamente al mismo tiempo, dado que no comparten el mismo impulso de reloj.

Síncronos: Hay una relación temporal fija entre sí. Todas los biestables que
componen el contador reciben en el mismo instante la señal de reloj y por lo tanto
cambian (si han de cambiar) en el mismo instante.

57
CONTADORES

Asíncronos Síncronos

No Reversible Reversible Reversible No Reversible


(arastre paralelo)

Binario Divisores Arrastre Serie Arrastre Paralelo


N
(divisores por 2 ) (Por Q ¹ 2N)

El carácter reversible o no reversible tiene que ver con la posibilidad de recorrer el ciclo
de contar "hacia arriba" o "hacia abajo", dependiendo del valor de una variable de
control. Es decir, de pasar de S1=001 a S2= 010 ó al revés.

Decimos que un contador asíncrono es binario cuando le dejamos terminar su ciclo


N
máximo (2 para N bits). En cambio, decimos que es un divisor por Q (menor y distinto
N
de 2 ) cuando se corta el ciclo de incrementar el contenido del contador en ese valor Q
(5, 7, 12, etc.), devolviendo desde aquí al contador a su estado inicial (00 ... 0).

Finalmente, dentro de los síncronos, el arrastre puede ser serie o paralelo, dependiendo
de la lógica combinacional complementaria. Lógicamente, los de arrastre paralelo son
más rápidos.

Contadores asíncronos
La forma más sencilla de diseñar un contador asíncrono binario de tres bits, por
ejemplo, es usar tres biestables J-K con J=K=1 (es decir, actuando como T y con T=1) y
usar la entrada de reloj como entrada general al contador, es decir como variable lógica
cuyo número de impulsos se desea contar.

Después, la salida Q del primer biestable (Qo) se conecta a la entrada de reloj del
segundo y así sucesivamente. Si suponemos que los biestables J-K usados son de los
que se disparan con la bajada del pulso de reloj (transición de alta a baja), el circuito del
contador y el cronograma correspondiente son los que se muestran en la figura.

Q0 Q1 Q2

Pr Q Pr Q Pr Q
J J J
Ck Ck Ck Ck

K Q K Q K Q
Cl Cl Cl

+
-

58
Ck

Q0

Q1

Q2
0 1 2 3 4 5 6 7 0

Contadores descendentes:
Para configurar contadores con sentido descendente hay dos posibilidades:

1. Tomar un contador ascendente y tomar las salidas de la Q.


2. Tomar la entrada de reloj de cada biestable de la salida Q del biestable anterior
Contadores reversible
x

Pr Q Pr Q Pr Q
J J J
Ck Ck Ck Ck

K Q K Q K Q
Cl Cl Cl

1 1 1

Q0 Q1 Q2

Pulsos

Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

Q0

Q1 0 o 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0

Q1

Q2 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0

0 1 2 3 4 5 6 7 0 1 2 3 4 3 2 1 0
x = 1 Þ cuenta hacia arriba x = 0 Þ cuenta hacia abajo

Contador asíncrono reversible de 4 bits

59
Para x=1 seleccionamos la entrada de reloj de cada biestable de la salida Q de la báscula
anterior, por lo tanto se comporta como un contador ascendente.

Para x=0 seleccionamos la entrada de reloj de cadabiestable de la salida Q de la báscula


anterior, por lo tanto se comporta como un contador descendente.

Contadores de diferentes bases

Hay dos formas de implementar contadores binarios de diferentes bases:

1. Resetear todo el contador, mediante el “clear”, cuando el número binario al que llega
contando es el de la base que se quiere conseguir. Ello provoca la puesta a cero del
contador y el inicio de un nuevo ciclo.
Q0 Q1 Q2 Q3

Pr Q Pr Q Pr Q Pr Q
J J J J

Ck Ck Ck Ck Ck

K Q K Q K Q K Q
Cl Cl Cl Cl
1 1 1 1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Pulsos

Q0

Q1

Q2

Q3

Clear= Q0· Q3

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 0001 0010 0011 0100 0101 0110
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6

60
2. Poner a “1” todas los biestables del contador mediante el “preset” cuando se llega al
número de la base al que se quiere llegar menos 1 (base-1). Ello provoca que el contador
llega al máximo de su capacidad de cuenta y de esta manera con el siguiente impulso de
reloj se provoca su puesta a “0” y consiguiente inicio de ciclo de cuenta.

Dt

Pr Q Pr Q Pr Q Pr Q
J J J J

Ck Ck Ck Ck Ck

K Q K Q K Q K Q
Cl Cl Cl Cl
1 1 1 1

Q0 Q1 Q2 Q3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Pulsos

Q0

Q1

Q2

Q3

Preset

0000 0001 0010 0011 0100 0101 0110 0111 1000 1111 0000 0001 0010 0011 0100 0101 0110
0 1 2 3 4 5 6 7 8 15 0 1 2 3 4 5 6

61
Contadores sincronos
Inconvenientes de los contadores asíncronos

− La frecuencia máxima de trabajo depende de la suma de los retardos que


introducen los biestables que lo componen.

− Los estados estables no se alcanzan siempre al mismo tiempo

Estos inconvenientes se solucionan utilizando contadores síncronos, en los cuales el


reloj de entrada se conecta a la entrada de reloj de todas los biestables, de forma que la
transición de ellas se produce en función de los valores que se introduzcan en sus
entradas de datos. De esta manera cuando el contador adquiere un estado (estable)
posiciona las entradas de los biestables antes de que se produzca la entrada del
siguiente ciclo de reloj. Cuando esta aparezca todas, los biestables comenzarán
simultáneamente el proceso de cambio (si es que se ha de producir según los valores de
sus entradas).

El proceso de diseño de los contadores síncronos no deja de ser un caso concreto del
diseño de circuitos secuenciales con biestables estudiado anteriormente. Ya que
partimos de un diagrama de estados en el que se representan los diferentes estados de
cuenta del contador y debemos de seguir los pasos de diseño analizados en los
apartados anteriores.

A pesar de lo indicado se puede configurar un contador binario natural síncrono de una


manera un tanto entandar. Se pueden implementar con biestables J-K con las dos
entradas unidas a “1” (biestable T) de forma que los relojes de todas los biestables están
unidos entre sí y a la señal del reloj de entrada.

− En el caso de un contador ascendente: cada una de las entradas JK de cada


biestables a una puerta “AND” de todas las salidas Q de los biestables de pesos inferior.

− En el caso de un contador descendente: cada una de las entradas JK de cada


biestables a una puerta “AND” de todas las salidas Q de los biestables de pesos inferior.

Contador sincrono con acarreo paralelo

Q0 Q1 Q2

Pr Q Pr Q J Pr Q
J J

Ck Ck Ck Ck

K Q K Q K Q
Cl Cl Cl
1

62
Este contador se puede transformar en reversible usando un multiplexor 2 a 1 y ambas
salidas Q y Q.
Q0 Q1 Q2

Pr Q Pr Q Pr Q
J J J
Ck Ck Ck Ck

K Q K Q K Q
Cl Cl Cl
1

x x = 0 (cuenta atrás)

x = 1 (cuenta adelante)

Registros de desplazamiento
Un registro de desplazamiento de N bits es un circuito secuencial consta de
biestables D conectados en cascada, un reloj y distintas facilidades de carga y descarga
en serie y en paralelo. En su esquema básico, la información entra por el primer
biestable y es transferida a los siguientes ante sucesivos pulsos de reloj de forma que de
cada biestable D pasa al siguiente su contenido. Finalmente, el contenido del último
biestable se pierde, o entra a realimentación.

El contenido del primer biestable se obtiene en general mediante una función lógica de
la entrada externa, x, y del estado de todos los biestables (Qo, Q1, ..., QN-1), de forma que

DN-1(t) = QN-2(t - Dt)


DN-2(t) = QN-3(t - Dt)

D0(t) = f [x(t - Dt);Q0(t - Dt), Q1(t - Dt), ... ,QN-1(t - Dt)]

Como se observa en la figura:

Q0 Q1 ... QN-1

Pr Q Pr Q Pr Q
D D D

Ck Ck Ck
...
Q Q Q
Cl Cl Cl

Ck

Q0 Q1 ...
QN-1
f (x;Q0, Q1, ... ,QN-1)

63
Los registros de desplazamiento son un caso particular de circuito secuencial en el que
se fuerza la conectividad de todos los biestables menos la del primero que admite datos
externos directamente o a través de una función de realimentación. En las aplicaciones
más frecuentes, esta función de realimentación no existe o se limita a dejar circular los
datos, de forma que el registro de desplazamiento actúa como una memoria.

Las facilidades adicionales que incluyen las soluciones integradas permiten clasificar a
los registros de acuerdo con la forma en que reciben y entregan los datos. Así tenemos:

Entrada serie / Salida serie Entrada serie / Salida paralelo

Entrada paralelo / Salida serie Entrada paralelo / Salida paralelo

Funcionamiento de un registro de desplazamiento


La implementación de los registros parte de dos premisas elementales:
1) Estarán compuestos por tantas básculas D como bits queramos almacenar o
manipular.
2) Según el modo de carga o desplazamiento:
a) En el caso de una entrada paralelo, cada bit de entrada que queramos
introducir se deberá conectar a cada una de las entradas de cada báscula del registro.
b) En el caso de una entrada serie o un desplazamiento, cada entrada de cada
báscula deberá ir conectada a la salida de la báscula inmediatamente inferior y de la
cual deberá recoger el bit que se quiere desplazar.

Registro de desplazamiento con entrada serie/salida paralelo

Entrada
D D D D
de datos

Ck Ck Ck Ck

Ck

Q0 Q1 Q2 Q3

64
Entrada
0 0 0 0
D D D D Q3
de datos

Ck Ck Ck Ck

Inicialmente el
registro esta a
0000 (Clear)

Ck

0 0 0 0
Primer bit de D D D D Q3
datos = 0
Ck Ck Ck Ck
Después del
primer impulso
de reloj (Ck1)

Ck1

Segundo bit de
1 0 0 0
D D D D Q3
datos = 1

Ck Ck Ck Ck
Después del
segundo impulso
de reloj (Ck2)

Ck2

Tercer bit de
0 1 0 0
D D D D Q3
datos = 0

Ck Ck Ck Ck
Después del
tercer impulso
de reloj (Ck3)

Ck3

Cuarto bit de
1 0 1 0
D D D D Q3
datos = 1

Ck Ck Ck Ck
cuarto impulso
de reloj (Ck4) el
número completo está
almacenado en el registro
Ck4

65
Registro de desplazamiento SN74195 con posibilidad de entrada
serie o paralelo y salida serie y paralelo

Entrada
Serie Entrada Paralelo

J K A B C D

SH/LD

Ck

Clear
RA Cl QA RB Cl QB RC Cl QC RD Cl QD

Ck Ck Ck Ck

SA QA SB QB SC QC SD QD

QA QB QC QD QD

Salidas Paralelo

El desplazamiento y la función de carga serie o carga en paralelo están controladas por


un multiplexo, como en el caso de los contadores síncronos reversibles. El borrado se
realiza directamente a través de las entradas de reset y la función D de los biestables se
consigue a partir de R-S conectados a través de un inversor. Veamos con más detalle el
significado funcional de los distintos terminales.

El terminal de clear sirve para poner a cero todos los biestables. Está activo en baja. El
registro es síncrono y los cambios de estado se producen en las subidas del reloj. La otra
entrada de control es Shift/Load (SH/LD). Cuando está en baja la carga del registro se
realiza en paralelo a través de las entradas A, B, C y D. Si está en alta, la carga se realiza
en serie a través de las entradas J y K .

Para que se inicie el proceso de carga en paralelo, la entrada SH/LD debe ponerse a 0 y
clear debe estar a 1. Los valores que se quieren cargar deben estar en A, B, C y D y entran
a la R y S del biestable correspondiente a través de las puertas NOR de su multiplexo. Al
tener S = R, los biestables actúan como D y transmiten estos valores a sus salidas
haciendo QA = A, QB = B, QC = C y QD=D.

66
Los biestables pasan a estos valores en el instante en el que, estando SH/LD en 0, el
reloj pasa a alta. Estos valores se mantienen durante todo un periodo del reloj. Si antes
de pasar todo el periodo del reloj, existiera un cambio en SH/LD , manteniéndose en
baja las entradas serie (J ,K ), cada biestable transferiría su contenido al biestable
siguiente, desplazándose la información que hemos cargado. Cada nuevo pulso
desplaza una posición la información cargada de forma que tras el cuarto pulso, todos
los biestables estarán a 0. Se termina así el proceso de conversión paralelo-serie.

Veamos ahora qué pasa con la carga serie. Se facilita con SR/LD en alta y se controla con
(J, K). Si previamente a la carga serie, mediante c!ear, hemos puesto a cero todas las
salidas, con (J=1, y K =1), ponemos QA = 1, mientras que QB = QC = QD = 0, que es el valor
que tenían antes. A partir de aquí, si se pasan J y K a 0, el 1 cargado en QA se irá
transfiriendo a los siguientes biestables, en los sucesivos pulsos de reloj.

Si J = 1 y K = 1, la salida QA pasa a uno.

Si J = 1 y K = 0, QA(t) = QA(t - Dt) y si J = 0 y K = 1, tenemos QA(t) = QA(t-Dt). Es decir, la


carga serie se realiza a través del biestable A que pasa a 0, pasa al, mantiene su estado
anterior, QA(t-D t), ó lo invierte, QA(t-D t), dependiendo de los valores de las variables de
control J y K .

Tabla de control de función

Entradas Salidas
Serie Paralelo
Clear SH/LD Ck
J K A B C D QA QB QC QD QD
L x x x x x x x x L L L L H
H L x x a b c d a b c d d
H H L x x x x x x QA0 QB0 QC0 QD0 QD0
H H L H x x x x QA0 QA0 QBn QC0 QC0
H H L L x x x x L QAn QBn QC0 QC0
H H H H x x x x H QAn QBn QC0 QC0
H H H L x x x x QAn QAn QBn QC0 QC0

67
TEMPORIZADORES Y RELOJES

Circuitos de tiempo
Temporizador elemental (Monoestable): Posee un estado estable (el de baja) y
otro inestable en alta, que es la que define la duración del pulso que posee una duración
predeterminada. Se usa como temporizador.

v(t)
Duración controlable

t
1

0
t

Oscilador digital elemental (Astable): Genera una onda cuadrada o un tren de


impulsos de frecuencia controlable. Se llama astable ya que ninguno de los dos estados
(alta y baja) es estable, por lo tanto conmuta generando un tres de impulsos de
frecuencia controlable.

v(t)
Periodo (T) controlable

T
1

0
t1 t2 t
Duración del pulso t1 controlable

Formas de onda compuestas: Es difícil que una aplicación exija sólo un tren de
impulsos (astable) o un pulso de duración controlada (monoestable). Lo habitual es
que sean necesarias formas de onda más complejas. En general, para la síntesis de estas
señales compuestas se usan composiciones de monoestables y astables obtenidas a
partir de temporizadores programables.

Astable

Monostable 1 Monostable 2
Monostable 1

vo(t)
Monostable 2
Astable

Salida vo(t)

68
Vcc
Monostables
R
1 C
vi 4
A B v0
2 3

vi
1
t æ -
t
ö V -
t
V = VCC × ç 1 - e RC ÷ Þ = 1 - e RC Þ
è ø VCC
2
-
t
V t æ V ö
Þe RC
= 1- Þ- = ln ç 1 - ÷
t VCC RC è VCC ø

t æ V ö
v0
t = - RC × ln ç 1 - ÷
è VCC ø
4
t

Inicialmente el condensador está descargado ya que la entrada 1 y la salida 4 están a 0


(como puede apreciarse en los diagramas de tiempos) y en la salida 2 habrá un “1” y
como el otro extremo 3 está a Vcc no habrá caída de tensión en extremos del
condensador y estará descargado. La tensión en el punto 3 será 1, corroborando esto el
nivel 0 de la salida 4.

Cuando se introduce un pulso 1 por la entrada 1, la salida 2 se pone a 0, provocando que


la tensión en el punto 3 sea 0, ya que el condensador todavía está descargado, este nivel
provocará que el nivel en el punto 4 sea 1, reforzando esto un nivel 1 en la entrada de A
aunque se elimine el impulso introducido en la entrada 1.

Al haber un nivel 0 en el punto 2, habrá una diferencia de potencial en la célula RC, que
provocará una corriente por el condensador, una progresiva carga en éste y un aumento
progresivo de su caída de tensión y por tanto de la tensión en el punto 3. Mientras esta
tensión sea inferior al nivel de tensión VOH (tensión mínima de entrada para considerar
nivel lógico 1), se tomará como nivel lógico 0 y se mantendrá el estado mencionado.

Cuando la tensión en el punto 3 sobrepase VOH debido a la carga del condensador, se


tomará como nivel lógico 1, en la salida 4 habrá un nivel 0, que junto con el 0 de la
entrada 1 provoca que en el punto 2 haya un 1, apareciendo dicho 1 también en el punto
3 y un 0 en el 4, estando de esta manera en el estado inicial (estable) hasta que se vuelva
a introducir un nuevo pulso de entrada.

El tiempo que el monoestable está en el estado estable (1 de salida) dependerá del valor
de la resistencia y condensador de la célula RC.

69
Amplificador operacional
Funcionamiento: Siempre que la tensión en la entrada “+” sea superior a la de la
entrada “-“, en la salida aparecerá una tensión positiva. Al revés, cuando la tensión en la
entrada “+” sea inferior a la de la entrada “-“, en la salida aparecerá una tensión negativa
o cero voltios, según la alimentación del comparador.
Astables
El principio de diseño se basa de nuevo en el proceso de carga y descarga de un
condensador externo, C, a través de una resistencia, R, hacia los valores extremos de la
tensión de alimentación. La figura muestra el circuito y las formas de onda
correspondientes al diseño de un astable usando un amplificador operacional
v0 (t)

+Vcc
R
t
C
+Vcc -Vcc
v1
-
v0 (t) v2 (t)
v2
+
R2 -Vcc

R1
t

v2 (t)
+Vcc
Al igual que en los otros circuitos binarios,
siempre podemos usar inversores
t
integrados encualquier tecnología para
realizar circuitos astables añadiéndole la
red R-C externa. El principio de -Vcc
funcionamiento de estos astables es la
detección del potencial umbral de las
puertas en los procesos de carga de un
condensador que experimenta así un
cambio brusco en el potencial de sus 1
extremos. La figura muestra una
t
configuración posible.

2
2 3 1
A B v0 t

3
C
t

70
Cuando la señal de salida del inversor B está en alta, su entrada está en baja y el
condensador C está cargado positivamente y la entrada al inversor A es alta. Por
consiguiente su salida es baja, de forma que el condensador posee una vía de descarga
hacia tierra a través de R. La descarga de C (forma de onda 2 de la figura) continúa hasta
que la tensión en la entrada de la puerta A pasa por su valor umbral, pasando la salida de
A a alta y la de la puerta B a baja. Se inicia así el proceso inverso de carga de C hasta el
siguiente paso por la tensión umbral de la puerta A.

Circuitos de tiempo tipo 555


Estos circuitos de tiempo son capaces de actuar como monoestable y como astable con
duración de pulso y frecuencia de oscilación controlables, realizando también
funciones de modulación en anchura de impulsos, detección de pulsos omitidos, etc ...
La figura muestra el diagrama funcional del temporizador 555.
Vcc Reset Descarga
8 4 7

Umbral 6 - Q
3
5 + R
2/3 Vcc SALIDA

R
G
Q
1/3 Vcc - S
Disparo 2 +

555
R

1 Tierra

Terminal Función

1 Tierra o masa

8 VCC Tensión de alimentación

3 Salida
Disparo: Sensible a VCC/3 de forma que si V < VCC/3 el punto S será un 1 y la salida también.
2 Esto producirá siempre que la señal R sea 0, ya que predomina el reset sobre el set.
Umral: Sensible a 2VCC/3 de forma que si V < 2VCC/3 el punto Rnserá un 0 y por lo tanto el
6 biestable RS estará a 0 independiente del valor de S ya que predomina el reset sobre el set
Control: Variando la tensión exteriormente varían los umbrales de los puntos 6 y 7. El
5 umbral alto será el valor de la tensión en el punto 5 y el umbral bajo será siempre la mitad de
la tensión de control
4 Reset resetea el 555 exteriormente
Descarga: Cuando en la salida aparece un 0 en la entrada del transistor aparece un 1 que
7 puede provocar la descarga del condensador si se realizan las conexiones pertinentes de
acuerdo con la utilidad

71
Monostable
+Vcc
RA

8 4 7

5 555 3 v0

C C*

En el modo monoestable, el terminal 7 se une al terminal 6, el 4 al 8 y entre el terminal 8


y el 1 se introduce el partidor clásico de todos los monoestables con RA y C. Inicialmente,
el condensador C está descargado debido al transistor de descarga. Al aplicar un
impulso negativo en el terminal de disparo, cuando el potencial de este terminal (2) cae
por debajo de la tensión de referencia del segundo comparador (VCC/3), este
comparador cambia de estado y arrastra con él al biestable que a su vez pasa al corte al
transistor, desconectando el terminal 7 y permitiendo la carga del condensador. A su
vez el biestable pasa a alta la salida (terminal 3).

Una vez que el biestable ha sido disparado por una señal de entrada, no se puede
disparar de nuevo hasta que no finalice el ciclo. La salida está en alta hasta que en el
proceso de carga (con una constante de tiempo T = RA·C) la tensión del condensador
alcanza el otro umbral, 2VCC/3. Entonces el primer comparador pone a cero al biestable,
conecta el terminal 7 y descarga al condensador a la vez que lleva a baja al terminal de
salida.

Astable

El circuito se redispara él mismo mediante una realimentación entre los terminales 2


(disparo) y 6 (umbral), de forma que la tensión en los extremos del condensador oscila
entre VCC/3 y 2VCC/3. En este modo de operación separamos el terminal 6 del 7 con
RB.

72
+Vcc

4 8 RA

RL

7
RB
5
555
v0 3
D

6
RL

1 2 C

Relojes
Los relojes son circuitos de tiempo con una mayor precisión y estabilidad en la
frecuencia de oscilación. La clave de su diseño está en usar un cristal de cuarzo para
definir la frecuencia de oscilación, en sustitución de la red R-C pasiva. El resto del reloj
incluye amplificadores, circuitos conformadores de onda, contadores para dividir la
frecuencia y un conjunto de señales de control adicionales para facilitar o inhibir,
sincronizar o establecer condiciones iniciales (reset). Cuando el reloj genera más de
una salida se llama polifásico y la forma de onda en cada una de las fases mantiene una
relación precisa con las otras fases.

Oscilador
Oscilador Convertidor Generador de
Fase F1
+ Sinusoidal a Fases
...

Amplificador Digital (contador)


Cristal

Fase Fn

Señales de sincronismo y control

Oscilador

Fase F1
...

Fase Fn

73
El esquema general de un circuito de reloj es del tipo mostrado en la figura. Consta de
un oscilador, un amplificador, un circuito de paso de señal sinusoidal a señal digital con
niveles de una o más familias lógicas y un circuito generador de las distintas fases que
incluye, en general, un contador y un conjunto de puertas lógicas y retardos. Todas
estas funciones están usualmente integradas de forma que para el uso del reloj como
elemento de circuito sólo nos hace falta añadir la alimentación y el cristal de cuarzo
piezoeléctrico que fija la frecuencia de oscilación debido a que su impedancia es la
propia de un circuito sintonizado de alta precisión.

X (Reactancia)

inductiva
L0

ws
º r0 w
Cl wp

C0 capacitiva

Los osciladores a cristal son osciladores sintonizados en los que el circuito resonante
(R, L, C) se sustituye por un cristal. Cuando a un cristal de cuarzo piezoeléctrico se la
aplica un potencial eléctrico externo sufre deformaciones que dependen de forma
estricta de su estructura y se comporta como un circuito resonante de acuerdo con el
esquema equivalente de la figura anterior con dos posibilidades de resonancia: serie
(frecuencia ws) en la que la impedancia es cero y paralelo (frecuencia wp) en la que la
impedancia es infinito. Ambas frecuencias (ws y wp) están muy próximas y la pendiente
de la curva de impedancia es muy alta, de forma que si introducimos al cristal en un
circuito que le compense de las pérdidas, este oscilará con una frecuencia fija
extremadamente precisa y estable.

La siguiente figura muestra un ejemplo de posible configuración en la que el cristal se


incluye en el lazo de realimentación positiva de un amplificador operacional.
R3

R2
-
v0 (t)
+
R1 R4
R

74
MEMORIAS RAM Y CAM

Memorias de Lectura/Escritura volátiles


Dentro de las memorias volátiles y de acuerdo con el procedimiento de
direccionamiento, es decir, de la forma de acceder a una posición concreta, tenemos:

a) Memorias de acceso aleatorio (RAM).


b) Memorias de acceso por contenidos (CAM).
c) Memorias de acceso secuencial (FIFO, UFO).

Memoria
de Lectura y Escritura
(RWM)

No volátiles Volátiles
Retiene la información Pierden la información
indefinidamente al desconectar la fuente
(pasiva) Usa circuitos activos
biestables

Acceso aleatorio Acceso por contenido Acceso secuencial


RAM CAM

SRAM DRAM
Menor densidad Mayor densidad
Más rápidas Menos rápidas

Asincronas Sincronas Asincronas Sincronas

I/O I/O
Ráfagas Páginas EDO Ráfagas Otras
juntas separadas

Orientada a Ráfagas
aplicaciones EDO +
EDO

Organización de las memorias SRAM


Las memorias RAM estáticas constan de un núcleo de almacenamiento formado por un
número muy grande de biestables R-S y un conjunto de circuitos periféricos de
direccionamiento y control de las operaciones de las operaciones de lectura/escritura.

El elemento básico, la celda R-S, almacena un bit y el conjunto de celdas (bits) se


organizan en términos de bytes o palabras, que son grupos de n bits (8, 16, 32, ... ) que se
tratan globalmente. Cada dirección corresponde a una palabra. Así, con k bits
podremos direccionar K=2k palabras y la forma más inmediata de acceder a cada una de
estas palabras es usando un decodificador de k a K, tal como se ilustra en la figura.

75
palabra S Q S Q S Q
0 ...
palabra 0
R Q R Q R Q

palabra S Q S Q S Q
A0 1 ...
A1 palabra 1
Decodificador R Q R Q R Q
...
...

k® K

Ak-1

...
palabra S Q S Q Q
S
k
K-1 = 2 - 1 ...
palabra 2k -1
R Q R Q R Q

Matriz de
Estructura matricial k-l l
2 filas x 2 columnas x n bits
n-1

linea de bit

Al
Decodificador

Al+1
de Filas
...

linea de palabra
...

Ak-1

celda
2k-l-1 seleccionada
0 ... l
2 -1
I/O0
Amplificadores Sensores I/O I/O1
..

(columnas)
I/On-1
...

Decodificador

de Columnas

A0 A1 ... Al-1

76
Una organización matricial es más eficiente para conseguir que las dimensiones
horizontal y vertical del circuito sean comparables. Esto se consigue al repartir los bits
de la dirección (A0, A1, ... ,Ak-1) en dos grupos, uno para direccionar las filas de una matriz
(Al, Al+1, ... ,Ak-1) y el otro para direccionar las columnas (A0, A1, ... ,Al-1) de forma que el
elemento direccionado es el que corresponde a la intersección de la fila (llamada linea
de palabra) y la columna (llamada linea de bit) correspondientes a esos dos
componentes de la dirección (Al, Al+1, ... ,Ak-1) y (A0, A1, ... ,Al-1).

Si a estos circuitos decodificadores de la dirección y a la matriz de 2k-l filas (palabras) y 2l


columnas (bits) le añadimos los circuitos de control de los procesos de
lectura/escritura y de selección de circuito y los circuitos de entrada y salida,
obtenemos el esquema básico de organización de una memoria SRAM que se muestra
en la figura. Obsérvese que lo que direccionamos con filas y columnas son las
coordenadas de un plano. Es decir, una celda (un bit) por cada dirección. Si cada
palabra tuviera 8 bits, por ejemplo, la imagen de la memoria sería tridimensional y
podría conseguirse con uno o varios circuitos direccionados en paralelo.
Circuito de memoria SRAM CY7Cl09 (512 x 256 x 8)

I/O0

Buffers I/O1
de Entrada

I/O2

I/O3
Amplificadores

A0
Decodificador

A1
A2
sensores
de filas

A3
A4 Matriz de I/O4
A5 512 x 256 x 8
A6
A7
A8
I/O5

I/O6

CE1
I/O7
CE2
Decodificador
WE de columnas

OE Circuito de
Bajo Consumo
A9 A10 A11 A12 A13 A14 A15 A16

77
Como la matriz tiene 512 filas necesitamos 9 bits para direccionarlas (A0, A1, A2, A3, A4,
A5, A6, A7, A8) Análogamente, para direccionar las 256 columnas necesitamos los otros 8
bits (A9, A10, A11, A12, A13, A14, A15, A16). Como las palabras son de 8 bits necesitamos 8 líneas
de entrada/salida (I/O0, I/O1, I/O2, I/O3, I/O4, I/O5, I/O6, I/O7 ). La gestión de la función
concreta que realizan estas líneas en los distintos modos de funcionamiento se controla
a través de buffers de tres estados, de forma que cuando se facilita la salida de datos
(OE) los buffers de salida están activos y los de entrada están desconectados del bus, en
estado de alta impedancia. Inversamente, en operaciones de escritura los datos entran
por las mismas líneas físicas pero ahora los buffers de salida están inhibidos (alta
impedancia) y los de entrada están facilitados.

La memoria posee un circuito de control con cuatro señales (CE1, CE2, WE y OE) que le
permiten operar en cuatro modos: lectura, escritura, bajo consumo cuando no está
seleccionada y seleccionada con las salidas inhibidas.
Escritura
Para escribir una palabra en la memoria seleccionamos la configuración:

CE1 =L, CE2 =H, OE =x y WE =L

Es decir, ponemos en baja la señal de selección del circuito en el que vamos a escribir
(CE1 =0 y CE2 =1) y activamos la orden de escritura (WE = 0). Entonces los datos que
están en las 8 líneas bidireccionales de entrada/salida (I/Oo, ..., I/O7) se escriben en los
8 biestables que están en la dirección especificada por (A0, ... , A16)
Lectura
Para leer seleccionamos la configuración:

CE1 =L, CE2 =H, OE = L y WE =H

Es decir, activamos las lineas de selección del circuito en el que vamos a leer (CE1 =0 y
CE2 =1), facilitamos la salida de datos (OE = 0) y activamos la orden de lectura (WE =
1).
Bajo consumo
Si seleccionamos la configuración:

CE1 =H, CE2 =x, OE = x y WE =x


ó
CE1 =x, CE2 =L, OE = x y WE =x

El circuito reduce drásticamente su consumo y las lineas de estrada y salida pasan a


tener alta imperancia.

Selección con salidas inhibidas


Finalmente, el circuito puede estar seleccionado (CE1 = 0, CE2 =1) pero no tener
facilitadas las salidas (OE = 1 y WE =1) y consumiendo como en los modos de lectura y
escritura.

78
Celdas RAM estáticas (SRAM) en tecnología bipolar
Su característica principal es el tiempo de acceso que es muy corto, por ello se emplean
principalmente en el diseño de memorias caché.

Se realiza con transistores multiemisor, que equivalen a transistores colocados en


paralelo el colector y la base y con la entrada por emisor. De esta manera, al conectar un
“0” en cualquiera de los dos emisores, el transistor correspondiente conducirá y por lo
tanto la VCE=0 V y la tensión colector masa será de 0 V.

Por convenio se interpreta que se almacena un “1” cuando Q1 está conduciendo (Q2 al
corte) y un “0” cuando Q1 al corte (Q2 conduciendo).

+VCC = 3,5 V

BL RC RC BL

linea de linea de
escritura escritura
de un “1” de un “0”
3V
0,3 V
WL
Amplificador diferencial
decodificador
de direcciones
R3(“1”) R3(“0”)

1,5 V
BL BL

La salida se obtiene de un amplificador diferencial, de forma que cuando aparece un


nivel de tensión en la línea BL ( BL = 0 V ) habrá una caída de tensión en R3(1) y no la
habrá en la R3(0), provocando ello un nivel “1” de salida. Al revés, cuando aparece un
nivel de tensión en la línea BL = 3,5 V (BL = 0 V) habrá una caída de tensión en R3(0) y
no la habrá en la R3(1), provocando ello un nivel “0” de salida.

Selección de celda

La selección de celda se producirá introduciendo un nivel alto (“1”) en WL, provocando


ello que los emisores Ei estén los dos a “1” y dejando el estado del transistor en manos de
los emisores E’i, o sea en manos de las entradas de escritura de “1” (BL) o de escritura de
“0” BL .

79
En caso de que WL=0 V, los dos emisores Ei estarán a 0 V, provocando ello que el
biestable permanezca en el estado anterior. Esto es, si anteriormente Q1 conducía, su
VCE = 0 V por lo que la tensión en B2 era 0 V y por lo tanto Q2 estaba cortado. En estas
circunstancias no importa lo que metamos en BL y BL porque nunca conseguiremos
hacer cortarse al transistor que estaba conduciendo, ni conducir al que estaba cortado,
permaneciendo la celda en su estado anterior.

Lectura:

Tras seleccionar la celda con WL, solo el emisor del transistor que conduce (Q1 por
ejemplo) proporciona corriente a una de las líneas de datos produciendo un impulso de
salida del amplificador de lectura.

Escritura:

Se empieza seleccionando la celda mediante WL e introduciendo el dato que queremos


meter (nivel lógico 0) por BL (1) o por BL (0). Por ejemplo supongamos que se quiere
introducir un “1”, para ello activaremos WL (3V) e introduciremos un “1” (3V) por BL y
un “0” por BL. Un “0” en BL provoca que Q1 conduzca, su VCE=0 V y por lo tanto la VEB2=0
V, lo cual provoca que Q2 se corte y su VCE=3 V (“1”). De esta manera la VEB1=3 V y
provocará que Q1 conduzca y por lo tanto su VCE=0 V, manteniendo con ello el nivel
introducido al principio y provocando su almacenamiento.
Celdas RAM estáticas (SRAM) en tecnología MOS
La idea básica es la misma que en el caso bipolar paro a partir de transistores MOS.
Igual que en el caso anterior se dispone de la patilla de selección de celda WL y de las
líneas de datos BL y BL. Partimos de dos inversores acoplados (Q1-Q3 y Q2- Q4) y se
añaden otros dos (Q5 y Q6) para habilitar la lectura y escritura. Suponer que se almacena
un “1” cunado Q1 está conduciendo y Q2 esta cortado.

Selección de celda:

La selección de celda se producirá introduciendo un nivel alto (“1”) en WL, provocando


ello que los transistores Q5 y Q6 conduzcan y que por lo tanto se pueda leer o escribir en
la celda.

Lectura:

Tras seleccionar la celda con WL, hará que Q5 y Q6 conduzcan y por lo tanto los valores
de los puntos A y B aparezcan en las líneas BL y BL respectivamente.

Escritura:

Se empieza seleccionando la celda mediante WL e introduciendo el dato que queremos


meter (nivel lógico 1) por BL (1) o por BL (0). Por ejemplo supongamos que se quiere
introducir un “0”, para ello activaremos WL e introduciremos un “1” por BL y un “0” por
BL. Un “0” en BL provoca que la puerta de Q1 se polarice a 0 V y por lo tanto dicho Q1 se
corte y la VDS=VDD. Dicha tensión se aplica a la puerta de Q2 y por lo tanto VGS2=VDD. Esto
provoca que Q2 conduzca y por lo tanto su VDS=0 V, reforzando y memorizando el nivel
inicialmente introducido de 0 V.

80
Celda NMOS para RAM estática

VDD

BL BL
Q3 Q4

N N

Q5 N A B Q6 N

Q1 Q2

N N

VDD
WL 0

Celda SRAM de 4 transistores con carga resistiva

VDD
BL BL

RL RL
Q3 N Q4 N

Q1 Q2

N N

VDD
WL 0

81
Uso del amplificador diferencial en celdas SRAM

VDD

BL BL

RL RL
Q3 N Q4 N

Q1 Q2

N N

VDD
WL 0
Selección
de bit

VDD

Q5 Q6

P P

x Q7 Q8 x
N N

Q9
SE
N
y y

82
Celdas RAM dinámicas. (DRAM) en tecnologia MOS

A las otras celdas A las otras celdas


que tienen la Refresco que tienen la
misma dirección Y misma dirección Y

VDD

Q11 Q12

A las otras celdas


que tienen la
D D' misma dirección X
Q5 Q6

Linea Q1 Q2 Linea
de bit de bit
C1 C2

Celda de memoria
W R

Q7 Q8
Entrada Y Salida
de datos Q9 Q10 de datos

Celdas RAM dinámicas. (DRAM) de 4 transistores

En los casos en los que se desea alto nivel de integración y bajo consumo aunque se
penalice con velocidades de trabajo menores, se recurre a las celdas dinámicas.
Básicamente el diseño consiste en reducir el número de transistores que componen la
celda, consiguiendo las características citadas, obteniendo diferentes configuraciones a
cada cual más sencilla, hasta llegar el máximo de simplicidad consistente en construir
una celda con único transistor.

Si se compara con la celda estática se aprecia que se han eliminado dos transistores y
que el elemento almacenador de información son los condensadores C1 y C2. Estos
condensadores no se implementan específicamente en la celda, sino que son las
capacidades parásitas de los propios transistores las que sirven como elementos
almacenadores.

Para evitar la pérdida de carga de estos condensadores se introduce un sistema de


refresco a través de los transistores Q11 y Q12 que hace que la información de salida se
vuelva a meter en la entrada.

El paso posterior fue pasar de cuatro a tres transistores. Se consigue en base a eliminar
la redundancia de almacenamiento, ya que hasta este momento se almacenada la
información deseada y su complementaria. Como ahora la célula de almacenamiento es
la capacidad parásita del transistor MOS, no es necesaria dicha redundancia y por lo
tanto se puede eliminar la mitad de la celda.

83
Precarga (F1)

VDD

Q1 Q2
RS(F2)

Celda de memoria D'


Q4
Q3
Q5

C2

Din Dout

WS(F2)

Celda DRAM con tres transistores MOS

La última reducción del tamaño de celda en la RAM dinámica consiste en utilizar un


único transistor y su capacidad parásita como elemento almacenador.

Su funcionamiento es sencillo, basta un transistor que permita la entrada y salida de


carga al condensador. Durante el ciclo de escritura se habilita la celda WL y se introduce
el nivel en la entrada BL, al conducir Q1 dicha carga se introduce en C1 y queda
almacenada.

Para su lectura, simplemente se habilita la celda WL, provocando que Q1 conduzca y que
por lo tanto el valor de C1 aparezca en BL.

BL BL
Linea de
palabra WL
WL

Q1 Q1

C C1 CB
Linea (Almacena) (Direcciona)
de bit

(a) (b)

Celda DRAM con un solo transistor


(a) Solución mínima que provoca lectura destructiva
(b) Alternativa válida

84
Circuitos de Memoria Asociativa (CAM)
Los circuitos de memoria SRAM y DRAM en todas las celdas eran direccionables con un
tiempo de acceso único. Además, había una distinción entre dirección y contenido. Así,
primero se seleccionaba una dirección y después se leía o escribía un dato en esa
dirección.

Existen otro tipo de memorias llamadas asociativas o direccionables por contenido,


CAM (Content Addresable Memory), en las que se usa el dato (el contenido) para
seleccionar el conjunto de direcciones que contienen ese dato de forma completa o
parcial.

La estructura básica de un circuito de memoria CAM es la que se ilustra en la figura.

Celda 1

Contenido
Comparando

0 1 1 ... 0 C1/C1
COMPARADOR
bit a bit

REGISTRO de COINCIDENCIAS

CODIFICADOR de PRIORIDAD
Máscara
Patrón

1 1 0 ... 0
{ Ci }
...

Patrón Celda n

0 1 x ... x Contenido

Cn/Cn
COMPARADOR
bit a bit

Patrón

Electrónica adicional para


CARGA, RESET Y CONTROL

85
Hay un núcleo central de almacenamiento compuesto por celdas SRAM como las que
hemos visto previamente en las que a cada celda se le han añadido un cierto número de
transistores para llevar a cabo la comparación entre su contenido y el del bit
correspondiente de un registro adicional que contiene el patrón de comparación. Este
patrón se obtiene a su vez de filtrar la palabra externa que queremos saber dónde está
almacenada, llamada comparando, con una máscara que selecciona cuál es el
subcampo de esa palabra (clave de búsqueda) en el que estamos realmente interesados,
por ejemplo, para extraer como información el resto de los subcampos.

Así pues, en el proceso de comparación intervienen los contenidos de tres registros:


comparando, máscara y patrón o clave de búsqueda. Esta palabra patrón o clave de
búsqueda se distribuye para ser comparada en paralelo con cada una de las n palabras
de la CAM. Para realizar esta comparación cada celda de la CAM posee un registro con el
dato propio, otro para recibir el bit correspondiente del patrón y un circuito
combinacional que detecta la coincidencia o no coincidencia entre ambos bits. Es decir,
un circuito NOR exclusivo cuya salida sólo estará en alta cuando ambas entradas
coinciden (AB + AB).

Cuando se han realizado todas las comparaciones el resultado se lleva a un registro que
indica las comparaciones que han sido válidas (registro indicador o de marca) y existen
tres posibilidades: que no hayamos encontrado ninguna coincidencia, que hayamos
encontrado sólo una o que existan varias. Si no existe ninguna, no hay direcciones
válidas para ese patrón. Si hay sólo una, se activa su bit correspondiente y si hay varias
se usa un codificador con prioridad, ofreciéndose por ejemplo la dirección cuyo decimal
equivalente sea el menor. Como este registro indicador de direcciones válidas debe de
contener el resultado de las comparaciones de la palabra patrón con todas las de la
CAM, necesita n bits, tantos como direcciones. Hay finalmente un registro de salidas
que saca las palabras seleccionadas.

Celda CAM básica en CMOS


Su constitución básica consiste en utilizar una celda SRAM de 6 transistores y 4
transistores más para realizar las funciones de comparación del estado de alta o bajadle
bit almacenado en los otros seis con el bit correspondiente al registro patrón
BL BL
VDD

Q3 Q4

P P

Q5 N Q6 N

Q1 Q2

N N

WL

Celda RAM estática

86
MATCH

Q9 Q10
N N
N N
BL Q7 Q8 BL

VDD

Q3 Q4

P P

Q5 N Q6 N

Q1 Q2

N N

WL

Celda CAM obtenida a partir de la RAM añadiéndole cuatro transistores


para realizar la función NOR exclusivo entre su contenido y el bit
correspondiente del comparando.

87
MEMORIAS DE ACCESO SECUENCIAL

Organizaciones de acceso secuencial


FIFO (Primera que entra, primera que sale)

Una memoria de K palabras de n bits se construye a partir de n registros de


desplazamiento (uno por bit) de longitud K (número de palabras).

Es una organización serie-serie porque los datos se leen en serie y se escriben en serie y
es FIFO (First-In, First-Out) porque a cada pulso de reloj se desplazan una posición los
contenidos de todos los registros de desplazamiento, de forma que la palabra que entró
primero, es la que también sale primero.

CONTROL R/W
Entrada
de Datos D0 D1 ... Dn-1

RD0 RD1 RDn-1

0 0 0

1 1 1
...
2 2 2

... ... ...

k-1 k-1 k-1

Q0 Q1 ... Qn-1
Salida
de
Datos

LIFO (Última que entra, primera que sale)

Cada pulso de reloj entra una nueva palabra que empuja a las que habían entrado antes
aumentando la altura de la ''pila''. Si cambiamos ahora de lectura a escritura hay que
cambiar también el sentido del desplazamiento y aparecen en el primer registro las
palabras en orden inverso al que fueron escritas.

Esta organización se llama LIFO (Last-In, First-Out) ya que la última palabra que entró
en la memoria es la primera que sale cuando el control pasa de escritura a lectura.
También se le suele llamar memorias de pila ("stack") porque las palabras se
"amontonan" en forma de pila.

88
Sentido
de Desplazamiento

Reloj

0 0 0

1 1 1
RD0 RD1 ... RDn-1
2 2 2

... ... ...

k-1 k-1 k-1

D0 Q0 D1 Q1 ... Dn-1 Qn-1


Salida
Entrada de
de Datos Datos
CONTROL R/W

Al aumentar mucho la longitud de los registros de desplazamiento el tiempo de acceso a


la información crece de forma tal que las organizaciones serie-serie (tipo LIFO ó FIFO)
no son adecuadas. Siempre hay que moverse en una situación de compromiso entre
capacidad y tiempo de acceso.
Memorias CCD (Charge-coupled device)
Organización serie, con etapas intermedias de regeneración.
Entrada/Salida
Se mantiene la organización serie incluyendo de Datos
etapas regeneradoras de señal en todas las Registro de
"esquinas". En esta organización todos los bits Desplazamiento
realizan el mismo recorrido a través del lazo y
a la misma frecuencia.
R
El número de bits entre dos amplificadores-
regeneradores sucesivos está determinado o R
bien por la eficiencia en el proceso de
transmisión (inversamente proporcional a las
pérdidas de carga) o bien por el valor más bajo R
en la frecuencia de trabajo deseada en
condiciones de mantenimiento. R

Evidentemente, como esta organización es R


serie, el número de bits máximo (longitud del R
ciclo de recirculación) determina el valor
medio del tiempo de acceso.
Regeneradores
de Señal

89
Organización por lazos múltiples con direccionamiento directo para cada lazo
Mejora el tiempo de acceso al coste de aumentar la electrónica de direccionamiento. Lo
que se ha hecho es segmentar en tramos y direccionar cada uno de estos tramos de
forma directa, como hacíamos en las memorias RAM.

Dirección
A 1 - An

R D
E
C
R O
D
I
F
R I Entrada/Salida
C de Datos
...

A
D
O
R R

Organización S-P-S (serie-paralelo-serie)


Consta de dos registros serie y un gran registro paralelo multicanal. Los datos se
introducen en serie en el registro superior. Después se transfieren en paralelo a la
primera etapa del registro paralelo. Todos los canales paralelos se desplazan al unísono
con un mismo reloj más lento que el de los registros serie y a la salida se realiza el
proceso inverso. El registro más bajo es de nuevo serie y rápido, se carga en paralelo y se
lee a través del amplificador regenerador.

Obsérvese que en esta organización SPS todos los bits no siguen el mismo camino. Si el
registro serie tiene Ns bits y el paralelo, Np, cada bit se transfiere a través de Ns+Np
etapas. Así, basta con un amplificador regenerador para mantener la información
asociada a un número de bits mucho mayor que si la organización fuera serie.

Entrada
de Datos

...

Salida
R de Datos

90
Etapas dinámicas en MOS y CMOS
Para realizar las etapas de almacenamiento transitorio junto con el control local de la
transferencia entre etapas vecinas puede usarse celdas SRAM convencionales y lógica
combinacional.Sin embargo, para el tamaño usual en memorias de acceso secuencial y
en particular para las CCD, estos diseños ocupan mucha área de semiconductor por lo
que se usan etapas dinámicas en MOS y CMOS.

Debido a la alta impedancia de entrada de los transistores MOS existe la posibilidad de


almacenar carga en la capacidad de puerta.
VDD

RL

v0
S1
vi

El circuito de la figura muestra la estructura básica de la celda. Consta simplemente de


un condensador, C, en paralelo con los terminales de puerta y fuente del transistor Q1 y
conectado con la línea de datos, vi, a través de un conmutador, S1. Al aplicar una tensión
de entrada, vi, en la puerta y en el condensador a través del conmutador S1, el
condensador se carga. Al abrir S1, el condensador retiene la carga, ya que la única vía de
descarga es a través de la impedancia de entrada del transistor, reteniéndose la
información almacenada y actuando como una celda de memoria volátil. La salida de
esta celda de memoria se toma del drenador de Q1, de forma que el condensador nunca
se descarga al leerlo. En la práctica la carga en el condensador termina por perderse, ya
que el conmutador es en realidad otro transistor MOS que ofrece cierta resistencia
finita, que termina por descargar el condensador.
VDD F1 VDD F2 VDD F1 VDD F2

Q2 N Q5
N Q8 N N
Q11

P1 N P3 N P4 N N v0
Q3 Q6 Q9 Q12
vi Q1 Q4 Q7 Q10
N P2 N N N

C1 C2 C3

Primera Etapa Segunda Etapa

Conducen Q2,Q3,Q8,Q9

VDD

0
Conducen Q5,Q6,Q11,Q12
VDD

0
Registro de desplazamiento usando reloj bifásico

91
Supongamos que se introduce un "0" en la entrada. Durante el intervalo en el que el
reloj Φ1 está en alta los transistores Q2 y Q3 pasan a conducción. Consecuencia del “0" en
la entrada Q1 está en corte y el punto P1 es llevado a las proximidades de VDD por el
transistor de carga Q2. Este nivel de tensión alto ("1") se transfiere a través de Q3 al
condensador C 1. Comienza entonces la fase de reloj Φ2, pasando este a alta y haciendo
que ahora conduzca Q5 y Q6.

Como consecuencia del "1" almacenado en C1, el transistor Q4 también pasa a conducir y
lleva al punto P3 a tierra. Esta información se transmite a C2 a través de Q6 y queda
almacenada en C2 cuando termina el ciclo de reloj Φ2. que vuelve a pasar a corte a los
transistores Q5 y Q6. Así, tras Φ1 y Φ2 se ha desplazado el "0" desde la entrada de la
primera etapa, vi, a la entrada de la segunda (terminal de puerta de Q7). De forma
análoga durante los siguientes ciclos de Φ1 y Φ2 esta operación se repite también en la
segunda etapa a la vez que en la primera etapa se almacena la nueva entrada teniendo,
por consiguiente, la estructura básica de un registro de desplazamiento.

Una versión análoga a esta etapa de registro usando tecnología CMOS es la que se
muestra en la sigueinte figura:
VDD

F F F
P P
N N N
G1 I1 G2 I2 G3
vi vo
P P P
N N

F C F C F

Etapa de registro en CMOS

Memorias FIFO sobre celdas RAM en CMOS


La función principal de las memorias FIFO es el almacenamiento transitorio de datos
en aquellas situaciones de diseño electrónico en las que sea necesario acoplar dos
sistemas digitales que operen a distinta velocidad y necesiten intercambiar datos.
Siempre que los datos lleguen a un procesador en paquetes, de forma irregular o de
forma regular pero a mayor velocidad, hace falta un almacenamiento intermedio, un
buffer, en el que los datos que se escriben primero son los que primero salen.

Las características que definen la necesidad de las memorias FIFO son :

1. Acceso a sistemas de proceso lento pero constante con datos (demandas de


servicio) que llegan de forma irregular.
2. Acceso a sistemas que procesan en paquetes pero a los que los datos llegan de
forma esporádica.
3. Interfaces entre sistemas que trabajan a distinta velocidad.

92
Tipos de FIFO
I. FIFO tipo registro de desplazamiento, que ya hemos visto en el apartado
anterior. En estas el número de palabras almacenadas es fijo (coincide con la longitud
del registro) y hay un sincronismo implícito y necesario entre las operaciones de lectura
y escritura. A medida que van entrando nuevas palabras dato en los registros FIFO,
otras van saliendo por el otro extremo.

II. FIFO de lectura/escritura mutuamente exclusivas en las que, en cada


momento, sólo se puede leer o escribir, pero no ambas cosas. El número de palabras
almacenadas es variable y deben satisfacerse ciertas condiciones en el cronograma
entre las señales procedentes del "sistema que escribe" y las procedentes del "sistema
que lee". Es necesario un cierto nivel de sincronismo entre estos dos sistemas.

III. FIFO de lectura/escritura concurrente, con un número variable de palabras


almacenadas y posibilidad de lectura y escritura asíncrona, pudiendo coexistir ambos
procesos. Es decir, no hay restricciones en el cronograma de los ciclos de lectura y
escritura. Son independientes y no necesitan ningún sincronismo entre ellos. Esto
significa que cuando dos sistemas de distinta frecuencia se conectan a la FIFO, no
necesitamos preocupamos de la sincronización, porque la realiza internamente el
circuito.

A su vez las FIFO concurrentes pueden ser asíncronas o síncronas, dependiendo del
tipo de señales de control usadas en los procesos de lectura y escritura.

Terminales de una FIFO asíncrona.

Reloj de Reloj de
Escritura Lectura

FIFO
FULL Asíncrona EMPTY

Dato de Dato de
Entrada Salida

CLEAR
Cronograma para longitud 4.

CLEAR

FULL llena
Reloj de
Escritura
Dato de
D1 D2 D3 D4 D5
Escritura

EMPTY vacía

Reloj de
Lectura
Dato de D1 D2 D3 D4 D5
Salida
Escribe Lee Escribe Lee
Reset D1 - D3 D1 D4 - D5 D2 - D5

93
Terminales de una FIFO síncrona de Texas Instrument.

Reloj de Reloj de
Escritura Lectura

Facilitación Facilitación de
Escritura FIFO Lectura
Síncrona
FULL EMPTY

Dato de Dato de
Entrada Salida

CLEAR

Cronograma de los procesos de lectura y escritura.

CLEAR

FULL llena
Reloj de
Escritura

Facilitación
Escritura (WE)
Dato de
D1 D2 D3 D4 D5
Escritura

EMPTY vacía

Reloj de
Lectura

Facilitación
Lectura (RE)
Dato de D1 D2 D3 D4 D5
Salida
Escribe Lee Escribe Lee
Reset D1 - D3 D1 D4 - D5 D2 - D5

Arquitecturas de las FIFO-RAM


La primera es la inherente a los registros de desplazamiento: entra un nuevo dato, que
"cae" hasta la primera posición no ocupada, se desplazan todos los demás y sale el del
último biestable del registro. El principal inconveniente de esta organización es el
retardo intrínseco al recorrido de todo el registro cuando el tamaño de la FIFO es
grande.

El otro tipo de arquitectura está basado en una organización circular de la memoria y el


uso de dos punteros.

94
Organización circular de los circuitos FIFO con dos punteros

Entrada de
Datos

Llena
Puntero
de escritura

Vacia Puntero
de lectura

Salida de
Datos

Diagrama de bloques de las FIFO SRAM de T. I. tipo ACT-7881

Entrada
de datos

Reloj de Control de Puntero de


Escritura Escritura Escritura

FULL
Lógica de
Half FULL
Flag
EMPTY
SRAM

CLEAR Lógica de
Borrado

Reloj de
Lectura
Control de Puntero de
Lectura Lectura

Salida
de datos

95
Aplicaciones de las FIFO

Imagen de Video (1024 x 1024)

Cámara

Reloj

Digitalizador
(conversor A/D)

Generador de
Compresión FIFO
Ciclo

FIFO (32 Kbytes) Procesador de


Salida
señales

Canal Memoria

FIFO (32 Kbytes)

Descompresión/Visualización

Esquema cualitativo de las aplicaciones de las FIFO en los procesos de


adquisición de datos para su posterior tratamiento digital o transmisión.

96
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

Tema 01 – Exigencias computacionales del procesamiento digital de la información


1.2. Funciones combinacionales y secuenciales necesarias
Representar: Descripción completa:
En extenso: tablas de verdad y diagramas de Venn. En intenso, expresión booleana que la describe
Analizar: Pasar del circuito a su expresión booleana
Sintetizar: Es el proceso inverso al análisis. Pasamos de la función al circuito.
1.3. Variables y operadores lógicos: Álgebra de Boole
Algebra de Boole:
P.1 (+𝑦 ∙) con operaciones cerradas.
P.2. elementos neutros 𝑿 + 𝟎 = 𝑿 𝑿∙𝟏= 𝑿
P.3.Conmutativas: 𝑿 + 𝒀 = 𝒀 + 𝑿 𝑿∙𝒀= 𝒀∙𝑿
P.4. Ambas operaciones son distributivas
𝑿 + 𝒀 ∙ 𝒁 = (𝑿 + 𝒀) ∙ (𝑿 + 𝒁)
𝑿 ∙ (𝒀 + 𝒁) = 𝑿 ∙ 𝒀 + 𝑿 ∙ 𝒁
P.5. Complementariedad. 𝑿 + 𝑿 = 𝟏 𝑿 ∙ 𝑿 = 𝟎
Propiedad: dualidad, 𝑋 + 0 = 𝑋 = 𝑋 ∙ 1 = 𝑋,
T. Doble complementación: 𝑋̿ = 𝑋
T. Shannon: 𝑓(𝑎, 𝑏, 𝑐) = 𝑏𝑐 = 𝑎 ∙ 𝑓(1, 𝑏, 𝑐) + 𝑋̅ ∙
𝑓(0, 𝑏, 𝑐) = 𝑎𝑏𝑐 + 𝑎̅𝑏𝑐
T. Idempotencia: 𝑋 + 𝑋 = 𝑋 𝑋⋅𝑋 =𝑋
T. Absorción: 𝑋 + 𝑋 ⋅ 𝑌 = 𝑋 𝑋 ∙ (𝑋 + 𝑌) = 𝑋
T. Adyacencia 𝑋 ∙ 𝑌 + 𝑋 ∙ 𝑌 = 𝑋 (𝑋 + 𝑌) ∙ (𝑋 + 𝑌) = 𝑋
T. DeMorgan: 𝑋 + 𝑌 = 𝑋 ⋅ 𝑌 𝑋 ⋅ 𝑌 = 𝑋 + 𝑌
T. Identidad 𝑋 + 1 = 1 𝑋∙0=0
Relación: 𝑋 + 𝑋 ⋅ 𝑌 = 𝑋 + 𝑌

1.4. Funciones lógicas: Formas canónicas. Productos/Sumas de todas las variables que forman los términos mínimos
Minterms: A partir de tabla de verdad, se toman las salidas 1 y se expresa como suma de productos, y las que son 0, invertidas.
𝑓(𝑎, 𝑏, 𝑐) = 𝑎̅𝑏̅𝑐 + 𝑎̅𝑏𝑐̅ + 𝑎𝑏̅𝑐 + 𝑎𝑏𝑐̅ + 𝑎𝑏𝑐 → f(𝑎, 𝑏, 𝑐) = 𝑚1 + 𝑚2 + 𝑚5 + 𝑚6 + 𝑚7 = ∑ 𝑚(1,2,5,6,7)
Maxterms: Las salidas que son 0, expresadas como productos de sumas.
𝑓(𝑎, 𝑏, 𝑐) = (𝑎 + 𝑏 + 𝑐) ∙ (𝑎 + 𝑏̅ + 𝑐̅) ∙ (𝑎̅ + 𝑏 + 𝑐) → f(𝑎, 𝑏, 𝑐) = 𝑀7 ∙ 𝑀4 ∙ 𝑀3 = ∏ 𝑀(3, 4,7)

Pasar de minterms a maxterms: 𝑓(𝑎, 𝑏, 𝑐) = 𝑚1 + 𝑚2 + 𝑚5 + 𝑚6 + 𝑚7 = ∑ 𝑚(1,2,5,6,7)


1. Función con minterms invertida con términos que son 0: ̅̅̅̅̅̅̅̅̅̅̅̅
𝑓(𝑎, 𝑏, 𝑐) = 𝑚0 + 𝑚3 + 𝑚4 = ∑ 𝑚(0, 3, 4)
̅̅̅̅̅̅̅̅̅̅̅̅
2. Inversa de la función aplicando DeMorgan a términos canónicos: 𝑓(𝑎, ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝑏, 𝑐) = 𝑚 ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅ ̅̅̅̅0 ∙ ̅̅̅̅
0 + 𝑚3 + 𝑚4 = ∑ 𝑚(0, 3, 4) = 𝑚 𝑚3 ∙ ̅̅̅̅
𝑚4
3. Se cambian los términos m por M: 𝑓(𝑎, 𝑏, 𝑐) = 𝑀7 ∙ 𝑀4 ∙ 𝑀3
Pasar de maxterms minterms: 𝑓(𝑎, 𝑏, 𝑐) = 𝑀0 ∙ 𝑀3 ∙ 𝑀4 = ∏ 𝑀(3, 4,7)
1. Función con maxterms invertida con términos que son 1 (no aparecen): ̅̅̅̅̅̅̅̅̅̅̅̅
𝑓(𝑎, 𝑏, 𝑐) = 𝑀0 ∙ 𝑀1 ∙ 𝑀2 ∙ 𝑀5 ∙ 𝑀6 = ∏ 𝑀(0,1, 2, 5, 6)
̅̅̅̅̅̅̅̅̅̅̅̅
2. Inversa, aplicando DeMorgan a términos canónicos: 𝑓(𝑎, ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝑏, 𝑐) = 𝑀 𝑀 𝑀 ̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅
0 1 2 𝑀5 𝑀6 = ∏ 𝑀(0,1, 2, 5, 6) = 𝑀0 + 𝑀1 + 𝑀2 + 𝑀5 + 𝑀6
3. Se cambian los términos M por m: 𝑓(𝑎, 𝑏, 𝑐) = 𝑚1 + 𝑚2 + 𝑚5 + 𝑚6 + 𝑚7
Pasamos de una a otra aplicando DeMorgan: Así, a 𝑚0 = 𝑥1 ⋅ 𝑥2 le corresponde 𝑀3 = 𝑚0 = 𝑥1 ⋅ 𝑥2 = 𝑥1 + 𝑥2
1.5. Otras representaciones completas (NAND, NOR)
Existen, otros conjuntos más pequeños, NAND y NOR Vemos sus tablas de verdad:
Vemos la representación en NAND:

Lo mismo para su representación NOR:

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

Aplicando DeMorgan a forma normal disyuntiva, obtenemos equivalentes en NAND y NOR


1. Obtener una expresión mínima, en forma de suma de productos
2. Complementar dos veces
3. Aplicar los teoremas de DeMorgan: Repetidamente hasta que,
a. solo hay variables negadas (X, Y), sintetiza con inversor (Puerta NAND en la que se unen las dos entradas)
b. Solo encontramos negaciones de productos 𝑋 Y, X Y…

DeMorgan de forma gráfica Negamos salidas 1er nivel y entradas del 2º Hemos pasado de OR-AND a NOR Inversores con NOR

1.6. Análisis y síntesis


Analizar es encontrar la función lógica que calcula, a partir del esquema de conexión.

1.7. Introducción a la minimización

2
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Esquemas Año: 2017 / 2018

Tema 02 – Lógica combinacional (I) - Funciones aritméticos lógicas


2.0. Sistemas de numeración y conversión. El divisor y la potencia, será la base…
Decimal a binario: 48510) = 485 ÷ 2 = 𝑅 𝟏, 242 ÷ 2 = 𝑅 𝟎, 121 … → 1111001012)
Binario a Decimal: 1111001012) = 1 ∙ 28 + 1 ∙ 27 … = 256 + 128 … → 48510)
2.1. Representación conjunta de números positivos y negativos. + es 0, - es 1
Signo-Magnitud (S-M): el binario, representa el número en decimal.
Complemento a 1 (C-1): Los negativos complementando cada bit del positivo. El cero es 0000 y 1111.
Complemento a 2 (C-2): Los negativos, complementando y sumando un 1. El cero +0 0000
Resta binaria:
1 1 1
1 1 1 1 1 0 1 1 1
0 0 0
- 1 1 1 0 0 1
1 1 0 1 1 1 1 1 0

2.2. Sumadores y restadores


2.2.1. Semisumadores. HA

∑ = 𝑎̅𝑏 + 𝑎𝑏 = 𝒂 ⊕ 𝒃
𝐶𝑜𝑢𝑡 = 𝒂𝒃

2.2.2. Sumadores. FA
∑ = 𝑎𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎𝑏𝑐 = 𝑐(𝑎𝑏 + 𝑎𝑏) + 𝑐(𝑎𝑏 + 𝑎𝑏) = 𝑐(𝑎⨁𝑏) + 𝑐(𝑎⨁𝑏) = 𝒄𝒊𝒏 ⨁(𝒂⨁𝒃)
𝐶𝑜𝑢𝑡 = 𝑎𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎𝑏𝑐 = 𝑎𝑏(𝑐 + 𝑐) + 𝑐(𝑎𝑏 + 𝑎𝑏) = 𝒂𝒃 + 𝒄𝒊𝒏 (𝒂 ⊕ 𝒃)
Para sumar números de n bits, usamos varios conectados en paralelo:

2.2.3. Semirrestadores. HS. 𝐴 al minuendo y 𝐵 al sustraendo: 𝐴 − 𝐵 = 𝐷 (𝐶 = 𝑎𝑐𝑎𝑟𝑟𝑒𝑜)

∑ = 𝑎̅𝑏 + 𝑎𝑏 = 𝒂 ⊕ 𝒃
̅𝒃
𝐶𝑜𝑢𝑡 = 𝒂

2.2.4. Restadores completos. FS


𝒂−𝒃 𝑪𝒊𝒏 𝑫 Cálculo de 𝐷 = (𝑎 − 𝑏) − 𝐶𝑖𝑛
𝟎 − 𝟎 = 𝟎𝟎 − 𝟎 = 𝟎𝟎
𝟎 − 𝟎 = 𝟎𝟎 − 𝟏 = 𝟏𝟏 Cálculo de 𝐶𝑜𝑢𝑡 = 𝑅(𝑎 − 𝑏) + 𝑅(𝐷)
𝟎 − 𝟏 = 𝟏𝟏 − 𝟎 = 𝟏𝟎 a𝑫 = 𝑎𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎𝑏𝑐 = 𝑐(𝑎𝑏 + 𝑎𝑏) + 𝑐(𝑎𝑏 + 𝑎𝑏) = 𝑐(𝑎⨁𝑏) + 𝑐(𝑎⨁𝑏) = 𝒄⨁(𝒂⨁𝒃)
𝟎 − 𝟏 = 𝟏𝟏 − 𝟏 = 𝟎𝟎
𝟏 − 𝟎 = 𝟏𝟎 − 𝟎 = 𝟏𝟎
a𝑪𝒐𝒖𝒕 = 𝑎𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎𝑏𝑐 = 𝑎𝑏(𝑐 + 𝑐) + 𝑐(𝑎𝑏 + 𝑎𝑏) = 𝒂𝒃 + 𝒄(𝒂 ⊕ 𝒃)
𝟏 − 𝟎 = 𝟏𝟎 − 𝟏 = 𝟎𝟎
𝟏 − 𝟏 = 𝟎𝟎 − 𝟎 = 𝟎𝟎
𝟏 − 𝟏 = 𝟎𝟎 − 𝟏 = 𝟏𝟏

2.3. Sumadores en complemento a 1: Gestión del problema del rebose. En C-1 negativos cambian 0s por 1s y 1s por 0s.
Sumar en C1, tiene un límite de representación, si se supera, se produce rebose. El circuito, ha de:
1. Si acarreo =1, y no hay rebose, +1 al resultado Se suma uno al resultado (3):
2. Si hay rebose (signo incorrecto), dar señal de error.

No podemos representar el +2 = 010 o (-2) con 2 bits por lo que, se detectan las configuraciones que generan este error.
La ecuación del rebose es: 𝑟𝑒𝑏𝑜𝑠𝑒 = 𝐴𝑖 𝐵𝑖 𝑆𝑖 + 𝐴𝑖 𝐵𝑖 𝑆𝑖

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Esquemas Año: 2017 / 2018

2.4. Comparadores. Un comparador de dos palabras de n bits, determina cual es mayor, menor o si son iguales.

𝐴=𝐵 𝑬 = 𝑎𝑏 + 𝑎𝑏 = 𝒂 ⊕ 𝒃 Con 𝑎𝑏 y 𝑎𝑏, expresamos (𝑎𝑏 + 𝑎𝑏 = 𝒂 ⊕ 𝒃) en función de 𝑎𝑏 y 𝑎𝑏 Unir comparadores:


(𝑎𝑏 + 𝑎𝑏 = 𝒂 ⊕ 𝒃) = 𝒂𝒃 + 𝒂𝒃 NOR y ahorramos circuitería

𝐴>𝐵 𝑫 = 𝒂𝒃

𝐴<𝐵 𝑪 = 𝒂𝒃

𝑨𝟏 𝑨𝟎 𝑩𝟏 𝑩𝟎 𝑨<𝑩 𝑨=𝑩 𝑨>𝑩


0 0 0 0 0 1 0
0 0 0 1 1 0 0 (𝑨 = 𝑩) = (𝑨𝟏 ⊕ 𝑩𝟏 )(𝑨𝟎 ⊕ 𝑩𝟎 ) Siempre productos de ⊕ bit a bit
0 0 1 0 1 0 0
0 0 1 1 1 0 0 (𝑨 < 𝑩) = 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0
0 1 0 0 0 0 1
0 1 0 1 0 1 0 𝐴1 𝐵1 (𝐴0 𝐵0 + 𝐴0 𝐵0 + 𝐴0 𝐵0 + 𝐴0 𝐵0 ) + 𝐴0 𝐵0 (𝐴1 𝐵1 + 𝐴1 𝐵1 ) = 𝑨𝟏 𝑩𝟏 + 𝑨𝟎 𝑩𝟎 (𝑨𝟏 ⊕ 𝑩𝟏 )

0 1 1 0 1 0 0
0 1 1 1 1 0 0 (𝑨 > 𝑩) = 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0 + 𝐴1 𝐴0 𝐵1 𝐵0
1 0 0 0 0 0 1
𝐴1 𝐵1 (𝐴0 𝐵0 + 𝐴0 𝐵0 + 𝐴0 𝐵0 + 𝐴0 𝐵0 ) + 𝐴0 𝐵0 (𝐴1 𝐵1 + 𝐴1 𝐵1 ) = 𝑨𝟏 𝑩𝟏 + 𝑨𝟎 𝑩𝟎 (𝑨𝟏 ⊕ 𝑩𝟏 )
1 0 0 1 0 0 1
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0

La comparación puede extenderse para detectar paridad: Se activan cuando la suma de los 1s es par (o impar).

A B Paridad par
𝑎𝑏 + 𝑎𝑏 = 𝒂⨁𝒃
0 0 0 (0 unos)
0 1 1 (1 uno)
1 0 1 (1 uno)
1 1 0 (2 unos)
Este proceso, es iterativo, Si con un XOR detectamos la no paridad de (𝐴, 𝐵) y con otro la de (𝐶, 𝐷), con un tercero, detectaremos la
correspondiente a cuatro bits:
Por lo tanto, la figura del punto 𝑍 de la figura es: 𝒁 = (𝑨 ⊕ 𝑩) ⊕ (𝑪 ⊕ 𝑫)

2.5. Unidades Aritmético-Lógicas (ALU’S)


Para calcular control:
Codificación de entrada de la ALU
X I (n de bits) Operación 𝑺𝟑 𝑺𝟐 𝑺𝟏 𝑺𝟎 𝑀 𝐶𝑛
0 0 0 unos, es par 𝐴+𝐵 H H H L H -
0 1 1 uno, es impar 1 H H L L H -
1 0 0 unos, es par 𝐴 𝑃𝐿𝑈𝑆 𝐴𝐵 H L L L L H Sin acarreo
1 1 1 uno, es impar (𝐴 + 𝐵) 𝑃𝐿𝑈𝑆 1 L L L H L L Con acarreo

Y se calcula cada entrada: 𝑺𝐢 , M y 𝐶𝑛


𝑺𝟑 : 𝑋 ∙ 𝐼 ⟹ 𝑋 ↑ 𝐼
𝑺𝟐 : 𝑋
𝑺𝟏 : 𝑋 + 𝐼 ⟹ 𝑋 ↓ 𝐼
𝑺𝟎 : 𝑋 ∙ 𝐼
M: 𝑋
𝐶𝑛 : 𝐼

2
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

Tema 03 – Lógica combinacional (II) – Ruta de datos


3.1. Circuitos selectores de datos (Multiplexos). 𝑁 𝑎 1 Sitúa en salida cualquiera de los N canales de entrada. Selección 2𝑛 = 𝑁
MUX 2 a 1 MUX 4 a 1
𝑌 = 𝑺𝟏 𝑺𝟎 𝑰𝟎 + 𝑺𝟏 𝑺𝟎 𝑰𝟏 + 𝑺𝟏 𝑺𝟎 𝑰𝟐 + 𝑺𝟏 𝑺𝟎 𝑰𝟑

En general con 𝑁 entradas, replicamos AND/OR y aumentamos n líneas de control, con señal strobe 𝐺 cuando se transfiere el dato.
Ejemplo: Diseño de función con multiplexos 4 a 1 𝑓(𝑋, 𝑌, 𝑍, 𝑈, 𝑉) = 𝑋 𝑌 𝑍 𝑈 𝑉 + 𝑋 𝑌 𝑈 𝑉 + 𝑋 𝑌 𝑍 𝑈 𝑉 + 𝑋 𝑌 𝑍 𝑈 𝑉 + 𝑋 𝑌 𝑍 𝑈 𝑉 + 𝑋 𝑌 𝑍 𝑈 𝑉
Solución: Con 4 entradas, para 5 variables, usamos 2 niveles de Multiplxores, 𝑋, 𝑌 entradas de control del 2º, y 𝑍, 𝑈, 𝑉 para el 1º.
Paso 1º: Identificamos términos mínimos de 𝑋, 𝑌 y sacamos factor común
𝐷0 𝐷2 𝐷3
𝑋 𝑌 (𝑍 𝑈 𝑉 + 𝑈 𝑉) + 𝑋 𝑌 (𝑍 𝑈 𝑉 + 𝑍 𝑈 𝑉) + 𝑋 𝑌( 𝑍 𝑈 𝑉 + 𝑍 𝑈 𝑉)
Como el factor común de 𝑋, 𝑌 no nos muestra 𝑋𝑌 ⇒ 𝐷1 = 0
Paso 2º: Sintetizar paréntesis en 1er nivel. Usando 𝑈, 𝑉 (Hay un término así):
𝐷0 𝐷1 𝐷2 𝐷3
(𝑍 𝑈 𝑉 + 𝑈 𝑉) ⇒ 𝑈 𝑉(0) + 𝑈𝑉(𝑍) + 𝑈𝑉(1) + 𝑈𝑉(0 )
𝐷0 𝐷1 𝐷2 𝐷3
(𝑍 𝑈 𝑉 + 𝑍 𝑈 𝑉) ⇒ 𝑈 𝑉(0) + 𝑈𝑉(0) + 𝑈𝑉(𝑍 + 𝑍) + 𝑈𝑉(0 )
𝐷0 𝐷1 𝐷2 𝐷3
( 𝑍 𝑈 𝑉 + 𝑍 𝑈 𝑉) ⇒ 𝑈 𝑉(𝑍) + 𝑈𝑉(0) + 𝑈𝑉(0) + 𝑈𝑉(𝑍 )
3.2. Demultiplexos. Función contraria, de 1 a 2𝑛 , tiene una única entrada y 2𝑛 salidas con puerta de acceso está controlada por 𝑛 variables.

𝑺𝟎 = 𝑺𝟏 𝑺𝟎 𝑰 Ejemplo decodificador BCD a decimal:


𝑺𝟏 = 𝑺𝟏 𝑺𝟎 𝑰 4 entradas (𝐴, 𝐵, 𝐶, 𝐷) 10 salidas (𝐷0 , … , 𝐷9 ).
𝑺𝟐 = 𝑺𝟏 𝑺𝟎 𝑰 Cada salida es término mínimo, no se minimiza.
𝑺𝟑 = 𝑺𝟏 𝑺𝟎 𝑰

Ejemplo: Codificación de BCD a “siete segmentos”


Ejemplo: Módulo universal, funciones. 2𝑛 salidas, n entradas.
Cuatro variables 𝐷𝐶𝐵𝐴 y el DEMUX tiene 3 entradas, usamos dos circuitos.
𝐴, 𝐵, 𝐶 se usan para entradas 𝐼0 , 𝐼1 𝑒 𝐼2 , y el bit 𝐷 (Indica DEMUX en uso)
7 funciones (𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓 𝑦 𝑔) de 4 entradas: (𝐴, 𝐵, 𝐶, 𝐷):

Cada función, activa un segmento. Karnaught para cada una

3.3. Codificadores con prioridad. Prioridad uso de línea. Para 4 entradas, 𝑃2 , 𝑃1 𝑦 𝑃0 donde 𝑃2 >𝑃1 > 𝑃0 . I/O R activa en baja
𝑷𝟐 𝑷𝟏 𝑷𝟎 𝒀𝟏 𝒀𝟎 Prioridad R
𝑌1 = 𝑃2 + 𝑃1
0 0 0 0 0 0 0
𝑌0 = 𝑃2 + 𝑃1 𝑃0
0 0 1 0 1 1 1
0 1 0 1 0 2 1 𝑷𝟐 𝑷𝟏 𝑷𝟎 𝒀𝟏 𝒀𝟎 R
0 1 1 1 0 2 1 0 0 0 x x 0
1 0 0 1 1 3 1 1 X X 1 1 1
1 0 1 1 1 3 1 0 1 X 1 0 1
1 1 0 1 1 3 1 0 0 1 0 1 1
1 1 1 1 1 3 1
Añadimos R que indica que no se necesita ninguna: R = 0 ⇒ P2 = P1 = P0 = 0

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

Tema 04 – Lógica combinacional programable


4.1. Procesamiento digital de la información
La lógica programable representa cualquier función lógica en forma normal disyuntiva (n entrada para obtener m funciones de salida).
Con tres arquitecturas básicas:

Para que los cambios sean reversibles, se emplean EPROMs, se indica:

La conexión intacta indica que el enlace está activo.


Si el símbolo va dentro de la puerta en AND (=0), en OR (=1)

4.2. PROM = Pocas entradas y salidas


PROMs: no volátil. PLDs con AND fija y completa (accesibles todos los términos de entrada) y OR programable.
Añadimos OR. Habría que duplicar la parte fija AND por cada nueva variable.

4.5. PAL = Pocas entradas muchas salidas y PLA = muchas entradas pocas salidas. REQUIEREN SIMPLIFICACIÓN
Así, nacen los PAL (Programable Arrays Logic). La parte OR, suma un número fijo de términos
mínimos, pero no hace falta duplicar la matriz al añadir una nueva variable

Versátil, surge la PLA (Programable Logic Array) AND y OR programables (Siendo más complejo, por lo que se usa solo si es necesario):

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Esquemas Año: 2017 / 2018

Tema 05 – Exigencias computacionales de la lógica secuencial: Circuitos biestables


5.1. Introducción a los autómatas finitos. Concepto de estado
Para describir un circuito secuencial hace falta: EJEMPLO - Bolígrafo:
- Espacio de entradas: (𝑋 = 𝑥1 , 𝑥2 ) 𝑿: 𝑥1 = 1 = 𝑝𝑢𝑙𝑠𝑎𝑟 𝑦 𝑥2 = 0
- Espacio de estados: (𝑆 = 𝑆1 , 𝑆2 ) 𝑺: 𝑆1 = 𝑝𝑢𝑛𝑡𝑎 𝑑𝑒𝑛𝑡𝑟𝑜, 𝑆𝑠 = 𝑝𝑢𝑛𝑡𝑎 𝑓𝑢𝑒𝑟𝑎
- Espacio de salidas: (𝑌 = 𝑦1 , 𝑦2 , 𝑦3 ) 𝒀 = 𝑦1 = 𝑠𝑎𝑙𝑒 𝑝𝑢𝑛𝑡𝑎, 𝑦 = 𝑦2 = 𝑒𝑛𝑡𝑟𝑎 , 𝑦 = 𝑦3 = 𝑛𝑎𝑑𝑎
- Ley de producción de estados a partir de entradas y estado anterior f:
- Ley de producción de salidas a partir de entradas y del estado anterior g:
Diagrama de transición de estados

5.2. Biestables. Almacenan el estado interno del sistema. Se expresan en puertas NAND y NOR

5.2.1. R-S Básico. Asíncrono. 2 entradas R (Reset, puesta a 0) y S (Set, puesta a 1). HOMBRE SENTADO/DE PIÉ
𝑅 𝑆 𝑄
0 0 𝑄
0 1 1
1 0 0
𝑸 = 𝑺 + 𝑹𝑸𝒕−𝟏 - Para operar!!

5.2.2. R-S Sincronizado a niveles. Pasa a ser síncrono. Es exáctamente igual, pero solo funciona con el reloj activo

5.2.3. Disparo por flancos. Se busca reducir el pulso para evitar errores. Triángulo a la entrada del reloj. (entrada dinámica)

5.2.4. R-S Sincronizado a Nivel y con Entradas Asíncronas de Preset y Clear. Más flexible

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Esquemas Año: 2017 / 2018

5.3. Biestable J-K.


𝐾 𝐾

𝑄𝑡−1 𝑄𝑡−1 𝑄𝑡−1 𝑄𝑡−1


𝑸 = 𝑱𝑸𝒕−𝟏 + 𝑲𝑸𝒕−𝟏
𝐽 1
𝐽 1 1 1

5.3.1. Configuración "Master-Slave"


Para solución de problemas, J-K disparados a nivel, dos J-K en serie, con Ck decide que biestable está activo. maestro-esclavo,

Al maestro, Ck y J, K. Al segundo, las salidas del primero y el pulso invertido.

5.4. Biestables T y D
El biestable T cambia de estado en cada pulso de reloj. De un JK conectando ambas entradas:
𝑄𝑛+1 = 𝑪𝒌(𝑻𝑸𝒏 + 𝑻𝑸𝒏 ) + 𝑸𝒏 𝑪𝒌, es decir, XOR de entrada y estado anterior.

D (delay) retarda entrada de estado anterior . Con un R-S o un J-K, uniendo D directamente a S o J y usando un inversor la otra.
𝑄𝑛+1 = 𝑪𝒌𝑫 + 𝑪𝒌D, es decir, XOR de entrada y estado anterior.

4.4.1.D Maestro-Esclavo y D disparado por flancos

2
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

Tema 06 – Introducción al diseño secuencial: Contadores y registros


6.1. Introducción al diseño secuencial con biestables D, T y J-K. síncrona es más sencilla.
Diagrama y tablas de transición de estados.

Diseño con biestables D: El valor de salida Q sigue siempre al valor de entrada D cuando entra un pulso de reloj. La entrada D
Siempre es igual al valor de la Q final que se quiere obtener. Para que pase de 𝐐𝐭−𝟏 a 𝐐
Por ejemplo: ¿Cuál ha de ser la entrada del biestable?
x 𝐐𝐭−𝟏 𝐐 y D
0 0 0 0 Para pasar de 0 a 0, entrada D = 0
1 0 1 1 1
0 1 0 0 0
1 1 1 0 1

Hasta aquí da igual es biestable, si elegimos D, añadimos la columna D, si luego repetimos con T o JK, añadimos la columna de entradas del biestable

Una vez puesta la entrada al biestable, calculamos la circuitería que hay entre la X y la entrada del biestable, y la circuitería entre la
salida del biestable e Y.
𝑫 = 𝒙𝑸 + 𝒙𝑸 = 𝒙
𝒚 = 𝒙𝑸

Diseño con biestables T: Usamos el mismo ejemplo, por lo tanto, únicamente vamos a sustituir la columna D, por la T,
volviendo a poner cual ha de ser la entrada al biestable para pasar de un estado a otro. Y calculando luego.
x 𝐐𝐭−𝟏 𝐐 y T
0 0 0 0 0 𝑻 = 𝒙𝑸 + 𝒙𝑸 = 𝒙 ⊕ 𝑸
1 0 1 1 1 𝒚 = 𝒙𝑸 = 𝒙 + 𝑸
0 1 0 0 1
1 1 1 0 0
Solo quedaría dibujar el circuito
Diseño con biestables JK: De nuevo el mismo ejemplo: Antes de rellenar las entradas de J y K.
IMPORTANTE: Vemos que para pasar de un estado a otro en un JK:
𝐐𝐭−𝟏 𝐐 JK Es decir…
0 0 Se puede pasar con 00 o con 01 (reset) 0X
0 1 Se puede pasar con 10 (set) o con 11 1X
1 0 Se puede pasar con 01 o 11 X1
1 1 Se puede pasar con 10 o 00 X0

Por lo tanto, rellenamos la tabla:


x 𝐐𝐭−𝟏 𝐐 y J K 𝑱= 𝑿
0 0 0 0 0 X
1 0 1 1 1 X
0 1 0 0 X 1
1 1 1 0 X 0 𝑲= 𝑿

𝒚 = 𝒙𝑸
Y ya se puede dibujar el circuito.
Con JK el proceso es más largo pero nos quedan circuito mucho más sencillos.

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

6.3. Representación, síntesis y análisis modular de autómatas con PLDs


Matriz funcional: Estados iniciales en columna izquierda, estado finales en línea superior, en los cuadros, los valores de las variables
que provocan la transición entre los estados iniciales y los finales:

Análisis: Obtener la matriz funciona y/o diagrama de transición a partir de un circuito determinado. Vemos con un ejemplo:

Si Ck no tiene el triángulo, se cambia en flanco ascendente

Únicamente nos piden las expresiones de 𝐽1 , 𝐾1 , 𝑄1 𝑦 𝑄2, ya que, al segundo biestable siempre le entra 1.
𝐽1 = 𝑥𝑄1 𝐾1 = 𝑥𝑄1 1º - Si estamos en estado 𝑄1 = 0, y 𝑥 = 0, vemos, mediante su expresión,
A continuación, construimos la tabla de verdad: cuando vale J y K. Y rellenamos la tabla. Con entradas, calculamos 𝑸𝟏

𝒙 𝑸𝟐 𝑸𝟏 𝑱𝟏 𝑲𝟏 𝑸𝟐 𝑸𝟏 4º Decimal 1º. Calculamos J y K 2º. Valor de 𝑄1 3º. Valor de 𝑄2 (Su estado era…)
0 0 0 1 0 1 1 3 𝐽1 = 𝑥(𝟎)𝑄1 (𝟎) = 𝟏 → 𝐾1 = 𝟎 con 𝟏𝟎 el biestable se pone a 1 Si 𝑸𝟏 pasa de 0 a 1, flanco ascendente, y cambia

1 1 𝐽1 = 𝑥(𝟏)𝑄1 (𝟎) = 𝟏 → 𝐾1 = 𝟎 con 𝟏𝟎 el biestable se pone a 1


1 0 0 0 1 3
0 𝑸𝟏 tiene flanco descendente 1 a 0, como estaba
0 1 1 0 0 1 1
1 0 1 0 1 0 0 0
0 1 0 1 0 0 1 1
1 1 0 1 0 0 1 1
0 1 1 1 0 1 1 3
1 1 1 0 1 1 0 2

Para construir el diagrama de transición, vemos en qué estado estaba el biestable, y a cual pasará, según las entradas.
- Vemos que si estamos en estado 0, da igual el valor de x, que siempre pasamos a estado 3
1
0
𝑆0 𝑆1

0, 1 0, 1

𝑆3 𝑆2

2
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

6.5. Contadores Recorren secuencia especificada. Reciben tres impulsos y devuelven binario del número de impulsos recibidos.
Autómatas finitos de 2𝑁 estados. Con 𝐴 estados, 𝑁 biestables, siendo 2𝑁 ≥ 𝐴. Con 𝑁 bies diseñar contadores desde 0 hasta 2𝑁 − 1

6.5.1. Contadores asíncronos. JK con J=K=1 (=T). Ck entra en bit de menor peso, y el reloj de las siguientes es salida Q de la anterior.
Por ejemplo, se dispara con transición de alta a baja): 𝑄0 y 𝑄1 , cuenta al revés. De diseñan siguiendo el procedimiento general.
El reloj con ⊿ a la entrada, se activa con flanco de bajada. El resto, con flanco de subida.

Contador reversible.

Contador de diferente base (Divisores de frecuencia)

3
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

6.5.2. Contadores síncronos. El reloj entra en todos, y J y K controlan transiciones, usando procedimiento general.
Desventajas de contadores asíncronos
1. Separación entre impulsos a contar depende de los retardos.
2. Los estados estables no se alcanzan al mismo tiempo.
Con los síncronos, cuando el contador tiene estado estable, posiciona las entradas a los biestables antes del siguiente pulso de reloj.
Cuando aparezca en todas, comienza a la vez el cambio (si es necesario).
Hay una forma estándar, con JK con dos entradas unidas a 1 (T), todos los relojes unidos entre si.
Para un contador ascendente, cada entrada JK, va a una AND con todas las salidas Q de pesos inferiores
Para uno descendente, cada entrada JK se conecta a una AND de todas las salidas 𝑸 de pesos inferiores
Síncrono con acarreo paralelo

Reversible

4
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

6.6. Registros de desplazamiento. Almacena y mueve datos


Se diferencian en el modo en que se introducen y sacan los datos.
Entrada serie / Salida serie Entrada serie / Salida paralelo Entrada paralelo / Salida serie Entrada paralelo / Salida paralelo

Su implementación se basa en dos puntos: Funcionamiento:


1. Compuestos por tantas Ds como bits
manipulemos.
2. Según modo de carga o desplazamiento
a. Con entradas en paralelo,
cada bit de entrada se conecta
a cada entrada de cada
biestable
b. Con entrada en serie, cada
entrada de biestable va
conectada a salida de
biestable inferior

Registro serie/paralelo

Registro con posibilidad serie-paralelo/serie-paralelo

5
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la
Información
Año: 2017 / 2018

Tema 07 – Temporizadores y relojes


7.1. Circuitos de tiempo.

Principio de funcionamiento: Células RC (Condensador almacena energía = presa). Carga y descarga aumentando la diferencia de
potencial según se llena. Si el condensador está descargado, la presión o tensión (como en la presa con la pared), es 0.
Si se mete la tensión, circula una corriente, y el condensador se va llenado. (Y va cogiendo una tensión en sus extremos). La
velocidad de llenado depende de la cantidad de corriente. La resistencia actúa a modo de llave de paso. (Mientras más se abra, más
corriente deja pasar al condensador...)
La forma de onda de carga del condensador

La forma de onda de carga del condensador. Es la siguiente. Si se mete carga, se va llenando el condensador, cuando para de entrar
corriente, el llenado del condensador, va bajando. El nivel de la resistencia, decrece o crece según se meta corriente.

Si se deja de aplicar tensión de entrada, el condensador se va descargando a través de la resistencia (paso contrario). A medida que
se va llenando el condensador, se opone mayor resistencia a la entrada de corriente, de ahí la forma de onda.
Cuando en cambio, se va descargando, al principio la velocidad es más lenta y luego va aumentando.
7.2. Astables. Binarios, ninguno estable.

Hay unos niveles para el 0 (por ejemplo entre 0 y 3) y para el 1 (entre 2 y 5). Cuando se añade alimentación, el condensador está
descargado, por lo que la tensión es 0, y por el inversor, hay un 1. Es decir, 0V y 5V… por lo que el condensador comienza a
cargarse… 0, 0.1, 0,2… de que supera el 3V… ya pasa el 0 a 1, por lo que tras el inversor se pasa de 1 a 0, y se empieza a descargar,
3.1, 3, 2.9… hasta ser inferior a 2, por ejemplo, y se cambia… como se ve en la gráfica, la puerta TRIGGER_SCHMITT mantiene
continuamente subida y bajada en umbrales determinados… consiguiendo una tensión de salida con onda cuadrada.

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la
Información
Año: 2017 / 2018

7.3. Circuitos de tiempo tipo 555. Bloque funcional general. (mono y ast), con duración de pulso y frecuencia controlables
Entre la alimentación y tierra hay tres resistencias (iguales). En un circuito serie, para resistencias iguales, las caídas de tensión se
reparten por igual.
Si por ejemplo en la patilla 8 se meten 9 voltios, cada resistencia será de 3.
Por ejemplo, este entre este punto y masa, habrá 3. De ahí el (𝑉𝐶𝐶 /3 ya que entre el punto que se compara con 2. Disparo solo
tiene una resistencia entre él y masa)
Y entre este y masa, 6. (2𝑉𝐶𝐶 /3)

1. Tierra: a tierra y su tensión es la más negativa del circuito


8. 𝑽𝑪𝑪 : Tensión de alimentación
2. Disparo: Sensible a 𝑉𝐶𝐶 /3 (Si 𝑉 < 𝑉𝐶𝐶 /3 el punto S es 1 (La báscula y la salida será 1 y R será 0).
6. Umbral: Sensible a 2𝑉𝐶𝐶 /3, si 𝑉 > 2𝑉𝐶𝐶 /3, predomina R y por lo tanto el RS será 0.
5. Control: Cambiando la tensión desde fuera, varían los umbrales de 6 y 7. El umbral alto, será el valor de tensión en el punto 5, el
bajo, siempre la mitad.
4. Reset: Resetea el dispositivo
7. Descarga: Si en la salida hay un 0, en el transistor de entrada hay un 1.
Comparador:

Si la tensión de entrada + mayor a la de entrada -, la salida es positiva.


Si + es un inferior a la entrada -, la salida será negativa o 0.

Para un circuito de tiempo, hace falta una resistencia y un condensador. Como en este circuito no hay condensador, se añade
externamente. En función de cómo se hagan las conexiones externas, tendremos el circuito en modo astable o monoestable.

2
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la
Información
Año: 2017 / 2018

Astable con el 555:

555

Se añaden dos resistencias y un condensador.


Al conectar a la alimentación el condensador está descargado (Tensión 0 en sus extremos).
Con 9 voltios, por ejemplo, aquí tendremos 3 voltios y aquí 6.
Con el condensador descargado, aquí tendremos tensión 0, como la tensión en la patilla 1(+) (3v) del comparador es mayor que la 2(-
), en la salida S tendremos un 1.
Al mismo tiempo, aquí, tendremos 0, y en 2(-) 6V, como es mayor la tensión, en la salida R, tendremos un 0, por lo que el biestable
en modo set tendrá un 1 en la salida. El interruptor por lo tanto, vale 0 (interruptor abierto = no circula corriente). Entonces, al no
circular corriente por ese tramo, por aquí sí que circula y el condensador se sigue cargando.

La tensión aumenta, 0, 1, 2… 3, 3.1… en este punto, la tensión del terminal 2(-) ya será mayor que el terminal 1(+) de S, por lo que el
valor de S se cambia a 0. Pero aún las tensiones del terminal R son 6 vs 3.1, por lo que R sigue siendo 0. Este punto.
Un biestable RS con 00, mantiene la salida anterior, que era 1.El condensador se sigue cargando hasta superar el 6 de R.
En ese caso, su valor pasa a 1, con R = 1, S = 0, el biestable se resetea, salida 0.
Al mismo tiempo, el interruptor pasa a 1, ya circula la corriente por ahí, conectando el circuito a descarga. Invirtiendo el proceso
hasta que la tensión del condensador vuelve a ser inferior a 3.

3
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la
Información
Año: 2017 / 2018

El tiempo de carga depende del par de resistencias, de RA y RB y el tiempo de descarga únicamente de RB


Periodo que el circuito es 0: 𝑡1 (𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑑𝑒𝑠𝑐𝑎𝑟𝑔𝑎) = 0,69 (𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒)𝑅𝐵 𝐶
Periodo que el circuito es 1: 𝑡2 (𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑐𝑎𝑟𝑔𝑎) = 0,69 (𝑅𝐴 + 𝑅𝐵 )𝐶
El tiempo total del ciclo 𝑇 = 𝑡1 + 𝑡2 = 0,69 (𝑅𝐴 + 2𝑅𝐵 )𝐶

- Astable con el 555 con tiempo de carga dependiente de RA exclusivamente: Para ello, añadimos un diodo (semiconductor), la
corriente, a la hora de cargar, se salta 𝑅𝐵 en la carga. La descarga es igual, por lo que las nuevas fórmulas de cálculo del tiempo
son las siguientes.

Con esto, se puede conseguir un ciclo de trabajo del 50%.

7.4. Monoestables. Circuito con 1 estado estable y otro metaestable


Suponemos siempre que comenzamos en un determinado estado.
Suponiendo que no hay impulsos: En 1 hay un 0 y en la otra entrada de la NOR
suponemos que hay un cero. Por lo tanto 0 + 0 = 1 en el punto 2.
Como en 2 hay un 1, y también tenemos 1 en 𝑉𝐶𝐶 , la diferencia de potencial es
0. Por lo que la corriente que circula será 0V. El condensador descargado. Y
ese 1 en el punto 2, se convierte en 0 en el punto 4. Que es la entrada que
hemos supuesto, por lo que el funcionamiento es viable.
Si metemos un impulso (1 en punto 1). En el punto 2 tendremos 0.
En ese caso, hay diferencia de potencial con 𝑉𝐶𝐶 , por lo que circula una
corriente, comenzando a cargarse el condensador a través de la resistencia.
Mientras que la carga es inferior al umbral, ese 0, en 4 es un 1. Lo que provoca
que en el punto 2 siga siendo 0. (NOR: 1 + 1 = 0)
Cuando se llega a cargar, y la tensión se convierte en nivel lógico 1, a la salida
4 habrá un 0, en ese caso, la salida de la NOR 0 + 0 = 1, vuelve a no existir
diferencia de potencial y el condensador comienza a descargar… volviendo a
empezar…
El estado inestable será el tiempo que tarda el condensador en cargarse.

4
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la
Información
Año: 2017 / 2018

Monoestable con el 555:

Hay que provocar la entrada en el circuito inestable. Añadimos la entrada de un impulso en la patilla de disparo. En el punto de
referencia de 2/3.
Suponemos que en disparo hay un 1 (5V): Por lo que, en S, la patilla 2- son esos 5V, siendo mayor que 1+ (si la alimentación es 6,
tendremos 2V en 1+). S = 0.
Estando el condensador descargado, aquí, habrá 0 Voltios. Por lo que en 2- de R, habiendo 4V (6/3 por 2) R será 0.
El estado, entonces permanece como estaba. El transistor, a 0, hace que el condensador esté descargado al estar unido a masa.
Meter un impulso de disparo (activo a 0), como la tensión de 2- de S, con 0V, y 1+ sigue siendo 2, se cambia a 1.
Lo mismo ocurrirá con R, la tensión en 1+ seguirá siendo 0 al seguir descargado el condensador. R = 0. Salida de 1.
Comienza entonces a cargar hasta que llega al límite, comienza a descargar… hasta que vuelve a valer todo 0. Cada vez, el periodo
que vale 0 es inferior.

5
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la
Información
Año: 2017 / 2018

7.5. Ejercicios. Cálculo de valores de resistencias


555 como astable, sin diodo: Si no usamos el diodo en paralelo a 𝑅𝐵 para que carga exclusivamente por 𝑅𝐴 .

Periodo que el circuito es 0: 𝑡1 (𝑑𝑒𝑠𝑐𝑎𝑟𝑔𝑎) = 0,69𝑅𝐵 𝐶


Periodo que el circuito es 1: 𝑡2 (𝑐𝑎𝑟𝑔𝑎) = 0,69 (𝑅𝐴 + 𝑅𝐵 )𝐶
El tiempo total del ciclo 𝑇 = 𝑡1 + 𝑡2 = 0,69 (𝑅𝐴 + 2𝑅𝐵 )𝐶

555 como astable, con diodo:

Periodo que el circuito es 0: 𝑡1 (𝑑𝑒𝑠𝑐𝑎𝑟𝑔𝑎) = 0,69𝑅𝐵 𝐶


Periodo que el circuito es 1: 𝑡2 (𝑐𝑎𝑟𝑔𝑎) = 0,69𝑅𝐴 𝐶
El tiempo total del ciclo 𝑇 = 𝑡1 + 𝑡2 = 0,69 (𝑅𝐴 + 𝑅𝐵 )𝐶

Si conocemos el tiempo de carga o descargar, por ejemplo, 0,83 microsegundos.

Y asignamos un valor estándar en el condensador, por ejemplo, uno de 1 nanofaradio

0.83∙10−6 0.83∙10−6
0.83 ∙ 10−6 = 0,69 ∙ 𝑅𝐵 ∙ 1 ∙ 10−9 → 𝑅𝐵 = = = ∙ 10−𝟔−(−𝟏𝟎) = 1.20 ∙ 10+4 = 14𝑘Ω
𝟎,𝟔𝟗∙𝟏∙10−9 0,69∙10−𝟏𝟎

555 como monostable

Asignando de nuevo un valor de 1 nanofaradio al condensador, siendo este un valor estándar y sencillo de encontrar

Si conocemos también el tiempo, por ejemplo 0.83 𝑚𝑖𝑐𝑟𝑜𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠

0.83∙10−6 0.83∙10−6
𝑇 = 𝑅 ∙ 𝐶 ∙ ln 3 → 𝑅 = = = ∙ 10−𝟔−(−𝟗) = 0.754 ∙ 10+3 = 754Ω
𝟏.𝟏∙𝟏∙10−9 𝟏.𝟏∙10−9

6
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

Tema 08 - Memoria RAM y CAM


8.1. Organización de las memorias SRAM. Memorias de lectura/escritura y acceso directo
Por velocidad, se adopta la SRAM, con biestables RS (comportándose como D).
Palabra: grupos de 8, 16, 64 bits… que se tratan globalmente.
Cada dirección = una palbra. k bits para direccionar 𝐾 = 2𝑘 palabras.
DECO de k a K para acceder a todas. Y bus de direcciones de k, así como,
bus de datos del tamaño de la palabra.

Usando el bus de direcciones, se selecciona la página


con los bits necesarios, el resto, selecciona filas y
columnas.
Con un decodificador se seleccionan las filas, con el
otro, las columnas.

8.2. Celdas RAM estáticas (SRAM) en tecnología bipolar


8.2.1. Celdas RAM estáticas (SRAM) en tecnología bipolar
Esta es la construcción de la báscula D. Formada por transistores bipolares.
Transistor BJT (Transistor de unión bipolar): Los hay de dos tipos. Al poner el valor (según tipo) en la base, se cierra (saturación), si
deja de entrar el valor en la base, entra en corte y se abre.
NPN: 1 uno en base para cerrarse PNP: 0 en base para cerrarse

Como la base de uno está unida al colector del otro, y viceversa. Si uno
conduce, el otro no lo hace. Entonces, por convenio… Si 𝑸𝟏 conduce (𝑄2 al
corte), se almacena un 1. Si 𝑸𝟐 conduce (𝑄1 al corte), se almacena un 0.
Si imaginamos que 𝑸𝟐 conduce (en lo rojo circula corriente), su tensión
1
Colector-Emisor es 0, entonces, la tensión Base-Emisor de 𝑄1 es 0, y estará 1
abierto. 0
Mediante el amplificador diferencial. Es una especie de comparador, si la
tensión es mayor en un lado que en el otro, se acepta su valor y la salida
1 0
será ese valor.
Selección de celda. 1 en WL, lo que causa que los dos Ei se pongan a 1, dejando el estado en manos de E’1 (en manos de los
emisores) o lo que es lo mismo, en manos de entradas de escritura de 1 𝑩𝑳 y de escritura de 0 𝑩𝑳.
Lectura: Al seleccionar la celda con WL, solo el emisor del transistor que conduce, tiene corriente para dejar la salida en el
amplificador de lectura.
Escritura: Seleccionando la celda con WL, e introduciendo 1 por 𝑩𝑳 y 0 por 𝑩𝑳. Para escribir un 1, y al revés para poner un 0.
Por ejemplo supongamos que se quiere introducir un 1, para ello activaremos WL e introduciremos un 1 por 𝑩𝑳 y un 0 por BL. Un 0
en BL provoca que 𝑸𝟏 conduzca, provocando que 𝑸𝟐 se, manteniendo con ello el nivel introducido al principio y provocando su
almacenamiento. Y viceversa, si queremos introducir un 0.

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

8.2.2 Celdas RAM estáticas (SRAM) en tecnología MOS. Inversor MOS: N (+ lo activa), P (- lo activa)
Inversor básico en MOS: También actúa como interruptor. Con un 1 conduce, y con un 0 se abre y no conduce.
WL selecciona la celda, y los datos pasan por 𝑩𝑳 y 𝑩𝑳.
Tenemos dos inversores acoplados: 𝑄1 − 𝑄3 𝑦 𝑄2 − 𝑄4 ,
mas otros dos para habilitar lectura y escritura: 𝑄5 y 𝑄6 .
Por convenio, almacenan un 1 con 𝑄1 conduciendo y 𝑄2
cortado.
Selección de celda: Poniendo un en 1 WL, así 𝑄5 y 𝑄6
conducirán.
Lectura: Tras seleccionar la celda, los valores de A y B aparecerán directamente en 𝑩𝑳 𝒚 𝑩𝑳 respectivamente.
Escritura: Tras seleccionar con WL, se introduce un nivel lógico 1 el dato que queremos meter 𝑩𝑳 (1) o 𝑩𝑳 (0). Es decir, se mete un
uno por el lado que queremos almacenar el 0 o el 1.
Si suponemos la entrada de un 0, se activa WL e introducimos un 1 por 𝑩𝑳, y un 0 por 𝑩𝑳, el 0 por 𝑩𝑳 provoca que 𝑄1 se corte, y
que 𝑄2 conduzca (reforzando y memorizando el nivel previamente introducido de 0V).

8.3. Organización de las memorias DRAM en tecnología MOS.


Se sacrifica velocidad en favor de integración y bajo consumo.
El elemento que almacena la información son
los condensadores C1 y C2. (No se
implementan, son capacidades parásitas de los
propios transistores los que almacenan la
información). Se introduce un sistema de
refresco a través de 𝑸𝟏𝟏 y 𝑸𝟏𝟐 , que hace que
las información de salida se vuelva a meter en la
entrada.

2
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías de la Información
Año: 2017 / 2018

Se elimina la redundancia de almacenamiento (el dato y su


complementario) y se reduce en un transistor.

Usando un único transistor y su capacidad parásitos,


reducimos una vez más, a un solo transistor.
Durante el ciclo de escritura, se habilita WL si se
introduce el nivel en BL, al conducir 𝑸𝟏 la carga se
introduce en C1.

8.4. Circuitos de memoria asociativa (CAM).


Memorias donde se accede a una posición de memoria, en
función del contenido de la memoria.
Se tiene, pues un dato propiamente. Y una etiqueta. Entonces, la
memoria devuelve las posiciones de memoria que coinciden con
la etiqueta.

8.4.1 Celda básica en CMOS


Se usa una celda SRAM de 6 transistores, añadiéndoles 4 más para comparar el
bit almacenado con el bit correspondiente al patrón (Haciendo XNOR).

3
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías
de la Información
Año: 2017 / 2018

Tema 09 - Memorias de acceso secuencial


9.1. Organizaciones de acceso secuencial
FIFO: de K palabras de n bits, con n registros de desplazamiento (uno por bit) de longitud K (números de palabras)
LIFO: Cada nueva palabra empuja a las que había, aumentando la altura. Si se pasa de lectura a escritura, se cambia
el sentido de desplazamiento.

Sirven, sobre todo, para coordinar elementos de diferentes velocidades.


9.2. Estructuras CCD
Se organiza en serie con etapas regeneradoras en las esquinas. El
número de bits entre dos amplificadores, está determinado por la
eficiencia en el proceso de transmisión o por la frecuencia de trabajo
más baja.

Organización por lazos múltiples con


direccionamiento directo para cada lazo.
Mejora el tiempo de acceso, aumentando la
electrónica de direccionamiento.

Organización S-P-S (Serie-paralelo-serie). Tiene dos


registros serie y un gran registro paralelo multicanal.
Todos los paralelos se desplazan a la vez con un
mismo reloj más lento.

1
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías
de la Información
Año: 2017 / 2018

9.3. Etapas dinámicas en MOS y CMOS

Se emplea esta etapa dinámica para reducir área.

𝚽𝟏 y 𝚽𝟐 son relojes

Si introducimos un 0 en la entrada, mientras 𝚽𝟏 está en nivel alto, 𝑸𝟐 y 𝑸𝟑 pasan a conducir.


Como en la entrada hay un 0, 𝑸𝟏 está cortado. Y el valor de 𝑷𝟏 = 𝟏 se lleva al condensador 𝑪𝟏 y 𝑽𝑫𝑫 .
Empieza la fase del reloj 𝚽𝟐 , 𝑸𝟓 y 𝑸𝟔 pasan a conducir. Y los gestionados por 𝚽𝟏 pasan al corte.
Por ello, el 𝟏 almacenado en 𝑪𝟏 hace que 𝑸𝟒 conduzca y lleve el punto 𝑷𝟑 a tierra.
Esta información se transmite a 𝑪𝟐 a través de 𝑸𝟔 y queda almacenada en 𝑪𝟐 al acabar el pulso 𝚽𝟐 .
Así, se ha desplazado el 0, de la entrada 𝑽𝒊 hasta la entrada de la segunda etapa, terminal 𝑸𝟕 .
En el siguiente ciclo, se va repitiendo…

9.4. Memorias FIFO sobre celdas RAM en CMOS. almacenamiento transitorio para acoplar dos velocidades
Las FIFO se emplean para acoplar dos sistemas que operen a diferente velocidad. Una especie de buffer.
9.4.1. Tipos de FIFO
1. FIFO tipo registro de desplazamiento: El número de palabras es fijo, y existe un sincronismo entre operaciones
de lectura y escritura. A medida que van entrando nuevos datos, van saliendo otras por su extremo.

2. FIFO de lectura/escritura mutuamente exclusivas: Solo se puede leer o escribir en un momento dado. El número
de palabras es variable, así como satisfacer ciertas condiciones en el cronograma entre las señales del sistema que
escribe y el que lee. También necesita cierto sincronismo entre los dos sistemas.

3. FIFO de lectura/escritura recurrente: Número variable de palabras, y opción de lectura/escritura asíncrona


(incluso a la vez). Los cronogramas de lectura o escritura son independientes. Se usan para conectar dispositivos de
distinta frecuencia.

2
Fundamentos de sistemas digitales Grado en Ingeniería de Tecnologías
de la Información
Año: 2017 / 2018

9.4.2. Arquitecturas de las FIFO-RAM


Se organizan de dos formas, la primera, como registros de desplazamiento. Se añade un dato en la primera posición
no ocupada y se desplazan los demás, el último, sale del registro. (Retraso cuando el circuito es grande).
El otro, se basa en una arquitectura circular y el uso de dos punteros.

También podría gustarte