BINARIO
Para convertir un número decimal a binario hay que realizar la operación inversa:
dividir entre 2 el número hasta descomponerlo y ordenar inversamente la secuencia.
o Código BCD Aiken: cuatro dígitos por cifra decimal siendo sus pesos
2,4,2 y 1: 2 6
El número decimal 26 codificado en BCD Aiken sería : 0010 1100
1
DISEÑO Y SIMPLIFICACIÓN DE FUNCIONES LÓGICAS.
1. INTRODUCCIÓN
La información de tipo digital (que utiliza señales con un número finito de valores,
generalmente basados en un sistema binario) es más precisa que la analógica (que
utiliza señales que pueden tener un número infinito de valores), es menos sensible al
ruido y a las perturbaciones externas y utiliza un número reducido de circuitos básicos
(llamados puertas lógicas) que se repiten muchas veces.
El Álgebra de Boole fue desarrollada por George Boole durante el siglo XIX con
objeto de representar y sistematizar el razonamiento lógico, utiliza:
- Variables binarias que sólo pueden adoptar dos valores o estados: “0” y “1”
que representan los valores lógicos “verdadero” y “falso”
- Relaciones algebraicas (suma, producto,....) que representan las
conjunciones lógicas (“0”, “Y”, .....)
2. ÁLGEBRA DE BOOLE
2.1. Elementos y operaciones
- Es una lógica bivaluada (binaria): cada variable puede tomar dos valores:
Verdadero (1), falso (0).
- Las variables se designan por letras.
- Las operaciones son reglas de combinación de elementos y se representan
mediante operadores. Funciones básicas:
o Adición o unión o función O (OR): f(A,B) = A+B
o Producto o intersección o función Y (AND): f(A,B) = A*B
o Complementación o inversión, negación o función NO (NOT) :
f(A) = A (también podéis verlo escrito como A´)
- Otras operaciones:
o Función No O (NOR): f(A,B) = A+B = A * B
o Función No Y (NAND): f(A,B) = A*B = A + B
o Función O Exclusiva (EXOR): f(A,B) = A ⊕ B = A * B +A * B
o Función equivalencia (EXNOR): f(A,B) = A ∆ B = A ⊕ B = A * B+A *B
2
2.2. Teoremas en el álgebra de Boole
- Teorema de dualidad: a cada ley lógica le corresponde una dual construida
intercambiando + con “y” y 1 con 0.
f(A,B,C) = Σ (2,3,4,6,7)
f ( X 1 , X 2 ,..., X n ) = ∏ i = 0 ( f (i ) + M 2 n −1− i )
2 n −1
Ejemplo:
F(A,B,C) = Π (7,6,2) = M7 * M6 * M2 = ( A + B + C ) * ( A + B + C ) * ( A + B + C )
3
Paso de una forma canónica a la tabla de verdad:
- Primera forma: cada minterm genera un “1” en la columna de la función. En
cada minterm se hace la siguiente sustitución: variables sin complementar =
“1”, variables complementadas “0”.
- Segunda forma: cada maxterm genera un “0” en la columna de la función.
En cada maxterm se hace la siguiente sustitución: variables sin
complementar = “0”, variables complementadas “1”.
0=A; 1= A 0 =A; 1= A
Para el ejemplo anterior:
4
4. SIMPLIFICACIÓN DE FUNCIONES LÓGICAS
4.1. Métodos algebraicos
En el ejemplo anterior, se demuestra mediante métodos algebraicos que ambas
funciones son equivalentes a otra más sencilla, que sería:
B
A 0 1
A B
0 1 S = A * B + A * B = B.
AB
1 1
B
B
A 0 1 A+ B S = (A + B )* (A + B) = B.
0 0
1 0 A+B
El procedimiento para la simplificación será por tanto agrupar las casillas que
contienen “1”, procurando realizar el menor número de bucles posibles que
agrupen el mayor número de “1” (o de “0”) posible y teniendo en cuenta que los
extremos opuestos también son adyacentes:
1
00 01 11 10
00 1 1
01 1 1 1 1 2
11 1
10 1 1
3 5
5. DISEÑO E IMPLEMENTACIÓN DE FUNCIONES LÓGICAS
Implementar una función lógica es realizar el circuito digital que efectúe la función
lógica deseada. Para ello, tras ser deducida y simplificada la función lógica, se debe
proceder a su diseño mediante la representación gráfica de las puertas que en él
intervienen y posteriormente conectar los circuitos integrados diseñados.
NOT
OR
A+B = A+B
A*B = A*B = A + B
AND
6
6. CIRCUITOS COMBINACIONALES
Los circuitos integrados digitales se clasifican según su densidad de integración
(número de puertas lógicas que integran) en:
- Baja escala de integración (SSI): menos de 10 puertas
- Media escala de integración (MSI): entre 10 y 100 puertas
- Alta escala de integración (LSI): 100-1000 puertas
- Muy alta escala de integración (VLSI): más de 100 puertas
6.1. Codificadores
Codifican información digitalizada en su equivalente binario (o bien natural o bien
BCD). Los codificadores son circuitos combinacionales formados por 2n entradas y n
salidas. Al accionarse una de las entradas, en la salida aparece el código binario
asignado a esa entrada. El diagrama funcional sería
N ≤ 2n Codificador
n
entradas salidas
0 0 1 2 3 4 5 6 7 A B C
1 1 0 0 0 0 0 0 0 0 0 0
2 A 0 1 0 0 0 0 0 0 0 0 1
3 B 0 0 1 0 0 0 0 0 0 1 0
4 8÷3 0 0 0 1 0 0 0 0 0 1 1
5 0 0 0 0 1 0 0 0 1 0 0
6 C 0 0 0 0 0 1 0 0 1 0 1
7 0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
6.2. Decodificadores
Los decodificadores realizan la operación inversa, convierten información binaria en su
decimal equivalente. Su diagrama funcional sería:
Así, un decodificador BCD tendría n
Decodificador N ≤ 2n
4
4 entradas y 10 salidas (10≤2 ). entradas salidas
0
1
La salida del decodificador puede ser por nivel alto (la salida 0
A 2 tendrá un nivel alto de tensión cuando la combinación de las
B 3 entradas sea 0000, o bien por nivel bajo (la salida 0 tendrá un
4 nivel bajo de tensión cuando la combinación de las entradas
4÷10 sea 0000). En los decodificadores con
C 5
6 salida por nivel bajo se añade un
D 7 cerito antes de la línea de salida:
8
9
7
Los decodificadores se suelen emplear como generadores de funciones lógicas. Así
por ejemplo, la función lógica:
F = A * B * C + A * B * C + A * B * C + A * B * C quedaría implementada :
1 1
A A 2
2
3 3
B 3÷8 4
B 3÷8 4
5
C 5
6 C
6
7
7
n entradas de n entradas de
control o selección control
8
Los multiplexores también se utilizan como generadores de funciones. En un
multiplexor de 4 entradas de información y 2 de selección su salida respondería a la
función:
D0
D1 S = D0 A B + D1 A B + D2 AB + D3 AB
D2 4÷1 S
D3
A B
Para implementar funciones con multiplexores:
- Elijo multiplexor con m-1 entradas de control (m=nº de variables de la
función a implementar)
- Escribo la función de forma que aparezcan todas las combinaciones
posibles de las variables asignadas a las entradas de control
- Asigno un valor o la variable a las entradas de información.
Por ejemplo, la función : S = A B C + ABC + AB
- Necesito un multiplexor de 2 entradas de control. Asigno A y B a las
entradas de selección, por lo que la función quedaría de la siguiente forma:
S = A B * C + A B * 0 + AB * 1 + AB * C
- Luego
C
D0 = C ; D1 = 0; D2 = 1; D3 = C y por
tanto el diagrama sería: Vcc 4÷1 S
C
A B
6.5. Comparadores
Son circuitos capaces de establecer las relaciones mayor (>) menor (<) e igual
entre dos configuraciones binarias. Por ejemplo, un comparador de dos dígitos
respondería a la tabla de verdad:
A B S0 S1 S2
S0 es la salida A>B S0 = A * B
0 0 0 0 1
0 1 0 1 0 S1 es la salida A<B S1= A * B
1 0 1 0 0
S2 es la salida A=B S2= A * B + A * B
1 1 0 0 1
Los circuitos secuenciales más simples son los biestables, que poseen capacidad para
almacenar información binaria de 1 bit. La unión de biestables da lugar a contadores y
registros de desplazamiento, y aquellos integrados por un número mayor de biestables
origina autómatas finitos y memorias integradas.
El biestable J-K elimina el defecto de funcionamiento del R-S cuando ambas entradas
valen 1, siendo ambas salidas siempre complementarias.
10
El biestable T se construye uniendo las dos entradas de un J-K
11
7.3. BIESTABLES SÏNCRONOS ACTIVADOS POR FLANCO
En este tipo de biestables se pretende que la señal de reloj dure sólo un instante,
evitando que el reloj esté activo más tiempo que el de respuesta del biestable. Este
tipo de biestables pueden estar activados por flanco de subida o de bajada y pueden
adoptar alguna de las dos configuraciones que aparecen en el libro página 419: edge-
triggered (disparo por flanco) o master-slave (maestro-esclavo).
7.4. CONTADORES
Un contador es un circuito secuencia cuyas salidas representan, en un
determinado código, el número de impulsos que se aplican en la entrada. Pueden ser
ascendentes o descendentes. El contador más simple que podemos construir sería un
contador asíncrono de cuatro bits, cuyo símbolo y construcción con biestables JK
sería:
12