GUIAS DE LABORATORIOS PARA ELECTRONICA DIGITAL I Autor: Carlos Alberto Ortega Huembes Managua, 9 de Julio de 2015 UN
Views 358 Downloads 6 File size 2MB
GUIAS DE LABORATORIOS PARA ELECTRONICA DIGITAL I
Autor: Carlos Alberto Ortega Huembes
Managua, 9 de Julio de 2015
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I
Práctica Nº 1. Introducción al entorno ISE® de Xilinx Datos de la práctica Carrera Semestre Tipo de Práctica Asignatura Unidad Temática Nº Alumnos por práctica Nombre del Profesor Nombre(s) de Alumno(s) Tiempo estimado Comentarios
INGENIERÍA ELECTRÓNICA Grupo Laboratorio Simulación Fecha Electrónica Digital I 2
Nº Alumnos por reporte
2
1. 2. Vo. Bo. Profesor
Objetivo Familiarizar al usuario en el uso del ambiente de software integrado Xilinx ISE®v14.7 Project Navigator y el kit de desarrollo Basys2 mediante la creación de un programa de lógica combinacional y su respectiva simulación.
Medios a utilizar Por cada práctica y por cada puesto de laboratorio, los materiales a utilizar es: Cantidad Descripción 1
Computadora
1
Tarjeta de desarrollo Basys2 Digilent
1
Software Xilinx ISE® Webpack v14.7
Introducción Los circuitos digitales presentan dos estados, un estado se aproxima a cero volts (low) y el otro estado suministra el voltaje (high) y se pueden procesar en números binarios, en este caso 1 o 0. Los circuitos digitales pueden estar conectados entre sí por medio de compuertas digitales: OR, NOR, AND, exclusivamente OR, exclusivamente NOR y NAND. En esta práctica de laboratorio se implementan las compuertas: AND, OR y XOR. El programa consiste en describir tres salidas c, d y e como la combinación lógica de las entradas a y b. Así, c = a+b, d = a*b y e = a ⨁ b. Elaborado por: Ing. Carlos Ortega
1
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I
Actividades previas Completar la tabla de las compuertas AND, OR y XOR con las ecuaciones descritas anteriormente. Entradas a 0 0 1 1
b 0 1 0 1
c
Salidas d
e
Desarrollo de la práctica Creación de un proyecto en Project Navigator 1. Abrir Xilinx-ISE®. 2. Cerrar cualquier programa que esté abierto (File → Close Project). 3. Abrir un nuevo proyecto (File → New Project). Escribir el nombre del proyecto y presionar en la pestaña Next.
Elaborado por: Ing. Carlos Ortega
2
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I 4. Asegurar que las propiedades del proyecto son iguales a la de la figura y presionar la
pestaña Next.
5.
En la siguiente ventana, clic en la pestaña Finish.
Elaborado por: Ing. Carlos Ortega
3
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I 6.
Crear una nueva fuente. En la ventana Sources clic derecho en la carpeta y seleccionar New Source… y presionar Next.
7.
Elegir la opción VHDL Module, en File name escribir Compuertas y presionar Next.
Elaborado por: Ing. Carlos Ortega
4
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I 8.
En la siguiente ventana definimos las entradas y salidas del módulo. Las variables a y b están definidas como entradas (input) y las variables c, d y e como salida (output).
Clic en todas las demás opciones: Next →Finish. 10. En la ventana Sources verificar que aparezca el dispositivo y el módulo principal. 9.
11. En la ventana de edición aparece las partes del código VHDL, en el cual contienen las
librerías, la entidad y la arquitectura. Librerías
Entidad
Arquitectura
Elaborado por: Ing. Carlos Ortega
5
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I 12. Guardar los cambios en el código, realizados en el paso anterior. 13. Seleccionar el módulo principal
en la
ventana Sources. 14. En Processes, elegir Synthesize-XST en el más desplegable, clic derecho en la opción Check Syntax y elegir Rerun All.
15. En la ventana Console, verificar que aparezca el siguiente mensaje.
Nota: El proceso verifica que no haya errores de sintaxis, de haberlo hay que corregir.
Elaborado por: Ing. Carlos Ortega
6
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I Simulación de un circuito digital Durante la simulación en HDL, el software verifica la funcionalidad y la temporización del circuito como parte del proceso de diseño. Primero hay que tener una descripción del circuito a realizar a través del lenguaje VHDL. La simulación es un proceso iterativo, es decir que puede ser un proceso repetitivo hasta que la funcionalidad del tiempo y del diseño sea satisfactorio. 1.
Una vez verificado la sintaxis, el siguiente paso sería la simulación, en el cual crearemos un nuevo archivo VHDL llamado “VHDL Test Bench”. Para poder hacerlo se agrega una nueva fuente “New Source” y escogemos el tipo de archivo el cual llamaremos Compuertas_tb.
2.
En Design, escoger en modo Simulation.
Elaborado por: Ing. Carlos Ortega
7
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I 3.
Aparece en la ventana principal lo siguiente
4. 5.
Comentar las líneas referentes a circuitos de reloj con las líneas --. Añadir las siguientes líneas después del cometario --Insert stimulus here y antes de la sentencia end. a B => C => F => );
PORT MAP( J, K, L, F1 PORT MAP( F1, M, N, Q
Componente del Archivo ANDOR
Instancias del Archivo ANDOR para generar el bloque final
P S(0) ); U2: Adder1b PORT MAP( A => A(1), B => B(1), Cin => c1, Cout => c2, S => S(1) ); U3: Adder1b PORT MAP( A => A(2), B => B(2), Cin => c2, Cout => c3, S => S(2) ); U4: Adder1b PORT MAP( A => A(3), B => B(3), Cin => c3, Cout => Cout, S => S(3) );
Nota: Recuerde solo poner una vez un componente para el archivo Adder1b y crear señales intermedias para poder hacer la instancia de los bloques.
Elaborado por: Ing. Carlos Ortega
27
Cin
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I 7. Crear la simulación para el sumador completo de 4 Bits. 8. Implementar este diseño con los nets correspondientes en la Basys2. Creación de Restador Completo de 4 Bits 9. Cree un nuevo Proyecto llamado Sub4bLogic. 10. Agregue los archivos Adder1b.vhd y .ucf del proyecto anterior del sumador completo de 4 bits. Esto lo hacen con la opción de Add Copy of Source. 11. Cree un nuevo archivo Top llamado Sub4bLogic, el cual se instanciara según el siguiente diagrama de bloques. B3
A3
B
A Cout
A2
Full Adder Adder1b
B2
A Cin
Cout
B
Full Adder
C3
Adder1b
S3
Cin
Cout C2
S2
A0
B
A
Full Adder Adder1b
S
S
Cout
B1
A1
B0
A Cin
Cout C1
B
Full Adder
S
S1
Cin
Cin= 1
Adder1b S
S0
12. Realice la Simulación e impleméntelo en el Kit Basys 2.
Actividades propuestas Práctica 1. Diseñe un circuito multiplicador de 4 bits (Mult4bLogic) utilizando el proyecto del Sumador de 4 Bits (Adder4bLogic). 2. Diseñe un circuito divisor de 4 bits (Div4bLogic). El reporte debe incluir: Diagrama de Bloques generado por el ISE® Comprobación del funcionamiento mediante simulación en ISim. Utilice las capturas de pantalla (tecla: PRTSC) para explicar el procedimiento. Actividades de aprendizaje ¿Podría realizarse un circuito sumador/restador en un mismo diseño, de tal forma que se pueda seleccionar que la operación deseada sea suma o resta? ¿Y en VHDL? Proponga una solución a este reto con un algoritmo que satisfaga esta necesidad. Elaborado por: Ing. Carlos Ortega
28
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I
Práctica Nº 4. Decodificador Hexadecimal a 7 segmentos Datos de la práctica Carrera Semestre Tipo de Práctica Asignatura Unidad Temática Nº Alumnos por práctica Nombre del Profesor Nombre(s) de Alumno(s) Tiempo estimado Comentarios
INGENIERÍA ELECTRÓNICA Grupo Laboratorio Simulación Fecha Electrónica Digital I 2
Nº Alumnos por reporte
2
1. 2. Vo. Bo. Profesor
Objetivo Comprender el funcionamiento de un decodificador a 7 segmentos para que el estudiante utilice este módulo en prácticas posteriores.
Medios a utilizar Por cada práctica y por cada puesto de laboratorio, los materiales a utilizar es: Cantidad Descripción 1
Computadora
1
Tarjeta de desarrollo Basys2 Digilent
1
Software Xilinx ISE® Webpackv14.7
Introducción El display de 7 segmentos es un componente que se utiliza para la representación de caracteres en muchos dispositivos electrónicos (Figura 1). El principal componente de este diseño será un decodificador de Hexadecimal a 7 segmentos que es un circuito combinacional utilizado para tomar una entrada Hexadecimal de cuatro bits y proporcionar las salidas que pasaran corriente a través de los segmentos apropiados para desplegar visualmente el dígito decimal.
Elaborado por: Ing. Carlos Ortega
29
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I Código hex
display
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9 A B C D E F
abcdefg
Figura 1
Tabla 1
Actividades previas Diseñar un decodificador de hexadecimal a 7 segmentos. Incluya la tabla de verdad con las ecuaciones lógicas y el diagrama con compuertas. Completar en la Tabla 1 la señal de los segmentos abcdefg para activar el código correspondiente a cada número hexadecimal.
Desarrollo de la práctica 1. Crear un nuevo proyecto en ISE®. 2. Crear el módulo Hex7Segb descrito en el siguiente programa. entity Hex7Segb is port( x : a_to_g ); end Hex7Segb;
in STD_LOGIC_VECTOR(3 downto 0); : out STD_LOGIC_VECTOR(6 downto 0)
architecture Behavioral of Hex7Segb is begin P1: process(x) begin case x is
Elaborado por: Ing. Carlos Ortega
30
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN
Dept. Sist. Digitales y Telecomunicaciones
Electrónica Digital I when when when when when when when when when when when when when when when when end case; end process;
x"0" => a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g a_to_g when X"3" => a_to_g when X"4" => a_to_g when X"5" => a_to_g when X"6" => a_to_g when X"7" => a_to_g when X"8" => a_to_g when X"9" => a_to_g Elaborado por: Ing. Carlos Ortega