manual del laboratorio de dispositivos lógicos programables

50
Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán Departamento: Ingeniería Sección: Electrónica Manual del Laboratorio de Dispositivos Lógicos Programables Clave Asignatura: 1715 Clave Carrera: 130 Autor: M. en TI. Jorge Buendía Gómez Fecha de Elaboración: Enero 2015 Fecha de Revisión: Agosto 2021 Semestre 2022-1

Upload: others

Post on 16-Oct-2021

21 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México

Facultad de Estudios Superiores Cuautitlán

Departamento: Ingeniería

Sección: Electrónica

Manual del Laboratorio de

Dispositivos Lógicos Programables

Clave Asignatura: 1715

Clave Carrera: 130

Autor: M. en TI. Jorge Buendía Gómez Fecha de Elaboración: Enero 2015 Fecha de Revisión: Agosto 2021 Semestre 2022-1

Page 2: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 2

Índice 2 Prólogo 3

Reglamento 7 Práctica 1 Memorias EEPROM 9

2.3 Memorias de solo lectura (ROM’s)

Práctica 2 Operaciones Algebraicas 13

2.3 Memorias de solo lectura (ROM’s) Práctica 3 Contador Programable 16

2.3 Memorias de solo lectura (ROM’s).

Práctica 4 Display de matriz con 2 máquinas secuenciales 20

2.3. Memorias de solo lectura (ROM’s). Práctica 5 Animación en matriz de leds 25

2.3. Memorias de solo lectura (ROM’s). Práctica 6 Decodificador de teclado con GAL y Boole 29

2.6. Arreglos lógicos genéricos (GAL’s).

Práctica 7 Implementación de tablas de verdad con GALs 35

2.6. Arreglos lógicos genéricos (GAL’s). Práctica 8 Control de Potencia con Flip Flops en dispositivos PLD 41

2.6. Arreglos lógicos genéricos (GAL’s). Práctica 9 Contadores Mod 6, Mod 10 y Mod 12 con VHDL 46

4.3. Lenguaje VHDL

Práctica 10 Reloj Digital de 24 horas con circuitos GAL 49

4.3. Lenguaje VHDL

Laboratorio de Dispositivos Lógicos Programables

Índice

Page 3: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 3

4.3. Lenguaje VHDL

Objetivos del Curso

• Al finalizar el curso el alumno conocerá y comprenderá la estructura y funcionamiento de los

dispositivos lógicos programables (PLD) empleados en el diseño de sistemas digitales de última generación, así mismo podrá diseñar e implementar dispositivos con circuitos programables de muy alta escala de integración.

Objetivos del Laboratorio

• Analizar y comprobar los fundamentos de los dispositivos lógicos programables (PLD’s).

• Implementar circuitos electrónicos que empleen PLD’s para realizar el control de sistemas. • Conocer las diferentes arquitecturas empleadas en la construcción de PLD’s y aplicarlas de acuerdo

con el diseño del sistema.

• Conocer y utilizar las herramientas de hardware y software necesarias para la implementación de los circuitos que contienen PLD’s.

Introducción

Un PLD (Programmable Logic Device, Dispositivo Lógico Programable) es un dispositivo electrónico de gran escala de integración (Large Scale Integration, LSI) empleado para la implementación de diseños digitales. A diferencia de las compuertas lógicas básicas, un PLD es un arreglo genérico de compuertas y otros elementos digitales que no realiza una función definida. Para implementar un sistema digital dentro de un dispositivo lógico programable, es necesario programarlo o configurarlo para establecer las conexiones que deberán realizarse internamente. Existe una gama muy amplia de PLD’s pero en general están construidos con una matriz de compuertas inversoras, compuertas AND y compuertas OR, que se pueden configurar para conseguir funciones lógicas específicas. Dependiendo de la complejidad del PLD, pueden contener además otro tipo de elementos digitales, tales como Flip-Flops, multiplexores, inversores de polaridad, memorias, registros y muchos elementos más formando las Macroceldas o Bloques Lógicos Configurables (CLB’s). Existen varios tipos de dispositivos que se clasifican como PLD’s.

• PROM (Programmable Read Only Memory). Memoria programable de sólo lectura.

• PLA (Programmable Logic Array). Arreglos Lógicos Programables.

• PAL (Programmable Array Logic). Lógica de Arreglos Programables.

• GAL (Generic Array Logic). Arreglos lógicos genéricos.

• CPLD (Complex Programmable Logic Device) Dispositivos Lógicos Programables Complejos.

• FPGA (Field Programmable Gates Array ) Arreglos de Compuertas Programables de Campo.

Básicamente, una matriz programable es una red de conductores distribuidos en filas y columnas con un fusible o conexión programable en cada punto de intersección, figura P.1 y que sirven para establecer las relaciones entre los elementos digitales que conforman al dispositivo.

Laboratorio de Dispositivos Lógicos Programables

Prólogo

Page 4: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 4

Figura P.1

Las matrices de conexiones pueden ser fijas o programables por el usuario, también pueden ser programables una sola vez (Once Time Programmable, OTP) o reprogramables, con programación volátil o programación permanente. con lo cual se obtiene un abanico muy amplio de dispositivos con diversas características y funcionalidades. Los PLD’s presentan muchas ventajas sobre los circuitos discretos implementados con compuertas básicas de baja escala de integración (Small Scale Integration, SSI) y de mediana escala de integración (Medium Scale Integration, MSI), estas características se pueden identificar como:

• Facilidad de diseño.

• Disponibilidad de herramientas

• Prestaciones.

• Fiabilidad.

• Economía.

• Seguridad.

• Potencia consumida

• Tamaño

Además de los puntos mencionados, podemos añadir que los PLD’s facilitan el ruteado de las placas de circuito impreso debido a la libertad de asignación de terminales de este tipo de dispositivos.

En este laboratorio se realizarán circuitos digitales que emplean diferentes dispositivos lógicos programables

PLD’s y también la utilización de varias de las herramientas de ambiente integrado (Integrated Development

Enviroment, IDE) para implementar circuitos que contengan PLD’s, tanto para su programación como para su simulación.

Es importante recalcar que el alumno deberá comprender la necesidad de interacción entre las diferentes áreas de la Ingeniería para llevar a la práctica un sistema digital que emplee este tipo de dispositivos programables.

Entre estas áreas se distinguen:

• Electrónica Analógica

Page 5: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 5

• Sistemas Digitales

• Control Analógico

• Control Digital

• Computación

• Diseño de Software

• Electrónica de Potencia

• Mecánica

• Motores

y algunas áreas adicionales.

Instrucciones para la elaboración del reporte

Será necesario incluir en cada actividad previa y reporte de práctica, una portada (obligatoria) que incluya los datos mostrados a continuación, con un formato libre.

Para la presentación del reporte se deberá cumplir con los requisitos indicados en cada una de las prácticas, incluyendo:

• Actividades previas

• Introducción

• Procedimiento experimental

• Circuito armado

• Tablas de datos

• Mediciones

• Gráficas

• Comentarios

• Observaciones

• Esquemas

• Diagramas

• Cuestionario

• Conclusiones y en general todos los elementos solicitados dentro del desarrollo de la práctica.

U.N.A.M. F.E.S.C. Laboratorio de: ____________________________________________________ Grupo: ____________________________________________________ Profesor: ____________________________________________________ Alumno: ____________________________________________________ Nombre de la Práctica: ____________________________________________________ No. de la Práctica: ____________________________________________________ Fecha de realización: ____________________________________________________ Fecha de entrega: ____________________________________________________ Semestre: ____________________________________________________

Page 6: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 6

Los criterios de evaluación para el laboratorio son los siguientes:

N° Criterio de evaluación Porcentaje C1 Actividades Previas 10% C2 Escritura y compilación de los códigos con comentarios 20% C3 Simulación de los circuitos 30% C4 Reporte entregado con todos los puntos indicados 40%

Bibliografía

1. Pardo Fernando, Boluda José A., VHDL Lenguaje para síntesis y modelado de circuitos, México,1ª Edición, Alfa Omega RA-MA, 2000.

2. García Iglesias Jose M, Dispositivos Lógicos Programables (PLD) Diseño práctico de aplicaciones, México, RA- MA, 2006.

3. Bolton W. Programmable Logic Controllers ,5th, Elservier-Newnes, USA 2009. 4. Parr E.A., Programmable Controllers, 3th, An Engineer´s Guide- Newnes, USA 200. 5. Grediaga Olivo Angel, Diseño de Procesadores con VHDL, España, Universidad de Alicante, Servicio de

Publicaciones, 2007. 6. Machado Sánchez Felipe, Diseño Digital Avanzado con VHDL, México, Dykinson S.L. Libros, 2009. 7. Urquía Moraleda, Diseño de Hardware Digital con VHDL, Colombia, UniversidadNacional de Educación a

