Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD PROFESIONAL
INTERDISCIPLINARIA EN INGENIERÍA Y
TECNOLOGÍAS AVANZADAS
PRÁCTICAS DE LABORATORIO DE
CIRCUITOS LÓGICOS
PRIMERA VERSIÓN
2017
Prácticas de Laboratorio de Circuitos Lógicos .
Práctica No. 1.
Compuertas básicas con elementos discretos y práctica guiada.
Basic gates with discrete elements and a guide practice.
Unidad Temática: I
Duración: 3.0 hrs. (Revisión 1er. hora práctica guiada de implementación de las
compueras básicas con VHDL y Verilog, 2da. hora implementación de aplicaciones)
Competencia Específica:
Implementa los circuitos con compuertas básicas en los CPLD o FPGA.
Pre-reporte uno.
Desarrollar los siguientes puntos como trabajo previo para el buen progreso de la práctica
[máximo 3 cuartillas si se entrega impreso (Letra Times New Roman de 12ptos, interlineado
sencillo)]:
1. Investigar las características del PLD, CPLD o FPGA que se utilizará, así como los
terminales de conección del dispositivo o tarjeta de desarrollo hacia los componentes y
conectores (tener a la mano los manuales de referencia y/o datasheets).
2. Escribir los códigos de VHDL y Verilog para programar las compuertas: AND, OR,
NAND, NOR, XOR, XNOR y NOT (según la entidad mostrada en la figura 1.1), que cumpla
con la tabla 1.1. Compilar o sintetizar para tener los archivos que se programarán en el
dispositivo lógico programable que contiene su sistema de desarrollo.
2
Prácticas de Laboratorio de Circuitos Lógicos .
3. Escribir en VHDL el código para programar una alarma contra robo para casa habitación,
que proteja 7 accesos (tres puertas y cuatro ventanas), como se muestra en la figura 1.2.
Diseñar y construir un circuito de alarma con enclavamiento utilizando un SCR y un Buzzer.
NOTA: En caso de no entregar el pre-reporte y/o de no traer el material (con los circuitos
armados), los alumnos NO TENDRÁN derecho a entrar al laboratorio. Los circuitos deben
de armarse de acuerdo con la indicación del archivo de restricciones. Coloque las preguntas
con su numeración en los pre-reportes y reportes.
Material y Equipo.
Dispositivos discretos (i.e. SPLD, CPLD o FPGA, con hojas de datos, especificaciones y
programador).
Elementos discretos: resistencias 330 a ½ W, Leds de diferentes colores (rojo, verde,
amarillo, naranja, ámbar, azul, etc.), interruptores SPST y dip switch de 8 interruptores, SCR
C106D (con hojas de datos y especificaciones), buzer o alarma, push botón NC o NO para
apagar la alarma.
Tarjeta de desarrollo: Cool Runner II, Basys 2, Nexys 2 ó 3 ó 4, DE2, etc.
Pinzas de punta y de corte.
Protoboard necesarios para tener armados los circuitos.
3
Prácticas de Laboratorio de Circuitos Lógicos .
Introducción.
4
Prácticas de Laboratorio de Circuitos Lógicos .
La gente encargada del desarrollo de esta tecnología logra el diseño de dispositivos más
potentes en espacios muy pequeños, lo cual se realiza por medio de algunas de las siguientes
técnicas: diseño totalmente a la medida (Full Custom Design), al diseñar transistor por
transistor hasta su implementación final en el circuito integrado (CI); diseño de los ASIC
(Application Specific Integrated Circuit), que propone la implementación de los diseños
sobre celdas programables. Dentro de ésta última se encuentra la familia de los Dispositivos
Lógicos Programables (PLD), tanto pequeños como los complejos (CPLD), cuyo nivel de
integración histórico se puede representar primeramente por los arreglos lógicos
programables (PAL), arreglos lógicos genéricos (GAL Generic Array Logic) hasta llegar a
los CPLD y los FPGA (arreglos lógicos programables en campo). Debido a su conectividad
han hecho posible la facilidad y factibilidad de disminuir los costos.
Los elementos mínimos necesarios para poder utilizar estas tecnologías se restringen a la
existencia y uso de una computadora con el software apropiado (por ejemplo: ISE o Vivado
de Xilinx), la interfaz, el programador externo (por ejemplo TopMax de eetools) o la
tarjeta de desarrollo (Nexys 2, Nexys 3, Nexys 4DDR), como lo mostrado en la figura 1.4.
Un objetivo de estas prácticas del laboratorio y del curso es el de manejar y aplicar el lenguaje
de programación VHDL (lenguaje de descripción en hardware) y Verilog, los cuales son
considerados como las herramientas de diseño por las industrias y las universidades de todo
el mundo, pues presenta grandes ventajas en la planeación y diseño de los sistemas
electrónicos digitales.
Por último, es bueno saber que el manejo de bits en HDL (Verilog y VHDL) se realiza por
medio de operadores, los cuales se muestran a continuación:
5
Prácticas de Laboratorio de Circuitos Lógicos .
? Condicional,
(condición) ? true_expr :
false_expr
6
Prácticas de Laboratorio de Circuitos Lógicos .
Desarrollo.
Práctica Guiada
Recuerde MOSTRAR sus circuitos funcionando a su profesor para la valoración del trabajo
de laboratorio (TL1).
(a) Abrir el programa “ISE Project Navigator” y crear un nuevo proyecto seleccionando
HDL (VHDL) y las características del componente a utilizar, por ejemplo para la Nexys
2: Spartan 3E, XC3S500E, FG320, XST (VHDL/Verilog), ISim (VHDL/Verilog).
Escribir el código en VHDL para declarar las compuertas de 3 entradas: AND, OR,
NAND, NOR, XOR, XNOR y además la NOT.
Nota: En el listado, los números del lado izquierdo no pertenecen al código en VHDL, solo
se utilizan para hacer una referencia a los renglones.
7
Prácticas de Laboratorio de Circuitos Lógicos .
18 -- BEGIN
19 SAND <= a AND b and c; --AND
20 SOR <= a or b OR c; --OR
21 SNAND <= not (a AND b AND c); --NAND
22 SNOR <= NOT (a OR b OR c); --NOR
23 SXOR <= a XOR b xor c; --XOR
24 SXNOR <= NOT (a xor b XOR c); --XNOR
25 SNOTB <= NoT b; --NOT B
26 -- End PROCess; --Fin del proceso
27 enD a_compu; --Fin de la Arquitectura
(c) Asignar por lo menos una salida a los conectores externos y medir los niveles lógicos
con un multímetro VL [V]= . VH [V]= . Completar la tabla 1.2. . Reportar con
fotos editadas con texto, flechas y recuadros.
Tabla 1.2. Niveles lógicos a las salidas de las compuertas.
8
Prácticas de Laboratorio de Circuitos Lógicos .
2. Escribir el código en VHDL para declarar un sistema de alarma para casa habitación que
tenga sensores de apertura activos en alto, que detectarán la apertura de tres puertas (P1,
P2, P3) y cuatro ventanas (V1, V2, V3, V4).
(a) Abrir el programa “ISE Project Navigator” y crear un nuevo proyecto seleccionando
HDL (VHDL) y las características del componente a utilizar, por ejemplo para la Nexys
2: Spartan 3E, XC3S500E, FG320, XST (VHDL/Verilog), ISim (VHDL/Verilog).
Generar el archivo de programación para la alarma, después de asignar los elementos
que se conectarán al FPGA. Programar el dispositivo con el archivo *.bit para un FPGA
o un archivo *.jed para un CPLD, ya sea desde el ISE de Xilinx o bien desde el programa
Adept de Digilent y probar el funcionamiento. Reportar el código y el funcionamiento
con fotos que tengan texto, flechas y recuadros.
Ahora se muestra a continuación una forma de realizar el programa de la alarma para casa
habitación con 7 entradas. Ya no se muestran las líneas numeradas.
-- Declaración de la Entidad
ENTITY alarma IS PORT (
V1, V2, V3, V4, P1, P2, P3: std_logic; -- Entradas
Alarma: OUT std_logic); -- Salidas
END alarma; -- Fin de la entidad
--Declaración de la Arquitectura
ARCHITECTURE a_alarm OF alarma IS
BEGIN
--PROCESS(V1,V2,V3,V4,P1,P2,P3) BEGIN
Alarma <= (V1 OR V2 OR V3 OR V4 OR P1 OR P2 OR P3);
--END PROCESS; --Fin del proceso, para este código se implementó por DataFlow
END a_alarm; --Fin de la Arquitectura
9
Prácticas de Laboratorio de Circuitos Lógicos .
(b) Para enclavar la alarma conectada al FPGA, colocar la salida en uno de los terminales
del FPGA o a un puerto de expansión de la tarjeta de desarrollo y de ahí al circuito con
un buzer activado por un SCR, como se muestra en la figura 1.5). Reporte su
funcionamiento así como las posibles mejoras al circuito para hacerlo más eficiente.
3. Describir las compuertas lógicas básicas empleando Verilog. Abrir el programa “ISE
Project Navigator” y crear un nuevo proyecto seleccionando HDL (Verilog) y las
características del componente a utilizar, por ejemplo para la Nexys 2: Spartan 3E,
XC3S500E, FG320, XST (VHDL/Verilog), ISim (VHDL/Verilog). Escribir el código
en VHDL para declarar las compuertas de 3 entradas: AND, OR, NAND, NOR, XOR,
XNOR y además la NOT. Probar su funcionamiento después de generar el archivo de
programación (*.bit o *.jed). Reportar con fotos editadas con texto, recuadros y flechas.
Nota: En el listado, los números del lado izquierdo no pertenecen al código en Verilog, solo
se utilizan para hacer una referencia a los renglones.
10
Prácticas de Laboratorio de Circuitos Lógicos .
En el renglón 3 se abre el módulo “module” seguido del nombre del módulo. En los
renglones 4 al 6 se declaran las entradas “input” y van alambradas “wire”, enseguida
del renglón 7 al 12 se declaran las salidas “output”, también alambradas, y se cierra el
módulo en el renglón 13. Todas las entradas y salidas van separadas por comas dentro
de los paréntesis del módulo y se cierra con punto y coma.
5. Implementar un circuito con HDL que permita controlar el encendido y apagado de una
carga (foco, motor, apertura-cierre de puertas, etc.) desde dos puntos, similar a los
apagadores de escaleras. El cableado de los controles debe de estar por lo menos
separado a un metro. Reportar el código utilizado y fotos de su funcionamiento editadas
con texto.
11
Prácticas de Laboratorio de Circuitos Lógicos .
6. Implementar un circuito (utilizando circuitos lógicos programables con HDL) que por
medio del paso de una mano sobre un sensor de luz (i. e. LDR), que impida la incidencia
de la luz sobre el sensor, y la presencia de una persona (con otro sensor), suene el timbre
de una casa. Reportar el código utilizado y fotos de su funcionamiento con texto.
7. Diseñar un circuito (utilizando HDL) que por medio de la presencia de una persona o
por el aumento de la temperatura en una habitación, se encienda un ventilador. Si utiliza
algún dispositivo programable escriba su listado.
8. Utilizando HDL diseñar un circuito que permita el acceso a un banco de doble puerta,
que solo permita abrir una puerta a la vez, nunca las dos al mismo tiempo. Si utiliza
algún dispositivo programable escriba su listado.
9. Realizar sus comentarios y conclusiones. Todos los códigos van en una sola columna
con comentarios.
NOTA: Respetar la numeración de cada punto de este formato en el reporte escrito [máximo
10 cuartillas si se entrega impreso (Letra Times New Roman de 12ptos, interlineado
sencillo)].
Diseñar y construir un sistema para detectar el nivel de llenado de dos tanques, tal que avise
cuando el nivel de cualquiera de los tanques esté por debajo del 10% de llenado.
Diseñar y construir un sistema para detectar la posición del tren de aterrizaje de un avión.
12
Prácticas de Laboratorio de Circuitos Lógicos .
Se desea diseñar un circuito lógico, empleando compuertas básicas, para realizar todas las
operaciones lógicas dentro de una ALU (unidad aritmética lógica) manejando datos de
tamaño de nibbles. (Ver figura 1.6).
Se desea diseñar un circuito lógico que pueda realizar todas las operaciones lógicas dentro
de una ALU (unidad aritmética lógica) manejando datos de tamaño de bytes.
Se desea diseñar un circuito lógico que pueda realizar todas las operaciones lógicas dentro
de una ALU (unidad aritmética lógica) manejando datos de tamaño de words (2 Bytes).
Recuerda que:
"La práctica hace al maestro"
13
Prácticas de Laboratorio de Circuitos Lógicos .
14
Prácticas de Laboratorio de Circuitos Lógicos .
Página
Dejada
En
Blanco
Page
Left
In
Blank
15