Modulo SistemasDigitalesBasicos 19-01-2009

Enero 19 de 2009

MODULO SISTEMAS DIGITALES BASICOS

MIGUEL PINTO APARICIO miguel.pinto@unad.edu.co

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD BUCARAMANGA 2009

INTRODUCCION
El curso de Circuitos Digitales Básicos es del Campo de Formación Profesional específica para el programa de Ingeniería Electrónica, con dos créditos académicos, es Metodológico y a distancia. Busca darle la capacidad de describir al estudiante de manera suficiente las nociones, los conceptos y los procedimientos necesarios para el análisis y diseño de Circuitos Digitales. Este curso es un abre bocas al maravilloso mundo digital, y pretende dar una formación básica a los futuros diseñadores digitales, que con dispositivos como PLDs, FPGAs, DSPs, etc. podrán llevar a la vida real aquellas ideas que le permitan interactuar al hombre con la máquina. La Electrónica Digital ha experimentado un rápido crecimiento tecnológico; Los circuitos digitales son comúnmente usados en productos de consumo, equipos industriales y de control, equipos de oficina, equipos médicos, militares y de comunicaciones. Este uso extensivo de los circuitos digitales ha sido gracias a los avances tecnológicos que han reducido los costos en los circuitos integrados y la capacidad de los mismos, así como la aplicación de displays, memorias y tecnología computarizadas. El curso consiste de dos Unidades, la primera detalla todos los conceptos básicos, procedimientos y métodos de reducción de circuitos digitales; la segunda unidad es una fundamentación en el uso del Lenguaje VHDL, el cual es empleado para el diseño asistido por Computador de los Circuitos Digitales. El enfoque para el aprendizaje autónomo de este curso es del tipo teóricopráctico, en donde la teoría es fácilmente llevada a la práctica por medio de talleres diseñados para tal fin. De tal manera, que el estudiante pueda depurar su conocimiento y dominio del tema por medio de su aplicación inmediata. Inicialmente el estudiante entenderá como desde una ecuación Booleana se puede construir físicamente un circuito digital y cómo estos cumplen con las operaciones básicas del Algebra de Boole. Este enfoque será gracias al estudio independiente que se desarrolla a través del trabajo personal y del trabajo en pequeños grupos colaborativos de aprendizaje, y de acompañamiento tutorial desarrollado a través de la tutoría individual, en pequeños grupos colaborativos y de tutoría en grupo de curso. Así mismo busca fomentar la cultura investigativa y de lectura en el estudiante a través del uso de tecnologías que faciliten el acceso a la información y la obtención de fuentes bibliográficas, de manera que fortalezca su aprendizaje autónomo. En cuanto al sistema de evaluación del curso, este se basa en lo contemplado y definido en el Reglamente General Estudiantil, de forma que permita comprobar el nivel de avance del auto-aprendizaje alcanzado a lo largo del

es decir el modelo pedagógico a desarrollar son las habilidades de pensamiento. podrá obtener los logros propuestos en este curso. Por lo tanto. prestando atención a pulir las primeras y mejorar en las segundas. • Y las comunicaciones asincrónicas tales como: Grupos de interés. conexión a Internet y editores de texto. Correo electrónico. buscando la relación tutorestudiante: • Módulos y guías escritos para estudio temático y orientación pedagógica. grupos de noticias. servidores FTP. . Para facilitar el auto-aprendizaje es necesario consultar la bibliografía recomendada. con esto se está también potenciando en los estudiantes la capacidad de investigación y de auto gestión para adquirir conocimiento según sean sus necesidades y/ó debilidades encontradas durante cada uno de los pasos del proceso a seguir. hemerotecas digitales e impresas.curso. Estas permiten la comunicación en forma diferida favoreciendo la disposición del tiempo del estudiante para su proceso de aprendizaje. utilizar la biblioteca virtual y el acceso a Internet. se emplearán tres tipos de evaluación alternativas y complementarias: Autoevaluación: evaluación que realiza el estudiante para valorar su propio proceso de aprendizaje. páginas WEB. • El Computador como herramienta informática para estudio con CD ROM. y pretende la socialización de los resultados del trabajo personal. videoconferencia. En la medida que el estudiante adquiera su rol. por tal razón es imprescindible el recurrir a diversas fuentes documentales y el acceso a diversos medios como son: bibliotecas electrónicas. sitios Web especializados. Chat. El acceso a documentos adquiere una dimensión de suma importancia en tanto la información sobre el tema exige conocimientos y planteamientos preliminares. favoreciendo una interacción inmediata. Heteroevaluación: Es la valoración que realiza el tutor. Estas permiten encuentros presénciales directos o mediados. se interiorice y aplique los puntos abordados anteriormente. Para el desarrollo del curso es importante el papel que juegan los siguientes recursos tecnológicos como medio activo. Es importante ser consciente de las fortalezas y debilidades. tales como. Coevaluación: se realiza a través de los grupos colaborativos. • Sistemas y plataformas tecnológicas institucionales para favorecer la comunicación sincrónica. y lo mejor para llevarlo a cabo con Disciplina.

PRIMERA UNIDAD DIDÁCTICA SISTEMAS DIGITALES BASICOS .

CAPÍTULO 1 OPERACIONES BINARIAS Y CIRCUITOS DIGITALES .

+ a1b1 + a0b 0 i= n 0 (Ecuación No.2.. del sistema Octal es 8 y el sistema binario es 2.7. sabemos que para el sistema decimal las unidades tienen un valor de 1. En la sumatoria expresada en la Ecuación No. si hablamos del sistema decimal.8. es decir. y así sucesivamente.3. las decenas tienen un valor de 10.. Estos sistemas de numeración se diferencian entre sí por la base que empleen. etc. las decenas están en la posición 1 entonces es tener b1 = 101 = 10 .6. a2 representaría el dígito de las centenas.5. Octal.. las centenas están en la posición 2 entonces es tener b 2 = 102 = 100 . Y el término bi . que como las unidades están en la posición 0 del número es tener a la base (b=10) elevada a la posición 0 ( b 0 = 100 = 1 ).. etc.2.. y esta numeración de la posición se inicia desde 0 y en el sentido derecha a izquierda.a2 a1a0 representa la distribución de los dígitos en el número representado por el sistema numérico.5.a2 a1a0 = ∑ ai b i = an b n + an −1b n −1 + . de donde podemos concluir que la base del sistema decimal es 10.1. la i representa la posición relativa del dígito en el número representado.6. El lado derecho de la Ecuación No. 1.9. como el Decimal. etc. las centenas tienen un valor de 100. y para hacerlo ha desarrollado diferentes sistemas de numeración.Lección 1..1. . por el número de dígitos que empleen para contar. a1 representaría el dígito de las decenas. representa la base del sistema de numeración empleado elevado a la i. De tal forma que el sistema decimal tiene los dígitos 0. es decir. binario..4... que es lo mismo que decir. el sistema Octal tiene los dígitos 0..3. es decir. el sistema binario tiene los dígitos 0.4. Cualquier sistema de numeración que se emplee puede ser representado de la siguiente manera: an an −1 . Sistemas de Numeración Desde la antigüedad el hombre ha tenido la necesidad de contar. 1) Donde an an −1 . 1 enfatiza la manera como los dígitos y la relación de su posición en el número representado puede llevarse a su valor numérico.7. a0 representaría el dígito de las unidades.1.

el dígito 1 en la posición dos. para expresarlo de forma numérica hacemos la sumatoria de cada dígito multiplicado por la base elevada a la posición representativa del dígito en el número. el dígito 9 en la posición uno y el dígito 7 en la posición cero. entonces el dígito y su valor de posición son multiplicados. el cual tiene el dígito 2 en la posición tres.Ahora. Esto lo podemos comprender en el siguiente ejemplo con el número en sistema decimal 2197: 2197 = 2 *103 + 1*10 2 + 9 *101 + 7 *100 Explicación Tenemos el número 2197. y el producto de todos los dígitos y su valor son sumados para obtener el valor numérico del número representado. De esta manera tenemos que 2197 = 2 *1000 + 1*100 + 9 *10 + 7 *1 = 2000 + 100 + 90 + 7 . tenemos en cuenta que este número está representado en base 10. Podemos Observar otro ejemplo con la siguiente gráfica: . si tenemos el valor de la posición que le corresponde a cada dígito. por lo tanto.

es la cantidad de dígitos que disponen para el proceso de contar. octal.La principal diferencia entre los diferentes sistemas numéricos existentes. hexadecimal: DECIMAL BINARIO OCTAL HEXADECIMAL 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 17 10001 21 11 18 10010 22 12 19 10011 23 13 20 10100 24 14 . en la siguiente tabla se comparan los sistemas decimal. binario.