Distancia, 2008. 8. Mandado Enrique, Dispositivos Lógicos Programables y sus Aplicaciones, España, Thomson Paraninfo,

2002.

9. Serna Ruiz Antonio, Lógica Digital y Microprogramable, España, Thomson Paraninfo, 2000.

Page 7: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 7

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN

DEPARTAMENTO DE INGENIERÍA

REGLAMENTO INTERNO DE LOS LABORATORIOS DE ELECTRÓNICA

El presente reglamento de la sección electrónica tiene por objeto establecer los lineamientos, requisitos y condiciones que deberán de conocer y aplica, alumnos y profesores en los laboratorios dentro de sus cuatro áreas: comunicaciones, control, sistemas analógicos y sistemas digitales.

1. Dentro del laboratorio queda estrictamente prohibido.

a. Correr, jugar, gritar o hacer cualquier otra clase de desorden. b. Dejar basura en las mesas de trabajo y/o pisos. c. Sentarse sobre las mesas d. Fumar, consumir alimentos y/o bebidas. e. Realizar o responder llamadas telefónicas y/o el envío de cualquier tipo de mensajería. f. La presencia de personas ajenas en los horarios de laboratorio. g. Dejar los bancos en desorden. h. Mover equipos o quitar accesorios de una mesa de trabajo a otra sin el consentimiento previo del profesor

de laboratorio en turno. i. Usar o manipular el equipo sin el conocimiento previo del profesor. j. Rayar las mesas del laboratorio. k. Energizar algún circuito sin antes verificar que las conexiones sean las correctas (polaridad de las fuentes

de voltaje, multímetros, etc.). l. Hacer cambios en las conexiones o desconectar equipo estando éste energizado. m. Hacer trabajos pesados (taladrar, martillar, etc.) en las mesas de las prácticas. n. Instalar software y/o guardar información en los equipos de cómputo de los laboratorios.

2. Se permite el uso de medios electrónicos y equipo de sonido (celulares, tabletas, computadoras, etc.) únicamente para la realización de las prácticas.

3. Es responsabilidad del profesor y de los alumnos revisar las condiciones del equipo del laboratorio al inicio

de cada práctica. (encendido, dañado, sin funcionar, maltratado, etc.) El profesor reportará cualquier anomalía al encargado de área correspondiente o al jefe de sección.

4. Los profesores deberán de cumplir con las actividades y tiempos indicados en el “cronograma de actividades de laboratorio”.

5. Los alumnos deberán realizar las prácticas de laboratorio. No son demostrativas.

6. Es requisito indispensable para la realización de las prácticas, que el alumno cuente con su manual completo y actualizado al semestre en curso, en formato digital o impreso, el cual podrá obtener en:

http://olimpia.cuautitlan2.unam.mx/pagina_ingenieria.

7. Es requisito indispensable para la realización de las prácticas de laboratorio que el alumno cuente con las

hojas de datos técnicos de los dispositivos a utilizar.

8. El alumno deberá traer su circuito armado en la tableta de conexiones para poder realizar la práctica, de no ser así, tendrá una evaluación de cero en la sesión correspondiente.

9. En caso de que el alumno no asista a una sesión, tendrá falta, (evaluándose con cero) y será indicada en el

registro de seguimiento y control por medio de guiones. 10. La evaluación de cada sesión debe realizarse en base a los criterios de evaluación incluidos en los manuales

de prácticas de laboratorio y no podrán ser modificados. En caso contrario, reportarlo al jefe de sección. 11. La evaluación final del laboratorio será en base a lo siguiente:

Page 8: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 8

A (Aprobado) Cuando el promedio total de todas las prácticas de laboratorio sea mayor o igual a 6 siempre y cuando tengan el 90% de asistencia y el 80% de prácticas acreditadas en base a los criterios de evaluación.

NA (No aprobado) No se cumplió con los requisitos mínimos establecidos en el punto anterior. NP (No presentó) No se entregó reporte alguno.

12. Profesores que requieran hacer uso de las instalaciones de laboratorio para realizar trabajos o proyectos, es requisito indispensable que notifiquen por escrito al jefe de sección. Siempre y cuando no interfiera con los horarios de los laboratorios.

13. Alumnos que requieran realizar trabajos o proyectos en las instalaciones de los laboratorios, es requisito indispensable que esté presente el profesor responsable del trabajo o proyecto. En caso contrario no podrán hacer uso de las instalaciones.

14. Correo electrónico del buzón para quejas y sugerencias para cualquier asunto relacionado con los laboratorios ([email protected]).

15. Los casos no previstos en el presente reglamento serán resueltos por el Jefe de Sección.

NOTA: En caso de incurrir en faltas a las disposiciones anteriores, el alumno o profesor será acreedor a las sanciones correspondientes.

Page 9: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 9

Tema: 2.3 Memorias de solo lectura (ROM’s)

Objetivos • Implementar un circuito que convierta un número decimal en el rango de 0 a 99 representado en

binario en 7 bits, a su correspondiente código BCD5421 en 8 bits. • Programar la memoria EEPROM con la tabla de verdad del convertidor de código.

• Comprobar el funcionamiento del convertidor de código Introducción Entre los circuitos programables básicos se encuentran las memorias de solo lectura (ROM’s), ya que se puede almacenar en ellas de forma directa las tablas de verdad que representan a los sistemas digitales, estas memorias tienen una capacidad de almacenamiento definida por el tamaño de sus bus de direcciones (n líneas) y el tamaño de su bus de datos (m líneas) y por lo tanto pueden resolver sistemas que tengan n entradas por m salidas.

Una gran ventaja de la utilización de estas memorias es que no se requiere la reducción algebraica de los términos a través de algebra de Boole o Mapas de Karnaugh ya que la tabla deberá ser insertada en su totalidad y cada dirección accesada proporcionará una de las combinaciones de la tabla.

En esta práctica utilizaremos una memoria AT28C16 cuya capacidad es de 2K x 8 y por lo tanto es capaz de almacenar tablas de 11 entradas (2048 combinaciones de entrada) y puede proporcionar hasta 8 salidas independientes.

Fig. 1.1 Terminales de la memoria AT28C16

En esta práctica realizaremos el diseño de un circuito que convierta un número decimal en el rango de 0 a 99, representado a través de un número binario de 7 bits y que produzca el valor equivalente en código decimal codificado en binario (BCD8421) en 8 bit. El rango de funcionamiento del circuito está restringido debido a que para números mayores a 99 y hasta 255 se requiere una representación BCD8421 de 12 bits y por lo tanto la capacidad de la memoria se excedería.

Laboratorio de Dispositivos Lógicos Programables

Práctica 1 Memorias EEPROM

Page 10: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 10

Para estas condiciones entonces el sistema tendría una tabla de verdad de 7 entradas y 8 salidas, lo cual produce una tabla de 27 = 128 combinaciones de las cuales solo se emplearán las 100 primeras y las restantes deberán llenarse con ceros.

Decimal Binario BCD8421

0 0000000 0000 0000

1 0000001 0000 0001

36 0100100 0011 0110

37 0100101 0011 0111

38 0100110 0011 1000

97 1100001 1001 0111

98 1100010 1001 1000

99 1100011 1001 1001

Tabla 1.1.

Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica. 2. El alumno definirá los valores que representan la conversión de los 100 números a convertir. 3. El alumno generará el archivo binario BIN_BCD.BIN empleando el software del programador SuperPro,

para ello deberá insertar la tabla de 128 valores que representan a los códigos BCD8421 de salida. 4. Considere emplear el circuito de memoria 2732 en sustitución del circuito AT28C16 de la práctica,

considerando que tiene una terminal de direcciones extra y no tiene la terminal WE. Esta sustitución es

necesaria debido a que el simulador no tiene un modelo de simulación para la memoria AT28C16.

Material

1 Memoria AT28C16

8 Resistencias de 330 Ω

1 Barra de 8 leds ó en su defecto 8 leds individuales.

Equipo

1 Fuente de voltaje de CD.

1 Multímetro

1 Programador Universal

1 Protoboard

Procedimiento Experimental 1. Generar la tabla de valores en el editor de buffer del software SuperPro como se muestra en la figura 1.2.

Considere que los datos en el buffer son los valores de la tabla en código BCD8421 y solo deben llenarse 100 localidades, las restantes 28 deberán estar cargadas con el valor de 00.

Page 11: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 11

Ultimo valor

Fig. 1.2 Ejemplo incompleto de Buffer de Proteus

2. Salvar el buffer en formato binario seleccionando la pestaña de Archivo/Guardar y asignando el nombre BIN_BCD, designe la carpeta de almacenamiento que desee como se muestra en las figuras 1.3 y 1.4.

