You are on page 1of 24

INFORME PRÁCTICA II: TANQUES Y MULTIPLICADOR

GINA MARCELA CRUZ
RICARDO ANDRES VEJARANO

PRESENTADO A:
ING. FERNANDO A. URBANO M.

CIRCUITOS DIGITALES I
INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES
FIET
UNIVERSIDAD DEL CAUCA
2014

2. RESUMEN
El presente informe presenta en análisis, diseño y construcción de cada circuito (control de
tanques y multiplicador), cada uno teniendo en cuenta sus respectivos requerimientos y
usando los temas aprendidos en la segunda parte del curso Digitales I, como los Módulos
Combinacionales y los Circuitos Secuenciales, con el fin de facilitar los procesos.
3. TABLA DE CONTENIDO
2. RESUMEN..........................................................................................................................
3 TABLA DE CONTENIDO.................................................................................................
4. INTRODUCCIÓN..............................................................................................................
5. Marco teórico...........................................................................................................
5.1 Módulos combinacionales........................................................................................
5.1.1 Multiplexor......................................................................................................
5.1.2 Decodificador.................................................................................................
5.1.3 Codificador..................................................................................................
5.2 Sumador Completo - FA.............................................................................................
5.3 Circuitos Secuenciales................................................................................................
5.3.1 Flip - Flop Tipo D...........................................................................................
5.3.2 Registro.......................................................................................................
6. OBJETIVOS......................................................................................................................
7. DISCUSIÓN DE RESULTADOS...................................................................................
7.1 Control de Tanques......................................................................................................
7.2 Multiplicador secuencial de 8 Bits.............................................................................
8. CONCLUSIONES......................................................................................................
9. REFERENCIAS............................................................................................................

cada uno con siete niveles.1.4. para esto es necesario afianzar un poco la temática [1]. consiste en un sistema de sensores puestos en dos tanques de agua. Esta práctica consta de dos puntos en específico que se describirán a profundidad más adelante en este mismo documento. a groso modo.1 Módulos combinacionales Los módulos combinacionales básicos MSI son bloques funcionales que realizan una tarea específica. Dirige la información digital procedente de diversas fuentes a una única línea de salida. puesto que los números a mostrar son bastante grandes. en el primer punto. 5. el requerimiento fue diseñar un multiplicador secuencial de ocho bits. tener en cuenta que se tienen que tener conceptos claros. MSI (Medium Size of Integration) con un número de compuertas entre 10 y 100. desarrollo y obtención de resultados además de realizar los circuitos y sus respectivos bloques funcionales se da paso al uso del display de siete segmentos. con código BCD y en el segundo como HEXADECIMAL. vistos en la clase de Circuitos Digitales l. MARCO TEÓRICO Para la realización de esta práctica es importante. . INTRODUCCIÓN Para la implementación. debemos diseñar un circuito que nos muestre la diferencia de niveles de agua entre los tanques y además el número del nivel menor entre ellos. y pueden implementar funciones booleanas. En él. Para el segundo punto.1MULTIPLEXORES Funciona como un circuito selector de datos. hecho en la primera práctica de este curso. he incluso se usan las dos líneas de selección de dicho display (BCD – HEXADECIMAL). 5. por medio de líneas de selección. Existen varios circuitos como:  Multiplexores  Decodificadores  Codificadores  Demultiplexores  Sumadores 5. el primero de ellos.

El número de entradas es mayor que el de salidas.2 SUMADOR COMPLETO [2]Este circuito presente en la segunda parte de la practica (Multiplicador) se construyó teniendo en cuenta el modelo que presenta M.3CODIFICADOR Un codificador realiza la función inversa al Decodificador. Morris Mano en la Tercera Edición de su libro “Diseño Digital” .2 DECODIFICADORES Detecta un código en la entrada e indica la presencia de este código mediante un cierto nivel de salida.Figura 1. Decodificador. En caso de que más de una entrada sea uno (1). asigna un código único de salida a cada señal de entrada. Multiplexor.1. el código de salida corresponderá a la entrada con mas alta prioridad. 5. Codificador 5. en el capítulo 4 “Lógica Combinacional” visto el clase. .1. Existen cuna clase de Codificadores llamados “Codificadores de Prioridad” que son los encargados de asignar un orden (prioridad) a las entradas. Figura 3. 5. Dentro de sus aplicaciones están:  Codificar datos  Convertir código  Direccionar datos  Implementar funciones lógicas Figura 2.