3. 4. 6 y 7) por lo cual se considera que su base es 8. 1. que el correspondiente número en octal es 3671 Veamos otro ejemplo de conversión del sistema decimal al sistema octal: Nuevamente realizamos divisiones sucesivas por el número 8 . para ello se realizarán divisiones sucesivas por 8 así: Se toma en orden inverso a su aparición el resultado final y los residuos correspondientes.Lección No 2 Sistema Octal El sistema octal tiene 8 dígitos para su numeración (0. de tal manera. Un procedimiento sencillo para pasar del sistema decimal al octal es el siguiente: Tomemos como ejemplo la conversión del número decimal 1977 al sistema octal. 2. 5.

para ello recordaremos la Ecuación No 1 y la aplicaremos para convertir el número 20078 al sistema decimal: Recordemos que tomamos el número 20078 y lo separamos por sus respectivos dígitos multiplicados por la base elevada a su posición correspondiente asi: Número decimal = 2*8 3 + 0*82 + 0*81 + 7*80 Ahora. para este caso obviaremos como ya vimos los dígitos cuyo valor es cero: 3. convertir un número del sistema octal al sistema decimal. y teniendo en cuenta los términos con multiplicandos cero tenemos: Número decimal = 2*512 + 0 + 0 + 7*1 Lo cual nos da como resultado: Número decimal = 1024 + 7 = 103110 Por lo tanto son equivalentes los números 20078 ó 103110 Otra forma de hacerlo sería como sigue: 1. resolviendo las potencias. Procedemos a multiplicar cada dígito con su respectivo base y exponente. Procedemos a la sumatoria de los resultados lo cual nos confirma que son equivalentes los números 20078 ó 103110 . Ubicamos debajo de cada dígito del número en sistema octal su correspondiente base y exponente acorde a la posición del dígito: 2.Realicemos ahora el proceso contrario.

51210 . lo que nos puede dar a entender que cada posición de un dígito representado en un número binario tiene un valor fijo si este es uno. ejemplo: 985610 Como podemos observar de la Ecuación 2.. la posición cero vale 1. este debe ir acompañado de un subíndice que nos indique el sistema numérico en el cual se está representando. cada dígito sólo puede tomar el valor 1 o el valor 0. 1610 . empleamos la base 10 para contar. 410 . ejemplo: 56038 si el subíndice es 10. es decir: § si el subíndice es 2. 2. es porque es sistema Octal. 25610 . emplean el sistema binario. es porque es sistema Decimal. es decir.. y así sucesivamente si vamos resolviendo las potencias que se muestran en la Ecuación No. 1 y conociendo que la base de los sistemas digitales es 2.. las posiciones de los dígitos tienen un peso numérico relacionado con una potencia de 2. pero con una característica especial.. su valor numérico se incrementa en potencias de dos: 110 . la posición uno vale 2. Para convertir un número Decimal en un número Binario se puede implementar el método explicado en el siguiente ejemplo: . la posición cuatro vale 8.a2 a1a0 = an * 2n + an −1 * 2n −1 + . ejemplo: 111012 § § si el subíndice es 8.. es decir.. 6410 . ha medida que la posición del dígito incrementa. 3210 .. Nota Importante: Antes de continuar. 210 . + a2 *2 2 + a1 * 21 + a0 * 20 (Ecuación No. por lo tanto.. es porque es sistema Binario. la posición dos vale 4. se puede definir el valor numérico en decimal de un número binario de la siguiente manera: an an −1 ..Lección No 3 Sistema Binario Nosotros empleamos el sistema de numeración decimal. se mantiene que an an −1 . Así que para poder expresar nuestro mundo en el mundo digital necesitamos representarlo en los requerimientos de este..a2 a1a0 representa el valor de cada dígito según su posición relativa. Teniendo en cuenta la ecuación No. es decir.. 12810 . el 0 y el 1.. ellos sólo tienen dos estados posibles. dos posibles dígitos.. tenemos que definir para este módulo (como es acostumbrado en casi todos los textos) que cuando tengamos un número representado. 810 .. pero en el caso de los sistemas digitales. 2) En donde.

la potencia encontrada es 6410 por lo cual la sexta posición del número Binario será un uno. Ahora sólo tenemos en cuenta las unidades restantes entre el número original y la potencia encontrada. y las unidades restantes en este caso son 1110 .§ Convertir el número 87510 al sistema Binario Para poder realizar la conversión de este número se busca la potencia de dos que sea igual o menor al número dado. y las unidades restantes en este caso son 10710 . Para las 10710 unidades restantes. en este caso es 51210 por lo cual se asume que la posición nueve del número Binario será un uno. las cuales son 36310 . Para las 36310 unidades restantes. para lo cual tendremos en cuenta que cada posición del dígito en el número binario está representado por un valor equivalente a una potencia de dos. y las unidades restantes en este caso son 310 . Para las 4310 unidades restantes. la potencia encontrada es 810 por lo cual la tercera posición del número Binario será un uno. Para las 1110 unidades restantes. Por lo tanto la respuesta es 87510 ⇔ 11011010112 En muchos casos tendremos que convertir un número binario en decimal. la potencia encontrada es 3210 por lo cual la quinta posición del número Binario será un uno. y las unidades restantes en este caso son 4310 . Para las 310 unidades restantes. la potencia encontrada es 210 por lo cual la primera posición del número Binario será un uno. la potencia encontrada es 25610 por lo cual la octava posición del número Binario será un uno. por ejemplo para el número 1101010112 sabemos que cada posición de los dígitos equivale a: . y la unidad restante en este caso es 110 lo cual nos indica que la posición cero será un uno.

. se siguen los mismos criterios de adición y sustracción. en la mayoría de los casos se implementa una representación binaria conocida como representación en Complemento a dos. cuando sobrepasamos el máximo número de dígitos disponibles generamos un acarreo al dígito siguiente más significativo. la cual nos permite diferenciar números binarios positivos de números binarios negativos. Se mantiene la norma de comenzar a sumar o restar desde el dígito menos significativo o dígito de la posición cero. Si esto no se cumple. el resultado es uno. este préstamo se convierte en una resta adicional a la que se efectuara en el siguiente dígito más significativo. § Si el primer dígito es cero y se le resta un segundo dígito que es cero. La resta binaria la definiremos de la siguiente manera: § El orden de la resta se define del primer dígito dado menos el segundo dígito dado. las técnicas empleadas en las operaciones de suma y resta son iguales. estaríamos solicitándole al dígito inmediatamente más significativo un préstamos de una unidad permitiendo un resultado de uno. § Si el primer dígito es uno y se le resta un segundo dígito que es uno. el resultado es cero. el resultado es cero. el resultado es cero. de similar manera si estamos restando a un dígito que es menor al valor que se le resta se procede a solicitar un préstamos al dígito siguiente más significativo. el dígito de acarreo será un componente a adicionar a los dígitos inmediatamente más significativos. § Si adicionamos un dígito cuyo valor es uno con un dígito cuyo valor es cero. su resultado es uno § Si adicionamos dos dígitos cuyos valores son unos.Suma y Resta Binaria En cualquier sistema numérico. por lo tanto. § Si el primer dígito es cero y se le resta un segundo dígito que es uno. pero generamos un dígito adicional que lo llamaremos acarreo y cuyo valor es uno. Definición La suma binaria la definiremos de la siguiente manera: § Si adicionamos dos dígitos cuyos valores son cero. § Si el primer dígito es uno y se le resta un segundo dígito que es cero. el resultado es cero. en la mayoría de los casos el primer número binario dado para la resta debe ser mayor al número binario sustraendo.

pero generan un dígito de acarreo con valor uno para ser sumado con el resultado de la suma de los dígitos de la cuarta posición. por lo tanto su resultado es 0. adicionándole el dígito de acarreo tendremos un resultado de 1. por lo tanto su resultado es 0. pero tenemos un acarreo de un 1. Los dígitos de la posición uno son 1 y 1 respectivamente. por lo tanto su resultado es 1. Los dígitos de la cuarta posición son 1 y 0 respectivamente. por lo tanto consideramos que los dígitos de la quinta posición son ceros y su suma es 0. Resulta que no tenemos más dígitos para sumar. pero tenemos un dígito de acarreo que proviene de la suma anterior.Ejercicios Prácticos Realicemos la suma del número 11010 2 con el número 10112 : Procedimiento: § Primero que todo agrupamos los dos números binarios uno encima del otro de tal manera que los dígitos de la misma posición se encuentre en la misma columna o uno sobre el otro: 110102 + 010112 § § § § Noten que agregamos un cero a la izquierda en el segundo número binario sólo para igualar el número de dígitos en ambos (es algo que con la experiencia no necesitaremos). Los dígitos de la posición cero son 0 y 1 respectivamente. Los dígitos de la posición tres son 1 y 1 respectivamente. pero tenemos un dígito de acarreo que proviene de la suma anterior. por lo tanto su resultado es 0. pero generan un dígito de acarreo con valor 1 para ser sumado con el resultado de la suma de los dígitos de la posición dos. este dígito lo adicionamos al presente resultado lo que nos da 1. este dígito lo adicionamos al presente resultado lo que nos da 0. por lo tanto su resultado es 1. y generamos un dígito más de acarreo para la siguiente suma. Los dígitos de la posición dos son 0 y 0 respectivamente. Por lo tanto el resultado es el siguiente: 0110102 + 0010112 1001012 § § § .

Veamos gráficamente otro ejemplo de sumatoria de números binarios: .

.

Los dígitos de la posición tres son 1 y 1 respectivamente. Por lo tanto el resultado es el siguiente: 0110102 − 0010112 0011112 § § § § . el resultado es 1 y un nuevo dígito de préstamo. por lo tanto su resultado es 0. Los dígitos de la posición uno son 1 y 1 respectivamente. pero tenemos un dígito de préstamo que proviene de la resta anterior. este dígito lo restaremos al presente resultado lo que nos da 1. Los dígitos de la posición cero son 0 y 1 respectivamente. por lo tanto. pero tenemos un dígito de préstamo pendiente así que el resultado es 0. pero tenemos un préstamo que debemos restar en esta operación. y una resta adicional de un 1 para la operación de los dígitos siguientes. por lo tanto su resultado es 0.Realicemos ahora la resta del número 11010 2 con el número 10112 : Procedimiento: § Primero que todo agrupamos los dos números binarios uno encima del otro de tal manera que los dígitos de la misma posición se encuentre en la misma columna o uno sobre el otro: 11010 2 − 010112 § § Agregamos de nuevo un cero a la izquierda en el segundo número binario sólo para igualar el número de dígitos en ambos. Los dígitos de la cuarta posición son 1 y 0 respectivamente. por lo tanto solicitamos un préstamo al dígito siguiente más significativo del primer número binario. tenemos un resta de un 1 pendiente para esta posición. por lo tanto su resultado es 0. Los dígitos de la posición dos son 0 y 0 respectivamente. por lo tanto su resultado es 1. el resultado es 1. pero como tenemos generado un préstamo de la operación anterior. el resultado es 1. y generamos un dígito de préstamos más. como a un 0 le vamos a quitar un 1 debemos solicitar un préstamo al siguiente dígito generando un nuevo dígito de préstamo.

Multiplicación y división binaria De similar manera a la suma y resta de números binarios. Definición La multiplicación binaria la definiremos de la siguiente manera: § Si multiplicamos dos dígitos cuyos valores son 0 su resultado es 0.2.) La división binaria la definiremos de la siguiente manera: § Si dividimos un dígito cuyo valor es 1 entre otro cuyo valor es 1 su resultado es 1. la multiplicación y división de números binarios mantiene los mismos procedimientos que en el sistema decimal. y entre 0 y 0. el dígito de la posición cero del segundo número binario se multiplica por todo el primer número binario: . § Si dividimos un dígito 0 entre un dígito 1 su resultado es 0 § En los sistemas binarios también se considera como un valor indeterminado la división entre 1 y 0.2. § Si multiplicamos un dígito cuyo valor es 0 con un dígito cuyo valor es 1. su resultado es 0. § Si multiplicamos un número de varios dígitos con otro de varios dígitos el proceso es similar al que realizamos con números decimales (ver sección 1. § Cuando se dividen dos números binarios de varios dígitos se implementa la misma metodología que cuando se divide en el sistema digital Ejercicios Prácticos Realicemos ahora la multiplicación del número 11010 2 con el número 10112 : Procedimiento: § Primero que todo agrupamos los dos números binarios uno encima del otro de tal manera que los dígitos de la misma posición se encuentre en la misma columna o uno sobre el otro: § Ahora de la misma manera que en el sistema digital. § Si multiplicamos dos dígitos cuyos valores son 1 su resultado es 1.

si no es así se . pero su resultado se coloca a partir de la columna correspondiente a la posición uno: § Ahora el dígito de la posición dos del segundo número binario se multiplica por todo el primer número.§ De igual manera el dígito de la posición uno del segundo número binario se multiplica por todo el primer número. por lo tanto. pero su resultado se coloca a partir de la columna correspondiente a la posición dos. por lo tanto el resultado es: Realicemos ahora la división del número 110010102 con el número 10112 : Procedimiento: § Primero que todo agrupamos los dos números binarios de la misma manera que cuando realizamos una división en el sistema decimal: § El divisor tiene cuatro dígitos. el número que forman estos cuatro dígitos debe ser mayor al número divisor. procedemos a tomar de izquierda a derecha cuatro dígitos del dividendo. se procede de similar manera con la posición tres y cuatro. lo que nos da § De igual manera que en el sistema decimal. procedemos a sumar columna por columna.

Realice las siguientes sumas binarias: . Cuando este número es mayor que el divisor. se examina si el nuevo número que se forma es mayor al divisor. colocamos un 1 en la zona del resultado y restamos de nuevo el divisor a este número obteniendo. así que agregamos un cero al número de la zona de resultado: § De donde el resultado de la división es el número 10010 2 y el residuo de esta división es el número 100 2 EJERCICIOS: 1. si no es el caso se agrega el dígito siguiente. pero el número que se forma no es mayor que el divisor. § Aún nos falta por bajar un dígito del dividendo. se coloca un 1 en la zona del resultado de la división y se procede a restar como sigue: § Al resultado de la resta se le agrega a su derecha el siguiente dígito que sigue a los cuatro inicialmente tomados en el dividendo.tomaría un dígito más en el dividendo. y en la zona del resultado se coloca un cero (en este caso debemos recurrir una vez más a este procedimiento): § Ahora que el número generado es mayor que el divisor.

Realice las siguientes multiplicaciones binarias: 4.2. Realice las siguientes divisiones binarias: . realice las siguientes restas binarias: 3.

los cuales contienen algunos dígitos alfabéticos para complementar los 10 dígitos tradicionales. E representa en decimal el número 14. Por esto. 3. B. C. 8. D. C representa en decimal el número 12. 2. A. 7. 6. E. 9. D representa en decimal el número 13. veo conveniente recordar el siguiente cuadro comparativo de valores entre sistemas hexadecimales: DECIMAL BINARIO OCTAL HEXADECIMAL 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 10000 20 10 17 10001 21 11 18 10010 22 12 19 10011 23 13 20 10100 24 14 . 4. estos serían: 0.Lección No 4 Sistema Hexadecimal El sistema hexadecimal hace referencia a un sistema numérico que utiliza 16 dígitos. B representa en decimal el número 11. F En donde A representar en decimal el número 10. y F representa en decimal el número 15. 1. 5.

este proceso de representación del número binario está relacionado con el nivel de voltaje que se encuentra ya sea a la entrada del circuito o a la salida del mismo. por lo tanto. esto es fácilmente aclarado en el tema las Familias TTL y CMOS. se acostumbra a hablar de un circuito digital de n bits de entrada o n bits de salida. 2 podemos observar las . Definición de una compuerta lógica Una compuerta lógica es aquel circuito digital que tiene la capacidad de aplicar un proceso interno a sus n bits de entrada. respectivamente. Cada entrada o salida del circuito digital representa un dígito binario. de donde se precisa un nivel “alto” o “bajo” con muy clara diferencia entre los mismos. Este llamado proceso interno se puede representar por medio de ecuaciones matemáticas. y nos permite comprender de alguna manera el porqué los circuitos digitales sólo trabajan con números binarios. Esta asignación nos acerca más al término de sistema binario. y que cuyos resultados son manifiestos en sus bits de salida. 1 Circuito Digital de 3 bits de entrada y 6 bits de salida Compuertas Lógicas Un circuito digital es muy similar a un sistema. no aplicamos las mismas operaciones y propiedades que conocemos. del término inglés BInary DigiT. El poder diferenciar claramente los niveles de voltaje en la salida o la entrada del circuito nos permite nombrar estos niveles como “1” y “0”. con sus entradas. estos se conocen como bit. cuyas variables y números son NO REALES. sino que recurrimos a las definidas en el Algebra de Boole.Lección No 5 Circuitos Digitales Los circuitos digitales son un conjunto de componentes electrónicos que permiten manejar el voltaje que se les suministra para representar y manipular número binarios. por lo tanto. Por lo cual. En la figura No. sus salidas y un proceso interno que establece la relación entre las entradas al mismo y sus salidas. que cumple con alguna de las operaciones definidas en el Álgebra de Boole. 1 tenemos el ejemplo de la representación de un circuito digital de 3 bits de entrada y 6 bits de salida: Figura No. En la figura No.

Figura No. sus tablas de verdad y representación gráfica.operaciones del Algebra de Boole. 2 Propiedades del Algebra de Boole: Tablas y representación gráfica .

Aplicaciones de las Compuertas Las compuertas lógicas digitales son implementadas para representar las funciones booleanas que representan los sistemas digitales. lo que asumimos como un “0” y “1” respectivamente. este tiene tres Zonas de trabajo: La zona activa. los circuitos digitales trabajan con “1” y “0”. Si recordamos el componente Electrónico llamado Transistor NPN (ver figura No. restas. Un ejemplo de esto se representa en la figura No. La zona activa funciona como un amplificador lineal de corriente y/o voltaje dependiendo de la configuración del circuito en el cual se emplee el transistor. la característica especial de estos rangos es que el voltaje de los bits sólo deben estar dentro de los rangos de voltaje determinados para cada estado. de tal manera que existe una zona de voltaje entre los rangos asignados al “1” y “0” que nunca estará presente en el comportamiento eléctrico de los mismos. en donde está la función boolena de un sistema digital y la representación del mismo empleando compuertas lógicas (Este tema será ampliado en la sección 3. esto permite configurar un circuito en el cual el transistor puede acercarse a un voltaje cercano a cero o cercano al voltaje de alimentación. 4). 3. la de corte y la de saturación. . en la zona de corte funciona como circuito abierto y en la zona de saturación funciona como un corto circuito. 3 Función boleana y su representación por medio de Compuertas lógicas Familia TTL Como se comentó en la sección anterior.1). con una adecuada configuración de varios circuitos que contengan transistores se pueden generar comportamientos entre las entradas y salidas del circuito que cumplan con el comportamiento de las operaciones booleanas. y que permiten realizar algún tipo de aplicación como control de un proceso industrial. multiplicaciones y divisiones de números binarios). etc. los cuales representan un rango de voltaje en el bit de entrada o salida del mismo. operaciones aritméticas (sumas. Figura No. Ahora. las otras dos zonas funcionan de igual manera que un interruptor eléctrico.

pero es recomendable conectar la entrada por medio de una resistencia de 1k Ω a 5V para garantizar el estado del mismo. § La Familia TTL configura la zona de voltaje para definir el “0” entre 0V y 0. el sistema lo toma como un “1”. y para definir el “1” entre 2. y todo circuito integrado que contenga cualquier tipo de compuerta lógica que se genere con este tipo de circuito lógico se relaciona con la Familia TTL. Tipos de Circuitos Integrados La familia TTL es una de las familias de Circuitos Integrados (CI) más utilizados.4V y 5. claro está que esto incrementa el consumo de potencia del circuito integrado § Cuando una de las entradas del circuito lógico no se conecta sino que se deja al aire.25V y funcionan adecuadamente en temperaturas ambientales entre los 0° a 70° C.Figura No. Transistor-Transistor Logic). multivibradores monoestales. Características § Los circuitos integrados de la Familia TTL se alimentan con 5V con una variación aceptable de ± 0. esta característica está impuesta por la capacidad de corriente que puede suministrar o recibir. decodificadores. 4 Transistor NPN Definición Los circuitos digitales implementados con la lógica Transistor–Transistor son conocidos como circuitos integrados TTL (sigla del término en inglés. memorias y circuitos aritméticos.0V. . contadores.8V. flip-flops. § La Familia TTL tiene un limitante en cuanto al número de compuertas que se pueden interconectar entre sí (fan out). son reconocidos por la serie estándar 74 e incluyen una amplia variedad de compuertas. registros de corrimiento. § La velocidad de cambio de estado lógico del bit de salida a razón del cambio lógico de los bits de entrada alcanza en algunas versiones de la familia hasta 250 Mhz.

§ Serie 74AS. § Serie 74LS. Figura No. 5). § Salida TTL de tres estados. § Serie 74ALS. como por ejemplo una compuerta inversora (Ver figura No. de la sigla en inglés Metal-Oxide Semiconductor) los cuales consumen y disipan menos energía por compuerta. ofrece bajo consumo de potencia. configuración Schottky avanzada con bajo consumo de potencia. configuración Schottky. los cuales al ser implementados en un circuito forman la lógica MOS Complementaria (CMOS).Dependiendo de la combinación entre velocidad de respuesta y consumo de potencia la serie se clasifica como: § Serie 74L. configuración Schottky de bajo consumo de potencia. Este transistor tiene dos configuraciones que son complementarias conocidas como NMOS y PMOS. Familia CMOS Otro tipo de transistores aplicados en los CI son los transistores MOS (MOS. La familia TTL también se clasifica dependiendo del tipo de salida con que cuenta: § Salida TTL con colector abierto. 5 Transistor MOS . 6). configuración Schottky avanzada. ofrece alta velocidad. de tal forma que opera con una resistencia muy alta (“1”) o muy baja(“0”) (Ver figura No. § Serie 74H. este dispositivo puede modelarse como una resistencia controlada por voltaje con tres terminales. § Serie 74S. con la cual también se pueden implementar los comportamiento de las diferentes operaciones boolenas.

Características § Los circuitos integrados de la Familia CMOS se alimentan con valores entre 3V y 18V (claro que las series más nuevas definen su rango de alimentación entre 2V y 6V). 6 Circuito Inversor CMOS Definición Se denominan circuitos integrados de la Familia CMOS a aquellos en los cuales se ha implementado la lógica booleana por medio de circuitos lógicos CMOS. aunque tenía un bajo consumo de potencia. se caracterizan por venir en un paquete de cerámica o plástico con contactos metálicos en su periferia que permiten establecer conexión eléctrica para el suministro de energía y de las señales de entrada y salida. Normalmente un CI se conecta en una tarjeta de Circuito Impreso (PCB. del término inglés Printed-Circuit Board) para poder establecer su interconexión con otros circuitos integrados según la . 7). § Estos integrados son especialmente susceptibles a daños por carga electrostática. era bastante lenta y de muy difícil conexión con la familia TTL. y los estados lógicos “1” y “0” se definen en los rangos Vcc-0. Tipos de Circuitos Integrados La familia CMOS en sus comienzos fue conocida como la serie 4000.3Vcc-0V.Figura No. CIRCUITOS INTEGRADOS El Circuito Integrado (CI) es un chip de Silicio en el cual se han fabricado una o más compuertas lógicas (Ver figura No. Después se introdujo la serie 74AC (CMOS avanzada) y la 74ACT (CMOS avanzada.7Vcc y 0. compatible con TTL). compatible con TTL). Este aspecto fue mejorado por la serie 74HC (CMOS de alta velocidad) y la 74HCT (CMOS de alta velocidad. lo que interesa conocer de un CI es su comportamiento eléctrico y funcional. aunque las últimas generaciones de CI CMOS vienen protegidos contra estas descargas. respectivamente.

Figura No. Cómo se configura un inversor lógico por medio de un transistor NPN?. Qué otros tipos de lógicas circuitales se han implementado para poder implementar las operaciones booleanas? 4). 3).funcionalidad que tenga en el sistema implementado. Investigue cuáles son los circuitos integrados más comúnmente usados y qué características poseen. . En qué consiste la lógica de diodos? implementen. interconectaremos principalmente en Protoboards. Dé ejemplo de circuitos que la 2). 7 Imagen de un Circuito Integrado Nosotros lo INVESTIGACION: 1).

El comportamiento de estos circuitos se analiza inicialmente por medio de un diagrama lógico de dónde se obtiene la descripción formal de la función ya sea por medio de una tabla de verdad o una expresión lógica.CAPÍTULO 2 Principios de Diseño de Lógica Combinacional Un circuito lógico combinacional es aquel en el cual sus bits de salida dependen solamente del estado actual de los bits de entrada. .

OR: una suma lógica u operación OR.1=X X.0=0 X. las operaciones OR y AND son conmutativas: X +Y =Y + X X ⋅Y = Y ⋅ X (ecuación No. y por analogía si X = 1 .X=X X . AND: Para una multiplicación lógica tenemos que si las entradas son X y Y. entenderíamos que si X = 1 . 2). o viceversa.Lección No 1 ALGEBRA DE CONMUTACION Basados en el trabajo del matemático George Boole y las observaciones del investigador Claude E. en donde el punto de multiplicación (⋅) indica una operación AND o multiplicación lógica (Ver figura No. la cual se representa por medio de un signo más ( F = X + Y ). entonces X ≠ 0 . Esto es lo que se conoce como la operación NOT o inversor (ver figura No. Ahora si definimos la acción de negar una variable como la manera en la cual si su estado es “0”. se han definido el estado “1” o ALTO y el estado “0” o BAJO. 3) . 2). su complemento sería X ' = X = 0 . al negarla su estado sería “1”. y si X = 0 . Definición Señal lógica: Es el estado que se registra en los bits de entrada o salida de un circuito combinacional. tiene como salida “0” si y solamente si todas las entradas son “0” (Ver figura No. y si definimos el universo de los circuitos lógicos en los cuáles sólo son posibles dos estados (1 y 0). entonces X ' = X = 1 . Operaciones Binarias básicas NOT: una de los axiomas principales del álgebra de Boole es que si X = 0 . 2) y cuyo resultado sólo es “1” cuando todas las entradas son “1”. entonces X≠1. Basados en estas tres operaciones básicas tenemos los siguientes teoremas para una variable: X+0=X X + 1 =1 X+X=X (X’)’ = X X + X’ = 1 X. su representación algebraica sería F = X ⋅ Y . Shannon se han fundamentado las técnicas formales para el análisis de los circuitos digitales. En el álgebra de Boole una variable simbólica (por ejemplo X) será quien represente la señal lógica en un bit de entrada. X’ =0 (IDENTIDAD) (ELEMENTOS NULOS) (IDEMPOTENCIA) (INVOLUCIÓN) (COMPLEMENTOS) ___ ___ El álgebra de Boole cumple los siguientes postulados: 1.

2. Cada operación (AND y OR) es distributiva para la otra, es decir: X + (Y ⋅ Z ) = ( X + Y ) ⋅ ( X + Z ) X ⋅ (Y + Z ) = ( X ⋅ Y ) + ( X ⋅ Z ) 3. las operaciones OR y AND son asociativas: ( X + Y ) + Z = X + (Y + Z ) = X + Y + Z ( X ⋅ Y ) ⋅ Z = X ⋅ (Y ⋅ Z ) = X ⋅ Y ⋅ Z (ecuación No. 4) (ecuación No. 5)

(ecuación No. 6) (ecuación No. 7)