Fig. 1.3 y 1.4 Pestaña de selección de Archivo y Nombre de archivo

3. Programe la memoria AT28C16 con archivo BIN_BCD.BIN 4. Simule el circuito de la figura 1.5. 5. Incluya en el reporte los resultados de la simulación en formato digital.

Figura 1.5 Codificador Binario a BCD8421

6. Compruebe la función de conversión de código del circuito proponiendo una tabla de 16 valores

diferentes.

Valores de código BCD8421

Llenar valores restantes

28 ceros

Page 12: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 12

7. Llene la tabla 1.2 con los 16 valores obtenidos del circuito y verifique que la operación se está realizando

correctamente.

Tabla 1.2

8. El alumno diseñará un sistema que genere 4 códigos de salida a partir de un código de entrada de 4 bits:

• Código gray (4 bits).

• Código en complemento a 2 (4 bits).

• Código XS3 (8 bits).

• Código BCD5221 (8 bits).

8. El circuito debe incluir 2 señales de control para que se pueda seleccionar cuál de los 4 códigos se visualiza

a la salida.

9. El alumno determinará las conexiones de la memoria AT28C16.

10. El alumno diseñará el circuito y lo simulará.

11. El alumno comprobará las 4 tablas de verdad.

Cuestionario

1. Diseñe un circuito convertidor de código binario (4 bits) a BCD8421 (4 bits), utilizando herramientas

computacionales de reducción para la obtención de las expresiones de álgebra de Boole y dibuje el

circuito resultante con compuertas lógicas de cualquier número de entradas.

2. Describa las ventajas y desventajas del circuito resultante con respecto al circuito implementado en esta

práctica a través de la memoria ROM, considerando que este diseño tiene 7 bits de entrada y 8 de salida.

Decimal Binario BCD8421

Decimal Binario BCD8421

Page 13: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 13

Tema:

2.3. Memorias de solo lectura (ROM’s).

Objetivos

• Implementar un circuito que calcule una operación matemática con 3 operadores binarios de 3 bits

cada uno

• Programar la memoria EEPROM con la tabla de verdad de la operación matemática.

• Comprobar el funcionamiento del circuito.

Introducción

Debido a que las memorias ROM pueden almacenar valores en forma permanente en cada una de sus localidades, es posible calcular y almacenar los resultados de cualquier operación matemática. A diferencia de los circuitos digitales combinacionales, los sistemas digitales implementados en PLD´s no requieren de la reducción en forma de funciones de Boole ya que solo se requiere la información para cada una de operaciones posibles y su inserción en cada localidad de la memoria. En esta práctica se realizará la operación matemática: 𝑆=(𝐴+𝐵)∗𝐶

Figura 2.1

En donde los datos A, B y C se darán a través de 3 números de 3 bits cada uno como se muestra en la figura 2.1 y que serán las entradas del sistema digital, la salida S se obtendrá en un número de 7 bits puesto que el valor máximo posible será cuando A=7, B=7 y C=7 y por lo tanto el valor calculado será:

𝑆=(7+7)∗7=98 Hay que tener en cuenta que el valor de la localidad de memoria donde se almacenará el valor de salida, se determinará a partir del ordenamiento de los datos de entrada en la posición correspondiente de los bits sobre la dirección de entrada tal y como se muestra a continuación en la tabla 2.1.

Laboratorio de Dispositivos Lógicos Programables

Práctica 2 Operaciones algebraicas

Page 14: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 14

Tabla 2.1

La tabla correspondiente deberá estar formada por 512 valores, por lo cual es recomendable utilizar una hoja de cálculo para determinar los valores que deberán insertarse en cada una de las localidades.

Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica. 2. El alumno definirá la tabla de verdad del sistema de cálculo de la operación matemática. 3. El alumno generará el archivo binario OPERACION.BIN empleando el software del programador SuperPro,

para ello deberá insertar la tabla de 512 valores que representan los valores posibles de la operación.

Material

1 Memoria AT28C16

7 Resistencias de 330 Ω

1 Barra de 8 leds ó en su defecto 7 leds individuales.

Equipo

1 Fuente de voltaje de CD.

1 Multímetro 1 Programador Universal

1 Protoboard

Procedimiento Experimental

1. Generar la tabla de 512 valores en el editor de buffer del software SuperPro.

2. Salvar el buffer en formato binario seleccionando la pestaña de Archivo/Guardar y asignando el nombre OPERACION, designe la carpeta de almacenamiento que desee.

3. Programe la memoria AT28C16 con archivo OPERACION.BIN 4. Realizar la simulación del circuito considerando la figura 2.2 siguiendo los pasos del desarrollo. Considere

emplear el circuito de memoria 2732 en sustitución del circuito AT28C16 de la práctica, considerando que tiene una terminal de direcciones extra. Esta sustitución es necesaria debido a que el simulador no tiene un modelo de simulación para la memoria AT28C16.

5. Incluya en el reporte los resultados de la simulación de forma digital. 6. Compruebe las operaciones aritméticas del circuito proponiendo una tabla de 16 combinaciones de

valores para el dato A, B y C. 7. Llene la tabla 2.2 con los valores obtenidos del circuito y verifique que la operación se está realizando

correctamente.

S=(A+B)*C Dato A Dato B Dato C Dirección (A7 – A0)

Valor

S=(2+5)*5 0 1 0 1 0 1 1 0 1 010101101 0100011

S=(2+7)*6 0 1 0 1 1 1 1 1 0 010111110 0110110

S=(6+5)*4 1 1 0 1 0 1 1 0 0 110101100 0101100

S=(7+7)*7 1 1 1 1 1 1 1 1 1 111111111 1100010

Page 15: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 15

Figura 2.2

Tabla 2.2 Cuestionario 1. Diseñar un circuito que genere los valores de ordenadas de la recta.

𝑦 = 2 𝑥 + 8

La entrada del circuito es la variable independiente x, la cual será de 7 bits con un valor máximo de 120 y la salida del circuito es la variable dependiente, la cual será de 8 bits.

Dato A Dato B Dato C Operacion

Dato A Dato B Dato C Operacion

Page 16: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 16

Tema:

2.3 Memorias de solo lectura (ROM’s).

Objetivos

• Comprender los conceptos de diseño para circuitos secuenciales implementados sobre dispositivos

lógicos programables. • Implementar un contador programable sobre una memoria EEPROM que muestre secuencialmente

un mensaje de texto sobre un display de 7 segmentos. Introducción

En esta práctica se realizará un contador binario programable que muestre las letras del mensaje siguiente en forma secuencial sobre un display de 7 segmentos.

HoLA 2020 PLd FESC

Figura 3.1 Mensaje y display de 7 segmentos

Este contador programable puede realizarse si implementamos una máquina secuencial con un dispositivo lógico programable como una EEPROM.

La implementación se realiza con un contador binario natural que vaya incrementando el valor de las direcciones de entrada de la memoria para que se produzca un recorrido por los valores almacenados en las localidades internas y se repita de forma infinita.

La máquina secuencial implementada de esta manera es capaz de trasladarse a través de todos los estados almacenados sin utilizar los flip flops típicos de los sistemas secuenciales, puesto que no se requiere la utilización de las tablas de estado ni de los análisis de excitaciones.

Las máquinas secuenciales definidas de esta manera solo se limitan a mostrar uno a uno los datos almacenados y por lo tanto no requieren electrónica de control de inicio ni electrónica combinacional para las excitaciones de los flip flops.

Laboratorio de Dispositivos Lógicos Programables

Práctica 3 Contador Programable

Page 17: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 17

Para cada uno de los caracteres a visualizar se considera un estado diferente de la máquina secuencial y a cada uno de ellos se le asigna un código en hexadecimal que corresponde a cada uno de los 7 bits de los 7 segmentos como se muestra en la tabla 3.1.

Caracter H o L A 2 0 2 0 P L d F E S C

Hexadecimal 76 5C 38 77 00 5B 3F 5B 3F 00 73 38 5E 00 71 79 6D 39

Tabla 3.1 Asignación de código hexadecimal para cada estado

Además, se agrega un 0 en el bit más significativo para completar los 8 bits que se deben programar en la memoria, tal y como se muestra en la tabla 3.2 para el carácter H.

Dato D7 D6 D5 D4 D3 D2 D1 D0

Segmento - g f e d c b a

Binario 0 1 1 1 0 1 1 0

Hexadecimal 7 6

Tabla 3.2 Asignación de código binario y hexadecimal para el carácter H

Un punto a favor de este tipo de circuitos digitales es que pueden repetir códigos dentro de la secuencia establecida por el usuario a diferencia de las máquinas secuenciales tradicionales, en las cuales para poder tener códigos repetidos se necesita adicionar un bit que los diferencie.