Sumador Completo En la Tabla 1. las salidas S y Cout corresponden al resultado de la suma y el acarreo respectivamente.Cou A B Cin t 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 Tabla 1. con lo cual se construye el circuito de la Figura 4 apoyado de la siguiente algebra Booleana: S=C X Y + C X Y +CXY +C X Y Y X Y +X ¿ S=C (X Y + X Y )+C ¿ S=C (X XNOR Y )+C( X XOR Y ) S=C XOR X XOR Y Cout= XY +CY +CX .

Figura 4 .

3.3CIRCUITOS SECUENCIALES 5. Figura 5. Flip .2 REGISTRO Un registro es un conjunto de n Latch o Flip – Flops asociados que permiten almacenar temporalmente un grupo de n bits.1FLIP – FLOP TIPO D Un biestable. Latch con habilitación (CLK – Reloj) modificada para reducir el efecto de interferencias que puedan afectar los datos almacenados. La modificación consiste en agregar un circuito de detección de flanco de subida o de bajada que produzco un pulso de corta duración.5. Diagrama de tiempos Flip – Flop tipo D 5.3. es un multivibrador capaz de permanecer en uno de dos estados posibles durante un tiempo indefinido en ausencia de perturbaciones. ilustraremos un ejemplo de manera muy sencilla con FF tipo D. En la siguiente figura. .Flop tipo D Figura 6.

Manejar adecuadamente Quartus II y verificar el correcto funcionamiento de los diseños tanto en las simulaciones como en la tarjeta Altera DE0. y otro para indicar la diferencia. conocer y comprender diseños propuestos por distintos autores e implementarlos para poder llevar a cabo la implementación del segundo requerimiento de esta práctica. OBJETIVOS    Diseñar los respectivos circuitos teniendo en cuenta sus respectivos requerimientos. Como se tienen 7 sensores para conocer el nivel. Haciendo uso de un codificador con prioridad de 8 a 3 para cada tanque. Investigar. Teniendo en cuenta el requerimiento de que si un sensor está activo sus inferiores deben estarlo se llega a la siguiente tabla de verdad: . Para empezar con el diseño.Figura 7. por lo tanto. Cada sensor dará un '1' lógico si está cubierto de agua. Ejemplo de un registro con Flip-Flops tipo D 6. 7. como el rango va de 0 a 7 se puede codificar en 3 bits. DISCUCIÓN DE RESULTADOS 7. el rango de valores va desde 0 a 7. y la diferencia de nivel respecto al mayor (en valor absoluto). todos los sensores que estén debajo de él darán un '1' lógico (debido a que el agua los cubrirá también).3 CONTROL DE TANQUES Se tienen dos tanques de agua y se requiere mantener un control del nivel de agua del que esté más vacío. donde se tiene 7 señales. Para conocer el nivel. el primer paso es codificar las señales de entrada que provienen de los sensores. Se deben utilizar dos displays de 7 segmentos. y un '0' lógico si está al aire. cada depósito tiene 7 sensores distribuidos a lo alto del tanque. si un sensor indica un '1' lógico. uno para indicar el nivel del más vacío. Se asume que ningún sensor va a fallar.

A continuación.Debido a la aclaración que se hizo el día del laboratorio. decidimos observar la tabla de verdad de un circuito codificador de prioridad. la implementación: . que es la siguiente: En este caso el codificador de prioridad tiene entradas y salidas activas en bajo y se puede observar que cumple con el requerimiento puesto que todos los sensores bajo la diagonal principal del cuadro de las entradas están en „1 ‟ lógico (H).

