UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO



COLEGIO DE CIENCIAS Y HUMANIDADES PLANTEL SUR



NOMBRE: VALLE ALVARADO HERNANDO


GRUPO:570


MATERIA : CIBERNETICA



TEMA: CIRCUITOS LOGICOS



FECHA : 15 DE OCTUBRE 2010

jueves, 14 de octubre de 2010

El diseño de un Full-Adder

El diseño de un Full-Adder es un típico problema de ingeniería -en este caso de electrónica- y resulta muy interesante y didáctico seguirlo paso a paso, se recomienda para ello consultar el libro "Digital Systems: Principles and Applications" de Ronald J. Tocci en las páginas 146 y 147.




Lo primero que se hará es construir una Tabla de Verdad que muestre los valores de entrada y salida para todos los casos (recuerde que sólo se intenta diseñar un Full-Adder). En la siguiente tabla se puede ver aquello, con tres entradas (A, B y Cin) y dos salidas (S y Cout). Existen ocho posibles casos para las tres entradas, y para cada caso se desea la salida listada en los valores de salida. Por ejemplo, considere el caso A = 1, B = 0, y Cin = 1. Un Full-Adder (que abreviaremos FA) puede sumar estos bits para obtener las salidas S = 0 y Cout = 1.






Como existen dos salidas, se puede diseñar el circuito por cada salida individualmente, comenzando con la salida de la suma S. Por la tabla de verdad se ve que hay cuatro casos donde S tiene valor 1. Si se compone una expresión para ello, usando el Dominio Lógico, y luego de refinarla, según un método que no es el caso desarrollar acá, se obtienen la siguiente expresión final:




S = Xor( A, Xor( B, Cin )) (a)



Si se considera ahora la salida Cout, también se puede componer una operación, en el dominio lógico, que permita realizarla:



Cout = Or( And( B, Cin ), Or( And( A, Cin ), And( A, B ))) (b)



Las expresiones a y b pueden ser implementadas como se muestra en la Figura No. 11, cada Full-Adder de la Figura No. 10 puede ser implementado según el circuito lógico que aparece en esta figura.



Para desarrollar este circuito en términos del formato que se ha estado propugnando para los dominios, es necesario ampliar a la capacidad de definición de operaciones. Para ello es necesario que las nuevas operaciones, además de permitir combinaciones directas de las ya definidas, permitan otro tipo de combinaciones con más poder de cómputo. Ese es el objetivo de los lenguajes de Programación, permitir ampliar la capacidad de definición de nuevos dominios y operaciones, de manera que esta ampliación permita ampliar a su vez el espectro de los problemas posibles de abordar mediante el uso de un computador.



No hay comentarios:

Publicar un comentario