4. Para cada par de elementos se cumple que (Propiedad de absorción o cobertura): X + X ⋅Y = X (ecuación No. 8) (ecuación No. 9) X ⋅ (X + Y ) = X 5. La propiedad de combinación consiste en: X ⋅Y + X ⋅ Y = X (X + Y) ⋅(X + Y ) = X 6. El Teorema de Morgan consiste en: (X + Y + Z) = X ⋅ Y ⋅ Z
____________
________________ ___ ___ ___ ___ ___

(ecuación No. 10) (ecuación No. 11)

(ecuación No. 12) ecuación No. 13)

X ⋅Y ⋅ Z = X + Y + Z

___

___

___

7. El teorema de Shannon define el complementario de una función como aquel en el cual cada variable se reemplaza por su complementaria y, al mismo tiempo, se intercambian las operaciones AND y OR, es decir: f ( X , Y , Z ,...,+,⋅) = f ( X , Y , Z ,...,⋅,+) 8. El teorema de Expansión consiste en:
___  ___  f ( X , Y , Z ,...) = [X + f (0, Y , Z ,...)]⋅  X + f (1, Y , Z ,...) = X ⋅ f(1, Y, Z,...) + X ⋅ f (0, Y , Z ,...)   ________________ ___ ___ ___

(ecuación No. 14)

(ecuación No. 15) En donde el desarrollo o la expansión puede realizarse en función de cualquiera de las variables presentes.

Ejercicios Ahora aplicaremos los teoremas del álgebra de Boole para resolver ecuaciones lógicas: § Probemos que ( X + Y ) ⋅ Y = X ⋅ Y
___

Procedimiento: 1. Tomaremos el término de la izquierda del igual, y por medio de la propiedad distributiva (Ec. No. 5) eliminaremos el paréntesis: X ⋅Y + Y ⋅Y = X ⋅Y 2. Si observamos el segundo término del lado izquierdo del igual ( Y ⋅ Y ), notaremos que están cumpliendo la propiedad del complemento para la multiplicación lógica, por lo tanto el resultado de este término es “0”: X ⋅Y + 0 = X ⋅Y 3. Ahora el lado izquierdo del igual se asemeja a la propiedad de la identidad para la suma lógica, por lo tanto X ⋅Y = X ⋅Y De donde queda demostrada la igualdad
___
___

§

______________

Aplique el Teorema de Morgan en

A ⋅ (B + C )

Procedimiento: 1. El Teorema de Morgan dice que toda variable es reemplazada por su complemento, las operaciones AND y OR son reemplazadas por su inverso (OR y AND) (Ver ecuaciones No. 12 y 13). Inicialmente colocaremos los complementos de A y del término que va entre paréntesis, y la operación inversa de la multiplicación lógica, lo cual nos da: A ⋅ (B + C) = A + (B + C) = 2. Ahora, el término entre paréntesis está negado, cuando aplicamos la negación los términos B y C son reemplazados por sus complementos y la operación de la suma lógica se reemplaza por la multiplicación lógica:
______________ ______________ ___ _________

A ⋅ (B + C ) = A + (B + C) = A + B ⋅ C
______________

___

_________

___

___ ___

Por lo tanto A ⋅ (B + C ) = A + B ⋅ C
___ ___ ___

Lección No 2 ANÁLISIS Y SINTESIS DE CIRCUITOS COMBINACIONALES
Para el análisis de Circuitos Combinacionales nosotros manejamos funciones booleanas que nos representan el comportamiento de los mismos en función del estado de sus entradas. Una función booleana sencilla es la siguiente: f (X ) = X Esta función indica que para cada valor de X la respuesta de la misma es el complemento, como X sólo puede tomar dos valores (0 y 1), las respuestas serán sus complementos (1 y 0). Como en el álgebra, las funciones pueden tener varias variables, f ( X ,Y ) = ( X + Y ) ⋅ Y Para esta función en particular podemos notar que cuando f (0,0) = (0 + 0 ) ⋅ 0 = (0 + 1) ⋅ 0 = 1 ⋅ 0 = 0 f (0,1) = (0 + 1 ) ⋅ 1 = (0 + 0) ⋅ 1 = 0 ⋅ 1 = 0 f (1,0) = (1 + 0 ) ⋅ 0 = (1 + 1) ⋅ 0 = 1 ⋅ 0 = 0 f (1,1) = (1 + 1 ) ⋅ 1 = (1 + 0) ⋅ 1 = 1 ⋅ 1 = 1 Y como habíamos probado en la sección 3.1.2, esta función es lo mismo que tener la multiplicación lógica de X y Y, de donde la salida sólo es “1” cuando las dos entradas son “1”, y la salida es “0” en los demás casos. La representación básica de una función lógica es la tabla de verdad, la cual, para la función anterior la podemos ver en la figura No. 8; como se observa, el número de columnas de la tabla de verdad está dado por el número de variables de la función seguido de su resultado. El número de filas de la tabla de verdad está dado por el número máximo de diferentes posibles combinaciones de los estados de las entradas ( 2 n , n= número de variables), por ejemplo, si tenemos 3 variables en una función serán 8 filas en la tabla de verdad y cuatro columnas. Figura No. 8 Tabla de Verdad de la función f ( X ,Y ) = ( X + Y ) ⋅ Y
___ __ __ __ __ ___ ___

Para entender una forma canónica debemos comprender lo siguiente: § Término producto: Es la multiplicación lógica de dos o más variables. ejemplos: XYZ . X + Y . ___ ___ ___ X + Y+ Z+W __ __ . X + Y + Z +W . Descripción de Diseño y circuitos A partir de una tabla de verdad se pueden obtener varias funciones booleanas que expresan el comportamiento descrito en la tabla. Ejemplos: X ⋅ Y ⋅ Z . ___ X +Y + Z+ A __ ___ ___ ___ ___ __ § Expresión de producto de sumas: Es el producto lógico de términos suma. Ejemplos: XYZ . Lo generalmente más empleado para la deducción de las expresiones resultantes de una tabla de verdad. A + B + C + D __ § Mintérmino: Es un término de producto normal con n variables. X ⋅ Y ⋅ Z ___ __ ___ ___ ___ § Maxtérmino: Es un término suma normal con n variables. nosotros podemos partir de una tabla de verdad para poder deducir la función booleana. X Y Z . el problema es que se pueden obtener una multitud de funciones booleanas que tendrán el mismo comportamiento. ejemplos: X +Y + Z . A ⋅ B ⋅ C § ___ __ ___ Expresión de suma de productos: Es la suma lógica de términos productos. por medio de la función booleana se definió el comportamiento de la tabla de verdad. Ejemplos: X + Y + Z +W . ejemplo: X + X ⋅ Y + XY Z __ § Término suma: Es la suma lógica de dos o más variables. así que nuestra misión será encontrar la función que este lo más simplificada posible.Como se pudo observar. Estas se caracterizan porque en todos los términos de estas expresiones aparecen todas las variables. X ⋅ Y ⋅ Z . de similar manera. ejemplo: X ⋅ ( X + Y ) ⋅ ( X + Y + Z ) ⋅ ( X + Y + Z + A) § Término normal: Es un producto o término suma en el que ninguna variable aparece más de una vez. y unas se podrán deducir de otras por medio de las propiedades del álgebra de Boole. todas estas funciones serán equivalentes. son las formas canónicas.

9) Figura No. La primera forma canónica es la Suma Canónica de la función lógica. el mintérmino tendrá las variables que sean “0” complementadas (Ver figura No. la suma canónica de la tabla de verdad de la figura No. así que todas las variables que sean “1” serán complementadas (ver figura No. el producto canónico de la tabla en la figura No. y consiste en el producto de los maxtérminos correspondientes a las combinaciones de las entradas para las cuales la salida es un “0”. 8 es F = ( X + Y )( X + Y )( X + Y ) ___ ___ . la única manera que logramos que sus entradas nos den como resultado un “1” es haciendo que todas sean “1”. como ejemplo. el resultado del máxtermino debe ser un “0”. 9) Un maxtérmino puede definirse como un término suma que es exactamente “0” en una de las filas de la tabla de verdad. Por ejemplo. de similar manera al mintérmino. como es un producto. por lo tanto. 9 Ejemplo de Mintérminos y Maxtérminos para dos variables § Ahora si estamos capacitados para entender cómo las formas canónicas son empleadas para deducir expresiones lógicas que describen un circuito lógico a partir de la tabla de verdad correspondiente.Existe una relación entre la tabla de verdad y los mintérminos y maxtérminos de una función: § Un mintérmino puede definirse como un término producto que es “1” en una de las filas de la tabla de verdad. ahora si aplicamos toda la tabla de verdad en esta expresión notaremos que la cumple (esto se propone como ejercicio al estudiante) La segunda forma canónica es el Producto Canónico de la función lógica. 8 es F = XY La suma canónica se compone de un solo término porque solamente una fila tiene como resultado un “1”. la cual es la suma de los mintérminos correspondientes a las filas de la tabla de verdad en las cuales los resultados sean un “1”.

7). No. una variable que es sumada con un “1” siempre nos dará “1”. Ahora el punto que debe preocuparnos es si las dos expresiones resultantes son realmente equivalentes? Para confirmarlo deduciremos de la expresión de productos de maxtérminos la expresión de suma de mintérminos. por lo tanto. así que asumiremos que el primer maxtérmino es una sola variable y el producto del mismo por el segundo maxtérmino será distribuido de la siguiente manera F = [( X + Y ) X + ( X + Y ) Y )]( X + Y ) 3. Hemos dicho que las operaciones OR y AND son asociativas (Ver Ecuación. agruparemos los dos primeros maxtérminos como sigue: F = [( X + Y )( X + Y )]( X + Y ) 2. se propone al estudiante representar toda la tabla de verdad en la expresión resultante para confirmar que cumple con las condiciones de la tabla. así que nuestra expresión inicial es la siguiente: F = ( X + Y )( X + Y )( X + Y ) Procedimiento: 1. Ahora.De similar manera. La ecuación No. Simplificando el primer término de la multiplicación tendremos: F = [ X (1 + Y + Y )]( X + Y ) 6. 5 nos dice que la operación OR es distributiva. Aplicando la ley distributiva tenemos F = X X + XY ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ . por lo cual F = [ X .1]( X + Y ) F = X(X +Y) 7. Ahora aplicando el teorema de Idempotencia y complemento obtenemos F = [ X + YX + X Y + 0]( X + Y ) F = [ X + YX + X Y ]( X + Y ) 5. Con la expresión resultante redistribuiremos el producto de cada variable por el maxtérmino que lo multiplica: F = [ XX + YX + X Y + Y Y ]( X + Y ) 4.

. la tabla de verdad se deduce de una descripción verbal de un problema descrito por alguien o por nosotros mismos. 8 Ya tenemos unas herramientas básicas para generar expresiones lógicas de una tabla de verdad.8.y por el teorema de Idempotencia aplicado a la variable Y F = XY Por lo cual obtenemos la misma expresión resultante para la suma canónica de la tabla en la figura No. pero de dónde se genera la tabla de verdad? Por regla general. Esta descripción puede ser un listado de combinaciones de varias entradas para las cuales debe estar activo o desactivo un bit en especial (salida del sistema). y por el teorema del complemento para la multiplicación F = 0 + XY = XY 10.

1. A continuación veremos otro ejemplo: Ejercicio resuelto: Minimizar la siguiente expresión: F = X Z + XY + X Y Z Procedimiento: 1). y como para la suma de ___ ___ ___ ___ ___ ___ ___ ___ .Lección No 3 minimización de Circuitos Combinacionales Cuando obtenemos una expresión lógica que describe una situación especial o un comportamiento requerido en un circuito.2. Para el término (Y + Y Z ) aplicamos la ley distributiva según la Ecuación No. de tal forma que obtenemos (Y + Y ) ⋅ (Y + Z ) . Los medios que tenemos para optimizar una expresión booleana son: § § Utilizando Propiedades y Teoremas del álgebra de Boole. la implementación directa de una suma o multiplicación canónica no es la más fiable económicamente hablando pues el número de mintérminos y maxtérminos crece exponencialmente con el número de variables. hay que basarse en la experiencia y el conocimiento de las propiedades del álgebra de Boole. Utilizando el método de los mapas de Karnaugh Teorema de Morgan Normalmente las formas canónicas no son las expresiones más simplificadas. Esta es una de las causas por las cuáles la minimización es una de las mejores herramientas para optimizar el circuito lógico diseñado. Podemos aplicar la ley asociativa de la suma lógica para los dos últimos términos así F = X Z + ( XY + X Y Z ) 2) Aplicando el procedimiento inverso para la ley distributiva de la multiplicación lógica con respecto a la suma tendremos F = X Z + X (Y + Y Z ) 3). Un ejemplo de simplificación de expresiones lógicas fue realizado en la sección 3. que la expresión final sea la de menor número y tamaño de compuertas electrónicas necesarias para construirla. de tal manera. el paso siguiente sería el implementarlo en un circuito electrónico. pero en la mayoría de los casos. 4. pero el procedimiento para hacer la simplificación no tiene un método analítico.

Agrupando los dos primeros términos tendremos F = X Z + XZ + XY = ( X + X )Z + XY 6). Queda como tarea para el estudiante el construir las tablas de verdad de las dos expresiones y comprobar que se comportan igual. así que reemplazando en la expresión: F = X Z + X (Y + Z ) 4). 10). 10 Acción de Minimización: Circuito de una expresión lógica original y Minimizada . una compuerta AND de tres entradas y dos compuertas inversoras. al realizar la minimización llegamos a necesitar solamente una OR de dos entradas y una AND de dos entradas. Por lo tanto en la mayoría de casos el proceso de minimización reduce notablemente la cantidad de componentes electrónicos requeridos en el montaje de un Circuito Digital (Ver figura No. De donde por la propiedad de la suma de complementos F = ( X + X ) Z + XY = (1) Z + XY = Z + XY F = Z + XY De donde podemos observar que de requerir inicialmente una compuerta OR de tres entradas. Aplicando la ley distributiva y conmutativa tendremos: F = X Z + X (Y + Z ) = X Z + XY + XZ = X Z + XZ + XY 5). dos compuertas AND de dos entradas. ___ ___ ___ ___ ___ ___ ___ Figura No.complementos se cumple que es igual a “1” tendríamos (1) ⋅ (Y + Z ) = (Y + Z ) .

las posibles combinaciones de las variables asignadas en las filas y columnas. 11 Ejemplo de un mapa de Karnaugh para una expresión de 4 variables Las expresiones 2 i y 2 j indican el número de posibles combinaciones que se pueden realizar con las i y las j variables respectivamente. el segundo dígito va con la segunda variable. 10 Podemos ver la aplicación de este concepto en la figura No. se acostumbra colocar las primeras i variables de la tabla de verdad a las filas y las j variables restantes a las columnas (ver figura No. 11). 10. Mapas de Karnaugh Un mapa de Karnaugh es una representación gráfica de la tabla de verdad de una expresión lógica. etc. pero el truco es no colocar las posibles combinaciones en el mismo orden en que se generarían como si estuviésemos contando en binario (00. Tenga en cuenta que el primer dígito de cada término (sea en la fila o la columna) corresponde a la primera variable asignada para la fila o la columna. deben de una a la siguiente combinación variar uno sólo de sus dígitos es decir: 00.Lección 4. 01. 12 Ubicación de las variables en un mapa de Karnaugh para una expresión de 4 variables . el tercer dígito con la tercera variable. 12). Básicamente es una tabla de cuadros de 2 i filas por 2 j columnas. siendo n el número de variables. Figura No. es decir. 11. además se cumple que 2 n = 2 i * 2 j . debemos asignar un número i de variables para designar las filas y un número de j variables para designar las columnas. de manera similar se hace con los demás dígitos. Como el mapa de Karnaugh es otra forma de representar la tabla de verdad. Figura No. en donde i + j = n . es por eso que las filas y las columnas son el mismo número de combinaciones posibles de cada grupo de variables asignadas a cada lado del mapa de Karnaugh. 13. 01. 11). es decir. la tabla tendrá tantos cuadros como posibles combinaciones de las variables de entrada (Ver figura No.

Figura No. y en cada cuadro se colocará el resultado esperado para cada uno de ellos. de similar manera.1. la intersección entre la fila tres y la columna cuatro es el término de la expresión correspondiente a F(X. 14.W) = F(1. esto lo podemos observar en la figura No. En otras palabras cada cuadro del mapa de Karnaugh tiene un mintérmino correspondiente en la tabla de verdad.Y.1. por ejemplo.W) = F(0.1). Para hacerlo. lo que hacemos es analizar cada una de las intersecciones entre las filas y las columnas. 14 Mapa de Karnaugh para: . lo que nos indica que debe ser el término de la expresión correspondiente a F(X.1.Y.Z.1.Z.Lo que nos falta es relacionar cada línea de la tabla de verdad con cada cuadro del Mapa de Karnaugh. la fila dos y la columna tres en la Figura No. 13 es la intersección entre el término 01 y el término 11. 13 Mapa de Karnaugh para una expresión de 4 variables Figura No.0). Es importante tener en cuenta que existen columnas y filas adyacentes en el mapa de Karnaugh en las cuales una de las variables es “1” y no varía.

Realicemos el mapa de Karnaugh de la siguiente tabla de verdad y halle la expresión mínima: Procedimiento: 1. Identificamos que es una tabla de verdad con tres variables. Cada uno de los mintérminos de la tabla de verdad será relacionada con cada uno de los cuadros del mapa de Karnaugh. Cuatro variables Ahora llevemos a la práctica lo hasta el momento aprendido. 2. en cada cuadro relacionado colocaremos los resultados esperados según la tabla de verdad: .a) Dos variables b). Tres variables c). por lo tanto. necesitaremos un mapa con dos filas y cuatro columnas como la observada en el Item b) de la figura No. 14. por lo cual.