P Simulator. Bloque funcional Comparador Después de tener codificadas las señales de entrada de cada uno de los tanques se crea un comparador de 3 bits. es necesario conocer cuando el numero A es mayor. un ejemplo de esto es : la entrada 0000000 que tiene como salida 111 que negada es 000 tal y como se muestra en la tabla de verdad del codificador donde entrada es XXXXXXXL (L=LOW=0) y tiene como salida LLL que negado es HHH (H =HIGH) = 111 lo que verifica el correcto funcionamiento. En un comparador de 3 bits Es necesario tener en cuenta para cada caso lo siguiente: Iguales cada uno de sus bits:  A=B Se recorren todos los bits de A y B desde el más significativo hasta que A sea 1 y B sea 0.Posteriormente se procede a hacer la simulación en Altera U. sin embargo se aprecia que las salidas están activas en bajo (negadas) teniendo en cuenta la tabla de verdad del codificador de prioridad anteriormente presentada. el cual compara bit a bit desde el más significativo al menos significativo.  A>B . obteniendo: En la simulación de uno de los codificadores de prioridad de 7 a 3 se puede apreciar que se tienen las entradas activas en alto tal y como salen después de por el decodificador. menor o igual al número B. este circuito lo creamos puesto que para el análisis que se hizo.

 A<B Recorremos todos los bits de A y B desde el más significativo hasta que A sea 0 y B sea 1. B1.Recorremos todos los bits de A y B desde el más significativo hasta que A sea 0 y B sea 1. mostraremos el circuito comparador: .B0  A=B  A>B  A<B A continuación. A1. Teniendo en cuenta los anteriores aspectos para cada comparación se tiene las siguientes expresiones booleanas Siendo A = A2.A0 Y B = B2.

Bloque funcional: .

Con este análisis. el número menor de nivel entre los dos tanques. si es 1 solo escoge los bits del menor . puesto que estamos mostrando en el primer display. en caso contrario escogería los del otro número.Después de haber comparado los dos números que nos da cada nivel del tanque. en este caso a la opción A>B. hacemos uso de 3 multiplexores 2 a 1 (Disponibles en Quartus ll de Altera) que nos permiten seleccionar uno de los datos que entran. ya tenemos la mitad del primer requerimiento. con una línea selectora que se une a una de las respuestas del comparador. en nuestro caso seleccionan los bits del número menor. de la siguiente manera: . BLOQUE FUNCIONAL En la entrada I0 se coloca el bit del tanque B y en la entrada I1 el bit del tanque A y para seleccionar en la entrada SEL se coloca lo que arroje el comparador en la salida A>B.

por lo tanto al bloque de A-B entra negada y al bloque de B-A entra en 1. o B-A si A<b. además de eso se crea una línea habilitadora que permite anular el resultado convirtiéndolo todo en cero. para esto se conecta a la línea habilitadora a una de las salidas del comparador . Es decir.Ahora necesitamos enfrentarnos al problema de efectuar la resta. por esta razón se coloca siempre en 1. en nuestro caso a la salida de A<B. y de esta forma anula la operación que no se necesita y permitiendo mostrar el valor absoluto de la resta. esto es necesario en la implementación de nuestro circuito para facilitar la operación de la resta entre dos números. que tiene una línea selectora y 3 full-adder. al final de hacer el procedimiento que acabamos de describir. tendremos un resultado como el siguiente: Para la construcción de los Full-adder: . teniendo en cuenta que si la línea selectora es cero suma y si es 1 resta. para ello se usan dos bloques funcionales de este tipo para realizar la operación A-B si A>B. para esto al diseñar el restador se tuvo presente el circuito de un sumador restador.

haciendo una simulación general. para esto se realizó algebra booleana para encontrar la mínima expresión de CarryOut y Sum: CarryOut= AB+CARRYLN B+CARRYLN A ∑ ¿ CARRYLN A B+CARRYLN A B+CARRYLN A B+CARRYLN A B Su m=CARRYLN ( A B+ A B)+CARRYLN /( A B+ A B) ∑ ¿ CARRYLN (A XNOR B)+CARRYLN /( A XOR B) ∑ ¿ CARRYLN XOR A XOR B ¿ Teniendo las mínimas expresiones para CarryOut= Cout y Sum = S ya se puede hacer la implementación: Ahora.Posteriormente se realizó la implementación del full adder. en la parte inferior. Para verificar el funcionamiento del control de nivel de agua se realizarán los siguientes ejemplos que se pueden verificar en la simulación: . vamos a tener u resultado como el que sigue: En la simulación se puede observar como variables de entradas al tanque 1 y el tanque 2. también como salidas se observa al nivel menor entre los dos tanques y la diferencia entre los niveles.

