Clase Práctica5 Electrónica Digital I
Tema: Circuitos combinacionales MSI típicos II.
Sumario:
1. Sumador de 4 bits 74XXX283.
2. Unidad Aritmético-Lógica de 4 bits 74XXX382.
3. Realización de funciones combinacionales multiterminales y aplicaciones de procesamiento
de datos de media complejidad.
Objetivos:
1. Conocer el principio de funcionamiento de circuitos combinacionales típicos MSI.
2. Describir los mismos en el lenguaje VHDL.
3. Aplicar el principio de funcionamiento de estos circuitos MSI al diseño de funciones
combinacionales multiterminales.
Introducción:
En la Clase Práctica anterior se estudiaron circuitos típicos de media escala de integración
(MSI en inglés) tales como decodificadores, multiplexores, convertidores de código,
comparadores y selectores de datos.
Con los decodificadores y multiplexores pudimos realizar funciones combinacionales
uniterminales, así como utilizar los selectores de datos y comparadores para el procesamiento
elemental de datos.
En la Clase de hoy estudiaremos dos circuitos MSI fundamentales para el procesamiento de
datos, tales como el sumador y la unidad aritmético-lógica que nos permitirán realizar
aplicaciones de mayor complejidad.
Es importante comprender que el diseño de sistemas con MSI posee una estrategia que puede
resumirse en los siguientes pasos:
1. Descripción general del sistema en forma de "caja negra", donde se especifiquen todas las
entradas del mismo, tanto las de datos como las de control, así como las salidas.
2. Especificación de la(s) función(es) del sistema (relación entrada-salida) de la forma menos
ambigua posible.
En esta etapa nos podemos ayudar de un lenguaje formal de descripción de hardware tal como
el VHDL, que permite la descripción de sistemas en modo de comportamiento (behavioral). En
este momento es adecuado realizar una simulación de la descripción general del sistema con el
objetivo de comprobar si la descripción del mismo es la correcta.
3. A partir de la descripción de comportamiento del sistema se pueden derivar los bloques
fundamentales que lo componen, los que vendrían a ser los circuitos MSI a utilizar. Las
acciones (comparar, seleccionar, sumar, restar, contar, etc.) permiten derivar los bloques
funcionales típicos y el orden en que estas se describen, la interconexión de los mismos.
4. Una vez que se conozcan los MSI necesarios, se debe pasar a establecer la relación entre
las salidas de unos y los valores necesarios de las entradas de control de los siguientes con el
objetivo de diseñar la lógica de "pegamento" o aleatoria (combinacional) inter-etapa para lograr
la función general deseada (véase ejemplo de la figura).
5. La lógica de "pegamento" (Glue Logic) se diseña con elementos SSI o incluso también con
MSI (multiplexores y/o decodificadores fundamentalmente).
6. Realizar la descripción esquemática del sistema y su simulación.
Desarrollo
1. Sumador de 4 bits 74XXX283:
SUM[4..1] = A[4..1] mas B[4..1]
ó S[3..0] = P[3..0] mas O[3..0]
Descripción en VHDL aquí.
Ejemplo:
- Diseñe un sistema que permita realizar la suma y la resta de dos datos de 4 bits en
función del valor de la señal S:
Si S = 0 F = A mas B
Si S = 1 F = A menos B
Solución:
Como: A - B = A + (-B) = A + (B' +1) (suma en complemento a dos).
Añadimos una lógica de control que, en función de la señal S, permita seleccionar B o el
complemento a uno de B (B') y cuando S =1, Ci = 1 obteniéndose el complemento a dos de B.
La solución se muestra en la figura. El bloque de complemento a uno se ha descrito en VHDL
(pulse aquí para verla).
Estudio Independiente:
Proponga una variante del circuito complemento con elementos MSI y SSI.
Desarrollo
2. Unidad Aritmético-Lógica (ALU) de 4 bits 74XXX381:
Esta ALU permite la realización tanto de funciones lógicas (AND, OR, XOR) como aritméticas
(suma y resta) con la generación de las funciones GN y PN que pueden conectarse a un MSI
generador de acarreo en adelanto (74XXX182).
De esta forma se puede ampliar la capacidad de cálculo conectando varios (hasta cuatro)
74XXX381 en cascada acoplados a un 74XXX182 (consulte la literatura).
Tabla de funcionamiento
S2 S1 S0 Función
0 0 0 F= 0000
0 0 1 F= B minus A minus 1 plus CIN
0 1 0 F= A minus B minus 1 plus CIN
0 1 1 F= A plus B plus CIN
1 0 0 F= A xor B
1 0 1 F= A or B
1 1 0 F= A and B
1 1 1 F= 1111
Cout = (CIN + GN)(GN + PN)
Ejemplo:
- Diseñe un circuito que permita determinar el módulo entre A y B, según muestra la figura:
Solución:
El módulo de A y B es la resta de A menos B (si A es mayor que B) o de B menos A (si B es
mayor que A), una posible descripción del mismo en un lenguaje formal como VHDL se
muestra :
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
entity modulo is
port (A, B: in std_logic_vector(3 downto 0);
F: out std_logic_vector(3 downto 0));
end modulo;
architecture behavior of modulo is
begin
process (A, B)
begin
if A > B then; -- se necesita de un comparador
F <= std_logic_vector(unsigned(A) - unsigned(B));
else
F <= std_logic_vector(unsigned(B) - unsigned(A));
-- se necesita de una ALU
end if;
end process;
end behavior;
Como se observa de la descripción se necesitan de módulos MSI tales como un comparador,
una ALU capaz de relizar las operaciones de resta tanto de A - B como de B - A o bien un
selector de datos que permita realizar el intercambio de estos dos datos si la ALU sólo puede
realizar la resta A - B.
Una solución, utilizando el comparador 74XXX85 y la ALU 74XXX381, se muestra en la figura:
Las líneas señaladas con las flechas constituyen la lógica combinacional de "pegamento" que
enlaza las salidas del comparador con las entradas de control de la ALU de acuerdo con la
siguiente tabla:
Resultado de la Comparación Función que debe realizar la ALU Valores de S2, S1, S0
ALBO B menos A 0 0 1
AGBO A menos B 0 1 0
Como se observa, en este caso no se requiere de una lógica SSI adicional, pero en otras
situaciones sería necesario establecer una tabla de verdad que tenga como entradas las
salidas del MSI anterior (en este caso el comparador) y como salidas, las entradas del MSI
siguiente (en este caso la ALU) para obtener las ecuaciones de la "glue logic".
Estudio Independiente:
Proponga una solución al mismo problema utilizando un sumador como el 74XXX283, el
comparador 74XXX85, selectores de datos y lógica SSI.
Conclusiones:
El diseño con componentes MSI requiere tanto de una estrategia, como la descrita en la
introducción de esta Clase Práctica, como de una experiencia práctica por parte del diseñador
en cuanto al conocimiento de los MSI típicos y la descripción formal de los diferentes procesos
por los cuales deben atravesar los datos y las señales de control para lograr el resultado
deseado.
Es muy importante entonces, que el diseñador cuente con los fundamentos de la descripción
en VHDL, modo behavioral, de sistemas digitales de media complejidad que le permita deducir,
del análisis de dicha descripción, la mayor parte de los MSI típicos necesarios.