La tabla constará de 18 estados que serán recorridos secuencialmente a una frecuencia definida por el reloj de un contador de 5 bits que se deberá reiniciar al llegar a 18 cuentas. El valor cero insertado de forma artificial es simplemente para visualizar de forma más cómoda la secuencia.

Hay que indicar que la inserción del cero no sería posible si se realizara el circuito con lógica digital secuencial discreta puesto que no puede tenerse un conteo que pasa múltiples veces por el mismo valor 0 en diferentes puntos del diagrama ya que esto rompe con la secuencia lógica, pues no se pueden definir estados siguientes diferentes para las mismas condiciones de estado anterior.

El circuito integrado que usaremos como contador será un CD4024 como el mostrado en la figura 3.2. que produce un contador binario natural de 8 bits y entrada de reset.

Fig 3.2 Circuito contador de 8 bits CD4024 Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica.

Page 18: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 18

2. El alumno generará el archivo binario TEXTO.BIN empleando el software del programador SuperPro, para

ello deberá insertar la tabla de 18 valores que representan a la máquina de estados. Material

• 1 Memoria AT28C16

• 1 Circuito integrado CD4024 • 1 Circuito integrado 74LS08

• 7 Resistencias de 330 Ω

• 1 Display de 7 segmentos de cátodo común. Equipo

• 1 Fuente de voltaje de CD. • 1 Multímetro

• 1 Programador Universal

• 1 Protoboard

Procedimiento Experimental

1. Generar la tabla de valores en el editor de buffer del software SuperPro. 2. Salvar el buffer en formato binario seleccionando la pestaña de Archivo/Guardar y asignando el nombre

TEXTO, en formato BIN, designe la carpeta de almacenamiento que desee. 3. Programe la memoria AT28C16 con archivo TEXTO.BIN

4. Realizar la simulación de los circuitos del procedimiento experimental considerando la figura 3.3

siguiendo los pasos del desarrollo. Considere emplear el circuito de memoria 2732 en sustitución del circuito AT28C16 de la práctica, considerando que tiene una terminal de direcciones extra. Esta sustitución es necesaria debido a que el simulador no tiene un modelo de simulación para la memoria AT28C16.

5. Incluya en el reporte los resultados de la simulación de forma digital. 6. Simule el circuito de la figura 3.4 considerando una señal de reloj de 1 Hz. 7. Compruebe que el conteo se realiza de forma correcta. 8. Compruebe que se despliega el mensaje de forma correcta.

Fig. 3.3 Máquina secuencial

Cuestionario

Page 19: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 19

1. Diseñe y simule un circuito que muestre el número de cuenta de cada uno de los 2 integrantes del equipo y un número adicional (total 3 números), en forma secuencial sobre el display de 7 segmentos, se deben utilizar dos señales de control para seleccionar el número que se mostrará. Se debe incluir un led adicional que muestre el funcionamiento del reloj para identificar de forma correcta los números en el caso de que existan números repetidos en un mismo número de cuenta.

Page 20: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 20

Tema:

2.3. Memorias de solo lectura (ROM’s). Objetivos

• Implementar 2 máquinas secuenciales individuales que controlen el desplegado de imágenes en un

display de 8x8 leds. • Comprobar el funcionamiento de un registro de corrimiento implementado sobre una EEPROM

• Implementar la sincronización del envío de datos y registro de corrimiento al display. Introducción

En esta práctica realizaremos la activación de un display matricial de 64 leds, arreglados en 8 renglones y 8 columnas.

Figura 4.1 Display de 8 renglones y 8 columnas

Estos displays están construidos de tal forma que los leds de un renglón comparten la misma línea de conexión y asimismo los leds de una columna comparten una sola línea lo cual reduce el número de terminales para la activación de los 64 leds que de otra manera requerirían 128 terminales para su conexión individual.

Se pueden tener displays de 2 tipos:

• Cátodo común en función de las columnas. Para cátodo común, cada uno de los leds se enciende cuando se aplica un voltaje de 0V en la columna y 5V en el renglón.

Figura 4.2

Laboratorio de Dispositivos Lógicos Programables

Práctica 4 Display de matriz con 2 máquinas secuenciales

Page 21: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 21

• Ánodo común en función de las columnas. Para ánodo común, cada uno de los leds se enciende cuando se aplica un voltaje de 5V en la columna y 0V en el renglón.

Figura 4.3 La referencia cátodo o ánodo comunes se considera en función de las columnas ya que estos displays son encendidos columna por columna en forma secuencial y los datos se insertarán vía los renglones.

Figura 4.4. Asignación de terminales

El display que utilizaremos en la práctica es de ánodo común por lo que enciende con 5V en sus columnas y con asignaciones de 0V en aquellos renglones que deseamos encender.

Debido a que el encendido del display se realiza columna por columna, se requiere construir un circuito de corrimiento de 8 bits que proporcione voltaje de 5V a cada una de las columnas en forma secuencial y que al mismo tiempo coincida con un cero en la posición del renglón del led que deseamos encender.

El sistema deberá contar con 2 memorias, una que sirva para generar el registro de corrimiento y otra para almacenar los datos que vamos a desplegar en conjuntos de 8 datos de 8 bits.

Los datos que deberán almacenarse en la memoria de datos se muestran en la figura 4.5.

Page 22: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 22

Figura 4.5 Caracteres a desplegar

Estos caracteres se deben almacenar a partir de la localidad cero de la memoria de datos y cubriendo 8 localidades, cada letra se seleccionará a partir de 4 bits de control que definen una localidad de memoria a partir de la cual se despliega cada una de las máquinas de estado.

La memoria 1 deberá contener un registro de corrimiento que encienda solo una de las columnas empezando por la columna 1 y terminando en la columna 8, en forma cíclica como se muestra en la figura 4.4 considerando que las terminales de columnas del display se deben asignar a datos de la memoria 1 de acuerdo con la tabla 4.1.

Tabla 4.1 Asignación de terminales de datos de la memoria correspondientes a las columnas

Figura 4.6 Registro de corrimiento para columnas

La memoria 2 deberá contener los datos para cada una de las imágenes de los caracteres, los cuales deben definirse considerando la figura 4.5 en donde los bits en blanco deberán ponerse en 1 para apagar el led y los bits indicados con color rojo deberán ponerse en 0 para poder encender ese led.

Se debe considerar que las terminales de renglones del display se deben asignar a datos de la memoria 2 de acuerdo con la tabla 4.2.

Bit D7 D6 D5 D4 D3 D2 D1 D0

Columna C1 C2 C3 C4 C5 C6 C7 C8

Page 23: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 23

Bit D7 D6 D5 D4 D3 D2 D1 D0

Renglón R8 R7 R6 R5 R4 R3 R2 R1

Tabla 4.2. Asignación de terminales de datos de la memoria 2 correspondientes a los renglones.

Por ejemplo, para el número 2 se deberán cargar los datos:

FF 79 3E 5E 6E 71 FF FF

Figura 4.7 Datos hexadecimales para la representación del número 2

Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica. 2. El alumno realizará la programación de la primera memoria AT28C16 con los datos del registro de

corrimiento mostrados en la figura 4.6 y la segunda memoria se debe programar con la tabla de datos correspondiente a los caracteres mostrados en la figura 4.5. Ocho localidades para cada carácter y por lo tanto 128 localidades.

3. Como la tabla solo contiene 12 caracteres y se puede controlar la exhibición de 16, el alumno deberá generar 4 caracteres adicionales e incluirlos en la programación.

Material

• 2 Memoria AT28C16

• 1 Circuito CD4024

• 1 Display de matriz de leds de 8 x 8 de ánodo común

Equipo

• 1 Fuente de voltaje de CD.

• 1 Multímetro

• 1 Programador Universal

• 1 Protoboard

Procedimiento Experimental

1. Simule el circuito de la figura 4.8 siguiendo los pasos del desarrollo. Considere emplear el circuito de

memoria 2732 en sustitución del circuito AT28C16 de la práctica, considerando que tiene una terminal de direcciones extra. Esta sustitución es necesaria debido a que el simulador no tiene un modelo de simulación para la memoria AT28C16.

2. Incluya en el reporte los resultados de la simulación de forma digital.

Page 24: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 24

Figura 4.8

3. Programe la memoria AT28C16 (U1) que contendrá el registro de corrimiento. 4. Programe la memoria AT28C16 (U2) que contendrá la tabla de datos de los caracteres a desplegar. 5. Con una señal de reloj de 1Hz compruebe que se genera el registro de corrimiento y se produce el

encendido de cada una de las columnas del circuito para una entrada de selección 0001. 6. Incremente la frecuencia de reloj y verifique que la visualización se realiza cada vez más rápido. 7. Aumente la frecuencia de reloj hasta que ya no pueda observarse el parpadeo de las columnas al