0 = 5 101 -000 = 101. Nivel menor = 3 011 Nivel tanque 1 = 6 y nivel de tanque 2 =7 : 6 – 7 = 1 110 -111 = 001 (con magnitud). Nivel menor = 6 110 Nivel tanque 1 = 5 y nivel de tanque 2 = 0: 5 . Nivel menor =0000 Por tanto queda comprobado el correcto funcionamiento del control de nivel de agua. .   Nivel tanque 1 = 6 y nivel de tanque 2 = 3 : 6 – 3 = 3 110 .011 = 011.

No se aceptarán como referencias. un multiplicador secuencial de 8 bits utilizando sumadores completos.2 REQUERIMIENTO II MULTIPLICADOR DE 8 BITS Existen varias maneras de implementar la multiplicación en un circuito. investigue. diseñe e implemente en la tarjeta Altera DE0. La no presentación del artículo o el libro. diseño e informe). . sustentación.7. páginas Web. Fundamente su selección mediante un artículo o libro debidamente referenciado y colóquelo como anexo a su informe. automáticamente anulará el punto por completo (práctica.

Con el fin de realizar la multiplicación de dos números binarios cada uno de 8 bits se procede a aplicar el algoritmo cuya base son las sumatorias y desplazamientos a la derecha. El primer paso a realizar consiste en darle un valor inicial al resultado parcial compuesto por 8 bits . el ejemplo de dos números binarios a y b . donde el mas signitificativo es considerado el bit de acarreo de la suma parcial. A continuación se muestra paso a paso el funcionamiento de la multiplicación secuencial tomando para ello . Como se puede observar . . El algoritmo básicamente consiste en realizar una serie de sumas parciales y desplazamientos iterativamente que sirve de referencia para la siguiente iteración . para ellos los primeros 4 bits se les asignan ceros mientras los últimos cuatro son los bits que forman el numero b. se sumara el numero a al resultado parcial compuesto por 8 bits y se situan en las primeras 4 posiciones de este . cabe destacar que la ultima suma efectuada será el resultado final de la multiplicación terminando el algoritmo.de cuatro bits cada uno . finalizando esta operación se obtendrán 9 bits . el numero b tiene dos posibilidades : Si el bit menos significativo que compone el numero b es 1 .

esto hace que se pierda el bit menos significativo del numero b a operar. es cuando el bit menos signitificativo del numero b es cero : se le sumara 0000 a los 4 primeros bits que componen los 8 bits del resultado. dicho valor se obtendrá siempre y cuento se haya realizado la operación 4 veces respectivamente. . pero se tendrá en cuenta como si fuese un noveno bit cuyo valor es cero y se situa a la izquierda el numero compuesto por 8 bits para el resultado de las sumas parciales. claro esta .El segundo caso . Por ultimo lo que se hace es realizar el desplazamiento hacia la derecha de un bit de los 9 que compone el resultado . Lo primero a realizar son los dos registros de desplazamiento de 8 bits cada uno. el cual se encargara de almacenar el numero a . Realizando la analogía con el caso de los números de 4 bits cada uno . se procede a ejercerla pero ya estableciendo los 8 bits que en el caso anterior conforman el numero a y los 8 bits que componen el numero b.  Dos registros de desplazamiento . y un sumador de 8 bits encargado de realizar las sumas parciales nombradas en el algoritmo. Finalmente . cabe mensionar que en la suma parcial no se obtendrá un bit extra . puesto que la suma no generara un acarreo. puesto que la multiplicacion sin importar el multiplicando siempre arrojara como resultado cero siempre y el bit a multiplicar del multiplicador tenga el valor de cero. que me permita contar el numero de iteraciones que se realizan en el desarrollo de la multiplicacion. se hace uso de un contador modulo 8 . Ahora se procederá a realizar los respectivos circuitos según los componentes necesarios para realizar la multiplicacion de 2 numeros de 8 bits cada uno. es decir se considerara el 17avo bit que compone el resultado total. se observa que se requiere :  Un registro de un bit : puesto que es el encargado de guardar el acarreo de la suma . Con base a la explicación previamente vista acerca del algoritmo de la multiplicacion . Adicionamente se requiere un registro de 8 bits . obteniendo el numero de 8 bits requerido . cada uno conformado con 8 bits . los cuales se encargaran de almacenar el resultado final de la operación Finalmente los 3 registros permitiran el desplzamiento del bit menos significativo del numero b.

se requiere inicialmente hacer la tabla de estados con el fin de conocer el estado siguiente de cada uno de los Flip Flops.Este registro se encargara de almacenar los primeros 8 ceros enunciados durante el algoritmo. se necesitaran 8 iteraciones para completar la operación en su totalidad. como los números son compuestos por 8 bits . con el fin de llevar una cuenta respecto al numero re repeticiones que se hara la operación . Para realizar el contador propuesto . el cual se ira desplzando según sea el numero de iteraciones del proceso A continuación se solicita un cortador de modulo 8 . El segundo registro es el encargado de contener el numero b . . Para la implementación de este se tomaron Flip Flops tipo D y compuertas lógicas.

como se observa a continuación: MAPAS DE KERNAUGH Para D2 00 01 11 10 Q1Q0 Q2 0 0 0 1 0 1 1 1 0 1 D 2=Q 2 Q´ 1+Q2 Q´ 0+ Q´ 2Q 1 Q0 ´ 0 )+ Q2(Q ´ D 2=Q 2 ( Q 1Q 1 Q0) D 2=Q 2⊕ ( Q 1Q 0 ) . se hizo uso de los mapas de kernaugh .A continuación se muestra la tabla de verdad del contador módulo 8 ESTADO ACTUAL ESTADO SIGUIENTE Q2 Q1 Q0 D2 D1 D0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 Con el fin de encontrar las funciones de entrada de cada Flip Flop tipo D .

como se observa en la siguiente figura. .Para D1 00 01 11 10 Q1Q0 Q2 0 0 1 0 1 1 0 1 0 1 ´ Q 0+Q 1 Q´ 0 D1=Q1 D1=Q1 ⊕ Q 0 Para D0 00 01 11 10 Q1Q0 Q2 0 1 0 0 1 1 1 0 0 1 ´ + Q´ 0Q 1 D 0=Q´ 1 QO D 0=Q´ 0(Q 1+ Q´ 1) D 0=Q´ 0 Teniendo las funciones de cada uno de los Flip Flops se procede a implementar el circuito requerido.

mientras la salida corresponde al valor de la suma y un acarreo de salida (COUT) . cuenta 8 iteración hasta reiniciarse . Teniendo tanto el contador como los registros de desplazamiento del resultado y del numero multiplicando se procede a realizar el sumador de 8 bits .Circuito contador módulo 8 en el software libre TyniCAD Posteriormente se presenta a simulación realizada en Altera U. para ello se tomó como base un sumador completo (Full adder) es decir que tiene como entradas dos números (A. pero debido a que el contador tiene su inicio en el valor cero . que es lo que se requiere para realizar las 8 multiplicación componente a componente de los dos números binarios a multiplicar. B ) de un bit y como variable as significativa un acarreo de entrada (CIN) .P Simulator Como se puede observar en la simulación el contador comienza en su estado inicial es decir en 000 y va hasta 111 que en número decimal es el 7 .

Los Angeles. Diseño Digital.es/manzanom/Planantiguo/EDigitalI/CompG4_09.unican. Colombia. Universidad del Cauca.pd f .La tabla de verdad para la implementación del Full adder se presenta a continuación: 9. Fernando A. Ingeniería Electrónica y Telecomunicaciones. Morris Mano. PEARSON EDUCACION Mexico(2003). Tercera Edicion. Popayán. [2] M. Circuitos Digitales I. Noviembre de 2014. Disponible en internet http://personales. Notas de clase. REFERENCIAS [1] Urbano M. Departamento de Telemática.. California State University. FIET.