Labs FPGA

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

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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