Circuito de refresco de un Display



Documentos relacionados
Laboratorios de Sistemas Digitales Avanzados 5º curso de Ingeniería en Informática

Laboratorio 4: Uso de una FPGA

Introducción a Verilog y XILINX

Introducción a Verilog y XILINX

18. Camino de datos y unidad de control

Universidad Autónoma de Baja California Facultad de Ingeniería Mexicali

Circuitos Digitales CON José Manuel Ruiz Gutiérrez

GRADO EN INGENIERÍA ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL

Formato para prácticas de laboratorio

KW x hora. on/off

Práctica PLC1: Introducción a la programación del PLC Siemens 314IFM en el entorno Step-7

Proyecto de Diseño 2

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

Instituto Tecnológico de Massachussets Departamento de Ingeniería Eléctrica e Informática Circuitos electrónicos Otoño 2000

P2: Configuración Básica de Redes IP con Equipos TELDAT

Centro de Capacitación en Informática

TEMA 4. MÓDULOS COMBINACIONALES.

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Construcción de Escenarios

Práctica 1. Compuertas Lógicas

Capítulo 4 Procesos con estructuras de repetición

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Nombre del estudiante: Grimaldo velazquez Rafael. Herrera Díaz Jefree. Campus: san Rafael

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL SAN NICOLÁS INGENIERIA ELECTRÓNICA TÉCNICAS DIGITALES III

Notas de la versión DMO

DCU Diagramas de casos de uso

Circuitos Electrónicos. Septiembre 2005/2006. Problema 1º parcial

Bienvenido al sistema de Curriculum Digital CVDigital

Capítulo En la sección anterior se explicó el diseño, construcción y programación del

PROGRAMACION LADDER PLC BASICA. Descripción del lenguaje ladder

Programación básica del PLC S

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

AUTOMATIZACIÓN INDUSTRIAL

❷ Aritmética Binaria Entera

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

Módulo II - PowerPoint

Boletín de Problemas de Circuitos Combinacionales. Fundamentos de Electrónica 3º Curso Ingeniería Industrial

Profesor: Pascual Santos López

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

CODIFICADORES Y DECODIFICADORES. DISPLAYS.

6. Controlador del Motor

Laboratorio 2: Mediciones Digitales

Microsoft Access proporciona dos métodos para crear una Base de datos.

Capítulo Comunicaciones de datos 1. Conexión de dos unidades 2. Conectando la unidad con una computadora personal

AUTOR CARLOS EDUARDO BUENO VERGARA JORGE ARMANDO BUENO VERGARA USO DE LOS OBJETOS DEL PROGRAMA. Dfd INFORMÁTICA II PROFESOR. JOSÉ FRANCISCO AMADOR

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

MANEJANDO FICHEROS Y CARPETAS

GUIAS ÚNICAS DE LABORATORIO DETECTOR DE MONEDAS AUTOR: ALBERTO CUERVO SANTIAGO DE CALI UNIVERSIDAD SANTIAGO DE CALI DEPARTAMENTO DE LABORATORIOS

Práctica 2: El problema de la sección crítica

5.1.1 Sumadores con anticipación de Acarreo. g i = a i b i. c i = c i-1 p i + g i s i = p i + c i-1. c 0 = g 0 + c -1 p 0

PRÁCTICA DE SÍNTESIS

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

MÓDULO DE COMUNICACIÓN IP IPS 100 REG

Lab 5: Contador decimal en System Generator

GUIAS ÚNICAS DE LABORATORIO GENERADOR DE NÚMEROS PRIMOS AUTOR: ALBERTO CUERVO

Aparatos verificadores G /G

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

PLANES DE EMPRESA ICEX CONSOLIDA. Manual de Usuario

PRÁCTICA 3 Montaje y evaluación de sistemas digitales combinacionales.

PROTEUS Depuración de programas para microprocesadores

Nota Técnica Abril 2014

1. Módulo de desarrollo Spartan 3 STARTER KIT con un FPGA xc3s200 ft Software de diseño XILINX ISE versión 10.1

