INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA ELÉCTRICA UNIDAD-CULHUACÁN APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Unidad I. Introducción 1.1 Diferencias entre señal Analógica y Señal Digital 1.1.1 Conceptos básicos de lógica simbólica y álgebra de proposiciones 1.1.2 Sistemas numéricos 1.2 Compuertas lógicas básicas (and, or, not, nand, nor) 1.3 Métodos de reducción 1.3.1 Algebra de boole 1.3.1.1 Definiciones 1.3.1.2 Postulados, Leyes y Teoremas 1.3.1.3 Implementaciones 1.3.1.4 Función Booleana 1.3.2 Mapas de Karnaugh 1.3.2.2 Procedimientos de utilización 1.3.2.3 Mapas de 2 a 5 variables 1.3.2.4Condiciones de indiferencia 1.3.2.5Aplicaciones: Convertidores de Código I. Introducción Los sistemas digitales forman parte de la currícula de las carreras de ingeniería en comunicaciones y electrónica desde que fueron diseñados en la década de los 70. El diseño y aplicaciones modernos han variado sustancialmente, sin embargo los principios y técnicas permanecen invariables y sustentan el enorme avance tecnológico que se vive en la actualidad. En éste capítulo se analizan los conceptos fundamentales para el diseño con circuitos lógicos y su utilización en el diseño de sistemas complejos como microprocesadores, microcontroladores, etc. 1.1 Diferencias entre señal Analógica y Señal Digital El principal elemento utilizado para la interpretación de fenómenos ocurridos en ingeniería se denomina señal. Las señales se obtienen de sensores, transductores, por medio de instrumentos, mediante procesos matemáticos, representaciones pictóricas etc. Aunque existen múltiples clasificaciones, para el análisis desarrollado en la materia se utilizan dos tipos básicos de señales: las analógicas y las digitales. Señales analógicas: Se conocen también como señales continuas ya que se caracterizan por no presentar discontinuidades; se dimensionan en dos ejes principales, el eje de amplitud, a menudo representado en unidades de voltaje o de corriente y el eje de tiempo, representado en segundos o submúltiplos de segundos. 2 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig 1.1 Dos ejemplos de señales analógicas obtenidas con osciloscopios digitales Señales digitales: Tienen en teoría solo dos niveles de amplitud, un nivel alto o verdadero y un nivel bajo o falso, sin embargo en la práctica existen niveles de transición entre estados como puede apreciarse en las señales mostradas en la figura 1.2. El cambio entre niveles teóricamente no debe existir pues idealmente se trata de señales discontinuas. En estricto sentido se trata de señales binarias ya que cuentan con solo dos niveles prácticos y al agruparse se convierten en dígitos binarios de tamaño específico, dando origen al término de señales digitales. Fig 1.2 Dos ejemplos de señales digitales obtenidas con osciloscopios digitales 3 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig 1.3 Dos ejemplos de señales digitales obtenidas con un analizador lógico En este curso se emplea la lógica positiva, que asigna el nivel de voltaje mas alto al nivel lógico 1 y el nivel de voltaje mas bajo al nivel lógico 0. (Cuando se utilizan circuitos TTL estos niveles son 5 V. y 0 V. respectivamente). Ir al inicio 1.1.1 Conceptos básicos de lógica simbólica y álgebra de proposiciones La lógica simbólica tiene sus raíces en la filosofía y las matemáticas elementales. Se basa en la representación de sentencias mediante símbolos. Las sentencias mas simples se representan mediante letras minúsculas o mayúsculas y estas pueden ser de dos tipos; sentencias válidas o verdaderas y sentencias inválidas o falsas. A Ā sentencia válida o verdadera sentencia inválida o falsa El álgebra de proposiciones es el método de conectar las sentencias de la lógica simbólica. Las conexiones básicas son: conexión Y o AND, conexión O u OR, conexión XOR y algunas conexiones derivadas. La conexión AND se representa generalmente con un punto entre dos letras, indicando la conjunción entre los elementos A y B A•B implica A y B 4 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro La conexión OR se representa generalmente con un signo mas entre dos letras, indicando la disyunción entre los elementos A y B A+B implica A o B La conexión XOR se representa generalmente con un signo mas dentro de un círculo entre dos letras, indicando la disyunción exclusiva entre los elementos A y B A⊕ B implica exclusivamente A o B Ir al inicio 1.1.2 Sistemas numéricos El sistema numérico utilizado en sistemas digitales es el sistema binario. Para comprender cualquier tipo de sistema, es necesario repasar algunos conceptos de sistemas numéricos mediante el sistema más comúnmente utilizado, el sistema decimal. El sistema decimal es un sistema posicional, lo que implica que las cifras que lo representan tienen valor dependiendo de la posición en que se localizan. 93401. 72514 Cienmilésimos Diezmilésimos Milésimos Centésimos Decimos Decenas de millar Unidades de millar Centenas Decenas Unidades Fig 1.4 Sistema decimal representado como sistema posicional Otra forma de representarlo es mediante potencias de base 10 relacionadas con la posición de las cifras respecto al punto decimal. A la derecha del punto decimal el exponente o la potencia son negativos y decrecen mientras a la izquierda son positivos y crecen 9 x10 4 + 3x10 3 + 4 x10 2 + 0 x101 + 1x10 0 + 7 x10 −1 + 2 x10 −2 + 5 x10 −3 + 1x10 −4 + 4 x10 −5 5 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro De esta manera, puede construirse un sistema numérico con diferente base, siendo b un número cualquiera y los dígitos dependientes de la base utilizada 1xbn −1 + 1xbn −2 + • • • + 1xb 3 + 1xb 2 + 1xb1 + 1xb 0 + 1xb −1 + 1xb −2 + • • • + 1xb − m Si la base utilizada es 20, el sistema es un sistema vigesimal (como el utilizado por la civilización Maya); Los mayas usaban un sistema numérico posicional vigesimal que empleaba tres símbolos básicos: el punto representando una unidad, la raya representando cinco unidades y una concha que representa al cero. Fig 1.5 Primeros 30 dígitos de la Numeración Maya En la numeración maya, se escriben las cifras verticalmente, con las unidades en la parte inferior. Existe una irregularidad: la tercera posición no cuenta grupos de 400 (20×20) sino grupos de 360 (20×18). Esta irregularidad se debe a que es el número más cercano a la duración del año. Esta irregularidad se conserva en las posiciones subsiguientes: la cuarta cuenta grupos de 7200 (20×18×20), la quinta grupos de 144.000 (20×18×20×20), etc. 6 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Si la base es 10, se trata del sistema decimal; si se utiliza la base 16 tenemos el sistema hexadecimal utilizado en sistemas computacionales y si la base es 2 tenemos el sistema binario, utilizado también en sistemas de cómputo y diseño digital, basado solo en dos valores, el cero y el uno. Ejercicio: De los números proporcionados en clase, obtener su valor en decimal, binario, hexadecimal y vigesimal. El sistema de numeración binario es el más usado en todos los sistemas de cómputo debido a que solo involucra dos valores que pueden reproducirse con dos niveles de voltaje. Con este sistema puede representarse cantidades positivas y negativas e inclusive hacer aritmética. En sistemas de cómputo también se utiliza el sistema hexadecimal Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Binario puro 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Tabla 1.1 equivalencias entre sistemas decimal, hexadecimal y binario puro Ir al inicio 1.2 Compuertas lógicas básicas (and, or, not, nand, nor, xor) Los tres circuitos lógicos básicos o compuertas básicas que se utilizan en diseño de circuitos digitales son AND, OR y NOT 7 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Compuerta AND: Realiza la función de conjunción lógica expresada por la función X=A • B . La salida X es verdadera cuando la entrada A y la entrada B son verdaderas Tabla de verdad A A 0 0 1 1 X B Compuerta AND B 0 1 0 1 X 0 0 0 1 Fig 1.6 Compuerta AND y su tabla de verdad Compuerta OR: Realiza la función de disyunción lógica expresada por la función X=A + B La salida X es verdadera cuando la entrada A o la entrada B son verdaderas Tabla de verdad A A 0 0 1 1 X B Compuerta OR B 0 1 0 1 Fig 1.7 Compuerta OR y su tabla de verdad 8 X 0 1 1 1 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Compuerta NOT: Realiza la función de negación lógica expresada por la función X=Ā La salida X es verdadera cuando la entrada A es falsa Tabla de verdad A X A 0 1 X 1 0 Compuerta NOT Fig 1.8 Compuerta NOT y su tabla de verdad Además de las compuertas básicas, se tienen dos compuertas modificadas que se utilizan ampliamente pues permiten diseños mas complejos con la utilización de solo un tipo de ellas, lo que da origen a su denominación de compuertas universales. Las dos compuertas universales son NAND y NOR Compuerta NAND: Realiza la función de conjunción lógica negada, expresada por la función X= A • B La salida X es falsa cuando la entrada A y la entrada B son verdaderas Tabla de verdad A A 0 0 1 1 X B Compuerta NAND B 0 1 0 1 Fig 1.9 Compuerta NAND y su tabla de verdad 9 X 1 1 1 0 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Compuerta NOR: Realiza la función de disyunción lógica negada, expresada por la función X=A + B La salida X es falsa cuando la entrada A o la entrada B son verdaderas Tabla de verdad A A 0 0 1 1 X B Compuerta NOR B 0 1 0 1 X 1 0 0 0 Fig 1.10 Compuerta NOR y su tabla de verdad En teoría, cualquier diseño lógico puede realizarse con la utilización de un solo tipo de compuerta universal, ya sea compuertas NAND o compuertas NOR Por último, existe un tipo de compuerta compuesta. La compuerta O exclusiva, denominada XOR Compuerta XOR: Realiza la función de disyunción lógica exclusiva, expresada por la función X=A ⊕ B La salida X es verdadera, exclusivamente cuando la entrada A o la entrada B son verdaderas Tabla de verdad A A 0 0 1 1 X B Compuerta XOR B 0 1 0 1 Fig 1.11 Compuerta XOR y su tabla de verdad 10 X 0 1 1 0 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Tablas de verdad: Todo tipo de circuitos lógicos se caracterizan a través de tablas de verdad, en las que se colocan las entradas al circuito del lado izquierdo y las salidas del lado derecho. El número de renglones viene dado por el número de combinaciones de las señales de entrada al circuito, de manera que un circuito con una entrada se caracteriza con una tabla de verdad de 2 renglones, uno de dos entradas con cuatro renglones, etc. Ejercicio: Diseñe la tabla de verdad de diferentes circuitos propuestos en clase. Ejercicio: Diseñe la compuerta XOR utilizando a) compuertas básicas, b) compuertas universales NAND y c) compuertas universales NOR Ir al inicio 1.3 Métodos de reducción Inicialmente, se debe aplicar un método para obtener ecuaciones a partir de las tablas de verdad de circuitos digitales. Método de Shannon*: Consiste en obtener ecuaciones a partir de una tabla de verdad propuesta utilizando ya sea los unos o valores verdaderos o los ceros o valores falsos. *Claude Elwood Shannon (30 de abril de 1916 (Michigan) - 24 de febrero de 2001) recordado como "el padre de la teoría de la información". Los primeros años de su vida los pasó en Gaylord, donde se graduó de la secundaria en 1932. Desde joven, Shannon demostró una inclinación hacia las cosas mecánicas. Resaltaba respecto a sus compañeros en las asignaturas de ciencias. Su héroe de la niñez era Edison, a quien luego se acercó bastante en sus investigaciones. En 1932 ingresó en la Universidad de Michigan, siguiendo a su hermana Catherine, Doctora en matemáticas. En 1936 obtuvo los titulos de ingeniero eléctrico y matemático. Su interés por las matemáticas y la ingeniería continuó durante toda su vida. En 1936 aceptó la posición de asistente de investigación en el departamento de ingeniería eléctrica en el Instituto de Tecnología de Massachusetts (MIT). Su situación le permitió continuar estudiando mientras trabajaba por horas para el departamento, obteniendo como resultado la calculadora más avanzada de esa era. En ese momento surgió su interés hacia los circuitos de relevadores complejos, sumado a su gusto por la lógica y el álgebra boleana. Estos nuevos intereses pudo desarrollarlos durante el verano de 1937, que pasó en los laboratorios Bell en la ciudad de Nueva York. En su tesis doctoral en el M.I.T., demostró como el álgebra boleana se podía utilizar en el análisis y la síntesis de la conmutación y de los circuitos digitales. La tesis despertó un interés considerable cuando apareció en 1938 en las publicaciones especializadas. En 1940 le fue concedido el Premio a ingenieros americanos del Instituto Americano Alfred Nobel de Estados Unidos, una concesión dada cada año a una persona de no más de treinta años. Un cuarto de siglo más tarde H. H. Goldstine, en su libro "Las computadoras desde Pascal hasta von Neumann", citó su tesis como una de las más importantes de la historia... que ayudó a cambiar el diseño de circuitos digitales. 11 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Durante el verano de 1938 efectuó trabajos de investigación en el M.I.T.y le fue concedida la beca Bolles cuando trabajaba como ayudante de enseñanza mientras realizaba un doctorado en matemáticas. En 1940 estudió un master en ingeniería eléctrica y se doctoró en filosofía matemática. Shannon pasó quince años en los laboratorios Bell, una asociación muy fructífera con muchos matemáticos y científicos de primera línea como Harry Nyquist, Brattain, Bardeen y Shockley, inventores del transistor; George Stibitz, quien construyó computadoras basadas en relevadores y muchos otros más. Durante este período Shannon trabajó en muchas áreas, siendo lo mas notable todo lo referente a la teoría de la información, un desarrollo que fue publicado en 1948 bajo el nombre de "Una Teoría Matemática de la Comunicación". En este trabajo se demostró que todas las fuentes de información (telégrafo, teléfono, radio, la gente que habla, las cámaras de televisión, etc, ... )se pueden medir y que los canales de comunicaciones tienen una unidad de medida similar. Mostró también que la información se puede transmitir sobre un canal si y solamente si la magnitud de la fuente no excede la capacidad de transmisión del canal que la conduce y sentó las bases de la corrección de errores, supresión de ruidos y redundancia. En el área de las computadoras y de la inteligencia artificial, publicó en 1950 un trabajo que describía la programación de una computadora para jugar ajedrez, convirtiéndose en la base de posteriores desarrollos. A lo largo de su vida recibió numerosas condecoraciones y reconocimientos de universidades e instituciones de todo el mundo. Shannon debe ser considerado dentro de los personajes mas importantes del siglo XX, aunque su nombre es desconocido para el público en general. Claude Shannon falleció el 24 de febrero del año 2001, a la edad de 84 años, después de una larga lucha en contra la enfermedad de Alzheimer. * Tomado de wikipedia http://es.wikipedia.org/wiki/Claude_E._Shannon a) Si se utilizan los valores verdaderos de las salidas, se colocan en disyunción (función “or”) las combinaciones (conjunciones o funciones “and”) de las señales de entrada que las producen. Por ejemplo, tomando como base la tabla de verdad de la compuerta XOR A B A 0 0 1 1 X B 0 1 0 1 X 0 1 1 0 X = A⋅ B + A⋅ B Fig 1.12 Método de Shannon con valores verdaderos 12 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro b) Si se utilizan los valores falsos de las salidas, se colocan en conjunción (función “and”) las disyunciones (función “or”) de las señales de entrada que las producen, pero con valores cambiados. Por ejemplo, tomando nuevamente como base la tabla de verdad de la compuerta XOR A B A 0 0 1 1 X B 0 1 0 1 X 0 1 1 0 X = ( A + B) ⋅ ( A + B) Fig 1.13 Método de Shannon con valores falsos Para comprobar este segundo postulado, pueden utilizarse los valores que producen un valor falso a la salida X = A⋅ B + A⋅ B X = A⋅ B + A⋅ B y utilizando la ley de Morgan para la reducción de una ecuación negada, en la que se cambian disyunciones por conjunciones, la ecuación queda X = ( A + B) ⋅ ( A + B) Que es la ecuación obtenida en el segundo postulado. Ejercicio: Obtenga las ecuaciones de las tablas proporcionadas en clase, utilizando los métodos de reducción analizados 13 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Los principales métodos de reducción son el álgebra de Boole y los mapas de Karnaugh aunque para mayor número de variables se usa el método tabular (Quine McCluskey) Ir al inicio 1.3.1 Algebra de boole* Son ecuaciones que relacionan las variables de una tabla de verdad y se rigen por postulados básicos * George Boole, (2 de noviembre de 1815 - 8 de diciembre de 1864) fue un matemático y filósofo. Como inventor del álgebra de Boole, la base de la aritmética computacional moderna, Boole es considerado como uno de los fundadores del campo de las Ciencias de la Computación. Su padre fue un comerciante de limitados recursos, pero de carácter estudioso y una mente activa. Presentó especial interés en las ciencias matemáticas, donde el padre le dio sus primeras lecciones a su hijo; pero las extraordinarias cualidades de George Boole para las matemáticas no se les mostró a ellos a una edad temprana. En primer lugar, su asunto favorito fueron las obras clásicas. Hasta los 17 años no desarrolló sus cualidades matemáticas, y su progreso se vio retardado al no disponer de una ayuda eficiente. A los 17 años aproximadamente se convirtió en asistente del profesor en una escuela privada de Doncaster, y permaneció desde entonces hasta el final de su vida en un grado y otro relacionado con la profesión escolar. Pocos hombres distinguidos, de hecho, han tenido una vida menos agitada. Los únicos cambios significativos fueron su acertado traslado a la escuela de Lincoln, su traslado a Waddington, su nombramiento en 1849 como profesor de matemáticas en Queen's College, Cork en Irlanda, y su casamiento en 1855 con Miss Mary Everest, quién, como la Señora de Boole, después escribiría varios trabajos educativos útiles en los inicios de su marido. Para el público Boole sólo fue conocido como el autor de numerosos trabajos abstrusos en diferentes materias matemáticas, y el autor de tres o cuatro publicaciones distinguidas que llegaron a ser estándares de trabajo. Sus primeras publicaciones fueron sobre "Teoría de Transformaciones Analíticas", impreso en la Cambridge Mathematical Journal de 1839, que permitió el establecimiento de una relación de amistrad entre Boole y D.F. Gregory, el editor de la revista, la cual perduró hasta la muerte prematura de este último en 1844. Una larga lista de memorias y papeles sueltos, tanto de asuntos de lógica como matemáticos, fueron encontrados en el Catalogue of Scientific Memoirs publicado por la Royal Society, y en el volumen suplementario de Ecuaciones Diferenciales, editado por Isaac Todhunter. Para la Cambridge Mathematical Journal y su sucesora, la Cambridge and Dublin Mathematical Journal, Boole contribuyó con 22 artículos. En las series tercera y cuarta de la Philosophical Magazine se encontrarían 16 documentos. La Royal Society imprimió 6 importantes memorias en la Philosophical Transactions, y otras cuantas memorias fueron encontradas en las Transactions of the Royal Society of Edinburgh and of the Royal Irish Academy, en el Bulletin de l'Académie de St-Pétersbourg de 1862 (bajo el nombre G Boldt, vol. iv. pp. 198-215), y en Crelle's Journal. A esta lista se debería añadir un trabajo en la lógica básica matemática, publicado en la Mechanic's Magazine de 1848. Los trabajos de Boole fueron de este modo recogidos en unos 50 artículos dispersos y en unas cuantas publicaciones separadas. Sólo dos tratados sistemáticos en materias matemáticas fueron completados por Boole durante su vida. El bien conocido Tratado sobre Ecuaciones Diferenciales aparecido en 1859, y al año siguiente, el Tratado sobre los Cálculos de Diferenciales Finitas, diseñado como continuación del anterior. Estos tratados son valiosas contribuciones a las importantes ramas de las matemáticas en cuestión, y Boole, al componerlas, parecía haber combinado la exposición elemental con la profundidad investigadora del aspecto filosófico del tema de una forma difícilmente mejorable. Estos trabajos incorporan hasta cierto punto los descubrimientos más importantes de su autor. En los capítulos 16 y 17 de Ecuaciones 14 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Diferenciales se encuentra una lúcida narración del método simbólico general, un hábil desarrollo que le condujo a alcanzar sus principales descubrimientos, y de un método general en el análisis, descrito originalmente en su famosa memoria impresa en el Philosophical Transactions de 1844. Boole fue uno de los más eminentes de aquellos que percibieron que las opreaciones simbólicas podrían separarse y formar objetos distintos del cálculo. Su principal característica era la perfecta certeza en cualquier resultado obtenido en el tratamiento simbólico de acuerdo a sus leyes primarias y condiciones, y que unos niveles de habilidad y poder casi inalcanzables fuera de estos resultados. Durante los últimos años de vida Boole se dedicó constantemente a prolongar sus investigaciones con el objeto de producir una segunda edición de sus Ecuaciones Diferenciales con una mayor completitud que la primera; y parte de su última vacación la pasó en las librerías de la Royal Society y en el British Museum. Pero su nueva edición nunca se completó. Incluso los manuscritos que dejó tras su muerte estaban tan incompletos que Todhunter, quién puso sus manos en ellos, los encontró imposibles de usar en la segunda edición de su tratado original, y se imprimieron en 1865 como un volumen auxiliar. Con la excepción de Augustus de Morgan, Boole fue probablemente el primer inglés matemático desde tiempos de John Wallis quién también escribió sobre la lógica. Sus originales puntos de vista sobre el método lógico se debían a la misma confianza profunda en el razonamiento simbólico de la cual él había confiado con éxito en la investigación matemática. Las especulaciones referentes a un cálculo de razonamiento tuvo ocupada en diferentes épocas la atención de Boole, pero no fue hasta la primavera de 1847 cuando plasmó sus ideas en el panfleto llamado Análisis Matemático de la lógica. Posteriormente observó que esto era una precipitada e imperfecta exposición de su sistema lógico, y deseaba que su mayor trabajo, Una Investigación de las Leyes del Pensamiento, en las cuales están basadas las Teorías Matemáticas de la Lógica y de la Probabilidad (1854), pudieran ser consideradas como una opinión madura de sus puntos de vista. Sin embargo, hay un encanto de originalidad sobre su trabajo lógico anterior que ningún lector capaz puede despreciar. El no observó la lógica como una rama de las matemáticas, como el título de sus primer panfleto puede hacer pensar, él apuntaba una profunda relación entre el álgebra simbólica y lo que podía hacer, en su opinión, para representar formas lógicas y silogismos, que nos podían apenas ayudar a decir que las matemáticas estaban restringidas a dos cantidades, el 0 y el 1. Por su unidad Boole denotó el universo de objetos imaginables; símbolos literales, tales como x, y, z, v, u, etc., fueron usados con el significado elegido al de sus adjetivos y sustantivos comúnes. Así, si x=cornúpeta e y=oveja, entonces, los sucesivos actos de elección representados por x e y, si son realizados como unidad, dan la clase completa de oveja cornúpeda. Boole mostró que la elección de los símbolos de este tipo obedecía a las mismas leyes principales de la combinación algebraica de símbolos, de donde indujo que podrían ser sumados, substraidos, multiplicados e incluso divididos, casi de igual forma que los números. Así, 1-x debería representar la operación de seleccionar cualquier cosa en el mundo exceptuando cosas cornúpetas, y (1 x) (1 - y) debería devolvernos todas las cosas que no son ni cornúpetas ni ovejas. Por el uso de tales proposiciones simbólicas podrían ser reducidas a formas ecuacionales, y la conclusión silogística de dos premisas se obtendrían eliminando la mitad de los términos de acuerdo a las reglas algebraicas ordinales. Aún más original y notable, sin embargo, era esa parte de su sistema, indicado completamente en sus Leyes del Pensamiento, que formó un método simbólico general de la inferencia lógica. Dadas cualesquieras proposiciones que involucrasen cualesquieras terminos numéricos, Boole demostró como, por el puro tratamiento simbólico de premisas, alcanzar cualquier conclusión lógica contenida en las mismas. La segunda parte de las Leyes del Pensamiento contenían un intento de descubrir un método general en las probabilidades, el cual debería darnos de cualquier probabilidad de un sistema de eventos determinar la secuencia de probabilidad de cualquier otro evento conectado logicamente con el dado. Aunque Boole realizó pocas publicaciones, exceptuando sus trabajos matemáticos y lógicos, su conocimiento sobre la literatura general era vasto y profundo. Dante fue su poeta favorito, y el prefería el Paraiso al Infierno. La metafísica de Aristóteles, la ética de Spinoza, los trabajos filosóficos de Cicerón, y muchos trabajos del estilo, fueron también frecuentes temas de estudio. Sus reflexiones sobre ciencia, filosofía y religión están contenidas en cuatro direcciones, El Genio Sir Isaac Newton, El Correcto Uso del Tiempo Libre, Las reivindicaciones de la Ciencia y Los Aspectos Sociales de la Cultura Intelectual, 15 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro los cuales fueron entregados e imprimidos en diferentes épocas. El caracter personal de Boole inspiró a todos sus amigos con la estima más profunda. Poseía la modestia del genio verdadero, y su vida se dio a la búsqueda de la verdad. Aunque recibió la medalla de la Royal Society por sus memorias de 1844, y el grado honorario de LL.D. de la Universidad de Dublín, no buscó ni recibió las recompensas correspondientes a los descubrimientos que hizo. El 8 de diciembre de 1864, en plenas facultades mentales, murió de un ataque de fiebre, afectándole a los pulmones. *tomado de wikipedia http://es.wikipedia.org/wiki/George_Boole Ir al inicio 1.3.1.1 Definiciones Con base en los trabajos de Boole y trabajando con relevadores (interruptores) Shannon elabora las siguientes definiciones 0 Interruptor abierto, constante 0 1 Interruptor cerrado, constante 1 A Variable. Valor 0 o 1 1.3.1.2 Postulados, Leyes y Teoremas Postulados básicos 0 0⋅0 = 0 0 0 0 = Conjunción (función and) relacionada con un circuito serie 1 = 0 0 ⋅1 = 0 = 1⋅ 0 16 = 1 0 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 1 1 1+1 = 1 = 1 Disyunción (función OR) relacionada con un circuito paralelo 0 1 = 1 1 0 = 1+ 0 = 1 = 0 +1 Ahora, introduciendo variables 0 A = 0 A⋅0 = 0 = 0⋅ A 1 A = A ⋅1 = A = 1 ⋅ A A 1 = A 1 A +1 = 1 = 1+ A A 0 = A+0 = A = 0+ A 17 A APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Dualidad: Para obtener el dual de una función se cambian ceros por unos y viceversa, disyunciones por conjunciones y viceversa mientras las variables permanecen sin cambio. Ejemplo 0 ⋅1 = 0 = 1⋅ 0 A⋅ 0 = 0 = 0⋅ A su función dual es 1+ 0 = 1 = 0 +1 su función dual es A +1 = 1 = 1+ A Ejercicio: Obtenga el dual de las funciones proporcionadas en clase, dibujando también sus diagramas Redundancia: Una variable en una función de mini términos, hace redundantes a los términos que la contengan en conjunción (función AND) y los cancela (igualándolos a cero) f = A + A⋅ B + A⋅C + A⋅ B ⋅C = A Una variable en una función de maxi términos, hace redundantes a los términos que la contengan en disyunción (función OR) y los cancela (igualándolos a uno) f = X ⋅ (X + Y ) ⋅ (X + Z) ⋅ (X +W ) = X Ejercicio: comprobar los postulados de redundancia anteriores mediante diagramas de interruptores Ir al inicio 1.3.1.3 Implementación Es la realización de funciones a partir de determinado circuito. 18 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Ejemplo, analizar el siguiente circuito, implementar las funciones booleanas que lo describen y tratar de simplificarlo por medio de los teoremas analizados con anterioridad. A B C X Fig 1.14 Circuito para comprobación de método de Shannon X = A⋅C + A⋅ B ⋅C + A⋅C X = A ⋅ (C + B ⋅ C + C ) X = A ⋅ (C + C ) X = A ⋅1 = A Ejercicios: Desarrolle las ecuaciones booleanas y reduzca cuando sea posible en los circuitos proporcionados en clase. Ir al inicio 1.3.1.4. Función booleana Las funciones booleanas están formadas por minitérminos y maxitérminos: Se denomina un minitérmino a los términos algebraicos que incluyen en conjunción a todas las variables del sistema; Se denominan maxitérminos a los términos algebraicos que incluyen en disyunción a las variables del sistema. En un sistema de 3 variables, sería un minitérmino A•B•C y un maxitérmino A+B+C Ir al inicio 19 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 1.3.2 Mapas de Karnaugh Son elementos visuales que permiten tabular las ecuaciones booleanas ya descritas. Se basan en el uso sistemático de minitérminos y maxitérminos. Para comprender su uso, podemos basarnos en los “diagramas de Venn” A A A A 0 A 1 A Fig 1.15 Diagrama de Venn para la variable A y su equivalente en mapas de Karnaugh A B 20 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro A,B A B 0 1 /A /B A/B /AB AB 00 /A/B /AB 10 11 01 AB A/B 0 1 Fig 1.16 Diagrama de Venn para las variables A y B y su equivalente en mapas de Karnaugh La condición para ordenar las variables dentro del mapa es que las celdas sean adyacentes, esto es que no varíen en más de un valor a la vez. Por ello las celdas 01 y 10 no deben quedar juntas Ejercicio: Elaborar los correspondientes diagramas de Venn y mapas de Karnaugh para mas de dos variables Ir al inicio 1.3.2.2 Procedimientos de utilización En el mapa de Karnaugh, cada casilla representa un minitérmino de una ecuación booleana. Se mapea una función colocando en el mapa de Karnaugh un 1 para los términos verdaderos y un 0 para los falsos. Ejemplo, elaborar el mapa de la compuerta básica AND a partir de la tabla de verdad y su ecuación booleana Tabla de verdad A A 0 0 1 1 X B Compuerta AND B 0 1 0 1 X 0 0 0 1 Fig 1.16 Circuito y tabla de verdad de ejemplo 21 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro La ecuación booleana que la representa es X=A • B lo que implica que la salida X es verdadera solamente cuando A y B son verdaderas, en cualquier otro caso será falsa por lo que el único minitérmino verdadero es AB mientras los restantes son falsos. Llevando esto a un mapa de Karnaugh para dos variables tenemos: A 0 B 0 1 1 0 0 0 1 Fig 1.17 Mapa de Karnaugh resultante Ejercicio: Obtener el mapa de Karnaugh para todas las compuertas básicas. Ir al inicio 1.3.2.3 Mapas de 2 a 5 variables Resumiendo, se muestran mapas de Karnaugh para 1, 2, 3, 4 y 5 variables A 0 1 /A A Fig 1.18 Mapa de Karnaugh para una variable 22 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro A B 0 1 0 1 /A /B A/B /AB AB Fig 1.19 Mapa de Karnaugh para dos variables A B /A /B/C /A/BC A /BC A/B/C /AB/C /ABC ABC AB/C C Fig 1.20 Mapa de Karnaugh para tres variables A /A/B/C/D /A/BC/D A/BC/D A/B/C/D /A/B/CD /A/BCD A/BCD A/B/CD D /AB/CD /ABCD ABCD AB/CD /AB/C/D /ABC/D ABC/D AB/C/D B C Fig 1.21 Mapa de Karnaugh para cuatro variables 23 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro A A /A/B/C/DE /A/BC/DE A/BC/DE A/B/C/DE /A/B/C/D/E A/BC/D/E /A/BC/D/E /A/B/CDE /A/BCDE A/BCDE /A/B/CD/E A/B/CDE ABCDE A/BCD/E /A/BCD/E D /AB/CDE /ABCDE A/B/C/D/E /AB/CD/E AB/CDE A/B/CD/E ABCD/E /ABCD/E B D AB/CD/E B /AB/C/DE /ABC/DE ABC/DE /AB/C/D/E AB/C/DE C /ABC/D/E ABC/D/E AB/C/D/E C E Fig 1.22 Mapa de Karnaugh para cinco variables Ir al inicio 1.3.2.4 Condiciones de indiferencia El proceso de simplificación con mapas de Karnaugh consiste en: a) Agrupar todos los unos ( o ceros ) del mapa b) Los agrupamientos deben ser base 2 ( 2, 4, 8, etc) c) Debe intentarse obtener las agrupaciones mas grandes ya que implicam mayor simplificación d) No importa que un uno ( o cero ) pertenezca a diferentes agrupamientos e) En resumen se trata de tener el menor número de agrupamientos lo mas grandes posibles Ejemplo: Simplificar la función de 4 variables en el mapa de Karnaugh propuesto X = A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D + A⋅ B ⋅C ⋅ D 24 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro A B 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 D C Fig 1.23 Mapa de Karnaugh para el ejercicio propuesto Aplicando los conceptos de simplificación propuestos anteriormente, la función puede reducirse a X = A ⋅ B ⋅ D + A ⋅ B ⋅ D + C ⋅ D + C ⋅ D 1 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 Fig 1.24 Mapa de Karnaugh mostrando agrupaciones para reducción del circuito Ir al inicio 1.3.2.5 Aplicaciones: Convertidores de Código Aplicar las técnicas anteriores para realizar un convertidor de código binario puro a código gray como el mostrado en la tabla siguiente 25 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro B3 a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B2 b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 B1 c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 B0 d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 G3 A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 G2 B 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 G1 C 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 G0 D 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 Fig 1.25 Tabla de verdad de un convertidor de código binario a gray Ir al inicio 127V @ 12V 7805 5V @ 1A Diodos 1N4001-4007 1000 uF @ 50V Fig 1.26 Fuente de alimentación propuesta para laboratorio. 26 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Unidad II. Circuitos Lógicos Combinatorios 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 2.3 2.3.1 2.3.2 Circuitos aritméticos Operaciones aritméticas Representación de números con signo Sumadores, Restadores y Sumador Restador Comparador lógico Codificadores – Decodificadores El decodificador como generador de minitérminos Decodificador de BCD a 7 segmentos Codificador para teclado Multiplexores – Demultiplexores Aplicaciones del multiplexor en la solución de funciones booleanas Método de optimización del multiplexor 2.1 Circuitos aritméticos Una de las aplicaciones principales de los circuitos digitales es la realización de operaciones aritméticas. En base binaria estas tienen reglas muy sencillas. Para ilustrar lo anterior analicemos el caso de la suma de dos caracteres binarios A y B cuyo valor puede ser 0 o 1 y las combinaciones posibles mostradas en la columna de la sumatoria. Con esta información se obtiene la siguiente tabla de verdad y el circuito en bloques donde sigma representa el bit de la suma resultante y C el acarreo A Σ B C A 0 0 1 1 B 0 1 0 1 C 0 0 0 1 Σ 0 1 1 0 Fig 2.1 Circuito y tabla de verdad de un sumador simple 27 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro De los cuales se obtienen las ecuaciones siguientes Σ = A⋅ B + A⋅ B C = A⋅ B Y ubicando en mapas de Karnaugh A B 0 1 1 0 Fig 2.2 Mapa de Karnaugh de un sumador simple para la salida ∑ La función no puede simplificarse puesto que los unos caen en celdas no adyacentes. En conclusión, las ecuaciones de salida no pueden simplificarse, por lo que el circuito final queda: Α Β Σ C Fig 2.3 Implementación de un sumador simple Ejercicio: Implementar el circuito para la función descrita anteriormente utilizando exclusivamente a) compuertas NAND y b) compuertas NOR Ir al inicio 28 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 2.1.1 Operaciones aritméticas Una de las ventajas que proporciona la implementación de circuitos lógicos es la realización de operaciones lógicas. De acuerdo a las reglas de diseño analizadas en el capítulo 1, se pueden plantear diferentes operaciones aritméticas y realizarse a partir de sistemas digitales. Algunas otras operaciones que pueden implementarse son: suma de palabras binarias, resta y otros. Ir al inicio 2.1.2 Representación de números con signo Números positivos y negativos en binario. Para la representación de números con signo se utilizan dos sistemas, el sistema con bit más significativo como signo y el de complemento a dos. El sistema con MSB utilizado como signo fue utilizado para intentar representar elementos negativos y positivos, sin embargo la realización de operaciones aritméticas se complicaba demasiado pues los algoritmos utilizados proporcionaban resultados erróneos al considerar o no el bit de signo dentro de la operación. La introducción del sistema en complemento a dos eliminó completamente el error producido en operaciones aritméticas ya que el bit más significativo representa al signo y el peso por la posición que ocupa. Esto hace que al efectuar operaciones aritméticas, las cifras obtenidas consideren el valor posicional del MSB y el algoritmo utilizado solo debe considerar el signo inicial de los operandos para ajustar el signo del resultado. Las equivalencias entre un sistema binario puro con el MSB tomado como signo y un sistema en complemento a dos, ambos de cuatro bits y el sistema decimal se muestran en la tabla 2.1 29 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Binario con MSB = signo 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Valor Decimal con signo +0 +1 +2 +3 +4 +5 +6 +7 -0 -1 -2 -3 -4 -5 -6 -7 Binario en Complemento a 2 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Valor Decimal con signo +0 +1 +2 +3 +4 +5 +6 +7 -8 -7 -6 -5 -4 -3 -2 -1 Tabla 2.1 Representación de números negativos y positivos mediante dos sistemas Ejercicio: Realizar las operaciones aritméticas indicadas en clase con números binarios con MSB de signo, números en complemento a 2 y números en binario puro Ir al inicio 2.1.3 Sumadores, Restadores y Sumador Restador Como se muestra en la sección 2.1, se puede diseñar un circuito para la operación de suma mas elemental, la suma de dos dígitos binarios aislados sin considerar que puedan formar parte de una palabra digital por lo que a menudo recibe el nombre de semisumador (half adder) , sin embargo los dígitos binarios se agrupan a menudo para formar palabras de mas de un bit lo que añade complejidad a los procesos matemáticos y los circuitos que los realizan. A continuación se muestra el proceso de diseño de un sumador completo (full adder) que puede ser utilizado para sumar cualquier par de bits en una palabra considerando además el acarreo producido por la suma de los bits que le anteceden y produce un acarreo para la suma de los bits que le preceden. Como se muestra en el siguiente circuito, el sumador completo debe tener como entradas los dígitos An y Bn y Cn-1 correspondientes a los dígitos binarios A y B ubicados en la posición n dentro de una palabra digital y el acarreo C producido por la suma de los dos bits ubicados en la posición n-1 y las salidas sigma y C correspondientes a la posición n mencionada. Este circuito se puede utilizar para realizar la suma de cualquier par de dígitos por lo que se conoce como sumador completo (full adder) 30 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro An Bn Cn-1 SUMADOR Cn Σn Fig 2.4 Función del sumador completo (full adder) Su tabla de verdad se muestra a continuación An 0 0 0 0 1 1 1 1 Bn 0 0 1 1 0 0 1 1 Cn-1 0 1 0 1 0 1 0 1 Σn Cn 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 Fig 2.5 Tabla de verdad de un sumador completo (full adder) De la tabla de verdad se obtienen las funciones de salida Σn = A n • B n • Cn − 1 + A n • Bn • C n − 1 + An • B n • C n − 1 + An • Bn • Cn − 1 Cn = A n • Bn • Cn − 1 + An • B n • Cn − 1 + An • Bn • C n − 1 + An • Bn • Cn − 1 Las cuales se muestran introducidas en los mapas de Karnaugh correspondientes 31 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro An Cn-1 An 0 1 0 1 1 0 1 0 Cn-1 0 0 1 0 0 1 1 1 Bn Bn Fig 2.6 Mapas de Karnaugh de un sumador completo (full adder) Como puede observarse, en el mapa de la izquierda, correspondiente a ∑n, no existe posibilidad de reducción, mientras en el de la derecha, correspondiente a Cn, si existe reducción. De esta manera, las funciones de salida quedan Σn = A n • B n • Cn − 1 + A n • Bn • C n − 1 + An • B n • C n − 1 + An • Bn • Cn − 1 Cn = An • Bn + Bn • Cn − 1 + An • Cn − 1 Y la implementación final del circuito An Bn SEMISUMADOR 2 3 1 C1 Σ1 Cn Cn-1 SEMISUMADOR C2 Σn Fig 2.7 Implementación del circuito sumador completo (full adder) Ejercicio: El alumno implementará basado en el ejemplo del sumador completo los circuitos restador y sumador-restador Ir al inicio 32 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 2.1.4 Comparador lógico Un comparador lógico es capaz de comparar dos caracteres binarios y determinar si son iguales o uno de ellos es mayor. En este caso el circuito se representa como un sistema con dos entradas correspondientes a los dígitos a comparar y tres salidas las cuales indicaran si los números son iguales o uno es mayor A B COMPARADOR A<B A>B A=B Fig 2.8 Función del circuito comparador La tabla de verdad del circuito se muestra a continuación A 0 0 1 1 B 0 1 0 1 A>B 0 0 1 0 A=B 1 0 0 1 A<B 0 1 0 0 Fig 2.9 Tabla de verdad del circuito comparador Las funciones de salida son: A〈 B = AoB A 〈 B = A o B + Ao B = Ao B + A o B A 〉 B = Ao B Y su implementación en mapas de karnaugh puede omitirse por la sencillez de las funciones resultantes La implementación final se muestra en el siguiente circuito 33 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 1 A 2 1 1 A A 3 A A>B 2 2 3 2 A 1 A=B 1 B 2 3 A A<B Fig 2.10 Circuito comparador Ir al inicio 2.2 Codificadores – Decodificadores Cuando se utilizan circuitos binarios, estos pueden agruparse y generar combinaciones muy largas. Para simplificar dichas combinaciones pueden utilizarse circuitos codificadores. Por ejemplo, el sistema tradicional de memoria utilizado en computadoras puede seleccionar una de n palabras digitales para el almacenamiento palabras, donde n puede ser tan grande como 1024, 2048, 4096, etc. Si la selección de cada palabra se hiciera mediante un bit, el circuito resultante sería demasiado grande. Para ello se utiliza un circuito codificador. En el siguiente ejemplo se diseña un codificador de 5 entradas y 32 salidas. El circuito tiene las entradas A0 – A4 y las salidas S0 – S31. La combinación de palabras digitales colocadas en las entradas A proporciona la activación de solo una salida S a la vez como se muestra en la tabla de verdad 34 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig 2.11 Tabla de verdad de un decodificador de 5 entradas y 32 salidas S31 S30 S29 S28 S27 S26 S25 S24 S23 S22 S21 S20 S19 S18 S17 S16 A A4 1 2 A A3 1 2 A A2 1 2 A A1 1 2 A 2 A0 1 S15 S14 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0 Fig 2.12 Circuito decodificador de 5 entradas y 32 salidas Ir al inicio 35 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 2.2.1 El decodificador como generador de minitérminos Como puede inferirse del análisis de la tabla de verdad y del circuito para el decodificador de 5 entradas a 32 salidas, es posible tomar cada una de las salidas S como expresión de un minitérmino conformado por las señales de entrada A0, A1, A2, A3 Y A4. De esta manera, puede usarse un decodificador semejante para simplificar el diseño de circuitos lógicos con ecuaciones complejas o que no presentan reducciones significativas. Sin embargo, comercialmente se puede adquirir el 74154 que decodifica solo 4 entradas a 16 salidas, por lo que dicha técnica solo se podría aplicar en circunstancias donde se cuenta con cuatro entradas y si existe un mayor número de ellas deberá implementarse un arreglo más complejo basado en circuitos 74154. Ir al inicio 9 2.2.2 Decodificador de BCD a 7 segmentos Otro circuito de utilidad es el utilizado para operar un display de siete segmentos (en realidad este tipo de circuitos cuenta con ocho leds internos, 7 para mostrar un carácter y uno para mostrar un punto decimal). La siguiente figura muestra la disposición de dos circuitos de este tipo. Se encuentran en el mercado circuitos de tipo ánodo común, lo que implica que cada segmento del display está conectado al cátodo de cada LED indvidual por medio de las terminales 1-8, mientras la terminal número 9 se debe polarizar a Vcc por medio de un resistor como el mostrado en la figura de la izquierda. En este tipo de circuitos, basta poner un 0 lógico en un segmento para que este encienda mientras un 1 lógico lo apaga También se encuentran circuitos de tipo cátodo común, lo que implica que cada segmento del display está conectado al ánodo de cada LED indvidual por medio de las terminales 1-8, mientras la terminal número 9 se debe polarizar a tierra por medio de un resistor como el mostrado en la figura de la izquierda. En este tipo de circuitos, es necesario polarizar cada segmento por medio de una resistencia a Vcc y al colocar un 0 lógico en la entrada 1-8 el segmento se apaga mientras que con un 1 lógico se enciende. a VCCNC b a c f d g b e fed c g dp dp 10 1 2 3 4 5 6 7 8 a NC b a c d f g b e fed c g dp dp GND 10 9 1 2 3 4 5 6 7 8 Fig 2.12 Circuitos display de ánodo común (izquierda) y de cátodo común (derecha) En el mercado pueden conseguirse diferentes tipos de circuitos de la serie 74 que proporcionan salidas para diferentes tipos de display. En la siguiente figura se muestra la configuración de terminales del 74LS47 que permite la utilización directa de un display de ánodo común mediante ocho salidas negadas como respuesta a una combinación BCD en sus cuatro entradas. 36 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig 2.13 Configuración de terminales del circuito 74LS47 La siguiente figura muestra la tabla de verdad para el 74LS47. La figura 2.15 muestra la configuración interna de dicho circuito. Fig 2.14 Tabla de verdad del circuito 74LS47 37 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig 2.15 Configuración interna del 74LS47 y mapa de caracteres mostrados Ir al inicio El alumno puede, con ayuda de las técnicas aprendidas hasta el momento comprobar la congruencia de la tabla de verdad del dispositivo con el circuito final implementado a fin de reforzar los conocimientos adquiridos. 2.2.3 Codificador para teclado En circuitos digitales y en otras diferentes aplicaciones, se hace necesario contar con dispositivos de entrada a base de interruptores. Tal es el caso de las prácticas desarrolladas en las que se proporcionan entradas a los circuitos diseñados mediante DIP switch, los cuales deben polarizarse de acuerdo al diseño especificado y conmutarse para proporcionar un 0 o un 1 lógicos. La siguiente figura ilustra un codificador CDP1871A de Intersil para interfaz con un microprocesador. El circuito es capaz de generar 53 códigos ASCII y 32 códigos hexadecimales por medio de una matriz de teclas. 38 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig 2.16 Circuito CDP1871A de Intersil Ir al inicio 2.2 Multiplexores – Demultiplexores En ocasiones, es necesario seleccionar una entrada de un conjunto de diferentes entradas proporcionadas. Por ejemplo en los circuitos telefónicos que comunican entre sí a los usuarios del servicio (abonados) con una central que los concentra y que se comunica a su vez con diferentes centrales que también concentran a un número definido de abonados. En este contexto, cada abonado que desea efectuar una comunicación es seleccionado mediante un circuito multiplexor para transmitir su mensaje a través de la terminal troncal que conecta a las dos centrales mientras que el abonado que recibe la llamada debe localizarse en la central que recibe la comunicación, mediante un circuito complementario denominado demultiplexor. La siguiente figura ilustra el caso 39 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 1 1 2 2 3 3 CENTRAL TELEFONICA A CENTRAL TELEFONICA B 4 troncal telefonica . . . n Fig 2.17 Comunicación entre dos centrales telefónicas La siguiente figura muestra la configuración de terminales y la tabla de verdad del circuito selector de datos o multiplexor de ocho entradas a una salida 74LS251 Fig 2.18 Circuito selector de datos o multiplexor de ocho entradas a una salida 74LS251 Y la siguiente figura muestra su configuración interna 40 4 . . . m APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig 2.19 Configuración interna del circuito selector de datos o multiplexor de ocho entradas a una salida 74LS251 La siguiente figura muestra la configuración de terminales y diagrama interno del demultiplexor o decodificador de cuatro entradas a 16 salidas 74LS154. Fig. 2.20 configuración de terminales y diagrama interno del demultiplexor o decodificador de cuatro entradas a 16 salidas 74LS154. Y la siguiente figura muestra su tabla de verdad. 41 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig. 2.21 tabla de verdad del demultiplexor o decodificador de cuatro entradas a 16 salidas 74LS154. Ir al inicio 2.3.1 Aplicaciones del multiplexor en la solución de funciones booleanas Cuando se desea simplificar el diseño de circuitos complicados, puede usarse el multiplexor como circuito simplificado para proporcionar las salidas deseadas sin necesidad de elaborar soluciones complejas. Por ejemplo, supóngase que se desea diseñar el circuito de la tabla de verdad propuesta a continuación, la cual corresponde a una de las posibles salidas de un sumador completo y la cual, de acuerdo a su mapa de Karnaugh no tiene simplificación. An 0 0 0 0 1 1 1 1 Bn 0 0 1 1 0 0 1 1 Cn-1 0 1 0 1 0 1 0 1 Cn 0 0 0 1 0 1 1 1 Como puede fácilmente comprobarse, puede usarse un circuito multiplexor de tres entradas a ocho salidas 74LS251 con las señales An, Bn y Cn-1 conectadas a las entradas A, B y C del circuito, mientras las terminales de datos D0 a D7 se colocan con los valores descritos en la columna Cn de la tabla de verdad, lo cual produce el mismo resultado para la salida Cn que implementar el circuito de la figura 2.7. 42 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Ir al inicio 2.3.2 Método de optimización del multiplexor La forma de utilización del circuito descrito en el punto anterior puede optimizarse mediante el análisis cuidadoso de los estados de entrada correspondientes y las combinaciones que las producen pues en algunos casos puede simplificarse al utilizar las terminales de CS con que cuenta el circuito multiplexor. Ir al inicio 43 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Unidad III. Diseño de Circuitos Lógicos Secuenciales 3.1 3.1.1 3.1.2 3.1.3 3.2 3.2.1 3.3 3.3.1 3.3.1.1 3.3.1.2 3.3.1.3 3.3.1.4 3.4 3.4.1 3.4.2 3.5 3.5.1 3.5.1.1 3.5.1.2 Introducción Modelo general de los circuitos secuenciales Clasificación Algoritmo de análisis y diseño Multivibradores (Flip – Flops) Tabla de estados y excitación Circuitos secuenciales síncronos Modalidad de reloj Análisis Diseño Reducción por observación Registros de corrimiento Métodos formales de reducción Partición de estados Implicación de estados Circuitos secuenciales asíncronos modalidad de pulso Diseño de máquinas de estado Tipo Mealy Tipo Moore 3.1 Introducción En este capítulo se analizan los circuitos digitales y su clasificación. Básicamente pueden contarse dos tipos. Los circuitos combinatorios son capaces de producir una o mas salidas en respuesta a un arreglo actual de señales de entrada. Mientras los circuitos secuenciales son configuraciones cuya respuesta depende no solo de las señales de entrada actuales sino también del valor de su o sus salidas; Esto implica que los circuitos secuenciales tienen que ver con el tiempo y presentan por ello un efecto de “memoria” Ir al inicio 3.1.1 Modelo general de los circuitos secuenciales COMBINATORIOS CIRCUITOS LOGICOS ASINCRONOS SECUENCIALES SINCRONOS Ir al inicio 44 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 3.1.2 Clasificación CIRCUITOS COMBINATORIOS: Son aquellos capaces de producir una o mas salidas en respuesta a un arreglo actual de las señales de entrada. Tal como los analizados en el capítulo I. A B C D E F G Z Y X W V U T A A A B C D E F G T U V W X Y X Fig 3.1 Ejemplos de circuitos combinatorios CIRCUITOS SECUENCIALES: Son configuraciones cuya respuesta depende no solo de las señales de entrada actuales sino también del valor de una o mas salidas retardadas utilizadas como entrada realimentada. Esto implica que los circuitos combinatorios tienen que ver con en tiempo y representan por ello un efecto de “memoria” Retardos de tiempo ∆τ Entradas primarias A Circuito de entrada Trayectorias de realimentacion (solo valen 0 o 1) Circuito de salida V B 1 2 Entradas secundarias Circuitos combinatorios ∆τ Fig 3.2 Diagrama general de un circuito secuencial Las entradas primarias pueden ser controladas por el usuario mientras que las entradas secundarias son controladas por el propio circuito. En estos circuitos, a pesar de que las entradas primarias se suprimieran, este no se queda sin entradas 45 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro CIRCUITOS SECUENCIALES ASINCRONOS: Son circuitos cuyas señales de realimentación tienen diferentes retrasos en tiempo debidos a sus trayectorias por lo que al actuar como entradas secundarias a un circuito pueden no ser simultáneas Retardos de tiempo distintos ∆τ1 f Entradas primarias F Circuito de entrada A Circuito de salida B 1 Entradas secundarias o excitaciones V 2 g G ∆τ2 Fig 3.3 Diagrama de un circuito secuencial asíncrono Donde F = f ( A, B, f , g ) G = f ( A, B, f , g ) V = f ( A, B, f , g ) (Cuando en las funciones que determinan las señales de salida intervienen letras mayúsculas y minúsculas, se trata de un circuito secuencial pues en el interviene el tiempo) CIRCUITOS SECUENCIALES SÍNCRONOS: Son circuitos cuyas señales de retroalimentación son proporcionadas por multivibradores biestables sincronizadas por un reloj. Los multivibradores utilizados son en si diseños secuenciales elementales (tipo T, D, SR, JK, SOC, COS, etc.) Cuando las salidas del circuito son las propias salidas de los multivibradores (Qn), se tiene lo que se conoce como maquinas MOORE mientras que si se toman del circuito combinatorio de salida se tienen las denominadas maquinas MEALY. 46 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Unidades de retardo sincronizadas por un reloj (MV`s biestables) Q1 Q1 Entradas primarias F Circuito de entrada A Circuito de salida B Z 1 Entradas secundarias o excitaciones Y 2 Q2 G Q2 Reloj Fig 3.4 Diagrama de un circuito secuencial síncrono Ir al inicio 3.1.3 Algoritmo de análisis y diseño El análisis de circuitos secuenciales consiste en lograr, a partir de una configuración lógica dada, el diagrama de estados de la configuración que, como se sabe, es la representación pictórica de la operación dinámica del circuito. Tanto el análisis como la síntesis de estos circuitos se lleva a cabo en dos dominios: Combinatorio y Secuencial. 47 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Síntesis Análisis El dominio combinatorio se caracteriza por el uso de funciones y mapas de Karnaugh. Mientras que el dominio secuencial opera con tablas de estados, diagramas de estados, etc. Ejemplo: Analizar la operación del siguiente circuito secuencial A Z B g (respuesta) G (excitación) Nota: Se trata de un circuito secuencial que opera en modo fundamental, con dos entradas primarias y una secundaria. No tiene circuito de salida por lo que G = Z y g = Z en los estados estables. 1. A partir del circuito se obtienen las funciones para G y Z (en este caso son iguales) G = Z = A⋅ B + A⋅ g + B ⋅ g 48 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 2. Se elabora el mapa de la excitación G A 0 0 0 1 0 1 1 1 g B 3. Recordando que en los estados estables G = g y en los estados inestables G ≠ g . Se identifican en el mapa de la excitación los valores que son estables y los inestables (los de valor igual a la variable son estables mientras los de valor contrario son inestables). Todo dentro del mapa corresponde a G. Los renglones corresponden uno a g falsa y el otro a g verdadera. Las condiciones estables se encierran en un circulo mientras las inestables se dejan como están A g 0 0 0 1 0 1 1 1 B A 1 g 1 2 4 3 6 5 6 B 4. Con la información obtenida del punto 3, se construye la tabla de transiciones en la que se observa que los movimientos horizontales (derecha/izquierda) son producto de cambios en las variables de entrada primarias (externas) mientras los movimientos arriba/abajo provienen de cambios en la entrada secundaria. 5. Es conveniente clasificar los estados estables e inestables para obtener la tabla de estados del circuito (la clasificación es arbitraria) 49 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Ir al inicio 3.2 Multivibradores (Flip – Flops) Un multivibrador biestable, también llamado flip-flop en inglés, es un circuito capaz de permanecer en un estado determinado o en el contrario durante un tiempo indefinido (estado estable). Esta característica es ampliamente utilizada en electrónica digital para memorizar información. El paso de un estado a otro se realiza variando sus entradas. Dependiendo del tipo de dichas entradas los multivibradores biestables se clasifican en: Multivibradores biestables (FLIP-FLOP’s) Tipo T (Trigger) Tipo D (Data) Tipo SR (Set-Reset) Tipo JK (Mejora del SR) Tipo SOC (Set Overrides Clear) Tipo COS (Clear Overrides Clear) Las características de cualquier multivibrador biestable suelen darse a través de las formas de onda que describen su operación (diagrama de flujo), de su tabla de verdad o de su descripción. Multivibrador biestable tipo T (Trigger): Es un circuito con una entrada T y una salida Q. Cambia su estado a la salida cuando se le aplica un filo (cambio de nivel de voltaje), ya sea descendente o ascendente, según lo requiera el diseño. Como puede inferirse de las figuras, la aplicación mas importante de este tipo de multivibradores es como circuitos divisores de frecuencia pues la señal de entrada en T se presentará en Q con la mitad de frecuencia, con un ciclo de trabajo de 50% en estado alto y 50% en estado alto, sin importar el ciclo de trabajo de la señal de entrada. T Q Fig 3.5 Representación de un multivibrador tipo T (Trigger) 50 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro T Q Filos ascendentes Fig 3.6 Formas de onda de un multivibrador tipo T (Trigger), diseñado con filos ascendentes T Q Filos descendentes Fig 3.7 Formas de onda de un multivibrador tipo T (Trigger), diseñado con filos descendentes Multivibrador biestable tipo D (Data): Es un circuito con dos entradas, D y G (Data y Gate) y una salida Q. En este circuito, la información presente en D se transfiere a Q siempre que G sea verdadera. En caso contrario, cambios de D no se transfieren a Q. Observe en el diagrama de flujo, que la salida Q solo cambia (conserva su estado) hasta que G es verdadera pero no vuelve a cambiar hasta un nuevo cambio de G. D Q G Fig 3.8 Representación de un multivibrador tipo D (Data) 51 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro D G Q Fig 3.9 Formas de onda de un multivibrador tipo D (Data) Multivibrador biestable tipo SR (Set - Reset): Es un circuito con dos entradas, S y R (Set y Reset) y una salida Q. El circuito se diseña para las siguientes condiciones de operación: a) S=R=0; La salida Q del circuito no cambia de estado, independientemente del estado en que se encontraba. Condición de no cambio. b) S=1, R=0; La salida del circuito cambia a 1 si estaba en estado 0 o permanece en 1 si estaba en estado 1. Condición de Set to One (mostrada en los estados a, b y e del diagrama de flujo del multivibrador) c) S=0, R=1; La salida del circuito cambia a 0 si estaba en estado 1 o permanece en 0 si estaba en estado 0. Condición de Reset to Zero (mostrada en los estados c, d y f del diagrama de flujo del multivibrador) d) S= R=1; La salida del circuito presenta un estado imposible de definir, por lo que esta condición no está permitida. Condición prohibida. S Q R Fig 3.10 Representación de un multivibrador tipo SR (Set - Reset) 52 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro S R Q ? a b c d e f g Fig 3.11 Diagrama de flujo del multivibrador tipo SR (Set - Reset) Para ilustrar mas abundantemente la operación de este multivibrador, se utiliza su tabla de verdad, en la que se considera el tiempo. El valor Q representa el estado de la salida del circuito antes de ocurrir el cambio en las variables de entrada y el valor de Q+ el estado de la salida, una vez ocurrido el cambio en dichas variables. S 0 0 0 0 1 1 1 1 R 0 0 1 1 0 0 1 1 Q 0 1 0 1 0 1 0 1 Q+ 0 1 0 0 1 1 ? ? Fig 3.12 Tabla de verdad del multivibrador tipo SR (Set - Reset) Como puede observarse en la tabla, la salida Q permanece en el estado previo al cambio de las variables de entrada cuando estas son igual a cero, ya sea verdadero o falso (condición de no cambio). Cuando las terminales de entrada están en S=0 y R=1, la salida permanece en cero si su estado era cero o cambia a cero si su estado era uno (condición de Reset to Zero). Cuando las terminales de entrada están en S=1 y R=0, la salida cambia a uno si su estado era cero o permanece en uno si su estado era uno (condición de Set to One). Y en la condición S=1 y R=1, la salida no puede definirse, por lo que no se muestra ningún estado. Multivibrador biestable tipo JK (J=Set to one, K=Reset to zero): Es una extensión del tipo SR, en el que las terminales de entrada si pueden adoptar el estado 1 1, en cuyo caso, la salida Q cambia de estado, cualquiera que este sea, de esta manera el circuito se comporta como un multivibrador tipo T. De esta manera, el circuito cumple las siguientes condiciones de operación: 53 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro a) J=K=0; La salida Q del circuito no cambia de estado, independientemente del estado en que se encontraba. Condición de no cambio. b) J=1, K=0; La salida del circuito cambia a 1 si estaba en estado 0 o permanece en 1 si estaba en estado 1. Condición de Set to One (mostrada en los estados a, b y e del diagrama de flujo del multivibrador) c) J=0, K=1; La salida del circuito cambia a 0 si estaba en estado 1 o permanece en 0 si estaba en estado 0. Condición de Reset to Zero (mostrada en los estados c, d y f del diagrama de flujo del multivibrador) d) J= K=1; La salida del circuito cambia de estado, sin importar la condición que tenía previamente. Condición de cambio de estado (mostrado en los estados g y h del diagrama de flujo del multivibrador). J Q K Fig 3.13 Representación de un multivibrador tipo JK (Set – Reset mejorado) J K Q a b c d e f g h Fig 3.14 Tabla de verdad del multivibrador tipo SR (Set - Reset) En la siguiente figura se muestra la tabla de verdad del dispositivo para ilustrar las mejoras introducidas respecto al multivibrador tipo SR, ahora con el estado de entrada J=1 y K=1 permitido. 54 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro J 0 0 0 0 1 1 1 1 K 0 0 1 1 0 0 1 1 Q 0 1 0 1 0 1 0 1 Q+ 0 1 0 0 1 1 1 0 Fig 3.15 Tabla de verdad del multivibrador tipo JK (Set – Reset mejorado) Existen dos variantes poco conocidas del multivibrador JK en las que el estado 11 se usa como un estado S (multivibrador conocido como SOC=Set Overrides Clear) o como un estado R (multivibrador conocido como COS=Clear Overrides Set). Sin embargo el circuito más utilizado es el tipo JK descrito anteriormente. En las siguientes figuras se ilustran las tablas de verdad y diagramas de flujo para los multivibradores tipo SOC y COS J K Q a b c d e f g h J 0 0 0 0 1 1 1 1 K 0 0 1 1 0 0 1 1 Q 0 1 0 1 0 1 0 1 Q+ 0 1 0 0 1 1 1 1 Fig 3.16 Diagrama de flujo y tabla de verdad del multivibrador tipo SOC (Set overrides Clear) 55 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro J K Q a b c d e f g h J 0 0 0 0 1 1 1 1 K 0 0 1 1 0 0 1 1 Q 0 1 0 1 0 1 0 1 Q+ 0 1 0 0 1 1 0 0 Fig 3.17 Diagrama de flujo y tabla de verdad del multivibrador tipo COS (Clear overrides Set) Ir al inicio 3.2.1 Tabla de estados y excitación Las tablas o diagramas de estados son representaciones pictóricas que permiten analizar con facilidad la dinámica de funcionamiento de todo circuito secuencial. Los estados se refieren a las condiciones estables que puede adoptar un circuito. Como éstas condiciones las proporcionan multivibradores biestables, el número de estados corresponde al número de multivibradores presentes en el circuito. Los estados estables se representan por medio de círculos y las transiciones entre ellos por segmentos dirigidos, los cuales llevan información sobre las señales de entrada que provocan o no la transición entre estados. A esta información se le denomina excitación. B A C Fig 3.18 Tabla de estados y excitaciones de un circuito cualquiera Los multivibradores pueden representarse también mediante este tipo de diagramas de estados y excitaciones. En la siguiente figura se ilustra un diagrama de estados de un multivibrador genérico en el que pueden identificarse cuatro situaciones posibles. El cambio de estado de 0 a 1, el cambio de estado de 1 a cero y la permanencia en el estado 0 o en el estado 1. 56 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Indica que permanece en 0 0 Indica el cambio de 1 a 0 Indica el cambio de 0 a 1 1 Indica que permanece en 1 Fig 3.19 Tabla de estados y excitaciones de todo circuito multivibrador Por ejemplo, en el diagrama siguiente se muestra la tabla de estados y de excitaciones del multivibrador tipo D, en la que se ha agregado a las trayectorias de las excitaciones, el valor del dato de entrada que las produce. D=0 0 D=0 D=1 1 D=1 Fig 3.19 Tabla de estados y excitaciones del multivibrador tipo D. S=0, R=1 S=R=0 0 J=0, K=1 J=K=0 0 S=1, R=0 J=1, K=0 J=K=1 J=K=1 J=0, K=1 S=0, R=1 S=R=0 1 1 J=K=0 S=1, R=0 J=1, K=0 Fig 3.20 Tabla de estados y excitaciones de los multivibradores tipo SR y JK. 57 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Ir al inicio 3.3 Circuitos secuenciales síncronos Son circuitos digitales gobernados por señales de reloj, generalmente divididos en dos grandes categorías: Máquinas MOORE cuando los estados útiles de la configuración se toman de los propios multivibradores y Máquinas MEALY cuando el diseño requiera un circuito de salida. Los sistemas secuenciales emplean por lo general un solo tipo de multivibrador, solo en casos muy particulares se requiere mas de un tipo de ellos. En este tipo de circuitos se tienen diferentes técnicas de análisis y diseño. Salidas (Maquinas MOORE) Q1 Multivibradores biestables (elementos de memoria) MV1 Salida (Maquina MEALY) Entradas primarias A Z B Circuito de entrada Circuito de salida Entradas secundarias MVn Qn Reloj (no es entrada) Fig 3.21 Diagrama a bloques de un sistema secuencial asíncrono. Ir al inicio 3.3.1 Modalidad de reloj Es un conjunto de técnicas de análisis y diseño en las que se parte de la definición del problema, se establece la tabla de estados o el diagrama de estados inicial, se busca la reducción de los estados del circuito y se selecciona el tipo de multivibradores para la implementación del circuito cuando se habla de diseño y, en sentido inverso cuando se habla del análisis de los circuitos. Ir al inicio 58 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 3.3.1.1 Análisis Para el proceso de análisis se debe observar inicialmente el circuito propuesto para determinar diferentes características. Por ejemplo, analizaremos el circuito de la siguiente figura. VCC Q0 (LSB) J Q1(MSB) Q J K Q K Ck Ck Reloj Fig 3.22 Circuito a analizar. Como las salidas del circuito son las salidas de los multivibradores, la primera conclusión es que se trata de una máquina MOORE. Asumiendo que ambos circuitos parten de un estado de reposo donde sus salidas son igual a cero, se establece en el análisis que el multivibrador 0 (a la izquierda en la figura) se comporta como un multivibrador tipo T, que permanentemente cambia de estado pues siempre tiene entradas en 1, mientras que el multivibrador 1 (a la derecha en la figura) también se comporta como un tipo T pero con posibilidad de variar entre el estado de entrada 0 que no presenta cambios en la salida Q y el estado 1 que permite el cambio de Q. Por ello, puede establecerse un diagrama de tiempos o diagrama de flujo en el que el filo de disparo se elige al azar (de ascenso para este caso) como el siguiente. 1 2 3 4 1 2 3 Reloj Q0 (LSB) Q1(MSB) Fig 3.23 Diagrama de flujo del circuito. A partir del diagrama de flujo puede establecerse la tabla de verdad del circuito que a su vez nos indicará la configuración de los estados que lo conforman. 59 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro J0 K0 J1 K1 Q0Q1 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 2 3 4 Fig 3.24 Tabla de verdad del circuito. Del análisis de la tabla de verdad se desprende que el estado de reposo se repite cada cuatro estados, por lo que si se utiliza solamente la salida del multivibrador 1, el circuito es un divisor de frecuencias entre cuatro, mientras que si se utilizan ambas salidas de los multivibradores, se trata de un contador módulo cuatro, con código 1,2. Por lo tanto, el diagrama de estados del circuito es el mostrado en la siguiente figura 00 01 10 11 Fig 3.25 Diagrama de estados del circuito. Ir al inicio 3.3.1.2 Diseño Para mostrar la metodología de diseño de este tipo de circuitos, se inicia con una tabla de verdad que muestra una secuencia deseada para un contador de módulo 5 compuesto por multivibradores JK. Q2 Q1 Q0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 Estados iguales Fig 3.26 secuencia deseada en el diseño del circuito. Ir al inicio 60 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Usando el método general de diseño, se tiene la siguiente tabla de excitaciones Entradas al circuito combinatorio Q2 Q1 Q0 Proximo Estado Q2 Q1 Q0 Salidas del circuito combinatorio J2 K2 J1 K1 J0 K0 0 0 0 0 0 1 0 X 0 X 1 X 0 0 1 0 1 0 0 X 1 X X1 0 1 0 0 1 1 0 X X0 1 X 0 1 1 1 0 0 1 X X1 X1 1 0 0 0 0 0 X1 0 X 0 X Fig 3.27 tabla de excitaciones del circuito. 3.3.1.3 Reducción por observación Los mapas de excitaciones se muestran en la siguiente figura, de las que puede inferirse por observación que: J2 K2 Q0 J1 K1 0X 0X 1X 0X Q0 0 X X0 X1 1 X Q2 Q2 0 X XX XX XX Q1 J2 0 1 0 X X XX XX 0 X XX XX XX Q1 K2 0 Q0 1 X 1 X X1 X1 Q2 X1 XX XX XX J2=Q0 Q1 J0 K0 J1 X X X 1 X XX XX K2=1 X Q1 K1 0 X X 1 0 X XX XX J1=Q0 J0 X 0 1 X X X XX XX K1=Q0 K0 1 1 X X 0 X XX XX J0=/Q2 Con lo que el circuito final queda como se muestra en la siguiente figura VCC J Q K Q1 J Q K Ck Ck 1 A 3 Fig 3.29 circuito final. 61 J Q K /Q Ck Reloj 2 Q2(MSB) VCC X 1 X X XX XX K0=1 Fig 3.28 mapas de excitaciones. Q0 (LSB) X 1 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Ir al inicio 3.3.1.3 Registros de corrimiento Un registro es un arreglo de multivibradores conectados en cadena que se usan como memorias temporales. Su operación es asíncrona. En general hay dos tipos de registros: Los registros fijos y los registros de corrimiento. Los registros fijos permiten la carga y la descarga de información en paralelo, como se ilustra en la siguiente figura. Entrada paralelo de la informacion Reloj Salida paralelo de la informacion Fig 3.30 Registro fijo, con carga y descarga de datos en paralelo. Los registros de corrimiento permiten la operación de desplazamiento de la información, ya sea a la derecha, denominados registros de corrimiento a la derecha o con posibilidad de carga y descarga en paralelo y desplazamiento a la derecha o a la izquierda, denominados registros universales, como se muestra en la siguiente figura. Entrada paralelo de la informacion Entrada/Salida serie Entrada paralelo de la informacion Entrada serie Salida serie Salida/entrada serie Reloj Reloj Salida en paralelo de la informacion Corrimiento de los datos a la derecha Fig 3.31 Registros de corrimiento (shift register). Ir al inicio 3.4 Métodos formales de reducción Cuando se enuncia un problema relacionado con el diseño de un circuito, suele especificarse el tipo de multivibrador que debe utilizarse pues un mismo diseño puede ser realizado con diferentes multivibradores. En esencia, el diseño de los circuitos secuenciales sincrónicos consiste en indagar todas las excitaciones necesarias para que las unidades de memoria (multivibradores) funcionen como lo exige la aplicación. Esto se logra recurriendo sistemáticamente a la tabla de excitación de del tipo de multivibrador especificado para el diseño. Es evidente que dichas excitaciones solo pueden lograrse a partir de las salidas de los propios multivibradores, de las señales de entrada y de niveles lógicos constantes (ceros y unos). Conocido el enunciado del problema y elaborada la tabla de estados del mismo, el siguiente paso es la elaboración de la tabla de excitaciones que consta de 3 secciones, como se muestra en la figura 3.32. 62 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro De dicha tabla se derivan los mapas de las excitaciones que dependen exclusivamente de Q0, Q1, . . . Qn. Por último, se aplica la reducción del circuito, por medio de mapas de Karnaugh. Ir al inicio 3.4.1 Partición de estados Las tablas de estados utilizadas en sesiones anteriores, a diferencia de las mostradas en el diseño de circuitos combinatorios y que contienen entradas primarias y salidas, contienen información del estado presente del circuito, el estado próximo y la salida. La sección del estado presente contiene tantos renglones como estados pueden producir los multivibradores. La sección del próximo estado, tendrá tantas columnas como combinaciones de entradas primarias existan y los mismos renglones que la sección del estado presente. La sección de salida incluirá tantas columnas como combinaciones de entradas primarias. Estado presente Qn . . . . . . Q1 Q0 x1 x2 00 11 10 Proximo estado Qn . . . . . . Q1 Q0 x1 x2 00 11 10 Salidas Z .. Z Z Z Z 2 a la n columnas si se tienen n entradas primarias 4 columnas por ejemplo si se tienen una salida y 2 entradas primarias Fig 3.32 Formato general de una tabla de estados particionada. Ir al inicio 3.4.2 Implicación de estados Las ecuaciones de estados son las expresiones algebraicas que describen totalmente la operación de un circuito secuencial sincrónico. De esta forma, es posible realizar un diseño a partir de ellas prácticamente en forma directa. Lo esencial es saber obtener las ecuaciones correspondientes a partir de la tabla de estados, lo cual se logra recordando que: Los estados de la primer sección de la tabla están definidos antes de la llegada del pulso de reloj, por lo que se identifican con el subíndice n. Los estados de la segunda sección corresponden a la respuesta del circuito después del pulso de reloj, por lo que se identifican con el subíndice n+1. Ir al inicio 3.5 Circuitos secuenciales asíncronos modalidad de pulso Se dice que un circuito secuencial corresponde a la modalidad de pulso cuando alguna de sus entradas primarias es un pulso, además del pulso de reloj, el cual no se considera una señal de entrada. De esta manera, los cambios internos ocurren como respuesta a la ocurrencia de dicho pulso presente en las entradas primarias. Cabe señalar que la duración del pulso debe ser tal que logre el disparo en los multivibradores que deben diferenciar tal 63 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro pulso de una señal de ruido y que no deben ocurrir en las entradas pulsos simultáneos. En esta modalidad de diseño existen dos tipos de circuito. Las máquinas MOORE y las máquinas MEALY. Ir al inicio 3.5.1 Diseño de máquinas de estado El diseño de una máquina de estados (conocida también como máquina de estados finitos), debe seguir la estructura siguiente: a) b) c) d) e) f) g) 3.5.1.1 Enunciado del problema Obtención del diagrama de estados a partir del enunciado del problema Definición de dichos estados y el número de multivibradores que los realiza Codificación de los estados en función de los multivibradores propuestos Elaboración de la tabla de excitaciones y salidas Simplificación o reducción por mapas de Karnaugh Realización física del circuito y pruebas Ir al inicio Tipo Mealy El nombre "Máquina de Mealy" viene del promotor del concepto: G. H. Mealy, un pionero de las máquinas de estados, quien escribió Un Método para sintetizar Circuitos Secuenciales, Bell System Tech. J. vol 34, pp. 1045–1079, September 1955. Una máquina de Mealy puede definirse como una función de * un conjunto finito de estados (S) * un estado inicial S0 el cual es un elemento de (S) * un conjunto finito de señales de entrada * un conjunto finito de señales de salida * una función de transiciones * una función de salida En general, una máquina MEALY es un sistema secuencial sincrónico que requiere un circuito de salida. La siguiente figura muestra el esquema general de este tipo de circuitos Fig 3.33 mapa de estados de una máquina MEALY simple. 64 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Ir al inicio 3.5.1.2 Tipo Moore El nombre Moore machine viene de su diseñador: Edward F. Moore, un pionero de las máquinas de estados, quien escribió Gedanken-experiments on Sequential Machines, pp 129 – 153, Estudios de Autómatas, Anales de los Estudios Matemáticos, no. 34, Princeton University Press, Princeton, N. J., 1956. Una máquina de Moore puede ser definida como una función de * un conjunto finito de estados ( S ) * un estado inicio (también llamado estado inicial) S0 el cual es un elemento de (S) * un conjunto finito de señales de entrada * un conjunto finito de señales de salida * una función de transición mapeando un estado y una entrada al siguiente estado * una función salida En general, una máquina MOORE es un sistema secuencial sincrónico en el que las salidas del circuito son tomadas de las salidas de los mltivibradores. La siguiente figura muestra el esquema general de este tipo de circuitos Fig 3.34 mapa de estados de una máquina MOORE simple. Ir al inicio 65 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Unidad IV. Dispositivos programables 4.1 4.1.1 4.1.2 4.2 4.2.1 Contexto de la memoria de un sistema de cómputo Clasificación y tecnologías Memoria EPROM Dispositivos de lógica programable (PLD’s) Arreglos lógicos programables (GAL’s) 4.1 Contexto de la memoria de un sistema de cómputo La memoria en un sistema de cómputo permite almacenar datos y códigos: Los datos consisten en la información del sistema y permiten la realización de operaciones lógicas y aritméticas, el intercambio de información y la ejecución de múltiples tareas; Los códigos son microinstrucciones escritas en lenguaje de máquina y son escritas de acuerdo a las especificaciones del fabricante del procesador contenido en el sistema de cómputo. Dichos códigos escritos y ejecutados en forma secuencial constituyen el programa que ejecuta el sistema y se relaciona con los datos de manera que pueden efectuarse diferentes operaciones. Fig. 4.1 La persistencia de la memoria. Salvador Dalí Ir al inicio 4.1.1 Clasificación y tecnologías La memoria en sistemas electrónicos se clasifica de muy diversas maneras. Por ejemplo: 66 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro a) Por sus características físicas: Electromecánicas y electrónicas; Todos los tipos de memoria electromecánica requieren de elementos móviles para los procesos de lectura/escritura de información, lo que naturalmente se efectuaba en forma lenta. Durante algún tiempo representaron el menor costo por cantidad de información almacenada. Fig. 4.2 Memoria de tambor magnético Las memorias electrónicas en cambio son elementos estáticos que mantienen la información por medio de niveles de voltaje y su principal característica es la velocidad de respuesta. Fig. 4.3 memoria electrónica comparada con memoria de núcleos magnéticos 67 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro b) Por su jerarquía: Principales y Auxiliares. Las memorias principales son aquellas que, por su velocidad de operación interactúan directamente con el microprocesador de un sistema de cómputo mientras las memorias auxiliares son sistemas mas lentos que requieren tiempos de acceso mayores por lo que requieren circuitos que las operen mediante sistemas de almacenamiento temporal (buffers). Fig. 4.4 circuitos de memoria principal para una PC. Fig. 4.5 circuito de memoria auxiliar. c) Por su forma de acceso a la información: Aleatorias, serie y asociativas. En las memorias de acceso aleatorio, el tiempo de lectura y el tiempo de escritura de un dato es el mismo y es completamente independiente del lugar físico en donde se ubica el mencionado dato. En las memorias de acceso en serie, el tiempo de acceso a los datos depende del lugar en el que se localice físicamente dicho dato como en el 68 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro caso de cintas magnéticas o el conjunto de discos denominado “jukebox”. En las memorias asociativas, denominadas CAM (content addressable memory), la búsqueda de información requiere de un dato de entrada para compararlo con el contenido de cada localidad. d) Por su relación con la alimentación: Volátiles y no volátiles. En las memorias volátiles es necesario mantener permanentemente la alimentación para retener los datos que ésta contiene pues en cuanto dejan de contar con ella, todos los datos almacenados se pierde. En las memorias no volátiles, la información almacenada permanecerá indefinidamente en las condiciones normales de operación del circuito. e) Por el tipo de elemento de almacenaje utilizado: Estáticas y dinámicas. Las memorias estáticas emplean multivibradores como elementos de almacenaje de información por lo que siempre que se encuentren alimentadas conservarán dicha información. En las memorias dinámicas se emplea un elemento capacitivo para la retención de información por lo que requieren ser “refrescadas” periódicamente. La ventaja de estas ultimas es que aunque requieren de circuitos de refresco, pueden fabricarse en mayor densidad que las estáticas pues por cada celda binaria de memoria estática pueden fabricarse 4 celdas binarias de memoria dinámica. f) Por el tipo de acceso a los datos: Memorias de lectura/escritura y memorias de solo lectura. Las memorias de lectura/escritura se utilizan específicamente para el almacenamiento de datos dentro de un sistema de cómputo y se requiere que dicha operación se efectúe en el menor tiempo posible. Las memorias de solo lectura se utilizan para almacenar código y requieren que la información permanezca en ellas de forma indefinida para que siempre se encuentre disponible el programa grabado en ellas. Un ejemplo de la forma en que la construcción de circuitos cada vez más compactos y eficientes impacta tecnológicamente, lo constituye el diseño de memorias a partir de multivibradores. En la siguiente figura se muestra una celda binaria a partir de compuertas NAND DATA IN 1 2 3 *A 9 10 *C S 8 MC74HC00AN 1 2 *A 3 10 MC74HC00AN 1 2 *A 3 4 5 12 6 *B 13 *D R 11 *C 8 4 *B 6 13 Q9 10 12 5 6 9 *D 11 DATAOUT 12 *C 8 13 *D MC74HC00AN 5 *B 4 READ/WRITE Fig. 4.6 circuito de celda binaria, formado con NAND´s. 69 11 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro En celdas como la mostrada en la figura anterior, se distinguen la terminal de salida de datos, la de entrada de datos y la de control de lectura/escritura que permite guardar un bit o leer el bit guardado en la celda. En el diseño de circuitos de memoria se añade una terminal de control adicional para formar una celda binaria típica, como se muestra en el circuito siguiente S I O BC RW Fig. 4.7 circuito de celda binaria mostrando sus terminales de control y de datos. En el circuito mostrado, S es la terminal de selección que permite en estado verdadero que la celda actúe como tal, esto es, leer un dato binario o mostrarlo. Mientras que en estado falso, el circuito se coloca en estado de alta impedancia (tercer estado) para no actuar en el circuito en que se pudiera conectar. Esta condición permite que la celda pueda insertarse en arreglos muy grandes y ejecutar acciones de lectura/escritura por palabras. En el siguiente circuito se muestran ocho celdas binarias conectadas de manera que forman una localidad de memoria, en la que se puede almacenar una palabra digital de 8 bits. I7 O7 Selección de la palabra I S BC O RW I6 I O6 S BC O RW I5 I O5 S BC O I4 I RW O4 S BC O RW I3 I O3 S BC O RW I2 I O2 S BC O RW I1 I O1 S BC O I0 I RW O0 S BC O RW RWde la palabra Fig. 4.8 circuito de celdas binarias formando una localidad de memoria de 8 bits. Nótese que el circuito tiene ahora un orden implícito, pues aunque todas las celdas son iguales, cada una almacenará un bit de diferente “peso”, por lo que la celda de la derecha albergará al bit menos significativo (LSB=Least Significant Bit) y la de la izquierda al mas significativo (MSB=Most Significant Bit). 70 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Una simplificación adicional en circuitos de memoria, consiste en la fabricación de terminales bidireccionales, las cuales tienen la propiedad de manejar datos en un sentido o en otro y se utilizan para sustituir terminales separadas para la entrada y salida de datos. Dichas terminales constan de un circuito de control gobernado por la terminal R/W y formado como se muestra en la siguiente figura I/O I I O I/O O R/W Fig. 4.8 circuito de control de terminales bidireccionales. De este modo, la localidad de memoria mostrada en la figura 4.8, se transforma en la mostrada en la siguiente figura Selección de la palabra D7 D6 S I/O D5 S BC RW I/O D4 S BC RW I/O D3 S BC I/O RW D2 S BC RW I/O D1 S BC RW I/O D0 S BC RW I/O S BC I/O RW BC RW RWde la palabra Fig. 4.9 Localidad de memoria de 8 bits y terminales de datos bidireccionales. Agrupando más de una palabra en un circuito, considerando que las terminales de entrada/salida de datos se deben conectar en paralelo para cada bit de cada palabra y que las terminales de control deben conectarse en un arreglo matricial que permita la selección de una palabra a la vez y la activación de la terminal R/W en todas las celdas al mismo tiempo, se forma lo que se denomina una “memoria” como la que se muestra en el siguiente circuito, el cual representa una memoria de 8 localidades de 8 bits cada una. 71 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro S0 D7 D6 D5 D4 D3 D2 D1 D0 BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC S1 S2 S3 S4 S5 S6 S7 RW Fig. 4.10 circuito de memoria de 8 localidades de 8 bits cada una. La cual representa la forma en la que se organizan las celdas binarias para formar un arreglo que permita la lectura o escritura de una palabra en una localidad determinada. Para lograr dicho objetivo, se selecciona la localidad deseada, colocando a uno lógico la S correspondiente y a cero lógico todas las terminales S restantes. Enseguida se coloca la palabra que se desea escribir en las terminales bidireccionales de datos y se activa la terminal R/W en su modo de escritura. Si por el contrario se activa en modo de lectura, en las terminales bidireccionales se muestra el contenido de las celdas de la localidad seleccionada. 72 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Este proceso es sencillo si se trata de pocas localidades pero en el mercado se tienen memorias de miles o millones de localidades, por lo que se requiere de un circuito que permita la selección de cada localidad con la ayuda de pocas terminales. Un circuito como el diseñado en la sección 2 de estos apuntes ilustra el caso. Se trata del diseño de un selector de 5 entradas y 32 salidas cuya tabla de verdad se muestra en la siguiente figura Fig. 4.11 Tabla de verdad de un selector de 5 entradas y 32 salidas. En dicha tabla se muestran las terminales de selección S para cada una de 32 localidades de memoria posibles y las combinaciones de entrada que las activan. Una combinación posible por cada terminal S. En la siguiente figura se muestra el circuito resultante S31 S30 S29 S28 S27 S26 S25 S24 S23 S22 S21 S20 S19 S18 S17 S16 A A4 1 2 A A3 1 2 A A2 1 2 A A1 1 2 A 2 A0 1 S15 S14 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 Fig. 4.12 circuito selector de 5 entradas y 32 salidas. 73 S3 S2 S1 S0 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro De esta manera, pueden generalizarse circuitos de n localidades de memoria con la apropiada circuitería para selección de localidades. La siguiente figura muestra un circuito con n localidades de memoria de 8 bits S0 D7 D6 D5 D4 D3 D2 D1 D0 BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC S1 S2 S3 Sn RW Fig. 4.13 circuito de memoria de n localidades de 8 bits cada una. Las dos figuras siguientes muestran las hojas de especificaciones de dos tipos de memoria típicas utilizadas en el diseño de circuitos digitales. 74 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Fig. 4.14 . hoja de especificaciones de la memoria ROM 27c256. Fig. 4.15 hoja de especificaciones de una memoria RAM de 8096 palabras de 8 bits cada una. Ir al inicio 75 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro 4.1.2 Memoria EPROM Son las siglas de Erasable Programmable Read-Only Memory (ROM borrable programable). Es un tipo de circuito integrado de memoria ROM inventado por el ingeniero Dov Frohman que retiene los datos cuando la fuente de energía se apaga. En otras palabras, es no volátil. Está formada por celdas de FAMOS (Floating Gate Avalanche-Injection Metal-Oxide Semiconductor) o transistores de compuerta flotante. Se programan mediante un dispositivo electrónico que proporciona voltajes superiores a los normalmente utilizados en los circuitos convencionales. Las celdas que reciben carga se leen entonces como un 1. Una vez programada, una EPROM se puede borrar solamente mediante exposición a una fuerte luz ultravioleta. Esto es debido a que los fotones de la luz excitan a los electrones de las celdas provocando que se descarguen. Las EPROMs se reconocen fácilmente por una ventana transparente en la parte alta del encapsulado, a través de la cual se puede ver el chip de silicio y que admite la luz ultravioleta durante el borrado. Ir al inicio 4.2 Dispositivos de lógica programable (PLD’s) Antes de la invención de los PLDs, se podían utilizar memorias tipo ROM para crear funciones lógicas combinacionales arbitrarias ya que se programaban de manera que una combinación de entrada produjera una salida deseada de acuerdo a una tabla de verdad sin necesidad de implementar los circuitos lógicos que la produjeran, solamente almacenando la palabra binaria necesaria como respuesta. Este tipo de diseños se crearon para reproducir funciones en una emergencia pues el circuito era subutilizado ya que las palabras restantes se desperdiciaban. En 1970, Texas Instruments desarrolló un circuito integrado, el TMS2000, programado con una estructura de multivibradores JK internos para configurar diferentes operaciones lógicas elementales. En 1971, General Electric Company (GE) desarrolló un dispositivo lógico programable basado en la nueva tecnología PROM, sin embargo, una vez que Intel introdujo en el mercado la tecnología de compuerta flotante borrable con luz ultravioleta, inmediatamente fue introducida para producir el primer circuito PLD programable y borrable. En 1973, National Semiconductor desarrolla el DM7575 En 1974 GE participa en un acuerdo con la compañía Monolithic Memories para desarrollar un dispositivo lógico programable que incorporara las innovaciones tecnológicas de GE. El dispositivo fue denominado Programmable Associative Logic Array o PALA. El MMI 5760 se completó en 1976 con casi 100 compuertas de tipo secuencial o multinivel. 76 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro El circuito fue desarrollado en ambiente de diseño de General Electric donde las ecuaciones booleanas eran convertidas a patrones en una máscara para configurar el dispositivo. Sin embargo el circuito no se vendió en el mercado. PAL (Programmable array logic) En 1978, MMI introduce un circuito denominado Programmable Array Logic o PAL cuya arquitectura era mas simple que la del FPLA de Signetics FPLA debido a que omitía el arreglo programable basado en compuertas OR, lo que hacía al dispositivo mas rápido, pequeño y barato, en configuración DIP de 20 terminales. Adicionalmente, el manual PAL Handbook desmitificó el proceso de diseño para hacerlo mas amigable con el uso del software PALASM (PAL Assembler), el cual convierte las ecuaciones Booleanas de diseño a un patrón de fusibles en la PAL. A partir de ese momento, los circuitos PAL se producen también por National Semiconductor, Texas Instruments y AMD. Posteriormente a la exitosa introducción de los circuitos PAL de 20 terminales, AMD introduce el 22V10, una PAL de 20 terminales con características adicionales. Posteriormente, AMD adquiere MMI (en 1987), para formar la compañía Vantis, que más tarde fuera adquirida por Lattice Semiconductor en 1999. Ir al inicio 4.2.1 Arreglos lógicos programables (GAL’s) En 1985 Lattice introduce en el Mercado una innovación en las PAL, el dispositivo denominado GAL (generic array logic), con las mismas propiedades de una PAL pero con la característica adicional de permitir borrarle y reprogramarle, por lo que fue enormemente aceptada en el diseño y depuración de prototipos lógicos. Dicha programación se puede efectuar mediante programadores de PAL o utilizando la técnica de programación incircuit diseñada para determinados circuitos. Las GAL de Lattice combinan las tecnologías CMOS y las compuertas flotantes eléctricamente borrables (E2) para proporcionar alta velocidad y bajo consumo de potencia. Un dispositivo similar, denominado PEEL (programmable electrically erasable logic) fue introducido por International CMOS Technology (ICT) corporation. CPLD (complex PLDs) Las PAL y GAL´s solo pueden adquirirse en la actualidad en formatos de solo cientos de compuertas lógicas. Para circuitos lógicos con mayor número de componentes se pueden utilizar los CPLD (complex PLDs o CPLDs). Dichos dispositivos contienen el equivalente de varias PAL enlazadas mediante conexiones programables en un solo circuito integrado por lo que sustituyen a cientos o hasta miles de compuertas lógicas. Algunos CPLD’s pueden programarse usando un programador convencional de PAL’s, pero este método resulta inconveniente para dispositivos de cientos de terminales. Un método alternativo consiste en soldar el circuito a la placa de circuito impreso en donde operará normalmente y proporcionarle una cadena de datos seriales desde una PC. El circuito contiene un dispositivo que decodifica los datos seriales y configura al CPLD para ejecutar la función lógica especificada. 77 APUNTES DE CIRCUITOS DIGITALES M. en C. Orlando Beltrán Navarro Cada fabricante tiene sistemas propietarios para este sistema de programación, por ejemplo Lattice Semiconductor lo denomina "in-system programming", sin embargo estos sistemas han migrado a un estándar denominado JTAG (Joint Test Action Group). FPGAs (Field-programmable gate array) Mientras el desarrollo de circuitos programables evolucionaba hacia GAL’s y CPLD’s, ocurría otro tipo de desarrollos denominados FPGA’s (field-programmable gate array) por parte Sygnetics. Este tipo de dispositivos introducidos en 1970, se basa en la tecnología de matrices de compuertas que pueden ser configuradas en campo (de ahí su nombre fieldprogrammable gate array). Los FPGA’s utilizan una matriz de compuertas lógicas similar a las usadas en otros dispositivos programables con la diferencia que la programación se hace por parte del usuario después de haber sido soldados en la tarjeta de circuito impreso, de manera similar a los CPLD’s. En algunos FPGA’s muy grandes, la configuración es volátil y debe ser recargada cada vez que se alimenta el dispositivo mediante una memoria PROM, o EEPROM via JTAG. Ir al inicio 78