apagarse, anote el valor de la frecuencia que produce este efecto. 8. Compruebe que se pueden visualizar los 4 caracteres diseñados por el alumno.

Cuestionario

1. Indique cual es la frecuencia mínima para que se produzca el efecto de visualización fija y porque se puede

ver el carácter completo como si el encendido fuera simultáneo.

2. Incluya las gráficas y valores para los 4 caracteres diseñados.

Page 25: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 25

Tema:

2.3. Memorias de solo lectura (ROM’s). Objetivos

• Implementar 2 máquinas secuenciales que permitan realizar una animación sobre un display de

matriz de leds de 8 x 8. • Comprobar el funcionamiento del sistema de animación.

Introducción En esta práctica realizaremos una animación en un display matricial de 8 renglones y 8 columnas como el utilizado en la práctica anterior. El sistema debe contar con 2 memorias, una que sirve para generar el registro de corrimiento y otra para almacenar las máquinas secuenciales que serán desplegadas en forma consecutiva para generar el proceso de animación las cuales serán seleccionadas a partir de un contador.

Cada máquina secuencial constará de 8 datos de 8 bits que representan una de las diferentes imágenes que se presentarán al usuario en forma consecutiva y cada cierto tiempo el sistema deberá acceder a la imagen siguiente para presentar la animación en forma continua. Esta animación constará de 24 imágenes o cuadros que al ser presentadas una tras otra, darán la ilusión de tener movimiento como se hace en los sistemas de televisión o cine.

Figura 5.1a Cuadros de la animación.

Laboratorio de Dispositivos Lógicos Programables

Práctica 5 Animación en matriz de leds

C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8

R1 R1 R1 R1

R2 R2 R2 R2

R3 R3 R3 R3

R4 R4 R4 R4

R5 R5 R5 R5

R6 R6 R6 R6

R7 R7 R7 R7

R8 R8 R8 R8

C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8

R1 R1 R1 R1

R2 R2 R2 R2

R3 R3 R3 R3

R4 R4 R4 R4

R5 R5 R5 R5

R6 R6 R6 R6

R7 R7 R7 R7

R8 R8 R8 R8

Cuadro 1 Cuadro 2 Cuadro 3 Cuadro 4

Cuadro 5 Cuadro 6 Cuadro 7 Cuadro 8

Page 26: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 26

Figura 5.1b Cuadros de la animación.

Entre más imágenes contenga el sistema más se acercará a una ilusión de movimiento continuo, pero para ello se deberá seleccionar la correcta relación de los 2 relojes que alimentan al sistema, uno para definir la velocidad del registro de corrimiento de las columnas y otro reloj para definir la velocidad de cambio de cada imagen. Las imágenes para desplegar se deben almacenar a partir de la localidad cero de la memoria de datos y cubriendo 8 localidades cada una, cada cuadro se seleccionará a partir de 5 bits de control que definen una localidad de memoria a partir de la cual se despliega cada una de las máquinas de estado.

C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8

R1 R1 R1 R1

R2 R2 R2 R2

R3 R3 R3 R3

R4 R4 R4 R4

R5 R5 R5 R5

R6 R6 R6 R6

R7 R7 R7 R7

R8 R8 R8 R8

C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8

R1 R1 R1 R1

R2 R2 R2 R2

R3 R3 R3 R3

R4 R4 R4 R4

R5 R5 R5 R5

R6 R6 R6 R6

R7 R7 R7 R7

R8 R8 R8 R8

Cuadro 9 Cuadro 10 Cuadro 11 Cuadro 12

Cuadro 13 Cuadro 14 Cuadro 15 Cuadro 16

C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8

R1 R1 R1 R1

R2 R2 R2 R2

R3 R3 R3 R3

R4 R4 R4 R4

R5 R5 R5 R5

R6 R6 R6 R6

R7 R7 R7 R7

R8 R8 R8 R8

C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8

R1 R1 R1 R1

R2 R2 R2 R2

R3 R3 R3 R3

R4 R4 R4 R4

R5 R5 R5 R5

R6 R6 R6 R6

R7 R7 R7 R7

R8 R8 R8 R8

Cuadro 17 Cuadro 18 Cuadro 19 Cuadro 20

Cuadro 21 Cuadro 22 Cuadro 23 Cuadro 24

C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8

R1 R1 R1 R1

R2 R2 R2 R2

R3 R3 R3 R3

R4 R4 R4 R4

R5 R5 R5 R5

R6 R6 R6 R6

R7 R7 R7 R7

R8 R8 R8 R8

Cuadro 25 Cuadro 26 Cuadro 27 Cuadro 28

Page 27: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 27

Con 5 bits se pueden seleccionar 32 imágenes, pero debido a que este sistema solo tiene 28 cuadros, entonces se deberá restringir el valor máximo de conteo para la selección de cuadros utilizando una compuerta AND.

Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica. 2. El alumno realizará la programación de la primera memoria AT28C16 con los datos del registro de

corrimiento. 3. El alumno obtendrá los datos para cada una de las imágenes mostradas en la figura 5.1a y b, ocho

localidades para cada imagen. 4. El alumno programará los datos de las imágenes en la segunda memoria AT28C16.

Material

• 2 Memoria AT28C16

• 2 Circuitos CD4024

• 1 Circuito 7408

• 1 Display de matriz de leds de 8 x 8 de ánodo común

Equipo

• 1 Fuente de voltaje de CD.

• 1 Multímetro

• 1 Programador Universal

• 1 Protoboard

Procedimiento Experimental

1. Programe la memoria AT28C16 (U8) que contendrá el registro de corrimiento. 2. Programe la memoria AT28C16 (U9) que contendrá la tabla de datos de las imágenes a desplegar. 3. Simule el circuito de la figura 5.2 siguiendo los pasos del desarrollo. Considere emplear el circuito de

memoria 2732 en sustitución del circuito AT28C16 de la práctica, considerando que tiene una terminal de direcciones extra, esta sustitución es necesaria debido a que el simulador no tiene un modelo de simulación para la memoria AT28C16.

4. El alumno diseñará un circuito de oscilación astable a partir de un circuito LM555 que pueda variar en un rango de 1 a 30 Hz el cuál se utilizará como reloj del contador de la memoria de datos.

5. Incluya en el reporte los resultados de la simulación de forma digital. 6. Con un reloj de 200 Hz para el contador del registro de corrimiento y de 10 Hz para el contador de la

memoria de datos, compruebe que se genera la animación de forma correcta en el display. 7. Si no se aprecia de forma clara el movimiento, se deberán ajustar sobre la práctica los valores de los

relojes hasta lograr el funcionamiento correcto. 8. Diseñar una animación que contenga 40 imágenes, simularla haciendo las modificaciones necesarias para

poderla llevarla a cabo.

Page 28: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 28

9.

Figura 5.2. Cuestionario

1. Investigue cuales son las características de frecuencia (cuadros por segundo), necesarias para la

presentación correcta en los sistemas de TV. Y de cine.

Page 29: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 29

Tema:

2.6. Arreglos lógicos genéricos (GAL’s). Objetivos

• Implementar un decodificador de teclado matricial telefónico de 12 teclas. • Obtener la representación en algebra de Boole de la tabla de verdad del decodificador

• Implementar las ecuaciones de Boole dentro de un dispositivo GAL22V10 Introducción

En esta práctica realizaremos la decodificación de un teclado matricial de 12 teclas utilizado para la marcación en los teléfonos como el mostrado en la figura 6.1.

Este teclado presenta un conjunto de 12 teclas arregladas en un formato de matriz que activa un renglón y una columna en correspondencia con la tecla presionada.

Figura 6.1

Existen varias formas de decodificarlo, una de ellas utiliza un registro de corrimiento que activa los renglones en forma consecutiva del renglón 1 al 4, repitiendo el proceso una y otra vez a una frecuencia elevada, analizando el valor que presentan las columnas y haciendo el análisis de que renglón y columna están activas en el instante de tiempo en que se presiona la tecla, se puede por lo tanto asignar el código correspondiente en binario u otro código, de cada una de las teclas.

En esta práctica emplearemos un método de decodificación que aprovecha una terminal del teclado que es común a todas las teclas y por lo tanto no requiere del registro de corrimiento externo.

Este proceso de decodificación es totalmente estático ya que se emplean 7 resistencias conectadas a la fuente de alimentación y donde la tecla presionada funciona como un switch conectado a tierra y genera un cero lógico tanto en el renglón como en la columna donde está posicionada la tecla.

Laboratorio de Dispositivos Lógicos Programables

Práctica 6 Decodificador de teclado con GAL

Page 30: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 30

Figura 6.2 Decodificación estática del teclado