Tema 4: Circuitos combinacionales

Importador Universal - Operaciones

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

GUÍA BÁSICA DE USO DEL SISTEMA RED

En qué Momento se debe Instalar una Empresa? Cuál es el Proceso para Instalar la Primera Empresa?

MINISTERIO DE EDUCACION NACIONAL

Ficheros Electrónicos

Toplogías: Tipo Bus (barra), tipo Star (estrella), tipo Ring (anillo), tipo Starshaped Ring (Anillo estrellado): Forma general.

Laboratorio 4. Objetivos

Unidad 3 Direccionamiento IP (Subnetting)

CURSO SOBRE LA PDi SMART USO DEL SOFTWARE NOTEBOOK.

Manual de Instalación

1. Representación de la información en los sistemas digitales

GUÍA BÁSICA DE USO DEL SISTEMA RED

TEMA 7: DIAGRAMAS EN UML

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

Anexo B. Comunicaciones entre mc y PC

PRÁCTICA C INTRODUCCIÓN AL PAQUETE COMPUTACIONAL ELECTRONICS WORKBENCH 4.0

La memoria principal. Los subsistemas de E/S. Los buses del sistema

NORMA (SEPA) 22/11/2013

ÍNDICE 1.0 INTRODUCCIÓN INSTALACIÓN Inserción de la tarjeta en el dispositivo Inserción del dispositivo CAM tdt en el televisor 4

Planificación y administración de redes

ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00820B)

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech

Manual del usuario. Flash Point Genius. FLASH POINT GENIUS: Programación Serial para turismos

DESCRIPCIÓN TÉCNICA SYSTEM MANAGER SOFTWARE (SMS)

1 La Resolución de Problemas utilizando la Computadora

Guía de uso de Moodle para participantes

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

GUÍA DE EJERCICIOS Nº 2 INSTRUMENTACIÓN AVANZADA. Estructuras en LabVIEW PROGRAMACIÓN GRÁFICA

Proyecto final Diseño de un circuito secuencial. utilizando un contador binario de cuatro bits

Modelos y Bases de Datos

HP Backup and Recovery Manager

Funcionamiento del Correo Electrónico

Transcripción:

DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Circuito de refresco de un Display Sistemas Digitales Avanzados 1. Introducción y objetivos Uno de los objetivos generales de la asignatura es llegar a conocer la metodología de diseño de sistemas digitales. La metodología utilizada a lo largo del curso será la denominada bottom-up. Esta metodología consiste básicamente en desarrollar en primer lugar los módulos de menor nivel en el diseño para unirlos finalmente en módulos de nivel superior hasta completar el diseño del sistema. Los objetivos de esta práctica es desarrollar un módulo reutilizable en los posteriores diseños. Concretamente se tratan estos aspetos: Familiarización con el uso del reloj. Comprobar el efecto del refresco en pantallas. Nombre del fichero Contenido Descripción convertidor.v display_mem_tb.v basys2.ucf Módulo con el código del convertidor 7 segmentos. Testbench para el módulo display_mem.v. Xilinx constraint file. Proviene de la sesión anterior. Debe corregir el error que contiene. Conexión de los componentes de la placa Basys2 con los Pads de la FPGA. Tabla 1. Ficheros necesarios durante la sesión de laboratorio. 2. Visión global del sistema a desarrollar Se diseñará un controlador de display como el mostrado a nivel de bloques en la figura 1. Este Rev. 1.233

