Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 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
ENTERA FRACCIONARIA
.
0 1 1 0 1 1 1 0
• 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.
Dígito Exceso-3
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100
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
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.
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
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
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:
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:
B = (0,1)
7
Propiedades y teoremas del Álgebra de Conmutación
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:
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)
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.
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
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
10
4.5. Símbolos de puertas lógicas
&
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:
2. El proceso de diseño de CC
1. Descripción textual −→ Tabla de verdad
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. 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
12
Se identifican bien en el Kmapa porque son “vecinos” (arriba, abajo, izquierda o derecha)
o “reflejados”.
xy xy
00 01 11 10 00 01 11 10
00
01 1 1 0 0
zu
11
10
=0 =1
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:
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):
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
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
En binario:
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.4. Overflow
Hay overflow si:
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.
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.
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:
V = C out ⊕ C n-1
21
3.3.1. Complementador
3.4. Resumen
Sumador/Restador Notación Ca1
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.
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.
Poseen entradas para: escribir un "0", escribir un "1", mantener el valor, cambiar el valor...
23
Pueden ser asíncronos (sin reloj) o síncronos (con reloj).
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).
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)
26
1.6. Entradas asíncronas: clear y preset
Permiten inicializar el biestable en un estado conocido (0 ó 1)
Las entradas asíncronas tienen prioridad sobre las síncronas (J, K, D, T, ...)
Ejemplo:
Función de próximo estado: funciones combinacionales que actúan sobre las entradas de
los biestables.
Los circuitos secuenciales síncronos implementan máquinas de estados finitos empleando fun-
ciones combinacionales y biestables.
Todos los biestables son:
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.
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.
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:
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
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.
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.
34