En esta práctica se requiere el planteamiento de las tablas de verdad para las 7 entradas, 3 columnas y 4 renglones que se obtienen de las terminales de las resistencias y las 5 salidas de las cuales 4 proporcionan el código binario para identificar 12 teclas de las 16 posibles y además 1 salida adicional para indicar que una tecla se ha presionado y por lo tanto el código de salida es válido. Esto es necesario porque no podría distinguirse entre el código de salida 0000 debido a que ninguna tecla está presionada y el código 0000 debido a la tecla 0 que es un código válido.

La asociación de códigos para cada tecla se muestra en la tabla 5.1, observe que el bit de código válido (V) esta activo en 1 solo para las 12 combinaciones mostradas de las 128 posibles y por lo tanto los 116 restantes deben tener el bit V = 0.

Tabla 6.1

Tecla

Columnas C1 C2 C3

Renglones R1 R2 R3 R4

Código de tecla

Bit de código válido

A B C D E F G W X Y Z V

1 0 1 1 0 1 1 1 0 0 0 1 1

2 1 0 1 0 1 1 1 0 0 1 0 1

3 1 1 0 0 1 1 1 0 0 1 1 1

4 0 1 1 1 0 1 1 0 1 0 0 1

5 1 0 1 1 0 1 1 0 1 0 1 1

6 1 1 0 1 0 1 1 0 1 1 0 1

7 0 1 1 1 1 0 1 0 1 1 1 1

8 1 0 1 1 1 0 1 1 0 0 0 1

9 1 1 0 1 1 0 1 1 0 0 1 1

* 0 1 1 1 1 1 0 1 0 1 0 1

0 1 0 1 1 1 1 0 0 0 0 0 1

# 1 1 0 1 1 1 0 1 0 1 1 1

Page 31: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 31

Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica. 2. El alumno obtendrá las 5 ecuaciones de Boole que representan a cada una de las variables de salida de la

tabla 6.1 (V, W, X, Y y Z) y comprobará que concuerdan con las ecuaciones del desarrollo. Hacer uso de herramientas computacionales para realizar las reducciones e incluir los pasos de solución en la actividad previa.

3. El alumno creará un proyecto en el programa ISPLEVER para insertar las ecuaciones de Boole. 4. El alumno generará el archivo P6_PLDs.JED que se empleará para programar a la GAL. 5. El alumno realizará la simulación de los circuitos del procedimiento experimental considerando la figura

6.3 siguiendo los pasos del desarrollo. El teclado deberá ser simulado con entradas individuales ya que el teclado del simulador solo puede ser decodificado en forma dinámica con registros de corrimiento.

6. Entregar los resultados de la simulación de forma impresa o digital al profesor al inicio de la sesión de laboratorio.

Material

• 1 GAL22V10D • 1 Teclado telefónico de 12 teclas.

• 7 Resistencias de 1 KΩ

• 1 Barra de 8 leds ó en su defecto 5 leds individuales.

Equipo

• 1 Fuente de voltaje de CD. • 1 Multímetro

• 1 Programador Universal

• 1 Protoboard

Procedimiento Experimental

1. Ejecute el software ISPLEVER.

Figura 6.3

2. Cree un proyecto nuevo denominado P6_PLDs con lenguaje VHDL y en la carpeta que usted seleccione.

Figura 6.4

3. Seleccione el tipo de dispositivo activando la casilla de:

Page 32: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 32

• Show Obsolete Devices

• Seleccione Family: GAL Device

• Seleccione Device: GAL22V10D

• Seleccione Package Type: 24 PDIP 4. Todos los parámetros restantes deben dejarse con su opción default. Considere la figura 6.5 para definir

estas opciones Finalice el proceso para crear el proyecto.

Figura 6.5

5. Cree un archivo fuente nuevo y seleccione un tipo de proyecto VHDL Module

Figura 6.6

6. Defina las variables de entrada y salida del sistema así como la indicación de si son entradas o salidas,

según se muestra en la figura 6.7.

Figura 6.7 Figura 6.8

Page 33: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 33

7. A partir de la información insertada se crea el archivo mostrado en la figura 6.8. 8. Complete la información mostrada en la figura 6.9 para incluir la definición de terminales y las funciones

de Boole para las variables V, W, X, Y y Z.

Figura 6.9 9. Compile el proyecto con la opción JEDEC File como se muestra en la figura 6.10, obtenga el archivo

P6_PLDs.JED y programe la GAL con dicho archivo.

Figura 6.10

10. Implemente el circuito mostrado en la figura 6.11 considerando los cables del teclado mostrados en la

figura 6.2. 11. Compruebe el código de cada una de las teclas y el bit de validez de código.

Page 34: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 34

Figura 6.11

Cuestionario

1. Describa la función que realiza el comando LOC en el programa en VHDL. 2. Imprima la hoja técnica de la GAL22V10D y describa las características y funcionalidad de las terminales de entrada

y salida.

3. Describa la característica de los tiempos de acceso y compárela con los tiempos de acceso de la implementación discreta considerando las funciones de Boole obtenidas en las actividades previas.

Page 35: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 35

Tema:

2.6. Arreglos lógicos genéricos (GAL’s).

Objetivos

• Implementar tablas de verdad de circuitos lógicos dentro de un dispositivo lógico programable considerando lenguaje VHDL.

• Utilizar la característica de concurrencia del lenguaje VHDL para la representación de una tabla de verdad.

Introducción En esta práctica implementaremos las tablas de verdad de 3 circuitos lógicos empleando para ello la característica de concurrencia que tiene el lenguaje VHDL, el cual no ejecuta las instrucciones de forma secuencial sino de forma concurrente y cualquier cambio en las variables de entrada se refleja inmediatamente en las variables de salida puesto que el sistema funciona como lo hace un circuito verdadero, ya que este sistema no depende de la programación como lo hacen los microprocesadores. El primer circuito es un Codificador de código binario a un código de 7 segmentos que tiene una tabla de verdad como la mostrada en la figura 7.1.

Código Binario Código de 7 segmentos

A B C D a b c d e f g

0 0 0 0 1 1 1 1 1 1 0

0 0 0 1 0 1 1 0 0 0 0

0 0 1 0 1 1 0 1 1 0 1

0 0 1 1 1 1 1 1 0 0 1

0 1 0 0 0 1 1 0 0 1 1

0 1 0 1 1 0 1 1 0 1 1

0 1 1 0 1 0 1 1 1 1 1

0 1 1 1 1 1 1 0 0 0 0

1 0 0 0 1 1 1 1 1 1 1

1 0 0 1 1 1 1 1 0 1 1

1 0 1 0 1 1 1 0 1 1 1

1 0 1 1 0 0 1 1 1 1 1

1 1 0 0 1 0 0 1 1 1 0

1 1 0 1 0 1 1 1 1 0 1

1 1 1 0 1 0 0 1 1 1 1

1 1 1 1 1 0 0 0 1 1 1

Figura 7.1 Tabla de verdad del codificador binario a 7 segmentos

Laboratorio de Dispositivos Lógicos Programables

Práctica 7 Implementación de tablas de verdad con GALs

Page 36: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 36

El cual se implementará a partir de la función WITH … SELECT del lenguaje VHDL, la cual permite definir la

salida en función del valor de una variable de selección.

En las variables de entrada se empleará el método de definición de vector lógico estándar, para poderlas

manipular en forma de bloque.

En el segundo circuito se implementará un Codificador de BCD a 7 segmentos considerando la variante de

WITH … SELECT empleando la palabra OTHERS que define a todas las combinaciones de entrada que no han

sido empleadas dentro de la tabla, sin importar si están en orden o no.

De las 16 combinaciones posibles para 4 bits de entrada, solo se emplearán las 10 posibles para código BCD y

las 6 combinaciones restantes se agrupan en la declaración OTHERS.

Para la tercera parte de la práctica emularemos el comportamiento de un circuito 74138, cuya función es

Codificador/Demultiplexor de 1 a 8, como el que se muestra en la figura 7.2

Figura 7.2 Circuito 74LS138

Este circuito integrado tiene 8 salidas (Y7 a Y0), 3 selectores de canal (C, B y A) y 3 habilitadores (G2A, G2B y

G1), como se muestra en las figuras 7.2 y 7.3.

Figura 7.3

Page 37: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 37

Puede emularse el comportamiento del circuito 74LS138 empleando un dispositivo lógico programable

GAL22V10D identificando solamente la tabla de verdad de la figura 7.4 e implementando dichas relaciones a

través del lenguaje VHDL.

Figura 7.4 Tabla de verdad del circuito 74LS138

Para la implementación de este circuito emplearemos la función WHEN … ELSE en la cual se incluirán dos

condiciones de selección y una asignación de salida.

También se utilizará la definición de variables intermedias para facilitar la manipulación de los datos, estas se

definirán a partir de la palabra clave SIGNAL.

SIGNAL SELECTORES : std_logic_vector (2 DOWNTO 0);