Sistemas Digitales Avanzados 2 controlador contiene una memoria de 16bits donde se escribirá el dato a mostrar. Cada uno de los displays mostrará los dígitos 0-9-A-F, representándose en total 4 bits en cada uno de los dígitos. Habitualmente para ahorrar Pads en las conexiones de displays cada segmento de todos los diferentes dígitos están conectados entre sí. Esto significa que al intentar iluminar un segmento se ilumina dicho segmento en todos los dígitos. Para visualizar diferentes segmentos simultáneamente en cada dígito se controlan los ánodos de los dígitos, éstos, se conectan a otros Pads. Estos ánodos se comportan como interruptores ON-OFF de los displays. Como veremos en esta sesión de laboratorio, activando los diferentes dígitos de manera consecutiva y a intervalos de tiempo regulares, sólo hay que estableciendo los valores correctos los segmentos para visualizar diferentes números. Es importante controlar el display con una señal de una frecuencia adecuada para que el ojo humano no perciba el efecto, esto se mostrará a lo largo del desarrollo. Por otro lado, indicar que la señal de control w_display se utiliza para cambiar el número a mostrar, realmente se escribe en la memoria interna de 16bits. 16 w_display an[3:0] seg[6:0] dp d[15:0] Display Controller 4 7 CLK60HZ Figura 1. Controlador de display 7 segmentos. 3. Realización de un divisor de frecuencia Para comenzar el desarrollo comprobará el correcto funcionamiento del reloj de la placa mediante la implementación de un divisor de frecuencia conectado a un LED. Se utilizará un contador como divisor de frecuencia. Partiendo de un proyecto vacío realice lo siguiente: Contador módulo 32 1. Añada un nuevo módulo al proyecto en un fichero llamado contador_generico.v. Diseñe como módulo independiente un contador 32 de 32 bits como el de la figura 2. clk q[31:0] 2. Ahora cree un nuevo testbench para el contador, para ello, añada un nuevo fichero al proyecto con el asistente indicando el tipo de fichero Figura 2. Contador de 32 bits. como Verilog Test Fixture y llamado contador_generico_tb.v. Al tener el mismo nombre de fichero, pero terminado en _tb asociará automáticamente el módulo con el mismo nombre. Los testbenchs en Verilog están formados por un conjunto de procesos ejecutados concurrentemente. Existe un bloque especial llamado initial que es ejecutado una sola vez aquí, se establecen los distintos

Sistemas Digitales Avanzados 3 valores que tomarán las señales de entrada. Este proceso se suele finalizar con la sentencia $finish; conello, se para el simulador. En caso de existir otro proceso concurrente que no hubiera finalizado, si no se utiliza esta sentencia la simulacion continuaría. En la generación del reloj se suele utilizar un proceso separado y ejecutado concurrentemente donde se establece cada cuanto tiempo se debe invertir la señal de reloj. Para ello se utiliza la entencia always. Dentro de cada proceso los cambios de las señales se retrasan un determinado intervalo de tiempo para construir el test. Esta espera de tiempo se consigue precediendo cualquier bloque Verilog por #<numero> donde el número indica las unidades de tiempo a esperar según la escala de tiempo establecida al principio del fichero. Tras estas indicaciones se propone realizar lo siguiente: 3. Utilizando como ejemplo el testbench del contador del laboratorio anterior, cree un testbench usando la sentencia Verilog repeat(<numero>) @(<señal>) generando un reloj con al menos 1000 ciclos. Realice una simulación y no se olvide de añadir el proceso encargado de invertir el reloj. 3.1. Solucione el problema observado en la simulación alterando el contador y el testbench. 3.2. Realice la simulación y cambie la opción Radix de la salida Q del contador a decimal. Despliegue las formas de onda individuales de cada bit para comprobar la división de frecuencia en cada bit del contador. El reloj de la placa Basys2 funciona por defecto a 50Mhz y está conectado al Pad B8 de la FPGA. El objetivo es conseguir que un Led de la placa parpadee entre 1-5 veces por segundo, es decir, a una frecuencia entre 1hz-5hz. Debe escoger una salida adecuada del contador para conseguirlo interconectandola con el Led. 4. Cree un nuevo módulo en un fichero separado con dos entradas y una salida: EXTCLK, RESET y LED0 respectivamente. 4.1. Instancie el contador de 32 bits interconectando el reloj externo y la señal RESET con el contador. 4.2. Escoja una salida adecuada de las 32 disponibles en el contador para conectarla a la señal LED0. 4.3. Utilice el fichero adjunto llamado basys2.ucf para conectar correctamente las entradas y salidas de su módulo a los componentes de la placa Basys2. 4.4. Implemente el desarrollo, programe la placa y compruebe si el LED0 parpadea. Se realizará ahora un segundo circuito consistente en un generador de secuencia para controlar la iluminación de los cuatro displays 7 segmentos. La figura 3 muestra el diagrama de bloques con los componentes que forman el controlador de display a diseñar.