C ) = C ( A + A) + A B Y por el teorema del complemento y la identidad F ( A. C ) = A C + A B + AC Por la ley conmutativa F ( A. C ) = A C + AC + A B Y aplicando de nuevo la ley asociativa y distributiva F ( A. Ya tenemos el mapa de Karnaugh. C ) = C (1) + A B F ( A. B. B. B. C ) = C + A B De donde obtenemos la mínima expresión lógica para la tabla de verdad dada 4. B. la minimizaremos por medio de la suma de productos (mintérminos): F ( A. B. C ) = ( A B C + A BC ) + ( A B C + A BC ) + ( A B C + ABC ) Y por la ley distributiva podemos hacer lo siguiente F ( A. pero requeremos minimizar la expresión que se representa de la tabla de verdad. C ) = A ( B C + BC ) + A B( C + C ) + A( B C + BC ) Y luego F ( A. B. C ) = A C (1) + A B(1) + AC (1) Y con el teorema de Identidad F ( A. Ahora podemos confrontar el resultado anterior con el resultado que obtengamos con el mapa de Karnaugh. C ) = A B C + A B C + A BC + A B C + ABC De donde.3. para ello tendremos en cuenta las siguientes normas: ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ . C ) = A B C + A BC + A B C + A BC + A B C + ABC Ahora la ley asociativa F ( A. B. B. B. C ) = A C ( B + B) + A B( C + C ) + AC ( B + B) De donde por el teorema de complemento obtenemos F ( A. C ) = ( A C + AC ) + A B F ( A. B. aplicando la ley conmutativa para la suma y la operación ___ ___ ___ ___ ___ ___ ___ contraria a la idempotencia para la suma en el término A BC tendremos F ( A. B. por lo tanto. B.

ejemplo . Seleccionamos el grupo o los grupos que mejor relacionen los unos del mapa de Karnaugh. Realizaremos grupos de estos unos de tal manera que formemos grupos con número de elementos potencias de dos y que sean líneas horizontales. ó que formen rectángulos. Sólo tendremos en cuenta los unos que identificamos en los cuadros del mapa de Karnaugh b.a. ejemplos c. ó líneas verticales.

Ahora. Para cada uno de los grupos seleccionados determinamos qué variables sólo participan con uno sólo de sus estados (1 ó 0) y los seleccionamos con la misma representación como lo hacemos para los mintérminos. y como los mintérminos son empleados para la minimización por la forma canónima de suma de productos. la cual es la misma que nos dió en el punto 3 F ( A. como la representación inicial de las variables en el mapa de Karnaugh era con mintérminos. B. ejemplo e. estos dos resultados serán nuestra respuesta.d. C ) = C + A B ___ .

tenemos que conocer las posibles combinaciones de esas tres entradas. las cuales son: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Como notarán. si son cuatro entradas contaríamos del 0000 al 1111 en binario. y como las entradas serán unos o ceros se acostumbran hacer las posibles combinaciones de esta manera. Si cada sistema representa una entrada del sistema F(A. C). estas entradas son las combinaciones que nos representaría contar en binario desde el cero hasta el siete decimal. . Solución: Sabemos que el sistema tiene tres entradas. es decir. diseñe el circuito "votador” que ha de utilizarse para obtener como resultado el valor mayoritario de las tres entradas. los sistemas de información deben estar triplicados para que el fallo de uno de ellos no produzca una catástrofe. B. la función de salida es “0” si hay más ceros que unos en las entradas y la función de salida es 1 si hay más unos que ceros en las entradas. Así que si son dos entradas contaríamos del 00 al 11 en binario. ésta se escogerá mediante mayoría de respuestas (votación). Ejercicio Práctico Con el siguiente ejemplo.Lección 5. En caso de que los tres sistemas de información no produzcan la misma salida. por lo tanto. trataremos de llevar a la realidad la aplicación de las herramientas anteriormente expuestas: Las normas de seguridad de los aviones modernos exigen que para señales de vital importancia para la seguridad y estabilidad del Avión.

o álgebra de Boole. de acuerdo a la información que se nos suministra debemos indicar cómo serían las salidas si en las entradas la mayoría son ceros o unos. la tabla lógica sería de la siguiente manera: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C F(A. lo importante es tener una expresión lógica que nos represente un circuito lógico combinacional que actúe tal cual está en la tabla lógica. así que la función de este circuito “votador” es: f = AB + BC + AC Y el circuito correspondiente sería. no importa si aplicamos mapas de Karnaugh.B. para ello necesitaremos un mapa de Karnaugh de tres variables: . por lo tanto.C) 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 De aquí en adelante. Comprobemos por medio del método de mapas de Karnaugh si efectivamente éste es el resultado.Ahora.

debemos revisar en ese grupo cuál es la variable que cambia de estado. debemos revisar en ese grupo cuál es la variable que cambia de estado. . • Respecto al grupo verde.De acuerdo a la tabla lógica resultante. en este caso es la letra B. en este caso es la letra A. tendríamos los unos ubicados en el mapa de la siguiente manera: Recordemos que cuando trabajamos con mintérminos. en este caso el máximo número de unos por grupo que podemos armas es de dos: Ahora. osea que por este grupo las variables que quedan son BC. las variables con salidas en uno cuyas entradas son cero las ubicamos en el mapa negados y con entradas en uno las colocamos en el mapa normalmente. osea que por este grupo las variables que quedan son AB. osea que por este grupo las variables que quedan son AC. debemos revisar en ese grupo cuál es la variable que cambia de estado. Ahora debemos seleccionar la forma de agrupar los unos de tal forma que realicemos grupos con número de unos con cantidades potencias de dos. • Respecto al grupo azul. en este caso es la letra A. agrupamos las tres respuestas como F = AC + BC + AB Lo cual coincide con la respuesta planteada anteriormente. Como estamos con mintérminos. debemos analizar cada uno de los grupos: • Respecto al grupo rojo.

( XY + ZW ) ⋅ V = 4). XY + CD⋅ Z = b). el mapa de Karnaugh y la minimización de las expresiones de las siguientes tablas: .EJERCICIOS: 1). Obtenga las tablas de verdad de las siguientes expresiones: F = X ⋅Y + X ⋅ Y ⋅ Z F = X ⋅Y + X ⋅Y ___ ___ ___ ___ ___________________ ________________ ____________ F = X ⋅ Y + X ⋅Y F = XY Z + X Y Z + X YZ __ __ __ ___ ___ 5) Obtenga las suma y el producto canónico. Investigue en qué consiste la convención de lógica positiva y lógica negativa? 2) Realice las siguientes operaciones 1+ 0 = X +0= Z ⋅Z = 1+1 = Y +1 = 1⋅ 0 = X ⋅0 = 1 ⋅1 = X +X = X + X ⋅Y = X+X = X + XY + Y = ___ X⋅X = ___ Y (Y + X ) = 3). Aplique el Teorema de Morgan: a).

F = ( X + Y ) ⋅ (W + X + Y ) ⋅ (W + X + Z ) d. F = WX Z + W X YZ + XZ c.6) realice la minimización de las siguientes expresiones lógicas empleando los dos métodos de minimización y el mapa de Karnaugh: a. F = A C D + B CD + A C D + BCD b. Investigue cómo se trabajan los mapas de Karnaugh para cinco o más variables. AB C D + A B C + ABD + A CD + BC D ___ ___ ___ ___ __ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ __ ___ 7). 8). Determine la expresión mínima de los siguientes mapas de Karnaugh .

por lo cual es necesario convertir la numeración binaria a la decimal o viceversa. no son capaces de manipular largas cadenas de “1” y “0”. BCD (8421). . Octal. pero las personas en la mayoría de los casos. hexadecimal y el decimal. Como sabemos hasta ahora los circuitos digitales trabajan con “1” y “0”. Los códigos más usados son los binarios.CAPÍTULO 3 Principales Circuitos Integrados Una de las principales aplicaciones de las compuertas lógicas en los circuitos digitales es como convertidores de códigos.

c y d. 3. g. debemos iluminar los segmentos a. 5. Definición Multiplexores Codificador BCD a Decimal: Es aquel circuito lógico combinacional con cuatro entradas (las cuales se restringen a los códigos BCD) y diez salidas. las cuales representan cada uno de los diez dígitos decimales (0. 15). de tal manera que cuando por ejemplo deseamos representar el número 2. 2. 1. 6. b. los cuales son segmentos formados por diodos emisores de luz. 16 Asignación de letras a cada Segmento de un Display Lección 1. 4. 8 y 9). . Figura No. el cual codifica los dígitos 0 a 9 por sus representaciones binarias sin signo de 4 bits. Decodificadores BCD a Decimal y BCD a siete segmentos El código BCD (de las siglas en inglés Binary Coded Decimal) se conoce como Decimal Codificado Binario. 15 Display Siete Segmentos Figura No.Lección 1. del 00002 al 10012 . Los términos del 1010 2 al 11112 no son empleados. El Código Siete Segmentos hace relación a los Display de Siete Segmentos. cada uno de los segmentos que forman parte de un display tiene un carácter asociado (ver figura No. 7. 16). que son empleados para representar visualmente los números decimales y hexadecimales (Ver figura No.

las cuales serán conectadas a un display siete segmentos para representar los correspondientes dígitos del código BCD de la entrada. de dónde sólo analizaremos los correspondientes a las salidas en “1”. se entiende que el sistema tiene diez salidas. B. C . C y D. para analizar el esquema lógico a emplear. cada posición binaria de la entrada ha sido asignada con las letras A. pero con cada una de las salidas correspondientes a cada uno de los dígitos decimales. Ahora. se puede pensar en la tabla como el resultado de condensar diez tablas con las mismas entradas. y cada una de ellas se activará (estado en “1”) solamente cuando su respectivo código binario esté en la entrada del sistema. las cuales corresponden a cada uno de los dígitos decimales según el correspondiente código binario en la entrada. A) = D C B A ___ ___ ___ ___ ___ ___ ___ (Para el dígito cero) (Para el dígito uno) . Circuito Básico de Funcionamiento Codificador BCD a Decimal: La tabla de verdad relacionada con el comportamiento del codificador BCD a Decimal es la siguiente: En la tabla se puede apreciar que el código BCD es el valor correspondiente a cada dígito en decimal con su valor en binario. C . de tal forma que tendremos las siguientes diez expresiones lógicas: F ( D. B. siendo esta asignación en orden ascendente a su correspondiente valor numérico. por lo cual.Codificador BCD a Siete Segmentos: Es aquel circuito lógico combinacional con cuatro entradas (las cuales se restringen a los códigos BCD) y siete salidas. Podemos analizar cada una de las tablas por medio de mintérminos. B. A) = D C B A F ( D. Por lo tanto.

C . C . C . C . B. A) = D C B A ___ ___ ___ ___ ___ ___ ___ F ( D. B. C . A) = D C B A F ( D. A) = D C B A ___ ___ ___ ___ ___ ___ (Para el dígito dos) (Para el dígito tres) (Para el dígito cuatro) (Para el dígito cinco) (Para el dígito seis) (Para el dígito siete) (Para el dígito ocho) (Para el dígito nueve) F ( D. C . B. Codificador BCD a Siete Segmentos: La tabla de verdad relacionada con un codificador BCD a Siete Segmentos es la siguiente. A) = D C B A F ( D. B. A) = D C B A F ( D.F ( D. B. B. C . B. B. 17. C . A) = D C B A F ( D. teniendo en cuenta que el segmento se iluminará cuando el estado de salida correspondiente sea “1”: . A) = D C B A F ( D. A) = D C B A ___ ___ ___ ___ ___ De donde podemos obtener el diagrama lógico de la Figura No.

junto a la tabla de verdad y a la distribución de pines (cortesía de On semiconductor. encuentre la mínima expresión lógica para cada una de las salidas (segmentos) y realice el circuito lógico correspondiente al conversor BCD – Siete Segmentos. usted podrá notar que para los valores binarios del 10102 al 11112 el sistema tiene unas salidas activadas (segmentos). www. Como ejercicio práctico. esas salidas a qué información en conjunto corresponde?. 17 Circuito lógico para el conversor BCD a Decimal En la tabla anterior. 18 podemos observar el circuito lógico empleado en el CI MC14511B.Figura No. conversor BCD – Siete Segmentos. En la figura No.onsemi.com) .

Figura No. 18 Circuito lógico y Tabla de Verdad del CI MC14511B Conversor BCD – Siete Segmentos .

6.9) = 1 + 3 + 5 + 7 + 9 Y cuyo circuito lógico es el indicado en la Figura No. el cual tiene la siguiente tabla de relación que a la vez puede ser la tabla de verdad: De donde podemos deducir las siguientes expresiones lógicas (los números presentes en las expresiones son las variables de las entradas): 2 4 2 1 F (0. los códigos para acciones.6.Lección 1.7.5. AMI. condiciones y estados (empleado en la comunicación del teclado con el PC). ya tenemos el caso del código BCD.9) = 5 + 6 + 7 + 8 + 9 F (0.2 codificadores Los códigos son cadenas de n bits en las cuales la manera como se combinen sus estados pueden llegar a representar números o adquirir otros significados.8. . códigos para la transmisión y el almacenamiento de Datos en Serie (NRZI.4.8.6.3. en el cual.2.7.8. 19.4.7.5.4. por medio de 4 bits se representan los dígitos decimales. códigos Bidimensionales.) Circuito Básico de Funcionamiento Otra forma de expresar dígitos decimales en binario es por medio del código 2421.1.3. BPRZ.7.2. el código de Caracteres.1.5. los códigos para detectar y corregir errores.4. Definición Un codificador es aquel circuito lógico que hace la conversión de un código a otro código.9) = 4 + 6 + 7 + 8 + 9 F (0.3.6.8. algunos de estos códigos son el GRAY.3.1.5.1.2. etc.9) = 2 + 3 + 5 + 8 + 9 F (0.2.

el funcionario decide a cual de las filas empieza a atender. en donde además se requiere indicarle al circuito cuál de las entradas se desea obtener en la salida.3 Multiplexores En muchas situaciones de la vida nos hemos visto obligados a hacer fila y esperar nuestro turno. al que muchos dispositivos desean acceder pero deben esperar su turno para hacerlo. a una sola salida. por lo tanto se requiere dos entradas adicionales para direccionar los datos deseados. a continuación podemos observar la tabla de verdad de este circuito. y en esos casos. Una situación similar se presenta en los dispositivos electrónicos. esta “X” indica que el estado de la variable que la tenga no interesa para el análisis en la respectiva salida: . son varias las filas que esperan a que un solo funcionario sea el que les atienda. es el encargado de encauzar datos de una fuente entre n fuentes posibles. en algunos de esos casos. Definición Un multiplexor es un conmutador digital. Circuito Básico de Funcionamiento Realicemos un multiplexor de 4 entradas y una salida. por ejemplo un bus de transmisión de Datos. 19 circuito Lógico del conversor Decimal – 2421 Lección 1.Figura No. Por primera vez incorporamos en la tabla una “X” dentro de los estados lógicos.

D0. A1. Por lo cual se puede deducir la siguiente expresión lógica: F ( D3. D1. D2 y D3 haciendo referencia al término Datos. Las direcciones se han designado como A1 y A0 haciendo alusión al término de dirección en inglés (Address). 20 Circuito lógico de un multiplexor de cuatro entradas y una salida ___ ___ ___ ___ . hemos empleado la designación de las entradas como D0. Figura No. y la Salida se ha denominado O en relación al término de salida en inglés (out). 20. D1.En la tabla anterior. A0) = D0 A0 A1+ D1 A0 A1+ D 2 A0 A1+ D3 A0 A1 De dónde el circuito lógico correspondiente se puede analizar en la Figura No. D2.

21 Compuerta representativa. cuando sus entradas son diferentes. 22 Circuito de Paridad impar de cuatro entradas . Definición La operación XOR algunas veces se reconoce por el símbolo “ ⊕ ” y se define como X ⊕Y = X Y + X Y ___ ___ Una de las mayores aplicaciones de la operación XOR es la conformar un circuito de Paridad. 21 se puede observar la compuerta representativa de la operación XOR y el circuito lógico.Lección 1. Tabla de verdad y circuito lógico de la operación XOR En la figura No.4 compuertas OR Exclusivas y Circuitos de Paridad Una compuerta OR exclusiva (XOR) es aquella compuerta de dos entradas cuya salida es “1” sólo cuando una sola de sus entradas es “1”. Circuito Básico de Funcionamiento En la Figura No. en donde existen sólo dos “1”. por lo cual. Figura No. Un circuito de Paridad se puede definir como aquel circuito lógico que indica si una secuencia o conjunto de bits tiene un número par o impar de “1”. 22 se puede observar el circuito lógico de un Circuito de Paridad impar para cuatro entradas Figura No. existen circuitos lógicos de paridad par y circuitos lógicos de paridad impar. es decir. Un ejemplo de paridad puede tomarse del número 1010 2 . por lo tanto el número tiene paridad par.

ya sea para comparar la clave de acceso. la salida de esta operación es un “0” y en caso contrario es “1”. Circuito Básico de Funcionamiento Ya conocemos el funcionamiento de la operación XOR. que en algunos casos representan números binarios. caracteres. etc. en donde un “1” nos indica que son diferentes y un “0” nos indica que son iguales. y hemos notado que cuando las entradas son iguales. Ahora si empleamos una compuerta XOR para la comparación de cada uno de los bits de entrada de las palabras que se desean comparar. Un byte es un conjunto de 8 bits. En la figura No. 23 Circuito de Paridad Impar de cuatro entradas . obtendremos un comparador básico. Algo que es importante definir es el concepto de Byte. etc. ya sea para poder acceder a una dirección. Figura No. Y al conjunto de uno o más Bytes se les conoce como palabra binaria. Definición Un Comparador es un circuito lógico que compara dos palabras binarias indicando si son iguales o no. 23 podemos observar el circuito lógico de un comparador de dos palabras de 4 bits cada una. códigos. en donde se adquiere la idea que esta palabra ya no representa exclusivamente un número binario. y las salidas de cada una de esas comparaciones se lleva a una compuerta OR.Lección 1.5 comparadores Es muy común que en un computador o en sistemas de Interconexión de dispositivos o periféricos se requiera la comparación de dos palabras binarias.

la tabla de verdad requiere de otra entrada. claramente se nota la operación XOR. Para el caso en el cual. realizar las operaciones en binario y después volver a codificar los números a decimales para su visualización. comenzaremos con un circuito que permita sumar dos bits. así que tenemos que codificar la numeración decimal a binaria. y para la columna de acarreo la operación AND. según lo anterior. podemos plantear la siguiente tabla de verdad Para la columna del resultado. pero nosotros desarrollamos nuestras operaciones en el sistema decimal. Una de las operaciones más utilizadas en los circuitos electrónicos es la suma y es la base para el desarrollo de algunas otras operaciones. por lo tanto. el resultado de la suma de estos dos bits debe darnos el resultado correspondiente a la posición original de los dos bits. la tabla de verdad se modifica de la siguiente manera: .1 Definición Sumadores Un sumador es el circuito encargado de realizar la operación de la suma aritmética a dos números binarios. la cual está relacionada con el acarreo proveniente de la suma anterior. Lección 2. y un resultado relacionado con el acarreo necesario para la suma de los bits de la siguiente posición. se realice la suma de los bits de la posición uno en adelante. por lo tanto.2 Circuito Básico de Funcionamiento De acuerdo al procedimiento visto en el primer capítulo para sumar números binarios. Lección 2. Sumadores Una de las mayores aplicaciones de los circuitos electrónicos es el desarrollo de operaciones matemáticas.Lección 2.

Para la salida del Resultado, el circuito a emplear lo podemos entender como un circuito de paridad impar para tres bits; para la salida de acarreo podemos tomarlo como el circuito lógico de la siguiente expresión AcarreoSalida ( A, B0, B1) = A( B0 + B1) + B1.B0 Donde las variables A, B0 y B1 son el Acarreo de Entrada, el bit0 y el bit1 respectivamente. En la figura No. 24 podemos observar los circuitos para sumar los bits de la posición cero y para sumar los bits de la posición uno en adelante. Figura No. 24. Circuitos sumadores: a). Circuito sumador de dos bits b). circuito sumador de dos bits con acarreo de entrada