SIGNAL HABILITADORES : std_logic_vector (2 DOWNTO 0);

El último elemento a utilizar será el comando de concatenación (&) para trabajar las señales de entrada en

forma de vector.

SELECTORES <= A & B & C;

HABILITADORES <= G1 & G2A & G2B;

Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica. 2. El alumno generará el archivo binario P7_Binario.JED empleando el software ISPLever, para el codificador

binario a 7 segmentos de la figura 7.6.

3. El alumno generará el archivo binario P7_BCD.JED empleando el software ISPLever, para el codificador BCD a 7 segmentos de la figura 7.6.

4. El alumno generará el archivo binario P7_74138.JED empleando el software ISPLever, para la emulación

del circuito 74LS138 de la figura 7.9

Material

• 1 Circuito GAL22V10D

• 1 Display de 7 segmentos cátodo común

• 8 Resistencias de 330 Ω

• 1 Barra de 8 leds ó en su defecto 8 leds individuales.

Page 38: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 38

Equipo

• 1 Fuente de voltaje de CD.

• 1 Multímetro

• 1 Programador Universal

• 1 Protoboard

Procedimiento Experimental

1. Cree un proyecto en el software ISPLever denominado P7_plds y genere el archivo P7_plds.JED utilizando

las instrucciones descritas en el archivo VHDL de la figura 7.5.

Figura 7.5 Archivo VHDL para el codificador binario a 7 segmentos

2. El alumno realizará la simulación de los circuitos del procedimiento experimental siguiendo los pasos del

desarrollo. 3. Incluya en el reporte los resultados de la simulación de forma digital.

Figura 7.6 Codificador binario a 7 segmentos

Page 39: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 39

4. Programe la GAL con el archivo P7plds.JED y compruebe el correcto funcionamiento de las 16

combinaciones del codificador.

5. Cree un proyecto en el software ISPLever denominado P7_BCD y genere el archivo P7_BCD.JED utilizando

las instrucciones descritas en el archivo VHDL de la figura 7.7.

6. Programe la GAL con el archivo P7plds.JED y compruebe el correcto funcionamiento de las 16

combinaciones del codificador.

7. Cree un proyecto en el software ISPLever denominado P7_BCD y genere el archivo P7_BCD.JED utilizando

las instrucciones descritas en el archivo VHDL de la figura 7.7.

Figura 7.7 Codificador de BCD a 7 segmentos.

8. Empleando el circuito de la figura 7.6, reprograme la GAL para realizar la comprobación del codificador

BCD a 7 segmentos en sus primeras 10 combinaciones y las 6 combinaciones restantes sin activación del

display.

9. Cree un proyecto en el software ISPLever denominado P7_74138 y genere el archivo P7_74138.JED utilizando las instrucciones descritas en el archivo VHDL de la figura 7.8.

Page 40: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 40

Figura 7.8 Archivo VHDL para circuito 74138

10. Simule el circuito de la figura 7.9.

Figura 7.9 Emulador de circuito74138 11. Programe la GAL con el archivo P7_74138.JED y compruebe el correcto funcionamiento de la tabla de

verdad del circuito 74138.

Cuestionario

1. Describa el significado de las siglas VHDL. 2. Describa las características del lenguaje VHDL. 3. Investigue las diferencias y similitudes entre una declaración de señal de entrada bit y una señal de

entrada std_logic.

Page 41: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 41

Tema:

2.6. Arreglos lógicos genéricos (GAL’s).

Objetivos

• Comprender la utilización de las extensiones empleadas en las macroceldas de los PLD´s.

• Comprobar el procedimiento para asignar señales o funciones a las extensiones de los flip flops. • Realizar el control de potencia de corriente alterna utilizando al PLD como elemento de control.

Introducción El desarrollo de la tecnología de fabricación de los PLD´s permitió emplear elementos cada vez más sofisticados tanto en sus entradas como en sus salidas y eso derivó en la creación de sistemas electrónicos que permitan el almacenamiento, el encendido, el apagado, el cambio de polaridad y la multiplexación de las señales de salida.

Estos elementos electrónicos que mejoran la funcionalidad de los PLD y su estructura básica, están concentrados en un elemento llamado macrocelda de salida lógica (Output Logic Macrocell) o OLMC.

Figura 8.1 OLMC Output Logic Macrocell de la GAL22V10D

En la OLMC del circuito GAL22V10D se puede observar que cada salida de la OR de minitérminos puede

asociarse con un Flip Flop tipo D que tiene:

• Señal de reloj compartida que se distribuye a partir de la terminal número 1, la cual permite realizar

diseños síncronos.

• Salidas 𝑄 y 𝑄 que permite obtener en la salida la polaridad normal y la polaridad invertida.

• Una señal de control denominada AR (Asynchronous Reset) o Reset Asíncrono que produce que la

salida Q vaya a bajo inmediatamente después de aplicarla sin intervención o relación con el reloj

aplicado al flip flop.

Laboratorio de Dispositivos Lógicos Programables

Práctica 8 Control de potencia con flip flops en dispositivos PLD

Page 42: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 42

• Una señal de control denominada SP (Synchronous Preset) o Preset Síncrono que produce que la

salida Q vaya a alto en sincronía con el pulso de subida del reloj.

• Una señal de control que permite habilitar o deshabilitar la salida de la señal denominada OE (Output Enable) o Habilitador de Salida.

Cada una de estas extensiones, a excepción del reloj pueden ser controlados por una señal de entrada al PLD

o por una función lógica, siempre y cuando se haga una asociación de la señal con la extensión indicada a

través de un punto y el nombre de la extensión al final del nombre de la señal.

En esta práctica se aplicarán señales externas a cada una de las señales de control y se comprobará el

funcionamiento del flip flop correspondiente en forma lógica como se muestra en la figura 8.2.

salida.D = dato;

salida.AR = !clear;

salida.SP = !set;

salida.OE = enable;

Figura 8.2 Asignación de señales a las extensiones del Flip Flop

La señal de salida de la GAL se aplicará a una interfaz de potencia para controlar el encendido y apagado de la

carga con un voltaje de alterna de 127 V.

Esta interfaz de potencia se realizará con un circuito optoaislador MOC 3010 que contiene un led infrarrojo y

un triac con compuerta infrarroja que tiene como inconveniente el manejo de corrientes reducidas (100mA)

aproximadamente, en la figura 8.3 se muestra el diagrama de terminales y el diagrama lógico. Debido a la baja

corriente de salida se deberá utilizar un segundo TRIAC de corriente elevada para controlar a la carga.

Figura 8.3 Opto Triac MOC 3010

El triac que controlará la potencia entregada a la carga será un TIC206D que puede manipular una corriente

de 4 A. con un voltaje de hasta 400V, aunque se pueden emplear triacs de mayor corriente y voltaje.

Figura 8.4 Triac TIC20D

Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica.

Page 43: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 43

Material

• 1 GAL22V10D

• 2 Resistencias de 330 Ω • 1 TRIAC TIC206D

• 1 MOC3010

• 1 Foco incandescente 127V, 60 W

• 1 Cable de alimentación eléctrica 2 polos • 1 Clavija

Equipo

• 1 Fuente de voltaje de CD.

• 1 Multímetro

• 1 Programador Universal • 1 Protoboard

• 1 Generador de funciones

Procedimiento Experimental 1. El alumno creará el proyecto P8_MOC3010.PLD en el software Wincupl de acuerdo a la figura 8.6. 2. Generar el archivo P8_MOC3010.JED. 3. Programar la GAL22V10 con el archivo JED. 2. El alumno realizará la simulación del circuito del procedimiento experimental considerando la figura 8.7

siguiendo los pasos del desarrollo y considerando las siguientes indicaciones:

• El optoacoplador a usar será el MOC30XX de la categoría Optoelectronics / Optocuplers.

• El TRIAC a usar será el Generic TRIAC de la categoría Switching Devices / TRIAC • La lámpara a usar será el dispositivo LAMP de la categoría Optoelectronics / Lamps a la cual deberán

modificarse los parámetros para establecer 127 V como voltaje de alimentación como se muestra en la figura 8.5.

• La fuente senoidal a usar será VSINE a la que deberán modificarse los parámetros de amplitud a 127 V y frecuencia a 60 Hz, dejando los otros parámetros por default. Como se muestra en la figura 8.5.

• Tenga en cuenta que el lado derecho del circuito de TRIAC no está conectado a tierra puesto que es una fuente de alterna.

Figura 8.5 Parámetros para la lámpara L1 y la fuente senoidal V1 VSINE.

4. Incluya en el reporte los resultados de la simulación de forma digital. 5. Calibrar el generador de funciones con una señal cuadrada de niveles TTL y una frecuencia de 1 Hz.

Page 44: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 44

Figura 8.6 Proyecto P7_MOC3010