Sistemas Digitales Avanzados 4 an[3:0] Generador de secuencia AN[3] AN[2] AN[1] AN[0] CLK60HZ 7 seg[7:1] dp Convertidor 7seg 4 AN[3] AN[2] AN[1] AN[0] S0 S1 S2 C3 C2 C1 C0 S3 4 4 4 4 w_display w D3[3:0] w w w D2[3:0] D1[3:0] D0[3:0] d[15:12] 4 d[11:8] 4 d[7:4] 4 d[3:0] 4 16 d[15:0] Figura 3. Diagrama de bloques de un controlador para un display 7 segmentos. 5. Realice un módulo llamado secuencia con una entrada de reloj y otra de reset que genere consecutivamente la secuencia: 0111, 1011, 1101, 1110. Las salidas serán un bus de 4 bits llamado AN. Simule el circuito para comprobar el funcionamiento. 6. En un nuevo fichero cree otro módulo llamado display con la siguiente interfaz: module display( input extclk, input reset, output [3:0] an) 6.1. Instancie en el módulo del contador de 32 bits y el generador de secuencia. Debe usar como reloj para el generador de secuencia una de las salidas el contador para que oscile a 1-5hz. 6.2. Cree un fichero UCF para conectar las señales AN a 4 Leds, la señal extclk al reloj al de la placa y la señal reset a un botón. 6.3. Programe la placa y compruebe los cuatro leds.

Sistemas Digitales Avanzados 5 7. Los cuatro registros y el multiplexor se realizarán en un único módulo llamado display_mem con la siguiente interfaz: module display_mem(input [15:0] d_in, input w, input reset, input [3:0] sel, output [3:0] d_out). 7.1. Se recomienda realizar el multiplexor con una sentencia case. Considere utilizar la clausula default en la sentencia ya que no se cubrirán todos los casos. 7.2. Utilice el fichero display_mem_tb.v para realizar la simulación. Este fichero no se limita a realizar una simulación, además, comprueba si el módulo funciona correctamente, pero contiene un error. 7.3. Ejecute el testbench y compruebe la salida de texto mostrada tras la simulación donde se indicarán los errores obtenidos. Corrija el testbench para que opere correctamente y compruebe si su módulo contiene errores. 8. Para terminar el controlador de display se modificará el módulo display con la siguiente interfaz: module display(input extclk, input reset, output [6:0] seg, output [3:0] an). 8.1. En el módulo debe instanciar: el contador de 32bits, el generador de secuencia, la memoria y el convertidor 7 segmentos, este último, realizado en el laboratorio anterior. 8.2. Para realizar una prueba rápida se conectará la salida de 1-5hz del contador a la señal de escritura de la memoria del displays. Además debe establecer constante el valor del dato d_in de la instancia de la memora a un valor de 16 bits, por ejemplo, 16'ABCD. 8.3. Edite el fichero UCF asociando correctamente las entradas y salidas de este nuevo módulo. 8.4. Programe la placa para comprobar el resultado. 8.5. En una segunda prueba se propone conseguir una tasa de refresco del display al menos de 25hz, para ello, cambie la frecuencia del reloj del generador de secuencia a una señal del divisor de frecuencia adecuada para 25-60hz. 8.6. Vuelva a programar la placa para comprobar el resultado. 9. Por último se propone que vuelva a implementar el módulo display mediante una única descripción Verilog, es decir, sin utilizar instancias de otros módulos. Para ello utilice varias sentencias always en el mismo módulo.