Está en la página 1de 34

Apuntes de Circuitos Electrónicos Digitales.

Adrián Romero Flores


Grupo 4 de Ingeniería del Software

Universidad de Sevilla

Parte I
Fundamentos matemáticos del diseño lógico
1. Representación binaria
1.1. Representación posicional de magnitudes
En general:
• - Magnitud de n dígitos en base b: x = xn−1 · · · x1 x0 (b .
• - Base b.
• - b símbolos: {0, 1, · · · , b − 1}
• - Número más alto que se puede representar en base b con n cifras: desde 0 a bn − 1
Base 2 (Sistema binario): {0, 1} (bit: dígito binario)
01001(2 = 24 + 21 + 20 = 19(10

Base 8 (Sistema octal): {0, 1, 2, 3, 4, 5, 6, 7}


47(8 = 4 · 81 + 7 · 80 = 32 + 7 = 39(10

Base 16 (Sistema hexadecimal): {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }


2A(16 = 2 · 161 + 10 · 160 = 32 + 10 = 42(10

1.2. Cambios de base


1.2.1. Cambios de base 10 ⇐⇒ 2 mediante "pesos"de bits

2*Peso de los bits 27 26 25 24 23 22 21 20


128 64 32 16 8 4 2 1
Símbolo - - - - - - - -

Base 2 a 10: Ponemos los símbolos con su correspondiente peso, multiplicamos por el peso
y sumamos los valores multiplicados.
Base 10 a 2: Vamos recorriendo de izquierda a derecha sumando los pesos que necesitemos
hasta obtener el número, a los pesos que hallamos sumado les colocamos un 1 y a los que
no un 0.

1
1.2.2. Relación entre las bases 2n
Base 2 a Base 16: Cojemos los bits de 4 en 4 (24 = 16), de izquierda a derecha, y pasamos
esos grupos de 4 bits a hexadecimal:
10011(2 = 0001 0011(2 = 13(16

Base 16 a Base 2: Pasamos cada uno de los dígitos hexadecimales a binario de 4 bits:
A7(16 = 1010 0111(2

Base 2 a Base 8: Cojemos los bits de 3 en 3 (23 = 8), de izquierda a derecha, y pasamos
esos grupos de 3 bits a octal:
10011(2 = 010 011(2 = 23(8

Base 16 a Base 2: Pasamos cada uno de los dígitos octales a binario de 3 bits:
37(8 = 011 111(2

1.3. Representacion de números fraccionarios (punto fijo)

ENTERA FRACCIONARIA

.
0 1 1 0 1 1 1 0

Conversión de Base 2 a Base 10:


• Parte entera:
1101(2 = 23 + 22 + 20 = 13(10
• Parte fraccionaria:
0,110(2 = 2−1 + 2−2 = 0,75(10
Conversión de Base 10 a Base 2: 13,75(10
• Parte entera: La convertimos a binario.
13(10 = 01011(2

• Parte fraccionaria: Multiplicamos por dos y nos quedamos con la parte decimal. Seguimos
haciendo lo mismo hasta llegar a 0.
0,75 · 2 = 1,50
0,50 · 2 = 1,00
0,00 · 2 = 0,00
0,75(10 = 0,110(2

2. Códigos binarios
Son una colección de símbolos y reglas que permiten identificar cierta información de acuer-
do a un convenio que utilizan sólo 0 y 1 para representar dicha información.

2
2.1. Códigos para representación de número decimales
Se utilizan para representar en binario números de base 10 de varias cifras. Cada cifra del
número en base 10 se sustituye por su representación en el código binario correspondiente.

2.1.1. BCD (Binary Code for Decimal Digits)

Dígito Código BCD


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

Ejemplo: 16(10 = 10000(2 = 0001 0110(BCD

2.1.2. Código Exceso-3

Dígito Exceso-3
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100

Ejemplo: 16(10 = 10000(2 = 0100 1001(Exceso-3

3
2.1.3. Código 2-de-5
El código se construye con 5 bits donde 2 de ellos son siempre unos (y, por tanto, los tres
restantes son ceros): Ejemplo: 16(10 = 10000(2 = 00101 10001(2-de-5

Dígito 2-de-5
0 00011
1 00101
2 00110
3 01001
4 01010
5 01100
6 10001
7 10010
8 10100
9 11000

2.1.4. Código 7-segmentos


Es un código de 7 bits utilizado para representar dígitos decimales en displays o visualizadores
de 7 segmentos. Algunos fabricantes aprovechan para representar también algunas letras: A, b,
C, d, E, F.

7-seg
Dígito
abcdefg
0 1111110 7-seg
Carácter
1 0110000 abcdefg
2 1101101 A 1111011
3 1111001 b 0011111
4 0110011 C 1001110
5 1011011 d 0111101
6 0011111 E 1001111
7 1110000 F 1000111
8 1111111
9 1110011

4
2.2. Código Gray
Es un código binario de n bits donde los 2n códigos binarios se ordenan para que los códigos
adyacentes (consecutivos) y los reflejados varíen sólo en el valor de 1 bit. El código Gray de n
bits se obtiene a partir del código Gray de (n-1) bits.

Gray de 1 bit Gray de 2 bits Gray de 3 bits Gray de 4 bits


0 0 00 000 0000
1 1 01 001 0001
2 11 011 0011
3 10 010 0010
4 110 0110
5 111 0111
6 101 0101
7 100 0100
8 1100
9 1101
10 1111
11 1110
12 1010
13 1011
14 1001
15 1000

2.3. Códigos alfanuméricos


Son códigos que se utilizan para representar letras, números, signos de puntuación, caracteres
de control, etc. Uno de los primeros códigos alfanuméricos estandarizados (1967) fue el código
ASCII (American Standard Code for Information Interchange). El código ASCII original utiliza 7
bits para representar la información.

2.4. Códigos detectores de errores


Cuando se transmite información de un ordenador a otro, pueden producirse errores en los
mensajes que se envían por el canal de comunicaciones debidos a múltiples factores: interfer-
encias, atenuaciones de la señal, etc. Es importante detectar dichos errores para no considerar
como válidos mensajes que realmente son erróneos.

2.4.1. Detección de errores mediante Bit de Paridad


La idea es añadir a cada carácter un bit adicional denominado bit de paridad, para conseguir
que el código binario tenga un número par (o impar) de bits que sean unos. El receptor del
mensaje comprueba si el carácter o el código le ha llegado con la paridad acordada (par o impar).
Si se detecta un error, el mensaje se descarta.
Ejemplo:

ASCII (7 bits):

”A” → 41(16
$41 → 100 0001

5
ASCII-p-par (8 bits):
$41 → 0100 0001

ASCII-p-impar (8 bits):
$C1 → 1100 0001

3. Representación de números con signo


3.1. Notación Signo–Magnitud (s-M)
Para n bits, se reserva el bit de la izquerda para indicar el signo y los restantes para el módulo:

7 6 5 4 3 2 1 0
Signo Magnitud

0 → Positivo

Signo
1 → Negativo

Notación Notación
SM SM
0 0000 -0 1000
1 0001 -1 1001
2 0010 -2 1010
3 0011 -3 1011
4 0100 -4 1100
5 0101 -5 1101
6 0110 -6 1110
7 0111 -7 1111

3.2. Notación Complemento a 1


“Calcular el complemento a 1 de un número N” equivale, matemáticamente, a:

Ca1(N ) = (2n − 1) − N, donde n es el número de bits.

Que equivale a cambiar los unos por ceros y los ceros por unos.

Notación Notación
Ca1 Ca1
0 0000 -0 1111
1 0001 -1 1110
2 0010 -2 1101
3 0011 -3 1100
4 0100 -4 1011
5 0101 -5 1010
6 0110 -6 1001
7 0111 -7 1000

6
3.3. Notación Complemento a 2
“Calcular el complemento a 1 de un número N” equivale, matemáticamente, a:

Ca2(N ) = (2n ) − N = Ca1(N ) + 1, donde n es el número de bits.

Que equivale a, empezando por la derecha, conservar todos los bits a “cero” hasta encontrar el
primer “uno” (incluido), y complementando el resto de bits.

Notación Notación
Ca2 Ca2
0 0000 -1 1111
1 0001 -2 1110
2 0010 -3 1101
3 0011 -4 1100
4 0100 -5 1011
5 0101 -6 1010
6 0110 -7 1001
7 0111 -8 1000

4. Algebra de Conmutación
Un Álgebra de Boole es un sistema es un matemático definido para un conjunto de elementos
B y los operadores +, ·, x. El Álgebra de Conmutación es un caso especial del Álgebra de Boole:

Postulado/Teorema <B, + , ·, x>


P1: Postulado de cierre Si x, y ∈ B, entonces x + y ∈ B Si x, y ∈ B, entonces x · y ∈ B
P2: Ley de Identidad x+0=x x·1=x
P3: Ley Conmutativa x+y=y+x x·y=y·x
P4: Ley Distributiva x · (y + z) = (x · y) + (x · z) x + (y · z) = (x + y) · (x + z)
P5: Ley del complemento x+x=1 x·x=1

Principio de Dualidad: si una expresión se cumple, la expresión que resulta de intercam-


biar + con · y 0 con 1 también se cumple.

B = (0,1)

Operador + (OR): Suma Lógica.

Operador · (AND): Producto Lógico.

Operador x (NOT): Complemento.

7
Propiedades y teoremas del Álgebra de Conmutación

Postulado/Teorema <B, + , • , > ; B = í0, 1ý; + es OR; • es AND ; es NOT


P2: Ley de Identidad x+0=x x•1=x
P3: Ley Conmutativa x+y=y+x x•y=y•x
P4: Ley Distributiva x • (y + z) = (x•y) + (x•z) x + (y • z) = (x+y) • (x+z)
P5: Ley del Complemento x+x=1 x•x=0
T1: Ley de Idempotencia x+x=x x•x=x
T2: Ley de Elem. dominantes x+1=1 x•0=0
T3: Ley Involutiva
(x)=x
T4: Ley de Absorción x + (x•y) = x x • (x+y) = x
T5: Ley del Consenso x + ( x •y) = x + y x • ( x+y) = x • y
T6: Ley Asociativa x + (y+z) = (x+y) + z x • (y•z) = (x•y) • z
T7: Ley de De Morgan x•y=x+y x+y=x • y
T8: Ley de De Morgan generalizada x • y • z • ….= x + y + z +… x + y + z +… = x • y • z • ….
T9: Ley del consenso generalizado
x•y + x•z + y•z = x•y + x•z (x+y)•(x+z)•(y+z)=(x+y) • (x+z)

Departamento de Tecnología Electrónica – Universidad de Sevilla


4.1. Variables y funciones de conmutación
Variable binaria(x, y, z, etc): es una variable que sólo puede tomar valores binarios (0 ó 1)

Función Conmutación de n variables:

f (x1 , x2 , ..., xn )

Asocia un valor binario a cada una de las 2n combinaciones que pueden tomar sus n vari-
ables. Se representan mediante una tabla de verdad.

Las funciones de conmutacion son la base del disño de los circuitos digitales:

• - Las variables son las entradas del circuito.


• - Las funciones son las salidas del circuito.

4.1.1. Expresiones de conmutación


:

Expresión algebraica que relaciona variables binarias utilizando operadores lógicos AND
(·) , OR (+), NOT (x) , el signo = y los elementos unitarios 0 y 1.

Precedencia de · sobre +
x + (y · z 0 ) = x + y · z 0

” · ” se puede omitir
x + y · z 0 = x + yz 0

Aplicando las propiedades y teoremas del Álgebra de Conmutación, puedo obtener infinitas
expresiones equivalentes (todas representan a la misma función)

Una función de conmutación tiene infinitas expresiones algebraicas que la representan.


Estaremos interesados en encontrar la expresión “más reducida posible” para conseguir el
circuito mínimo.

4.2. Formas normalizadas


Literal: una variable binaria que aparece complementada o sin complementar en una ex-
presión de conmutación.

Término producto: un literal o producto de literales. Ejemplo: xyz 0

Término suma: un literal o suma de literales. Ejemplo: x + y + z 0

Cualquien función algebraica puede representarse en forma normal de suma de productos.


Ejemplo: f (x, y, z) = xy + yz 0 + x0

Cualquien función algebraica puede representarse en forma normal de producto de sumas.


Ejemplo :f (x, y, z) = (x + y)y(z 0 + x0 )

9
4.3. Formas canónicas
4.3.1. Suma de mintérminos Σ(mi)
Mintérmino de n variables: cada uno de los 2n términos producto que pueden formarse
conteniendo las n variables.

Cualquier función de conmutación puede ponerse en forma canónica de suma de mintér-


minos correspondientes a los 1 de la función.

abc mi
000 abc = m0
001 abc = m1
010 abc = m2
011 abc = m3
100 abc = m4
101 abc = m5
110 abc = m6
111 abc = m7

4.3.2. Producto de maxtérminos Π (Mi)


Maxtérmino de n variables: cada uno de los 2n términos suma que pueden formarse con-
teniendo las n variables.

Cualquier función de comutación puede ponerse en forma canónica de producto de max-


términos correspondientes a los 0 de la función.

abc Mi
000 a + b + c = M0
001 a + b + c = M1
010 a + b + c = M2
011 a + c + b = M3
100 a + b + c = M4
101 a + b + c = M5
110 a + b + c = M6
111 a + b + c = M7

4.4. Funciones lógicas

XY F0 F1 F2 F3 F4 F5 F6 F7 F8 F8 F10 F11 F12 F13 F14 F15


00 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Cero AND X Y EXOR OR NOR EXNOR Y X NAND Uno

10
4.5. Símbolos de puertas lógicas

Nombre Símbolo Gráfico Simbolo IEEE

&
AND

≥1
OR

1
NOT

&
NAND

≥1
NOR

=1
EXOR

=1
EXNOR

Parte II
Análisis y diseño de circuitos combinacionales
1. Análisis lógico de de Circuitos Combinacionales
El análisis lógico de un circuito consiste en encontrar la función lógica que realiza.
La solución podrá darse en forma de:

Expresión algebraica normalizada (sp o ps).

Tabla de Verdad o K-mapa.

En algunas ocasiones, descripción verbal de su función.

2. El proceso de diseño de CC
1. Descripción textual −→ Tabla de verdad

Identificar las variables de entrada y la función (o funciones de salida).


Determinar los criterios de los valores lógicos (qué significa “0” y qué significa “1”)
Obtener la tabla de verdad (o directamentel el Kmapa) (para cada función de salida)

11
2. Obtener el K-mapa de la función
A partir de la tabla de verdad anterior o de la especificación establecida, se obtiene el K-
mapa de la función a implementar.

3. Obtener una expresión algebraica reducida (mínima)


Usando el método gráfico del K-mapa, obtendremos una expresión normalizada (sp o ps)
reducida.

4. Obtener el circuito en dos niveles a partir de la expresión algebraica

Suma de productos (sp): AND/OR o NAND/NAND


Producto de sumas (ps): OR/AND o NOR/NOR

3. Mapas de Karnaugh
El mapa de Karnaugh (Kmapa) da la misma información que la tabla de verdad, pero ordena
los mintérminos y maxtérminos con propiedades muy interesantes.
xy

00 01 11 10

00

01
zu
11

10

3.1. Expresiones normalizadas sp y ps a partir del k-mapa


Expresión mínima como suma de productos

• - Nos fijamos en los 1’s del K-mapa, o mintérminos.


• - Cubrimos todos los mintérminos para conseguir el menor número términos producto
(implicantes) con menor número de variables.

Expresión mínima como producto de sumas

• - Nos fijamos en los 0’s del K-mapa, o maxtérminos.


• - Cubrimos los maxtérminos para conseguir términos suma (implicadas) con menor
número de variables.

3.2. Términos adyacentes


Dos términos (mintérminos o maxtérminos) son adyacentes, si se diferencia solo en el valor
de una variable.

12
Se identifican bien en el Kmapa porque son “vecinos” (arriba, abajo, izquierda o derecha)
o “reflejados”.

La suma de dos mintérminos adyacentes genera un único término producto en el que se ha


eliminado la variable que cambia.

El producto de dos maxtérminos adyacentes genera un único término suma el que se ha


eliminado la variable que cambia.

xy xy

00 01 11 10 00 01 11 10

00

01 1 1 0 0
zu
11

10

=0 =1

4. Análisis temporal. Azares


4.1. Análisis temporal
Representa la evolución en el tiempo de las entradas y salidas del circuito. A esta repre-
sentación temporal se la denomina CRONOGRAMA. Dicha representación puede ser:

Suponiendo que las puertas no tienen retrasos.

Teniendo en cuenta los retrasos propios de las puertas lógicas.

Para dibujar el cronograma considerando los retrasos, es necesario desplazar la salida de las
puertas tanto como indique el valor del retraso.

4.2. Azar
Azares (o “glitches”): son pulsos inesperados que pueden aparecer en la salida de un circuito
cuando las variables cambian con el tiempo.

13
Parte III
Subsistemas Combinacionales
Facilitan el proceso de diseño, pues realizan funciones complejas que requieren un gran nu-
mero de puertas: "muchas entradas"(n) y "muchas salidas"(m).
Dos tipos de terminales: datos y control

Las señales de control condicionan el funcionamiento del subsistema (habilitan, inhiben, etc).
Estos pueden presentar dos niveles de activación: en alto (1) o en bajo (0).

14
1. Subsistemas de propósito específico
1.1. Decodificadores
Decodifican un dato de entrada. n entradas y 2n salidas(código one-hot, sólo una salida
activa).
Ejemplo: DEC 2:4 con salidas activas en alto/bajo:

1.1.1. Asociación de decodificadores


Ejemplo: DEC 3:8 a partir de DECS más pequeños:

15
2. Codificador
Realizan la función inversa a los decodificadores: admiten sólo una entrada activada en cada
momento, codificando su valor en un código concreto.
Ejemplo: Codificador 4:2 con entradas activas en bajo y salidas activas en alto (GRAY):

2.1. Codificador de prioridad


Son codificadores que admiten más de una entrada activada en cada momento. Generan como
salida el código de la entrada más prioritaria (mayor peso).
Ejemplo: Codificador de prioridad 4:2(bin. natural) con entradas activas en bajo y salidas activas
en alto:

E0 se activa si el codificador está activado y no hay ninguna entrada activa.


Si tienen entrada de Enable, requieren dos salidas E0 y GS.

E0 se activa si el coddificador está activado y no hay ninguna entrada activa. GS se activa cuando
el codificador está activado y hay alguna entrada activada.

16
3. Comparadores de magnitud
Comparan las magnitudes de dos números de n bits.

4. Demultiplexores
Permiten llevas la información de una línea de entrada, a alguno de los 2n canales de salida,
usando n líneas de seleccion. Ejemplo: DEMUX 1:4 (Funcionalmente equivalente a un Decodifi-
cador 2:4)

5. Multiplexores
Dispone de 2n canales de entrada, 1 línea de salida y n entradas de seleccion de canal, que
permiten elegir el dato de entrada que estará presenta en la salida.

17
5.1. Asociación de multiplexores

5.2. Realización de funciones de n variables multiplexores


MUX-n: permite implementar cualquier función de n variables.

MUX-n + Inversor: permite implementar cualquier función de n+1 variables.

Parte IV
Circuitos aritméticos
1. Aritmética binaria
1.1. Suma de números sin signo

27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1

Rango para n bits: desde 0 a 2n − 1


Ejemplo (n=4 bits):

En binario:

1 + 1 = 10 (cero y me llevo una)

1 + 1 + 1 = 11 (una y me llevo una)

18
1.2. Suma de números con signo
1.2.1. Notación signo magnitud
La notación signo-magnitud NO sirve para realizar sumas de números con signo.

1.2.2. Notación Ca1


En notación Ca1, al sumar, si se genera carry, hay que sumárselo al resultado.

1.2.3. Notación Ca2


En notación Ca2, al sumar, si se genera carry, se desprecia.

1.2.4. Overflow
Hay overflow si:

Sumo dos números positivos y el resultado es negativo.

Sumo dos números negativos y el resultado da positivo.

El resultado no cabe y se necesita un bit más.

19
2. Circuitos sumadores de 1 bit
2.1. Semisumador o Half-Adder(HA)
Suma dos números de 1 bit, generando el bit de suma y el carry.

2.2. Sumador completo o Full-Adder(FA)


Suma dos números de 1 bit y un bit de carry, generando el bit de suma y el nuevo carry.

3. Sumador paralelo de n bits


Realiza la suma de dos números binarios de n bits y un carry de entrada (C in), generando el
resultado de la suma (n bits) y un bit de carry de salida (C out).

20
3.1. Sumador paralelo con acarreo serie
Se utilizan n Full-Adders conectados en una cadena en seria, imitando el algoritmo de suma.
Se trata de un circuito modular.

Es lento debido a la propagación serie del acarreo.

El tiempo que tarda en realizarse una suma crece linealmente con el número de bits.

3.2. Overflow
Se pone de manifiesto porque el resultado no cabe en los n bits (necesito un bit más) y el bit
de signo no es correcto:

Sumo dos números positivos y el resultado es negativo.

Sumo dos números negativos y el resultado da positivo.

La detección del desbordamiento se vvela a cabo mediante el bit de overflow (V):

V = C out ⊕ C n-1

3.3. Sumador/restador de n bits


La suma-resta de números en complemento a 2:

En general: A - B = A + Ca2(B) = A + Ca1(B) + 1

21
3.3.1. Complementador

3.4. Resumen
Sumador/Restador Notación Ca1

Sumador/Restador Notación Ca2

22
4. Unidad aritmético-lógica (ALU)
Es el circuito donde se realiza el procesado de datos
Procesado: Operaciones aritméticas y lógicas, normalmente, sobre dos datos.

Usualmente pueden realizar diversas operaciones. Para elegirlas se incluyen unas señales
de dirección. Además de las salidas que muestran el resultado de la operación, se incluyen
otras salidas (flags) de estado o condición.

• - Tipicamente son C out, V, Z (Z = 1 si el resultado es 0) y S (signo).

4.1. Representación gráfica

Parte V
Análisis y diseño de Circuitos Secuenciales
Síncronos
Los circuitos secuenciales son circuitos cuyas salidas dependen, no sólo del valor presente
en las entradas, sino de la secuencia previa de los valores de estas entradas. Estos circuitos nece-
sitarán elementos de memoria para almacenar información.

1. Biestables
Son los elementos básicos de memoria, siendo capaces de almacenar un bit.

Presentan dos estados estables:

• tener almacenado (memorizado) un "0".


• tener almacenado (memorizado) un "1".

Poseen entradas para: escribir un "0", escribir un "1", mantener el valor, cambiar el valor...

Existen de varios tipos, según sus entradas: SR, JK, T, D.

23
Pueden ser asíncronos (sin reloj) o síncronos (con reloj).

1.1. Biestable SR asíncrono


La capacidad de almacenar información se consigue con la realimentación" de las salidas
hacia las entradas: el valor de la salida refuerza el de las entradas y viceversa.

El biestable RS tiene 2 estados estables (q=0 ó q=1)

S (SET) orden de poner q=1.

R(RESET) orden de poner q=0.

Q1 = S + q2 = S · q2 −→ Q1 próximo valor de q1
Q2 = R + q1 = R · q1 −→ Q2 próximo valor de q2

24
1.2. Biestable SR síncrono
Los cambios de estado se producen "sincronizados" con una "señal de rejoj"(CLK).
Tipos de sincronización:

Activos por nivel (LATCH): permiten el cambio de estado cuando CLK tiene un valor de-
terminado, alto (1) o bajo (0).

Master-Slave: dos biestables en cascada activos en niveles opuestos.

Disparados por flanco: Solamente cambian de estado atendiendo al valor de las entradas
en el instante justo del flanco activo de la señal de reloj.

25
1.3. Biestable síncrono JK (MS o flipflop)

1.4. Biestable síncrono D (latch, MS o flipflop)

1.5. Biestable síncrono T (flipflop)

26
1.6. Entradas asíncronas: clear y preset
Permiten inicializar el biestable en un estado conocido (0 ó 1)

• CL (clear): puesta cero.


• PR (preset): puesta a uno.

Operan inmediatamente cuando se activan:

• Activas en nivel bajo (0).


• Activas en nivel alto (1).

Las entradas asíncronas tienen prioridad sobre las síncronas (J, K, D, T, ...)

Ejemplo:

2. Máquinas de estados finitos y circuitos secuenciales síncronos


Los circuitos digitales con memoria son una tecnología adecuada para implementar máquinas
de estados finitos.

Entradas/salidas: señales digitales de 1 o más bits.

Estado: valor almacenado en los biestables.

Función de próximo estado: funciones combinacionales que actúan sobre las entradas de
los biestables.

Función de salida: función combinacional.

Los circuitos secuenciales síncronos implementan máquinas de estados finitos empleando fun-
ciones combinacionales y biestables.
Todos los biestables son:

Disparados por flancos.

Disparados por el mismo flanco (subida o bajada).

Disparados por el mismo flanco de la misma señal de reloj .

27
2.1. Máquinas de estados: Propiedades
Partiendo de un estado determinado, las máquinas de estados deterministas generan siem-
pre la misma secuencia de salida para la misma secuencia de entrada.
Dos máquinas de estados son equivalentes si generan las mismas secuencias de salida para
las mismas secuencias de entrada.
Las máquinas de estados se pueden optimizar: máquinas equivalentes con menor número
de estados.
El estado cambia según la secuencia de entrada, por lo que representa el conjunto de en-
tradas pasadas.

2.2. Máquinas de estados: Tipos


Autómata de Mealy: Todo CSS cuyas salidas dependen del estado de los biestables y de
las entradas del circuito.
Zk = Zk (qi , xj )

Autómata de Moore: Todo CSS cuyas salidas dependen exclusivamente del estado de los
biestables.
Zk = Zk (qi )

28
3. Analisis de circuitos secuenciales síncronos

29
4. Diseño de circuitos secuenciales síncronos

Parte VI
Subsistemas secuenciales
1. Introducción
Subsistemas secuenciales

• Son circuitos secuenciales con n biestables que operan en conjunto para hacer alguna
tarea o tareas determinadas.
• La operación se refiere a los n bits usados en conjunto y no a la operación de cada bit
por segundo.
• La funcionalidad del circuito es lo bastante general para ser de utilidad en múltiples
aplicaciones.
• El diseño suele ser modular, generalizable a n bits.

Tipos básicos de subsistemas secuenciales

• Contadores: realizan operaciones de cuenta (incremento, decremento, etc.)

30
• Registros: almacenan un dato de n bits para su recuperación posterior, con posibilidad,
a veces, de hacer transformaciones sobre el dato.

2. Contadores
Son circuitos secuenciales síncronos capaces de contar k sucesos diferentes. La cuenta nor-
malmente es cíclica:

Con cada flanco de CLK, el circuito cambia de estado siguiendo una secuencia de cuenta (ascen-
dente o descendente). Por ejemplo:

Módulo: Número de estados de cuenta del contador.


Normalmente, módulo 2n : cuenta de 0 a 2n − 1 bits.
Si el módulo < 2n : Normalmente, se obtiene a partir de un contador 2n , recortando el ciclo
de la cuenta.
Cuenta cíclica: Normalmente, después del último estado de cuenta se pasa al primero (des-
bordamiento).
En cuanto al diseño:
Como tienen "muchos estados.evitamos recurrir al diseño desde los diagramas de estados.
Se aplican principios de diseño modular.
La implementación es más sencilla con biestables T o JK.
Operaciones típicas:
Cuenta ascendente.
Cuenta descendente.
Inhibición.
Puesta a cero (clear).
Carga de estado de cuenta.
etc
Salídas típicas:
Estado de cuenta: valor actual de la cuenta.
Fin de cuenta: indica que se ha llegado al final de la cuenta y va a empezar un ciclo nuevo.

31
2.1. Contador asíncrono de rizado (ripple counter")
Contador ascendente de módulo 2n .
Es un diseño muy conocido, muy sencillo, que no requiere elementos combinacionales, sólo
biestables (T o JK).
Sacamos su diseño estudiando las formas de onda que deberían tener sus salidas.
Ejemplo: Contador asíncrono de rizado módulo 16

Su diseño se generaliza para n bits.


No es un CSS, ya que los biestables no cambian a la vez.

2.2. Estructura de contador genérico con varias operaciones

Operaciones síncronas Se representa: T0 T1 T2 T3


INHIBICIÓN CONT ← CONT 0 0 0 0
CLEAR SINCR. CONT ← 0 q0 q1 q2 q3
PRESET SINCR. CONT ← 2n − 1 q0 q1 q2 q3
LOAD SINCR. CONT ← X X0 ⊕ q0 X1 ⊕ q1 X2 ⊕ q2 X3 ⊕ q3
UP CONT ← CONT + 1 1 q0 q0 · q1 q0 · q1 · q2
DOWN CONT ← CONT − 1 1 q0 q0 · q1 q0 · q1 · q2

32
2.3. Contadores de n bits que no cuentan 2n estados
Normalmente se diseña a partir de contadores módulo 2n y "se recorta"la secuencia de cuenta
activando clear (asíncrono o síncrono).
La solución depende de si tenemos clear síncrono o clear asíncrono:

Si queremos hacer que llegue a un estado n, tendremos que detectar el estado (n-1). Con
el estado (n-1) cogemos sus bits y los pasamos por una puerta AND(si el clear es activo en
alto) o NAND( si el clear es activo en bajo). La salida de esta puerta AND/NAND disparará
el clear, poniendo la cuenta a 0.

2.4. Asociación de contadores


Cuando queramos asociar varios contadores sincronos(CONT(HIGH) y CONT(LOW)), deber-
emos activar el segundo (CONT(HIGH)), usando su entrada UP, cuando la salida del primero (
CONT(LOW)) cumpla una cierta condicion.

3. Registros
Un registro de n bits es un dispositivo que tiene la capacidad de almacenar n bits.
Las dos operaciones básicas de los registros:
• Escritura (W o LOAD): para escribir un dato de n bits en el registro.
• Lectura (R): para leer el dato almacenado.
Ejemplo:

33
Clasificación: Se clasifican en función de cómo se escriban y se lean los bits.

• Entrada SERIE salida SERIE

• Entrada SERIE salida PARALELO

• Entrada PARALELO salida SERIE

• Entrada PARALELO salida PARALELO

3.1. Estructura de registro genérico con varias operaciones

Operaciones síncronas Se representa: D3 D2 D1 D0


LOAD (WRITE) REG ← X X3 X2 X1 X0
SHIFT RIGHT REG ← SHR(REG, Rin Rin q3 q2 q1
SHIFT LEFT REG ← SHR(REG, Lin q2 q1 q0 Lin
INHIBICIÓN REG ← REG q3 q2 q1 q0
CLEAR SINCR. REG ← 0 0 0 0 0

34

También podría gustarte