6. Considere que la alimentación del foco es de 127 V de c.a. de la línea y que deberá tomar todas las

precauciones necesarias para evitar una descarga eléctrica a algún miembro del equipo o a la fuente de voltaje.

Figura 8.7 7. La clavija deberá conectarse al cable de alimentación eléctrica de polos, en donde una punta irá a la

lámpara y la otra punta a la terminal MT1 del TRIAC como se muestra en la figura 8.8.

Figura 8.8 Conexión de la clavija

8. Considere que el circuito del lado derecho de la figura 8.7 no está conectado a tierra. 9. Compruebe la posición de las conexiones y evite que las terminales del cable de alimentación toquen

alguna otra parte del circuito.

Page 45: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 45

10. Compruebe el funcionamiento del reloj y el funcionamiento de las 4 terminales restantes que controlan al Flip Flop D.

11. Compruebe que el foco se encienda y apague de acuerdo a la salida de la GAL. Cuestionario

1. Investigue las condiciones de funcionamiento del MOC 3010 con respecto a las corrientes y voltajes que

se requieren para activar al led infrarrojo de entrada y las capacidades de corriente y voltaje del TRIAC de salida.

2. Qué ventajas y desventajas tiene el controlar cargas de corriente alterna empleando rectificadores de estado sólido en lugar de relevadores.

3. Investigue las características de los dispositivos denominados SCR y TRIAC que se emplean para el control de potencia alterna.

Page 46: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 46

Tema:

4.3. Lenguaje VHDL Objetivos

• Implementar 3 contadores de diferentes módulos para emplearlos en la construcción de un reloj

digital. • Emplear el lenguaje VHDL para generar los algoritmos de funcionamiento.

• Comprobar el funcionamiento de los 3 contadores

Introducción

El lenguaje VHDL se define como VHSIC HDL (Very High Speed Integrated Circuit Hardware Description Language) o Lenguaje de descripción de hardware de circuitos integrados de muy alta velocidad. Este lenguaje se emplea en la actualidad para describir, diseñar y simular los sistemas digitales modernos.

El diseño discreto de sistemas digitales ya no es posible debido a la muy alta complejidad de los sistemas actuales y es por eso que este lenguaje se emplea para describir circuitos en una forma más cercana a el lenguaje humano y alejada de los múltiples detalles que hay que controlar en los sistemas de circuitos de SSI, MSI y VLSI. VHDL es un lenguaje que tiene una sintaxis muy amplia y flexible y debido a ello es posible realizar diseños en forma estructural, en forma de flujo de datos y en forma comportamental.

Cada una de estas formas de diseño permite implementar a los sistemas digitales desde diferentes niveles de complexidad y control de los elementos que forman el sistema digital. Desde la forma más elemental de definición de terminales y compuertas hasta la forma más abstracta con elementos previamente diseñados y con el apoyo de lenguaje estructurado. En esta práctica se utilizará el lenguaje VHDL para realizar la implementación de 3 contadores de diferentes módulos y que serán empleados para realizar un reloj digital. El primer contador es un sistema de módulo 10 que se emplea para contar las unidades tanto de los segundos como las de los minutos ( 0 a 9 ) que tiene de entradas: el reloj y una señal de habilitación y de salidas: 4 bits para el número de 0 a 9 y un bit para indicar el fin del conteo. El segundo contador es un sistema de módulo 6 que se emplea para contar las decenas tanto de los segundos como las de los minutos ( 0 a 9 ) que tiene de entradas: el reloj y una señal de habilitación y de salidas: 3 bits para el número de 0 a 5 y un bit para indicar el fin del conteo. El tercer contador es un sistema de módulo 12 que se emplea para contar las horas en un formato de 12 horas en 5 bits divididos en 2 dígitos BCD ( 0 a 12 ) que tiene de entradas: el reloj y una señal de habilitación y de salidas: 4 bits para las unidades de las horas de 0 a 9, bit para las decenas de las horas de 0 a 1 y un bit para indicar si es p.m. o a.m.

Laboratorio de Dispositivos Lógicos Programables

Práctica 9 Contadores Mod 6, Mod 10 y Mod 12 con VHDL

Page 47: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 47

El programa fuente para el contador módulo 10 se muestra en la figura 9.1 a.

Figura 9.1 a Contador módulo 10 Figura 9.2 b Contador módulo 6 El programa fuente para el contador módulo 6 se muestra en la figura 9.2 b.

El programa fuente para el contador módulo 12 se muestra en las figuras 9.3 y 9.4.

Figura 9.3 Primera parte de Contador módulo 12

Page 48: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 48

Figura 9.3 Segunda parte de Contador módulo 12 Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica. 2. El alumno realizará la simulación de los 3 sistemas digitales analizando a partir del programa en VHDL la

asignación de terminales y las conexiones necesarias para realizar la simulación. 3. El circuito que se empleará será la GAL22V10D. 4. Entregar los resultados de la simulación de forma impresa o digital al profesor al inicio de la sesión de

laboratorio. Material

• 1 GAL22V10D

• Material necesario para la implementación de los 3 sistemas.

Equipo

• 1 Fuente de voltaje de CD.

• 1 Multímetro

• 1 Programador Universal • 1 Protoboard

• 1 Generador de funciones Procedimiento Experimental

1. El alumno creará en ISPLEVER los 3 proyectos indicados para los contadores módulo 10, módulo 6 y

módulo 12. 2. El alumno obtendrá cada uno de los 3 archivos .jed necesarios para realizar la programación de cada uno 3. de los contadores en la GAL. 4. El alumno probará cada uno de los circuitos contadores implementados empleando un reloj de 1Hz. Cuestionario

1. Explique el funcionamiento de las instrucciones del contador módulo 12. 2. Explique la característica del lenguaje VHDL que indica que utiliza programación paralela.

Page 49: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 49

Tema: 4.3. Lenguaje VHDL

Objetivos

• Diseñar un reloj digital de 24 horas con dispositivos GAL y electrónica de apoyo para mostrarlo en displays de 7 segmentos.

• Simular el sistema de reloj digital. Introducción Los dispositivos lógicos programables permiten reducir el tamaño de la electrónica digital necesaria para la implementación de un sistema.

En la actualidad existen dispositivos PLD’s de muy alta escala de integración y un número muy grande de terminales de entrada salida que permiten integrar dentro de ellos sistemas digitales muy complejos, tales como los dispositivos FPGA’s y los CPLD’s que tienen miles de terminales.

En esta práctica se realizará la integración de varios dispositivos GAL para diseñar un reloj digital de 24 horas empleando los contadores diseñados en la práctica 9 y adicionando la electrónica digital necesaria para poder mostrar las horas, minutos y segundos en el formato (A.M./P.M. 12:59:59) en 6 displays de 7 segmentos de cátodo común y dispositivos codificadores de BCD a 7 segmentos 74LS48 . El diseño se hará solamente de forma simulada debido al alto costo del material para realizar la implementación física.

El diseño deberá integrar un módulo que cuente los segundos en el rango de 0 a 59 con un reloj de entrada de 1Hz. y controlando el reloj del siguiente módulo, el cual deberá contar los minutos en el rango de 0 a 59 y controlando al tercer y último módulo que deberá contar las horas en un rango de 0 a 12 y actualizando un led de salida que muestre si es A.M. o P.M.

Figura 10.1 Reloj digital de 24 horas

Laboratorio de Dispositivos Lógicos Programables

Práctica 10 Reloj Digital de 24 horas con circuitos GAL

Page 50: Manual del Laboratorio de Dispositivos Lógicos Programables

Universidad Nacional Autónoma de México Facultad de Estudios Superiores Cuautitlán

Dispositivos Lógicos Programables 50

Actividades previas a la realización de la práctica

1. El alumno deberá realizar la lectura de la práctica. 2. El alumno diseñará el reloj digital mostrado en la figura 10.1 empleando 5 dispositivos GAL22V10D para

la representación de las horas, minutos y segundos, así como un led que muestre si es A.M. y P.M. 3. El alumno empleará dispositivos codificadores BCD a displays de cátodo común de 7 segmentos (74LS48). 4. El alumno simulará el diseño resultante y entregará a su profesor los resultados en forma escrita o

digital al inicio de la práctica.

Material

• 5 GAL22V10D

• 6 Displays de 7 segmentos cátodo común

• 6 Codificadores BCD a 7 segmentos 74LS48

• Circuitos necesarios para la implementación del reloj digital. Material necesario para la implementación del reloj digital.

Equipo

• Software de simulación de circuitos. Computadora personal. Procedimiento Experimental

1. El alumno implementará su diseño. 2. El alumno simulará su diseño. Cuestionario 1. Investigar las características de capacidad, velocidad, tamaño de los dispositivos FPGA’s y CPLD´s.