Lección 2.3 Restadores Definición El circuito de Resta es aquel que realiza la operación de sustraer entre dos valores binarios. Circuito Básico de Funcionamiento Para analizar el circuito de resta, tendremos en cuenta como entradas el bit B0 (Minuendo), el bit B1 (Sustraendo) y el bit P (Indicando el Préstamo entrante de anteriores restas); las salidas del circuito son el bit D (la diferencia resultante) y el bit Psal (Indica el Préstamo saliente para una próxima resta); De estas entradas y salidas, las expresiones lógicas que las relaciona son: D = B0 ⊕ B1 ⊕ P Psal = B0 B1 + B0 P + B1.P En la figura No. 25 podemos observar el circuito lógico correspondiente a las expresiones lógicas del circuito restador. Figura No. 25 Circuito Lógico de un Restador Completo
___ ___

Lección 2.4 ALU El término ALU viene de las siglas de la frase en inglés “Arithmetic and Logical Unit” que significa unidad Aritmética y lógica; esta unidad hace parte de Microprocesares y Microcontroladores, y es la encargada de realizar las operaciones matemáticas. Definición La unidad Aritmética y Lógica (ALU) es un circuito combinacional especializado en el desarrollo de operaciones aritméticas y lógicas diferentes a dos valores binarios dados; la selección del tipo de operación requerido se realiza por medio de las entradas destinadas para este fin. Por lo tanto, este tipo de circuito tiene las entradas para los dos valores binarios y entradas adicionales para especificar el tipo de operación a realizar. Circuito Básico de Funcionamiento Uno de los circuitos integrados con funciones de ALU es el 74LS181, el cual es una ALU de 4 bits que puede desarrollar 16 posibles operaciones sobre dos números de 4 bits. En la figura No. 26 se puede observar la distribución de pines, el circuito lógico y la tabla de verdad de este CI.

Lección 3. De tal manera que la operación de la multiplicación al hacerla en el papel sería: . Lección 2. Multiplicadores Combinacionales Cuando estuvimos manejando la multiplicación binaria.1 Circuito Básico de Funcionamiento Realicemos el circuito que realiza la multiplicación de dos palabras de 2 bits. y como resultado de esta multiplicación tendremos una palabra de 4 bits. es posible expresar la acción de la multiplicación por medio de una tabla de verdad. designada por la letra c ( c3c2c1c0 ). observamos que en realidad es un proceso de corrimientos y sumas que emulan la forma como nosotros multiplicamos con papel y lápiz en el sistema decimal. Pero estos corrimientos y sumas no indican un comportamiento secuencial o que dependa del tiempo. Definición Un multiplicador combinacional es un circuito lógico con una tabla de verdad que expresa el producto de dos palabras de entrada de n bits como una función combinacional. en donde la primera palabra será designada por la letra a ( a1a0 ) y la segunda con la letra b ( b1b0 ).

Figura No. 26 CI 74LS181 .

27 circuito lógico de un Multiplicador Combinacional de dos palabras de 2 bits Ejercicios: 1). Investigue sobre el CI 74LS49 y el CI 74LS47. descargue del Internet las hoja de Datos de estos componentes y compárelos (un posible sitio es www. Investigue sobre el Circuito Integrado 74LS139. qué hace y cómo funciona? . 2). Figura No. analice el correspondiente diagrama lógico. 27 el circuito correspondiente a un multiplicador combinaciones de dos palabras de 2 bits.ti. Diseñe un decodificador de 3 a 8 para decodificar un código Gray.De donde podemos obtener las siguientes expresiones lógicas: c0 = a0b0 c1 = a0b1 ⊕ a1b1 c 2 = a1b1 ⊕ (( a 0 b1 )( a1b0 )) c3 = (a1b1 )(a0b1 )(a1b0 ) Por lo tanto. podemos observar en la figura No. 3).com) 4) Investigue sobre el CI 74LS148.

las salidas se conocen como Salidas de Datos y a cada una de ellas se les llama D0 . Aplicaciones Como se había comentado antes. DISPOSITIVOS LOGICOS PROGRAMABLES Un Dispositivo Lógico Programable (PLD del término Programmable Logic Device) es un circuito integrado que le permite al diseñador adecuarlo según las necesidades específicas para las que se requiere. 28 podemos observar la estructura básica de una ROM de n entradas y b salidas ( 2 n xb ). Definición Una memoria ROM es un circuito combinacional con n entradas y b salidas. por lo tanto. D1 . Lección 4. pues dependiendo de su contenido.1 Memoria ROM El término ROM viene de la sigla de Read-Only Memory que significa memoria de sólo lectura. en la figura No. una memoria ROM sólo permite leer su contenido. El diseño del PLD permite a su usuario final programarlo para realizar la función requerida en el diseño final en donde se empleará. esto nos permite deducir que la memoria ROM es un circuito combinacional que almacena por medio de una función lógica cierta información. pues su contenido se preserva aunque no esté conectada la energía eléctrica. en donde las entradas se conocen como entradas de Dirección y tradicionalmente por el término en inglés Address cada una de ellas se les llama A0 . Por lo tanto. …. Circuito Básico de Funcionamiento Para la memoria ROM podemos hablar de una estructura básica y no de su circuito básico. con un solo CI se puede reemplazar el número necesario de compuertas discretas para construir el circuito lógico que represente esa tabla de verdad. Otro punto importante con este tipo de memorias es que su contenido es definido desde su fabricación o cuando se programa pues el usuario final no tiene posibilidad de variar su contenido. A1 . Es de aclarar que este tipo de memoria es una memoria no volátil. este se puede representar como un circuito lógico o por medio de una función lógica. Db −1 . …. y este contenido está relacionado con la tabla de verdad que relacione cada una de sus posiciones de memoria y su valor respectivo. An −1 . se puede construir una memoria ROM para almacenar cualquier tabla de verdad que satisfaga la cantidad de entradas y salidas requeridas para la misma. una memoria ROM puede almacenar la relación establecida en una tabla de verdad y por lo tanto.Lección 4 . .

.Figura No. 29 configuración de la memoria ROM 256 x 8 Para realizar una multiplicación binaria de 4 x 4 Lección 4. algunos dispositivos se pueden programar después de la fabricación del mismo ó permite varias programaciones. lo que nos representaría usar una memoria ROM de 8 entradas (4 entradas para el multiplicando y 4 para el multiplicador) y 8 salidas (el producto de dos números binarios de 4 bits nos da un número de máximo 8 bits). Figura No. un ejemplo de estos dispositivos son los PLD Combinacionales. este ejemplo se puede ver en la figura No.2 PLD Combinacional A diferencia de la memoria ROM. Otro nombre con el cual se conoce este tipo de dispositivo es PLA (de las siglas de Programmable Logic Array) . 29. Definición Un PLD combinacional es cualquier dispositivo lógico cuya función es especificada por el usuario final después de ser fabricado el dispositivo. la tabla lógica a almacenar en la memoria ROM sería la correspondiente a la multiplicación de todos los posibles términos de los dos números binarios de 4 bits. también conocido como un arreglo lógico programable. 28 Estructura básica de una ROM de 2 n xb Un ejemplo muy claro es construir con una memoria ROM de 256 x 8 un multiplicador binario de 4 bits x 4 bits.

como se había planteado. podemos obtener una memoria ROM implementada con este tipo de dispositivos. Figura No. si esta tabla de verdad la representamos con varias expresiones de suma de mintérminos y estas expresiones se programan en un PLA. con mayor complejidad. los PLAs o PLDs se emplean como memorias ROM.Circuito Básico de Funcionamiento Un ejemplo de un Arreglo Lógico Programable puede ser como el de la figura No. ahora. . 30 Ejemplo de dispositivo PLA tal como sale de fábrica Un ejemplo real de un PLA es el componente de Signetics 82S100 el cual tiene 16 entradas. de tal manera que quedan funcionando sólo los que estén relacionados con los mintérminos seleccionados. en donde se tiene un dispositivo AND-OR de dos niveles combinacional que puede programarse de tal forma que se pueda aplicar una expresión lógica de suma de mintérminos. una memoria ROM se puede representar con una tabla de verdad en donde las entradas identifican la dirección de memoria y las salidas indicarían el valor almacenado en esa posición de memoria. 48 compuertas AND y ochos salidas. empleándose un menor número de CI y por lo tanto. el procedimiento de la programación consiste en dañar los fusibles que se colocan antes de la compuerta AND. un menor espacio empleado. Con este tipo de CI es fácil realizar la implementación de grandes circuitos lógicos. 30. De donde podemos concluir que tiene 1536 fusibles para el arreglo AND y 384 fusibles para el arreglo OR Aplicaciones En algunos casos.

Una memoria RAM no es conocida como un dispositivo lógico programable. Definición Una memoria RAM es un dispositivo semiconductor que puede ser leído o escrito por una unidad central de procesamiento u otros dispositivos. Circuito Básico de Funcionamiento Un circuito integrado de memoria RAM es el CI 74F189. se tiene en cuenta el término volátil. Investigación: 1). en la figura No. el cual es una memoria RAM de 64 bits de lectura/escritura. pero es igual de estructurado. y es empleado para el almacenamiento de datos.Lección 4. 31 se observa el símbolo lógico con el que se representa la memoria 74F189. Cuando se habla de Memorias. . 31 Símbolo lógico del CI 74F189 Aplicaciones La memoria RAM es una memoria volátil ampliamente usada en computadores para mantener información de datos y programas temporalmente. Investigue qué tipos de ROM comerciales existen. lo cual significa Memoria de Acceso Aleatorio. Figura No.3 Memoria RAM El término RAM viene de las siglas en inglés de Random Access Memory. cuando se dice que una memoria es volátil se entiende que cuando el dispositivo se apaga (se deja de suministrarle energía) toda la información contenida en ella se pierde.

Qué otro tipo de entradas requieren las memorias ROM para su funcionamiento? 3). Qué tipos de memoria RAM existen? .2).

virtual.unal. TOKHEIM. Miller Michael (2001) Prácticas de Electrónica. (1992). "Electrónica Digital I". LU. Alfaomega Universidad Nacional de Colombia (2003). Malvino Albert. McGraw-Hill. USA: Prentice-Hall Hispanoamericana. Inc Publication. Schaum's outlines of theory and problems of digital principles. Tercera Edición.co/cursos/ingenieria/2000477/index. Roger L. Mi (2004). John F. Zbar. Diseño Digital: Principios y Prácticas. Arithmetic and logic in computer systems. John Wiley and Sons. En: http://www.BIBLIOGRAFIA WAKERLY .html . Paul. séptima edición. (1994).edu.

SEGUNDA UNIDAD DIDÁCTICA LENGUAJE VHDL .

Funciones. En el diseño de sistemas electrónicos. y un estándar posterior. este lenguaje contiene estructuras para definir y simular eventos. el tipo de tecnología a emplear.Capítulo No. por lo cual. también se analiza la estructura del sistema. no solamente el comportamiento del sistema se tiene en cuenta. Procedimientos. 1 Introducción al lenguaje VHDL Lección 1. Instrucciones secuenciales. la forma como se distribuyen las funciones. Estructuras de control y archivos de entrada y salida. pues incluye tipos de Datos. Este lenguaje es principalmente utilizado en el campo de los dispositivos lógicos programables y en Circuitos Integrados de aplicación Específica (ASIC. es un lenguaje para la descripción de sistemas electrónicos digitales y de esta descripción el sistema o circuito real puede ser implementado El lenguaje VHDL se soporta en el lenguaje de descripción de Hardware VHSIC. además. Esta versión inicial fue iniciativa del Departamento de Defensa de los Estados Unidos en la década del 80. el IEEE 1164. Todos los circuitos en un sistema electrónico siempre están funcionando. del término en inglés Application Specific Integrated Circuits). Paquetes. y esto lo hace portátil y reutilizable. en un sistema de software se tiene la noción de flujo del programa. estados de máquina. la IEEE (Institute of Electrical and Electronics Engineers) tiene el Estándar de este lenguaje como el IEEE 1076. A la vez. En un sistema electrónico. a diferencia de los sistemas de software que por medio de múltiples recopilaciones del diseño se puede § § . la posibilidad de probar el sistema en su aplicación final es muy limitada. En cambio. El lenguaje VHDL es un estándar. Pero existen diferencias entre el diseño de un paquete de software y el diseño de un sistema electrónico las cuales son: § Un sistema electrónico es un sistema en paralelo. Un paquete de software casi siempre está enfocado al diseño del comportamiento del sistema. en donde la abreviación VHSIC viene del término inglés Very High Speed Integrated Circuits (Circuitos integrados de muy alta velocidad). INTRODUCCION AL LENGUAJE VHDL El lenguaje VHDL es un lenguaje descriptor de Hardware o. la sincronización del sistema. el lenguaje es independiente de la tecnología o el fabricante que lo emplee en sus dispositivos. sincronización y concurrencia. El lenguaje VHDL es un lenguaje de programación como tal. etc. estructuras y jerarquías de diseño de hardware. facilita la documentación de instrucciones según la arquitectura. en donde secuencias de instrucciones son ejecutadas por lazos o por estructuras condicionales. en otras palabras. Actualmente.

es muy importante tener las herramientas de soporte que permitan en el diseño una detallada simulación y evaluación del mismo. en el cual.1 DESCRIPCIÓN DE LA ESTRUCTURA Un sistema electrónico se representa como un módulo con entradas y salidas. Lección 1. en términos del lenguaje VHDL todo el sistema es conocido como una entidad (ENTITY = es el símbolo o nombre que representará al sistema) y las entradas y salidas se conocen como puertos (ports) . Y) y una salida (F). En la figura No.optimizar el producto final. 32 se observa la representación estructural de un sistema digital de dos entradas (X. sólo existe una oportunidad de enviarlo a la fábrica de circuitos integrados y obtener una versión del mismo en una pastilla. en el caso del diseño de un circuito integrado complejo. en donde el comportamiento de las salidas está representado por una expresión lógica dependiente del estado de las entradas. Por ejemplo. que garanticen que el diseño enviado a fabricar es el óptimo.

Como ejemplo. esta expresión lógica nos indica la manera como se compone el sistema en pequeñas partes o sub-módulos. 33 Ejemplo de una representación estructural de un sistema digital por medio de instancias . y los puertos de estas instancias son interconectados por señales (signals). las cuales se pueden usar en diferentes diseños. podemos observar en la figura No. procedimientos (procedures) o componentes (components). 32. 33 las instancias que conformarían la representación estructural de la figura No. B y C pueden estar compuestas a su vez por otro tipo de instancias. Téngase en cuenta que cada una de las instancias A. El código empleado para una librería es usualmente escrito en forma de funciones (functions). Figura No. y es ubicado en la sección de arquitectura (architecture). Algunas de estas descripciones del comportamiento lógico están ubicadas en la sección de la librería (library).Figura No. la cual es una colección de las partes de código más comúnmente usadas. Esta descripción del comportamiento lógico del sistema es el código apropiado en lenguaje VHDL que lo describe. Lección 1. 32 Representación estructural de un sistema digital De dos entradas y una salida Como la salida del sistema está representada por una expresión lógica.2 DESCRIPCIÓN DEL COMPORTAMIENTO La expresión lógica que permite determinar el comportamiento de un sistema digital es conocida como descripción del comportamiento o descripción funcional (functional or behavioural description). y todo lo anterior es ubicado dentro de paquetes. Cada uno de estos sub-módulos son conocidos como instancias o casos (instance).

la descripción del comportamiento. Realizar una simulación del comportamiento del sistema deseado. Las secciones básicas de un código VHDL se pueden observar en la figura No.Lección 1. En la primera línea se indica el nombre de la librería a emplear. Para declarar el uso de una librería en el código VHDL es necesario ubicar al principio las siguientes dos líneas de comando: LYBRARY nombre_de_la_librería. especifica recursos como tipos de datos. 34 en donde se puede observar la sección de librería. Implementar el diseño realizado en el tipo de tecnología seleccionada. . los pasos anteriores se realizan en paralelo. entidad y arquitectura. work de la librería work. Casi siempre los paquetes que más se emplean son: § § § ieee. USE nombre_de_la_librería. etc.partes_del_paquete.3 DESCRIPCIÓN DEL PROCESO DE DISEÑO Es costumbre seguir los siguientes pasos para el diseño de un sistema electrónico: § § § § Realizar una descripción del comportamiento del sistema a diseñar.nombre_del_paquete. la descripción estructural y la simulación se realizan a la par. Realizar una descripción estructural del sistema en diseño. es decir. textos de entrada y salida. es donde se almacenan los diseños realizados. lo que nos permite obtener al final un listado de interconexiones que al ser implementada se obtiene un CI con las características deseadas.std_logic_1164 el cual pertenece a la librería ieee y especifica un sistema lógico multinivel. en la segunda línea se especifica cual de los paquetes de la librería se manejará y en detalle cada una de las partes del mismo. entro d de la librería std. Para el caso de diseñar sistemas electrónicos con el lenguaje VHDL.

. una salida (OUT). una entrada-salida (INOUT) o una interfaz (BUFFER). es decir. y dependiendo de su función en el sistema. Como se había comentado. . . . C : OUT BIT). ). . etc. Tomemos como ejemplo el código que describe una compuerta OR. . 34 Secciones básicas de un código VHDL Para la sección de la entidad es necesario el siguiente código básico: ENTITY nombre_de_la_entidad IS PORT ( Nombre_del_puerto : modo_de_funcionamiento tipo_de_señal. si será un bit (BIT). END nombre_de_la_entidad. END compuerta_OR . Nombre_del_puerto : modo_de_funcionamiento tipo_de_señal. se tiene la posibilidad de indicar qué tipo de señal manejará. una entidad es un sistema lógico que contiene entradas y salidas denominadas puertos. cada uno de estos puertos tienen un nombre asignado por el programador. Para cada puerto. cada uno de los puertos tiene un modo de funcionamiento (mode) el cual indica si es una entrada (IN). un estado lógico (STD_LOGIC). Cuando hablamos de interfaz. un entero (INTEGER). cuyas entradas se llaman A y B. nos referimos a que este puerto será una salida que tendrá una influencia dentro del comportamiento del mismo sistema (realimentación). En cuanto al nombre de la entidad. B : IN BIT.Figura No. se puede cualquiera siempre y cuando no sea una de las palabras reservadas por el código VHDL (consultar el estándar 1164 de la IEEE). y su salida C: ENTITY compuerta_OR IS PORT(A.

la cual es opcional.Para la sección de la arquitectura se tiene en cuenta el siguiente código: ARCHITECTURE nombre_de_la_arquitectura OF nombre_de_la_entidad IS (declaraciones) BEGIN (código) END nombre_de_la_arquitectura. en cuyo caso el código correspondiente en la sección de arquitectura sería: ARCHITECTURE comp_OR OF compuerta_OR IS BEGIN C <= A OR B. En la parte del código se incorpora la descripción del comportamiento lógico del sistema. por lo cual. Estos identificadores se deben establecer de la siguiente manera: Identifier ::= letras ( letras_o_digitos) En los identificadores definidos por el programador no existen diferencias entre las letra minúsculas y mayúsculas. END comp_OR. En el mismo caso que del nombre de la entidad.4 DESCRIPCIÓN DEL LEXICO A EMPLEAR En el lenguaje VHDL se tienen identificados los siguientes ítems: Comentarios Los comentarios en el lenguaje VHDL comienzan con dos guiones seguidos (--) y representa como comentario toda la escritura que sigue a los guiones hasta el final del renglón correspondiente. señales. etc). En la parte de las declaraciones. identificadores Los identificadores son las palabras reservadas por el lenguaje y los nombres definidos por el programador (variables. se realiza una declaración de las señales y constantes presentes en el sistema. Continuemos con el ejemplo de la compuerta OR. Los comentarios los puede emplear el programador como instrumento de explicación o aclaración con relación a alguna parte del programa desarrollado. . puede ser cualquier nombre de la arquitectura excepto las palabras reservadas por el lenguaje VHDL. rutinas. es lo mismo el término Numero a numero. Los identificadores no pueden contener caracteres especiales (ver más adelante) ni empezar por un número o subrayado. Lección 1.

al asignar el valor del carácter es necesario colocarlo entre comillas sencillas.756_45 852E6 12. se necesitará tener el código ASCII de algunos caracteres como el valor de una variable. Ejemplos: 2#1100_0100# 16#C4# 2#1. . entero_base ] # [ exponente ] Base ::= entero Entero_base ::= digito_extendido ( [underline ] digito_extendido ) Digito_extendido ::= digito letra En estos casos./ * ( ) . Para el caso del sistema hexadecimal. la base y el exponente se representan en el sistema decimal. por lo cual estos dígitos se pueden representar en minúscula o mayúscula. para tal caso. se representan de la siguiente manera: Literal_base ::= base # entero_base [ .0 0. ejemplos: ‘A’ ‘2’ ‘5’ ‘‘ ‘. Los números literales decimales se definen como: Literal_decimal ::= integer [ .1111_1111_111#E+11 4#301#E1 -. entero] [ exponente ] Entero ::= digit ( [ underline ] digito ) Exponente ::= E [ + ] entero E – entero Ejemplos: 0 1 0.FF#E2 -.el número entero 196 16#F.Números Los números literales se pueden expresar en cualquier base numérica. el exponente indica la potencia por la cual el número literal es multiplicado. : .5 123_456_789 2. & ‘ > < = ι # ) o por dos caracteres ( ** => := /= >= <= <> -. en caso contrario se está representando un número entero. las letras de A hasta la F son empleados para representar los dígitos del 10 al 15.’ Además.4E-9 --enteros literales --reales literales Cuando se representan números literales de bases numéricas diferentes a la decimal.) .el número real 4095. si el número tiene un punto se entiende que se está representando un número real. existen símbolos o caracteres especiales representados por un solo caracter ( + .0 Caracteres En algunos casos.

OTHERS => ‘0’). La manera de especificar este tipo de cadenas es: Cadena_de_bits ::= base_especifier “ bit_value “ Base_especifier ::= B O X Bit_value ::= dígito_extendido ( [ undeline ] digito_extendido ) Para especificar la base numérica se tiene en cuenta que la B indica binario. variables y constantes. --se asigna el valor ‘1’ a la señal A usando “<=” B := “0000”. -. Ellos son: o <= asigna un valor a una señal o := asigna un valor a una variable.el bit menos significativo es “1” y el --resto es “0” . Ejemplos: B”110110101” O”134” X”65” --el número equivalente sería B”001_011_100” --el número equivalente sería B”0110_0101” Operadores El lenguaje VHDL tiene pre-establecido las siguientes clases de operadores: § Operadores de Asignación: Son usados para asignar valores a las señales. -. Establece también valores iniciales. etc. cuyo contenido está relacionado con “1” y “0”. Ejemplos: “sistemas digitales básicos” “una cadena de caracteres “especial”” Cadena de Bits En el lenguaje VHDL se permite la manera de especificar arreglos de cadenas tipo bit. Las cadenas de caracteres se forman colocándolos entre comillas dobles. --se asigna el valor “0000” a la variable B usando “:=” C <= “10000000” --el bit menos significativo es “1” y el resto es “0” C <= ( 0 => ‘1’. SIGNAL C : STD_LOGIC_VECTOR (0 TO 7).entonces las siguientes asignaciones son correctas: A <= ‘1’. Ejemplos: SIGNAL A : STD_LOGIC. un nombre. o => asigna valores a elementos individuales de un vector.Cadena de caracteres Una cadena de caracteres es un conjunto de caracteres asignados a una variable. la O indica octal y la X indica hexadecimal. es decir. constante o genéricos. en la mayoría de los casos es una oración. VARIABLE B : STD_LOGIC_VECTOR (3 DOWNTO 0).

o STD_ULOGIC. los operadores lógicos son: o NOT o AND o NAND o OR o NOR o XOR o XNOR § Operadores aritméticos: Son usados para realizar operaciones aritméticas.resta * multiplicación / división ** exponenciación MOD módulo REM Residuo ABS valor absoluto ** Exponencial § Operadores de comparación o relacionales Son usados hacer comparaciones entre datos dando como respuesta un valor de tipo booleano (TRUE o FALSE). pero los objetos deben ser de tipo BIT. SIGNED. Los operadores son: § § § § § § § § § § + suma . ejemplo: Raiz<=x&y --Esta operación construye una matriz Raiz colocando a la matriz x en las primeras posiciones y a la matriz y en las últimas Operadores lógicos: Son usados para ejecutar operaciones lógicas.§ Operadores de Concatenación: Son usados para concatenar matrices de tal forma que la dimensión de la matriz resultante es la suma de las dimensiones de las matrices originales. los operadores de comparación son: o o o o o o = /= < > <= >= igual a no es igual a menor que mayor que menor o igual que mayor o igual que § Operadores de desplazamiento Son usados para realizar desplazamientos de datos. los datos deben ser de tipo INTEGER. UNSIGNED y REAL. Los operadores de desplazamiento son: § SLL desplazamiento lógico a la izquierda –las posiciones a la derecha del dato son reemplazadas por ‘0’ . STD_LOGIC.

--si cumple la condición se realiza la instrucción --en el caso que no se cumpla. es decir mantiene el valor del bit más significativo SRA desplazamiento aritmético a la derecha --conserva el signo del bit más significativo. Instrucción_alternativa_en_caso_de cumplirse_la_condición ::= WHEN selección => Secuencia_de_instrucciones Selección ::= choice Choice ::= Expresión_simple La selección de la expresión debe resultar o en un objeto tipo discreto o un arreglo unidimensional de caracteres. Las líneas de códigos para esta instrucción son: IF condición THEN Secuencia_de_instrucción ELSIF condición THEN Secuencias_de_instrucción ELSE Secuencia_de_instrucción END IF. La línea de código para esta instrucción es: CASE expresión_condicional IS Instrucción_alternativa_en_caso_de cumplirse_la_condición END CASE. se ejecuta una instrucción destinada por esa selección. . se realiza esta Instrucción CASE La instrucción CASE realiza o ejecuta un código si el valor de una expresión se encuentra dentro de las condiciones planteadas. por lo cual. todas las posibles selecciones deben ser distintas. ROL rotación a la izquierda ROR rotación a la derecha Instrucción IF La instrucción IF permite seleccionar la ejecución de un código en dependencia de una o más condiciones. Cuando la alternativa planteada es seleccionada de una lista de selecciones. Las líneas de código para esta instrucción son: Nombre_del_LOOP : WHILE condición LOOP Secuencia_de_instrucciones END LOOP nombre_del_loop . Instrucción LOOP La instrucción LOOP permite ejecutar una instrucción una cantidad de veces.§ § § § § SRL desplazamiento lógico a la derecha –las posiciones a la izquierda del dato son reemplazadas por ‘0’ SLA desplazamiento aritmético a la izquierda --conserva el signo.

en muchos casos se emplea para verificar la no violación de una condición y en tal caso reportarlo. Palabras reservadas Las palabras reservadas son aquellas que tienen un significado especial para el lenguaje VHDL. indica que en ciertos casos no se realiza nada. Instrucción ASSERTION Esta instrucción indica la afirmación de una expresión. Las palabras reservadas para el VHDL’87 son: ABS ALL ASSERT BODY CONFIGURATION ELSE EXIT GENERATE IN LIBRARY MOD NOR ON OUT PROCESS REM SEVERITY TO UNTILL WHEN ACCESS AND ATRIBUTE BUFFER CONSTANT ELSIF FILE GENERIC INOUT LINKAGE NAND NOT OPEN PACKAGE RANGE REPORT SIGNAL TRANSPORT USE WHILE AFTER ARCHITECTURE BEGIN CASE DISCONNECT END FOR GUARDED IS LOOP NEW NULL OR PORT RECORD RETURN SUBTYPE TYPE VARIABLE WITH ALIAS ARRAY BLOCK COMPONENT DOWNTO ENTITY FUNCTION IF LABEL MAP NEXT OF OTHERS PROCEDURE REGISTER SELECT THEN UNITS WAIT XOR Las palabras que complementan la lista anterior en el VHDL’93 son: GROUP POSTPONED ROR SRA IMPURE PURE SHARED SRL INERTIAL REJECT SLA UNAFFECTED LITERAL ROL SLL XNOR . elementos y órdenes que se utilizan para definir sentencias. Las líneas de código empleadas para esta instrucción son: ASSERT condición REPORT expresión SEVERITY expresión . Son instrucciones.Instrucción NULL La instrucción NULL no tiene ningún efecto sobre el programa. es muy empleada como instrucción en algunas selecciones de la instrucción CASE.

la jerarquía se basa en la conformación de los diferentes bloques y su interrelación. OUT.Lección 2. Como se observó en los ejemplos del capítulo anterior. es decir. es donde se establecen los diferentes bloques e interrelaciones de los mismos. y a la vez.) . determinar que elemento del sistema prevalece sobre los demás. Esta subdivisión de la entidad en pequeños bloques internos es lo que permite el diseño jerárquico. se establecen la funcionalidad de los puertos y sus modos de trabajo (IN. se ha descrito que cada una de esas entidades puede ser compuesta por múltiples sub-entidades. Estas múltiples sub-entidades son las que conforman bloques internos que permiten estructurar el comportamiento de la entidad por secciones o sectores. etc. DISEÑO JERARQUICO Como se ha descrito hasta el momento. un sistema electrónico se puede representar en el lenguaje VHDL por medio de lo que se ha denominado entidades. en las secciones del código relacionado con la entidad y la arquitectura del mismo. en este caso.

como parte de un lazo de control o decisión. Ejemplo: CONSTANT cambio : INTEGER := 4. Constante Es un objeto cuyo valor asignado no cambia. Existen cuatro tipos de objetos en el lenguaje VHDL: § § § § Constante (constant) Señal (signal) Variable (variable) Archivo (file) Cada uno de estos objetos debe declararse dentro del código VHDL ya sea como una declaración (en la sección de arquitectura). . En donde se declara una constante llamada cambio cuyo valor será el entero 4. la señal correspondiente se puede leer pero no se puede modificar. como el parámetro de un sub-programa. OBJETOS Los objetos en el lenguaje de programación hacen referencia a las entidades o elementos que contienen un valor determinado de ciertas propiedades (tipos – types) y que permiten el almacenamiento del mismo o su transferencia a otras entidades. pero su comportamiento está relacionado con el modo declarado para el puerto que se relacione con la señal. es estático. Para declarar una constante se siguen las siguientes líneas de comando: CONSTANT nombre_de_la_constante : tipo_de_constante := valor_asignado. Variable Es un objeto de cualquier tipo que es comúnmente usado como una memoria temporal. Señal Se llama señal a la interconexión existente entre los puertos presentes en el sistema electrónico que se diseña. También permite establecer un control temporizado e indicar retardos. y cuyo valor es fácilmente cambiado o alterado según los requerimientos del código empleado. por lo cual. o como puerto de entrada o salida de un bloque. una señal represente el cable que se usaría para la interconexión o el nivel de voltaje presente en el mismo. es decir: § si el puerto es declarado como entrada. Las señales son comúnmente declaradas en la sección de arquitectura. Para declarar una variable se sigue la siguiente línea de comando: VARIABLE nombre_de_la_variable : tipo_de_variable .Lección 3.

Si el puerto es declarado entrada-salida.§ § § Si el puerto es declarado como salida. . la señal correspondiente se puede modificar y leer. la señal correspondiente se puede leer y sólo la puede modificar la fuente correspondiente. Si el puerto es declarado como interfaz. Para declarar una señal se sigue la siguiente línea de comando: SIGNAL nombre_de_la_señal : tipo_de_señal <= valor_asignado . la señal correspondiente se puede modificar pero no se puede leer.

los cuales especifican el rango de valores que puede asumir el objeto. § § Tipo Compuesto Un objeto tipo compuesto es un conjunto de objetos de tipo escalares y compuestos. …. estos rangos están almacenados en el paquete STANDARD que está dentro de la librería STD. Existen cuatro clases de tipos de objetos: § § § § Escalar (scalar) Compuesto (composite) De acceso o de entrada (access) De archivo (file) Tipo Escalar Existen cuatro tipos de objetos escalares: § Escalar de enumeración (enumeration) o Es un arreglo de identificadores o caracteres que ya tiene un valor numérico asignado. …. el objeto puede asumir un valor numérico dentro de un rango (RANGE) permitido. TYPE BIT IS (‘0’. ‘B’. DEL). como por ejemplo: § § § TYPE BOOLEAN IS (FALSE. SOH. TRUE). Dentro de los tipos y subtipos de datos u objetos permitidos por el lenguaje VHDL tenemos: Tipos de Datos pre-definidos Existen en los estándares IEEE 1076 e IEEE 1164 una serie de tipos de datos predefinidos. así como la manera como se pueden manipular. los cuales pueden ser organizados como: § Arreglo o colección (array) . ejemplo: § TYPE INTEGER IS RANGE -65536 TO 65536 . TYPE CHARACTER IS (NUL. ‘1’). TIPOS Y SUBTIPOS El tipo y subtipo de un objeto permite indicar las restricciones sobre los valores que pueden asumir. Escalar de punto flotante o real (floating point) o Estos tipos de objetos permiten el uso de números reales. § Escalar entero (integer) o Son tipos numéricos. Escalar físico (physical) o Son usados en simulaciones para representar medidas de algunas cantidades como tiempo o distancia.Lección 4. es decir. Estos rangos de valores representan restricciones que en el código VHDL se conocen como CONSTRAINT. ‘A’.

Tipo de Acceso Este tipo de objeto es usado para declarar objetos que acceden de forma dinámica a variables. Este tipo de Acceso puede direccionarse solamente a Objetos escalares. existen dos tipos de arreglos: § Cadena de caracteres (string) • Es un arreglo en el cual. SUBTYPE largo IS INTEGER RANGE 1 TO 20. § Vector de Bits (bit_vector) • Es un ejemplo de un arreglo unidimensional en donde se especifica el nombre. . el rango y el tipo de elementos presentes. § Relación o registro (record) o Un objeto de tipo relación es un conjunto de objetos de todo tipo. todos los elementos presentes son del tipo carácter. continuamente están revisando o consultando los valores de ciertas variables. los cuales todos son del mismo tipo. Objetos de Arreglo (array). claro está con las limitaciones impuestas en la nueva definición. y para ello requieren tener un direccionamiento de las mismas que les permita acceder fácilmente a ellas. es decir. la preferencia de generar un subtipo y no un nuevo tipo de objeto se deriva de la facilidad con la cual el subtipo hereda todas las cualidades del tipo original. Ejemplo de definición de subtipos: SUBTYPE corto IS INTEGER RANGE 1 TO 10. y objetos de relación (record) Tipo de Archivo Este tipo de objetos representan objetos almacenados en el ambiente de desarrollo en el cual se está programando Subtipos Un subtipo es un tipo con una limitación al rango de valores original. SIGNAL Y : largo. SIGNAL X : corto.o Un objeto de tipo arreglo es un conjunto de números escalares o de objetos compuestos.

Lección 5. ORGANIZACIÓN DE DISEÑO Como se había comentado. § Arquitectura: ARCHITECTURE identificador OF nombre_de_la_entidad IS Declaración_del_Subprograma Declaración_de_tipos Declaración_de_subtipos Declaración_de_constantes Declaración_de_señales ::= SIGNAL lista_de_identificadores expresión . Configuración_y_uso BEGIN Instrucciones END identificador . cada una de estas secciones tiene un código general para ser declaradas: § Entidad: ENTITY identificador IS GENERIC Listado_general_componentes PORT Listado_general_de_puertos BEGIN Instrucciones_entidad END identificador . en un código VHDL se distinguen fácilmente tres secciones diferentes: la de la librería. : subtipos clase_de_señal := Declaración_de_componentes ::= COMPONENT identificador Descripción_del_componente END identificador. PORT Define las entradas y salidas del módulo que se está definiendo. . GENERIC define y declara propiedades o constantes del módulo que están siendo declaradas en la Entidad. la de la entidad y la de la arquitectura.

La estructura condicional de este condicional es la siguiente: WITH expresión SELECT Señal <= forma_de_onda WHEN caso. BLOCK La funcionalidad de este condicional es la de crear subdivisiones de condicionales de ejecución dentro de una misma entidad. Un ejemplo de la aplicación del mismo sería: WITH status SELECT Luces_semáforo <= “ROJO” WHEN “00”. debemos tener claro el funcionamiento de cada uno de ellos: WHEN … ELSE Para emplear este condicional se debe seguir la estructura siguiente: Señal<=valor WHEN condición ELSE Se pueden colocar varios condicionales anidados. . La estructura básica de este condicional es: nombre_del_bloque: BLOCK Expresión IS Declaraciones_opcionales BEGIN Sentencias_condicionales END BLOCK nombre_del_bloque.Manejo de Flujo de Datos Para poder establecer ciertas sentencias que permitan hacer asignaciones por medio de condicionales. “AMARILLO” WHEN “10”. SELECT … WHEN Esto se emplea cuando se desea hacer una asignación de valor que dependa del resultado de una expresión determinada.. “NO_FUNCIONA” WHEN “11”. ejemplo: S<=’1’ WHEN a=b ELSE ‘0’ WHEN a>b ELSE ‘2’.. “VERDE” WHEN “01”. WITH .

CAPITULO 2 DISEÑO LOGICO COMBINACIONAL CON VHDL .

std_logic_1164. END multiplexor_4_a_1 . Este mismo multiplexor se puede implementar en código VHDL empleando operaciones lógicas de la siguiente manera: . D0. USE ieee. END IF. D2. END PROCESS . ELSE Salida <= D3. D1. D0 : IN BIT. en la declaración de la arquitectura de este ejemplo se emplea la instrucción IF para seleccionar la salida en el multiplexor dependiente del estado de la dirección. salida) BEGIN IF ( direccion = “00” ) THEN Salida <= D0. En el ejemplo anterior. D1 y D0 como bits. D1. la dirección como un vector de 2 bits. direccion. ELSE (direccion = “10”) THEN Salida <= D2. Salida : OUT BIT ). D2. se indican la entradas D3. MULTIPLEXORES 4 A 1 Recordemos la tabla lógica del multiplexor 4 a 1 vista anteriormente: El código ejemplo para este multiplexor sería: ----------------------------------------------------------------------------LIBRARY ieee. y la salida como un bit. ----------------------------------------------------------------------------ARCHITECTURE ejemplo OF multiplexor_4_a_1 IS BEGIN PROCESS ( D3. END ejemplo .all. direccion : IN STD_LOGIC_VECTOR ( 1 DOWNTO 0) . ----------------------------------------------------------------------------ENTITY multiplexor_4_a_1 IS PORT ( D3. D2. ELSIF ( direccion = “01”) THEN Salida <= D1.Lección 1.

END multiplexor_4_a_1 . A1. Salida : OUT STD_LOGIC ). Salida : OUT STD_LOGIC ).----------------------------------------------------------------------------LIBRARY ieee. D0.std_logic_1164. Dirección: IN STD_LOGIC_VECTOR (1 DOWNTO 0). Salida : OUT STD_LOGIC ). D1. D0: IN STD_LOGIC.” en lugar de la “. --noten el uso de un “. USE ieee. D2. USE ieee.all. También se puede implementar por medio de la instrucción WHEN: ----------------------------------------------------------------------------LIBRARY ieee. ----------------------------------------------------------------------------ENTITY multiplexor_4_a_1 IS PORT ( D3. D2.all.std_logic_1164. D2. ----------------------------------------------------------------------------ENTITY multiplexor_4_a_1 IS PORT ( D3. USE ieee. D0: IN STD_LOGIC. ----------------------------------------------------------------------------ENTITY multiplexor_4_a_1 IS PORT ( D3.std_logic_1164. A0: IN STD_LOGIC. END multiplexor_4_a_1 . END ejemplo_when . END multiplexor_4_a_1 . D1. ----------------------------------------------------------------------------- ARCHITECTURE ejemplo_select OF multiplexor_4_a_1 IS BEGIN WITH direccion SELECT Salida <= D0 WHEN ”00” . . ----------------------------------------------------------------------------ARCHITECTURE ejemplo_when OF multiplexor_4_a_1 IS BEGIN Salida <= D0 WHEN dirección=”00” ELSE D1 WHEN dirección=”01” ELSE D2 WHEN dirección=”10” ELSE D3. ----------------------------------------------------------------------------ARCHITECTURE ejemplo_lógico OF multiplexor_4_a_1 IS BEGIN Salida <= (D0 AND NOT A1 AND NOT A0) OR (D1 AND NOT A1 AND A0) OR (D2 AND A1 AND NOT A0) OR (D3 AND A1 AND A0).” D1 WHEN ”01” . Dirección: IN STD_LOGIC_VECTOR (1 DOWNTO 0).all. D1. END ejemplo_lógico . O por medio de la instrucción SELECT: ----------------------------------------------------------------------------LIBRARY ieee.

--noten que no se puede emplear “D3 --WHEN “11”” por lo cual se emplea el --término OTHERS que indica --“las demás posibles opciones” END ejemplo_when .D2 WHEN ”10” . D3 WHEN OTHERS. .

std_logic_1164. . WHEN “0101” => salida <= “1011011”.Lección 2. WHEN “1011” => salida <= “0011111”. CONVERTIDORES BCD A SIETE SEGMENTOS Recordemos la tabla de verdad del conversor BCD a siete segmentos: El código ejemplo para este tipo de conversor sería: ----------------------------------------------------------------------------LIBRARY ieee. ----------------------------------------------------------------------------ENTITY siete_segmentos IS PORT ( entrada : IN BIT_VECTOR ( 3 DOWNTO 0) . WHEN “0111” => salida <= “1110000”. WHEN “1101” => salida <= “0111101”. WHEN “0100” => salida <= “0110011”. ----------------------------------------------------------------------------ARCHITECTURE siete_segmentos OF siete_segmentos IS BEGIN PROCESS (entrada) BEGIN CASE entrada IS WHEN “0000” => salida <= “1111110”. USE ieee.all. WHEN “1000” => salida <= “1111111”. WHEN “0110” => salida <= “0011111”. WHEN “0010” => salida <= “1101100”. END siete_segmentos . Salida : OUT BIT_VECTOR (6 DOWNTO 0) ). WHEN “1110” => salida <= “1001111”. WHEN “0001” => salida <= “0110000”. WHEN “1100” => salida <= “1001110”. WHEN “1001” => salida <= “1110011”. WHEN “0011” => salida <= “1111001”. WHEN “1010” => salida <= “1110111”.

----------------------------------------------------------------------------- . END CASE. END siete_segmentos. END PROCESS.WHEN “1111” => salida <= “1000111”.

Lección 3. SUMADORES
Recordemos el sumador de dos bits con acarreo de entrada de la figura No. 24 b), el cual se representa en la figura No. 35. El código VHDL para este sumador sería:
ENTITY sumador IS PORT (B0, B1, A: IN BIT; Resultado, Acarreo_de_Salida: OUT BIT; END sumador; --------------------------------------------------------------------ARCHITECTURE dataflow OF sumador IS BEGIN Resultado <= B0 XOR B1 XOR A; Acarreo_de_Salida <= (B0 AND B1) OR (B0 AND A) OR (B1 AND A); END dataflow

En este código, el nombre de la entidad es sumador, y es donde se realiza la descripción de los puertos de entrada y salida a emplear, también se realiza una descripción de la arquitectura de la entidad, en donde se describe el comportamiento lógico del circuito.

Figura No. 35 Sumador de dos bits con acarreo de entrada

Es importante tener en cuenta que dependiendo del software compilador y del tipo de tecnología en el cual se empleará el código, será la manera de implementar las expresiones lógicas descritas en la parte de la arquitectura en el código VHDL. Por ejemplo, si la tecnología escogida son los PLDs o FPGAs, la expresión para el bit de Acarreo_de_Salida tendría dos opciones: § §
Acarreo _ de _ Salida( A, B 0, B1) = A.B 0 + A.B1 + B1.B 0 Acarreo _ de _ Salida( A, B0, B1) = A( B0 + B1) + B1.B0

Por otro lado, si la tecnología seleccionada fuera por medio de ASICs, la implementación de la expresión lógica para el bit de Acarreo_de_Salida sería CMOS; un ejemplo de esta representación se puede observar en la figura No. 36 Figura No. 36 Representación en tecnología CMOS del bit Acarreo_de_Salida

Cuando se realiza la simulación del sistema sumador, la mayoría de programas generan formas de onda que describen el comportamiento del mismo; para este sistema las formas de onda se puede observar en la figura No. 37. Figura No. 37 formas de Onda al simular el sistema sumador

Lección 4. MULTIPLICADORES PARALELOS
Realicemos el código de un multiplicador binario de 4 bits, en donde al multiplicarsen dos números de cuatro bits obtendremos un resultado de 8 bits. En este caso se emplean puertos de entrada sin signo de 4 bits, y un puerto de salida de 8 bits sin signo El código VHDL sería:
----------------------------------------------------------------------------LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ----------------------------------------------------------------------------ENTITY multiplicador IS PORT ( a, b : IN SIGNED (3 DOWNTO 0); resultado : OUT SIGNED ( 7 DOWNTO 0)) ; END multiplicador ; ----------------------------------------------------------------------------ARCHITECTURE ejemplo1 OF multiplicador IS BEGIN Resultado <= a * b; END ejemplo1 ; -----------------------------------------------------------------------------

Noten que en este ejemplo se están empleando funciones aritméticas, para lo cual se usa la librería aritmética.

CAPÍTULO 5 DISEÑO DE CONTROL LOGICO CON VHDL .

El código VHDL descrito enseguida. por ejemplo.all. END PROCESS. SIGNAL clear. la cual le indica al sistema que reinicie el análisis de los dígitos. END CASE.std_logic_1164. WHEN OTHERS => puerta <= “11”. ----------------------------------------------------------------------------ARCHITECTURE logica_cerradura OF cerradura IS TYPE decodificador IS (RESET. PRIMER_NUMERO. END cerradura . ESPERA_SEGUNDO. este teclado contiene los números del 0 al 6. WHEN PRIMER_NUMERO TERCER_NUMERO SEGUNDO_NUMERO CUARTO_NUMERO => puerta <= “01”. ELSE CASE estado_presente IS WHEN RESET => CASE teclas IS WHEN “0001” => proximo_estado := primer_numero. SIGNAL estado_presente : decodificador. ----------------------------------------------------------------------------LIBRARY ieee. ESPERA_PRIMER. ESPERA_TERCER. chequear: IN STD_LOGIC. TERCER_NUMERO. BEGIN WAIT UNTIL ( chequear’EVENT AND chequear=’1’). en donde un código es recibido y a la vez comparado con la palabra clave para poder dar acceso al lugar. . BEGIN Salida_seleccionada : PROCESS(estado_presente) BEGIN CASE estado_presente IS WHEN RESET => puerta <= “10”. END CASE. una tecla de CLEAR. Este tipo de circuitos es empleado. WHEN OTHERS => NULL.Lección 1. ----------------------------------------------------------------------------ENTITY cerradura IS PORT ( SIGNAL teclas : IN STD_LOGIC_VECTOR (3 DOWNTO 0). en cerraduras electrónicas. SIGNAL puerta : OUT STD_LOGIC_VECTOR(0 TO 1) ). SECUNDO_NUMERO. SEGUIDOR DE SECUENCIAS Un circuito seguidor de secuencias se encarga de recibir secuencias de números y vigilar cuando una secuencia particular ha sido recibida. Proximo_estado := estado_presente. CUARTO_NUMERO). USE ieee. La clave en este caso es el número 1234. Salida_seleccionada : PROCESS VARIABLE proximo_estado: decodificador. se encarga de revisar una secuencia de cuatro dígitos proveniente de un teclado. IF clear=’0’ THEN Proximo_estado := RESET.

WHEN “0010” => NULL. END CASE. END CASE. WHEN “0011” => proximo_estado := Espera_tercer. WHEN OTHERS => proximo_estado := RESET.WHEN primer_numero => CASE teclas IS WHEN “0010” => proximo_estado := Segundo_numero. WHEN OTHERS => NULL. WHEN “0011” => NULL. WHEN tercer_numero => CASE teclas IS WHEN “0100” => proximo_estado := cuarto_numero. WHEN segundo_numero => CASE teclas IS WHEN “0011” => proximo_estado := tercer_numero. END CASE. END CASE. WHEN espera_tercero => CASE teclas IS WHEN “0100” => proximo_estado := cuarto_numero. WHEN espera_primer => CASE teclas IS WHEN “0010” => proximo_estado := Segundo_numero. WHEN OTHERS => proximo_estado := RESET. WHEN “0001” => NULL. END CASE. WHEN OTHERS => proximo_estado := RESET. . WHEN OTHERS => proximo_estado := RESET. WHEN “0001” => proximo_estado := Espera_primer. WHEN cuarto_numero => CASE teclas(0) IS WHEN ‘0’ => proximo_estado := RESET. END CASE. WHEN “0010” => proximo_estado := Espera_segundo. END CASE. WHEN OTHERS => proximo_estado := RESET. WHEN OTHERS => proximo_estado := RESET. WHEN espera_segundo => CASE teclas IS WHEN “0011” => proximo_estado := tercer_numero. WHEN OTHERS => NULL.

Estado_presente <= proximo_estado. END IF. END PROCESS.END CASE. END logica_cerradura. ----------------------------------------------------------------------------- .

END Resultado <= a * b. Este tipo de generadores generalmente inician su proceso de una ‘semilla’. ----------------------------------------------------------------------------ARCHITECTURE ejemplo OF generador IS SINAL REG_RANDOM : XOIZ_VECTOR(REG_RANDOM’range). RESET : IN XOIZ. ELSE VRANDOM_REG(k) := ‘0’.control_logic. ----------------------------------------------------------------------------- . --se genera nuevo patrón REG_RANDOM <= VRANDOM_REG. o una secuencia base para producir secuencias a su salida diferentes a la original. END generador .std_logic_1164.rnd_gen. --este paquete se empleará para el tipo XOIZ_VECTOR USE work. GENERADOR DE SECUENCIAS RANDÓMICAS Un generador de secuencias randómicas es un circuito que envía secuencias de números aleatorios. --este paquete se empleará para el tipo XOIZ USE dzx. END PROCESS BUS_EXT <= REG_RANDOM.all. END IF. USE ieee. RND_GEN(VRANDOM_GEN).all. END LOOP.logic_utils. END ejemplo . END IF. BUS_EXT : OUT XOIZ_VECTOR (3 DOWNTO 0)) . A continuación se enuncia el código ejemplo para este tipo de circuitos: ----------------------------------------------------------------------------LIBRARY ieee. --se emplea el último patrón ELSE FOR k IN REG_RANDOM’range LOOP IF k=REG_RANDOM’left THEN VRANDOM_REG(k) := ‘1’. IF RESET = ‘1’ THEN VRANDOM_REG := REG_RANDOM. --es un generador de secuencias randómico ----------------------------------------------------------------------------ENTITY generador IS PORT ( CLK. BEGIN WAIT UNTIL (CLK=’0’ AND CLK’event).Lección 2.

University of Maryland. the VHDL Cookbook.html PARDO. D y Jones S. (1997). COHEN. South Asutralia. ASHENDER.csee. B. VHDL: Coding styles and methodologies. Kluwer Academic Publisher. Circuit Design with VHDL. Department Computer science. Peter J. PEDRONI. VHDL: a logic synthesis approach. VHDL: Lenguaje para síntesis y modelado de circuitos. 2° Edición. First Edition. En: http://www. .BIBLIOGRAFIA NAYLOR.umbc. Volnei A (2004). University of Adelaide. Ben (1995). Batimore County (2005). Chapman & Hall. (2004). "VHDL reference material". MIT Press. Alfaomega Ra-Ma. (1990). Department of Computer Science & Electrical Engineering. F y José A.edu/help/VHDL.

ANEXOS .

Trabajo Colaborativo No. 1 201417 SISTEMAS DIGITALES BASICOS Cronograma de la actividades: Apertura: 10-Marzo-2009 / Cierre: 7-Mayo-2009 11:55pm .

y comprender la correcta conexión de los mismos para simular los estados lógicos UNO y CERO. otra compuerta tiene el pin 3 como entrada y el pin 4 como salida. 7 y la fuente de alimentación (5 V) al pin No. el montaje debe permitir: a. Demuestre la tabla de verdad de dichas compuertas. etc. (entregar diagrama eléctrico de conexión). la tierra debe conectar al pin No. Por ejemplo para el inversor del circuito integrado 74LS04 tenemos: Por ello. Desarrollar habilidades inter-personales para lograr un desempeño más alto en equipo colaborativo.Guía de actividades: Objetivo del Trabajo Colaborativo: • • • • • • • Evaluar e implementar la teoría vista durante el desarrollo del Módulo. Visualizar las entradas y salidas digitales de los circuitos integrados. Para esto seleccione las compuertas AND y OR a ser empleadas. . Mejorar habilidades de comunicación Establecer y defender posiciones con evidencia y argumento sólido Volver el razonamiento más flexible en el procesamiento de información y al enfrentarse a las obligaciones adquiridas en un trabajo en grupo Practicar habilidades que necesitará para su educación Actividades Previas: Con esta actividad se pretende darle inicialmente al estudiante una aproximación a la experimentación de los contenidos vistos en el curso: ACTIVIDAD No. 1 Realizar el montaje en protoboard (o en el software de simulación propuesto en Noticias del Aula y cuyos enlaces de descarga se colocaron en el foro del trabajo colaborativo) de un integrado de compuerta AND con cuatro entradas y el de un integrado de compuerta OR de tres entradas. investigue cómo se distribuyen los pines en el integrado de cada compuerta y su función (si es necesario implementar la compuerta AND o la OR indicar el procedimiento a seguir). tiene seis compuertas negadoras de las cuales tenemos que para una de ellas el pin 1 es la entrada y el pin 2 es la salida. Indique cómo es el circuito requerido para visualizar los estados lógicos de las salidas. Entender cómo se deben alimentar en voltaje las compuertas para su correcto funcionamiento. 14. b. Descubrir los temas específicos que se necesitan dominar en la implementación de un diseño.

con resultados y evidencias gráficas del proceso. entender el funcionamiento del mismo utilizando un 74LS47 ó 74LS48. Entregar un informe individual sobre esta actividad. Este debe ser el primer aporte del estudiante en el Foro del Trabajo Colaborativo. (OJO: Es imposible que todos realicen el montaje de la misma manera en el software o en el protoboard. demostrar cómo con entradas binarias el valor numérico del mismo en las entradas se refleja visualmente en el display de siete segmentos con el respectivo dígito decimal visualizado. Si necesitan preguntar o resolver dudas pueden hacerlo dando respuesta al tema creado para tal fin en el mismo foro . Además. deben proponer un listado de equipos básicos que requerirían para crear su laboratorio casero (se les recomienda irlos comprando para irlo conformando). es un ejercicio individual)(Esta actividad representa 20 puntos de los 75 puntos). d.c. Realizar el montaje de un display de siete segmentos.

así que sólo sería diseñar el codificador que permita visualizar cada equivalente en letra del piso respectivo en el display de siete segmentos. se tienen las herramientas suficientes para realizar un primer diseño electrónico. piso C. 3. 5. 74LS47 o similares. La manera como usted distribuye el estado de las entradas y salidas. piso 2. Actualmente los elevadores entregan en código binario que es el mismo valor numérico del piso en el cual se encuentra el elevador. piso 3. 6. en el proceso de conversión binaria a visual en el display de siete segmentos. …. La tabla lógica que describa las condiciones de salida en función de las entradas correspondientes al número binario del piso en el que se encuentre el elevador. Esta solicitud es especial. por favor emplee el Foro destinado a la misma (en esta misma Unidad) para comunicarlo y darle oportuna asesoría. a una nueva codificación como piso A. Con el presente trabajo. piso 15. …. se propone al estudiante el diseño de un codificador binario a caracteres alfabéticos visualizados en un display de siete segmentos. qué características debería tener esta memoria y cómo sería el programa o el contenido que memorizarían en él? Monte los Diagramas seleccionados en un protoboard y demuestre que funcionan según su diseño (enviar soporte gráfico ojalá en formato JPG). una de las propuestas es renombrar los diferentes pisos de sus hoteles de los piso 1. 7. Puede usarse el software que se recomienda en el foro del Trabajo Colaborativo No. 4. Cómo sería el mismo circuito utilizando compuertas 74LS46. 8. La gran cadena de hoteles Dam Barlton desea cambiar el aspecto de sus elevadores.Problema Planteado: Dentro de las pautas presentadas hasta el momento. será posible emplearlas? Seleccionen la que se adapte a la necesidad del cliente. Los mismos diagramas lógicos empleando sólo compuertas NAND para un primer caso y sólo compuertas NOR para un segundo caso (investigar cómo se hace para este punto) y seleccionar el que emplee menos compuertas (este es uno de los criterios al seleccionar un circuito pues se minimiza espacio y costo). qué indican en la vida real o en otras palabras. mintérminos y mapa de Karnaugh) que describan el estado de las salidas del circuito El diagrama lógico de las expresiones seleccionadas. piso B. En el mismo foro podrá desarrollar la intercomunicación con su grupo de trabajo . Qué debe entregar para este trabajo? 1. 1 2. piso J. Las expresiones lógicas minimizadas (por método algebráico. pues se nos pide que realicemos basados en un circuito lógico combinacional un codificador binario a caracteres alfabéticos los cuales serán visualizados en un display de siete segmentos. Si fuéramos a emplear una memoria ROM. para ello. Si encuentra algún inconveniente en el desarrollo de este trabajo.

Portada. conclusiones Este documento debe colgarse en el foro. principios o habilidades a medida que avanza en el proceso de resolución del problema. Etapa 2: Definir completamente el problema Al tener el problema completamente entendido. requisitos. etc.Se puede estructurar el desarrollo de este trabajo de la siguiente manera: Etapa 1: Reconocimiento de la situación problemática Por medio del intercambio de ideas. Producto: Entregue un documento final con los resultados obtenidos. comenzar el proceso de minimización de acuerdo a lo solicitado. Introducción. el circuito implementado para demostrarlo. Etapa 6: Evaluar el proceso De acuerdo a los resultados obtenidos. y el resto de la lista especificada en la página anterior. . indicando que es el trabajo final del Grupo. Cada integrante deberá reunir información y aprender nuevos conceptos. plantear y discernir adecuadamente el problema planteado (cada integrante debe proponer una solución al diseño planteado). Etapa 5: Desarrollar el plan propuesto Teniendo bien definidas las Tablas lógicas. la tabla lógica que relaciona los estados de la salida con las entradas. Contenido del trabajo en donde especifiquen los criterios de diseño (desde las primeras propuestas hasta la propuesta final). implementar los circuitos y montarlos para comprobar su comportamiento. De todas las propuestas se debe seleccionar la mejor o estructurar una nueva basada en cada una de las soluciones previamente propuestas por cada estudiante Etapa 3: Explorar el problema Comenzar a definir el estado de cada una de las entradas propuestas. evaluar el diseño presentado de acuerdo a las diferentes propuestas que se desarrollaron a lo largo del proceso de diseño. en el Foro. y cómo debería comportarse la salida del sistema Etapa 4: Plantear la solución Plantear las primeras tablas lógicas que permitan iniciar el proceso del diseño del Circuito Lógico a emplear. comenzar a definir claramente cada una de sus partes.

y el cuerpo del texto es coherente en su totalidad (Puntos =4) El estudiante participó activamente en el trabajo colaborativo (puntos = 13 ) Se cumplió con los objetivos del trabajo de manera satisfactoria. (Puntos = 0) Valoración Media El estudiante entregó el informe individual. el cuerpo del documento no soluciona de manera adecuada la situación planteada. (Puntos = 2) No hay errores de ortografía y el documento presenta una mediana articulación de las ideas y la estructura de los párrafos (Puntos = 2) El estudiante participó pero sus aportes no fueron pertinentes al tema (Puntos = 7 ) Aunque se trata la temática propuesta. la misma carece de algunos elementos del cuerpo solicitado. pero este no cumple con todo lo solicitado (Puntos = 8) Aunque el documento presenta una estructura base. las conclusiones no son las adecuadas al texto del documento (Puntos = 10) Aunque presenta referencias. las ideas están correlacionadas. estas no se articulan adecuadamente con el trabajo (Puntos = 3) Valoración Alta El estudiante entregó correctamente el informe individual solicitado (Puntos = 16) El documento presenta una excelente estructura (Puntos = 4) La redacción es excelente.Rúbrica de Evaluación: Item Evaluado Participación individual del estudiante en el Foro Valoración Baja El estudiante Nunca Entregó el informe individual solicitado. (Puntos = 15) Máximo Puntaje 20 Estructura del Informe El equipo no tuvo en cuenta las normas básicas para construcción de informes (Puntos = 0) El documento presenta deficiencias en redacción y errores ortográficos (Puntos = 0) 6 Redacción y ortografía 6 Participación del estudiante en el Trabajo Colaborativo Fines del Trabajo El estudiante nunca participó en el Trabajo Colaborativo (Puntos = 0) El documento no da respuesta a los lineamientos de la actividad propuesta (Puntos = 0) 17 17 Referencias Se maneja de manera inadecuada el uso de citas y referencias (Puntos = 0) El manejo de citas y referencias es satisfactorio (Puntos = 6) 9 Total de Punto Posibles 75 .

Introducción al Lenguaje VHDL Capítulo 2. Diseño Lógico Combinacional con VHDL Aspectos generales del trabajo: Se profundizarán las temáticas generales de la Unidad 2 por medio de la implementación del Diseño Presentado en el Trabajo Colaborativo No. Principios del Lenguaje VHDL Capítulo 3. Se revisará el trabajo individual y grupal. desarrollo de la práctica. Sistemas Digitales Básicos Capítulo 1. Estrategia de aprendizaje propuesta: Aprendizaje Colaborativo Peso evaluativo: 75 puntos (10% del peso del curso) Producto(s) esperado(s): Informe con los resultados obtenidos en la implementación del Diseño presentado en el Trabajo Colaborativo No. Documento WORD: Ensayo de construcción grupal que incluya portada. introducción. 2 201417 SISTEMAS DIGITALES BASICOS Temáticas que se revisarán: Unidad 2 del curso. conclusiones y referencias usadas Cronograma de la actividades: Apertura: 23-Abril-2009 / Cierre: 18-Mayo-2009 11:55pm Realimentación: 19-Mayo-2009 / 26-Mayo-2009 . contenido. revisar pesos de evaluación en la guía de actividades. 1 en Lenguaje VHDL. 1 en Lenguaje VHDL.Trabajo Colaborativo No.

5. definir las instancias. si éste es implementado Descripción de la funcionalidad en cada una de las arquitecturas de las entidades creadas. Portada. Producto: Entregue un documento final con los resultados obtenidos. . es decir definir cómo van a subdividir el circuito a implementar. autoevaluación y coevaluación. Instancias y señales previstas en el diseño. Con el presente trabajo. Un anexo con el listado final de la versión del Diseño en Lenguaje VHDL. * Trabajo en foros de grupos para el desarrollo de la actividad. intercambio de ideas para el diseño de las arquitecturas de cada una de las instancias previstas * Elaboración del documento del equipo que debe incluir: Metodología de trabajo. producto del trabajo. Qué deben entregar para este trabajo? 1. Descripción del diseño jerárquico. la tabla lógica que relaciona los estados de la salida con las entradas. etc. indicando que es el trabajo final del Grupo. Copia del archivo final del programa en VHDL para comprobar su funcionalidad Si encuentra algún inconveniente en el desarrollo de este trabajo. Una descripción detallada de cada una de las Entidades. por favor consulte. 1 en versión del Lenguaje VHDL. el circuito implementado para demostrarlo. En el mismo foro podrá desarrollar la intercomunicación con su grupo de trabajo Se puede estructurar el desarrollo de este trabajo de la siguiente manera: * Entrega de la documentación de estudio individual y/o grupal. Para ello por favor revisar al final de la Guía para el proceso de Autoevaluación y Coevaluación * Socialización de los trabajos grupos de aula (o publicación en FOROS de grupo de curso). se propone al Grupo Colaborativo presentar el Diseño Resultante presentado en el Trabajo Colaborativo No.Guía de actividades: Implementación del Diseño de un Sumador y Multiplicador binario de dos números de cuatro dígitos cada uno basado en un circuito lógico Combinacional en Lenguaje VHDL Dentro de las pautas presentadas hasta el momento. conclusiones Este documento debe colgarse en el foro. Introducción. 2. Contenido del trabajo en donde especifiquen los criterios de diseño. en la cual con la ayuda del Foro empezaría a definir la metodología a emplear para la implementación en VHDL * Entrega de los parámetros para el desarrollo de la actividad. 4. 3. se tienen las herramientas suficientes para realizar un primer diseño electrónico en Lenguaje VHDL. roles de los integrantes. emplee el Foro destinado a la misma (en esta misma Unidad) para comunicarlo y darle oportuna asesoría.

(Puntos = 0) Valoración Media El estudiante participó del trabajo de equipo dentro del foro pero sus aportaciones no son pertinentes al trabajo solicitado (Puntos = 8) Aunque el documento presenta una estructura base. estas no se articulan adecuadamente con el trabajo (Puntos = 3) Valoración Alta El estudiante participó de manera pertinente con la actividad (Puntos = 16) Máximo Puntaje 24 Estructura del Informe El equipo no tuvo en cuenta las normas básicas para construcción de informes (Puntos = 0) El documento presenta una excelente estructura (Puntos = 4) 6 Redacción y ortografía El documento presenta deficiencias en redacción y errores ortográficos (Puntos = 0) Participación del estudiante en el Trabajo Colaborativo Fines del Trabajo El estudiante nunca participó en el Trabajo Colaborativo (Puntos = 0) El documento no da respuesta a los lineamientos de la actividad propuesta (Puntos = 0) La redacción es excelente. las ideas están correlacionadas. el cuerpo del documento no soluciona de manera adecuada la situación planteada. las conclusiones no son las adecuadas al texto del documento (Puntos = 10) Aunque presenta referencias. y el cuerpo del texto es coherente en su totalidad (Puntos =4) El estudiante participó activamente en el trabajo colaborativo (puntos = 13 ) Se cumplió con los objetivos del trabajo de manera satisfactoria. (Puntos = 20) 6 15 15 Referencias Se maneja de manera inadecuada el uso de citas y referencias (Puntos = 0) El manejo de citas y referencias es satisfactorio (Puntos = 6) 9 Total de Punto Posibles 75 . la misma carece de algunos elementos del cuerpo solicitado. (Puntos = 2) No hay errores de ortografía y el documento presenta una mediana articulación de las ideas y la estructura de los párrafos (Puntos = 2) El estudiante participó pero sus aportes no fueron pertinentes al tema (Puntos = 7 ) Aunque se trata la temática propuesta.Rúbrica de Evaluación: Item Evaluado Participación individual del estudiante en el Foro Valoración Baja El estudiante Nunca participó del trabajo de equipo dentro del foro asignado.

concisa y cordial con el grupo. el nivel de interacción del grupo de trabajo 5. Actitudes y valores que se ejercieron 3. Alix CeciliaChinchilla.Autoevaluación y Coevaluación:1 Debe construir un informe sobre los siguientes aspectos y subirlo al foro dispuesto para evaluación y coevaluación: AUTOEVALUACIÓN 1. (Valoración: 1 punto) Demostró responsabilidad en el desempeño del grupo. comunicándose oportunamente y participando activamente sugiriendo y compartiendo ideas y conocimiento. Tomado de la Guía de Trabajo Colaborativo del curso de Física General. . el nivel de aceptación y confianza del grupo COEVALUACION Nombre del compañero_____________________________ Estuvo pendiente del proceso del trabajo del equipo. conocimientos adquiridos 2. aceptando las diferencias de opinión y estableciendo sus propios puntos de vista (Valoración: 1 punto) Puntaje 1 Ing. el nivel de unión del grupo de trabajo 4. y preocupándose por el enriquecimiento y mejora del trabajo a entregar (Valoración: 1 punto) Se comunicaba en forma clara. colocando sus avances oportunamente.

nos dan un link de descarga.com/resources/student_edition/download.edu/labs/tutorial/ En este sitio encontrarán varios ejemplos de circuitos simulados que les servirán como base para el desarrollo del Trabajo Uno de los software que recomiendo para la programación y simulación con lenguaje VHDL es Active HDL. • • En el siguiente link se encuentra otro buen tutorial para el manejo de VHDL http://users. descargamos el archivo e instalamos. en la sección de descargas ubicada en el siguiente link: http://www. Información del software.Información de Interés para el desarrollo del Trabajo colaborativo • Les recomiendo revisar el sitio web de “VHDL tutorial: Learn by example” http://esd. les será de mucha ayuda http://esd.encs.model. tutoriales y descarga se puede realizar en www.asp Procedemos a diligenciar el formato que nos solicitan.cs.3c el cual en su versión estudiantil permite un demo funcional por 180 días.html • Se propone también el software ModelSim PE Student Edition 6. en el siguiente link encontrarán un tutorial para el manejo del mismo y la descarga de la versión estudiantil: http://esd.cs.edu/labs/adder/adder.edu/labs/tutorial/Active_Tutorial.ca/~asim/COEN_6501/tools/vhdl_yawar. tiempo suficiente para el desarrollo de esta unidad.sim.ucr.cs.html • En el siguiente link encontrarán un ejemplo simulado en el Active HDL.ucr.ucr. al finalizarlo la licencia estudiantil nos será enviada al correo que indiquemos.concordia.html . Al finalizar la instalación nos abre una nueva página en donde deberemos diligenciar otro formato.model.

RESPUESTAS .

111 101. 0. 1 X. 10. 110. 10011010. X Z. 101001000. 101100000. 11. 101. 0. CAPITULO 3 2. 1. X 0 0 0 0 1 1 1 1 X 0 0 1 1 Y 0 0 1 1 0 0 1 1 Y 0 1 0 1 Z 0 1 0 1 0 1 0 1 F 0 1 1 0 F 0 1 1 1 0 0 0 0 . X. 0. 1110. Y. 111000 10001. 11001.UNIDAD No. 1110 110010. 3. 1110. 1000. 1100. 1 100001. 10001 2. X+Y XY + CD + Z’ (XY)’(ZW)’ + V’ 3. 10000010. 110111. 10100. 1111. 4. 100. 10000. 1 CAPITULO 1 1. X Y. 110. 11. 111. 11110 100110111. 11. 111. 1. 4. 1100. 10000. 110000000 10. 1010. 1100011. 10100. 101010.

Y 0 1 0 1 Y 0 0 1 1 0 0 1 1 F 0 1 0 1 Z 0 1 0 1 0 1 0 1 F 0 0 0 1 0 1 1 0 .X 0 0 1 1 X 0 0 0 0 1 1 1 1 5.

Sign up to vote on this title
UsefulNot useful