reloj digital

44
i Universidad Mayor de San Andrés Facultad de Ingeniería Carrera Ingeniería Electrónica Proyecto de Final de Curso ETN 601 - Sistemas Digitales I “DISEÑO E IMPLEMENTACIÓN DE UN RELOJ DIGITALPor: Américo Álvarez Surci Docente: Roberto Oropeza Crespo La Paz – Bolivia Diciembre 2010

Upload: jeniferalbertis

Post on 25-Nov-2015

165 views

Category:

Documents


10 download

TRANSCRIPT

  • i

    Universidad Mayor de San Andrs Facultad de Ingeniera Carrera Ingeniera Electrnica Proyecto de Final de Curso ETN 601 - Sistemas Digitales I DISEO E IMPLEMENTACIN DE UN RELOJ DIGITAL Por: Amrico lvarez Surci Docente: Roberto Oropeza Crespo La Paz Bolivia Diciembre 2010

  • ii

    INDICE GENERAL INDICE DE FIGURAS IV INDICE DE TABLAS V RESUMEN VI CAPITULO 1: ANTECEDENTES Y PROPSITOS 1 1.1. Introduccin 1 1.2. Objetivos 2 1.2.1. Objetivo principal 2 1.2.2. Objetivos secundarios 2 1.3. Metodologa 2 CAPITULO 2: DESARROLLO TERICO 3 2.1. Elementos del reloj digital 5 2.1.1. Codificadores, decodificadores 5 2.1.2. Contadores 8 2.1.3. Generador de pulsos (multivibrador-astable) 11 2.3. Descripcin de Hardware 13 2.3.1. VHDL 13 i) Elementos Bsicos VHDL 14 ii) Estructura Bsica de un archivo fuente en VHDL 16 CAPITULO 3: MECANISMO DE DISEO 21 3.1. SS: Segundos 21 3.2. MM: Minutos 22 3.3. HH: Horas 23 3.4. Ajuste de hora 24 3.5. Descripcin VHDL 25

  • iii

    CAPITULO 4: SIMULACIONES Y PRUEBAS EN LABORATORIO 30 4.1. Simulacin plano circuital usando Proteus 30 4.2. Simulacin VHDL usando Quatus2 32 CAPITULO 5: CONCLUSIONES Y MEJORAS 35 5.1. Conclusiones 35 5. 2. Mejoras 35 6. BIBLIOGRAFA 36 7. ANEXOS 36 7.1. Tarjeta Cyclone II- DE2 de Altera 36

  • iv

    INDICE DE FIGURAS Figura 1: Reloj Digital Figura 2: Reloj Atmico NIST-F1, EE.UU. Figura 3: Decodificador Bsico Figura 4: Diagrama de Pines CI 7447 Figura 5: Contador Sncrono Modulo-3 Figura 6: Diagrama de Tiempos Contador Flanco descendente Figura 7: Contador Asncrono Figura 8: Multivibrador Astable con transistores Figura 9: Multivibrador astable con CI 555 Figura 10: Ejemplo de Entity Figura 11: Diagrama de bloques del Segundero Figura 12: Diagrama de bloques del decodificador Figura 13: Diagrama de bloques del Minutero Figura 14: Diagrama de bloques del Horero Figura 15: Plano Circuital completo del Reloj digital Figura 16: cada 60 Pulsos de 1Hz, se enva un Impulso (clock del minutero) Figura 17: cada 60 impulsos del minutero, se enva un Impulso (clock del horero) Figura 18: Segmento de cuenta segundero y reset Figura 19: Segmento, ajustando horas y minutos

  • v

    INDICE DE TABLAS Tabla 1: Decodificador binario a display 7 segmentos nodo comn Tabla 2: tabla de verdad de CI 7447 Tabla 3: Secuencia de Cuenta de CI 7490 Tabla 4: Tabla de verdad de CI 7490 Tabla 5: Codigo VHDL reloj digital Tabla 6: Numero decimal mostrado en quartus2 que representa los 7 bits, del decodificador

  • vi

    Resumen Con la utilizacin de contadores, decodificadores y varios otros componentes digitales se implementara en laboratorio un reloj que nos mostrara horas, minutos segundos, adems se implementara este mismo en una tarjeta de estudio DE2, utilizando lenguaje de descripcin de hardware VHDL. Se visualizara el reloj en displays de 7 segmentos, contara con la funcionalidad de modificar la hora, adems que contara con un clock de 1 segundo.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 1

    CAPITULO 1: ANTECEDENTES Y PROPSITOS 1.1. Introduccin En los tiempos actuales es masiva la utilizacin de Sistemas Digitales ya que proporcionan una serie de ventajas con respecto a la electrnica analgica, y ha sido utilizada incluso en dispositivos pequeos como un reloj, el cual ha pasado del uso de las manecillas para la indicacin de la hora a proporcionar una visualizacin numrica de la misma gracias a la electrnica digital. El reloj digital es un proyecto ampliamente conocido y realizado en cursos bsicos de sistemas digitales, con este proyecto se pretende demostrar todo lo aprendido en dicho curso. La bibliografa que se puede encontrar sobre este tema es extensa, el aadido de este trabajo es que aparte de disear el reloj con circuitos integrados comunes, se utiliza la descripcin de hardware para describir nuestro reloj digital.

    Figura 1: Reloj Digital

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 2

    1.2. Objetivos 1.2.1. Objetivo principal Diseo e implementacin de un Reloj digital utilizando componentes digitales bsicos y descripcin de este, utilizando VHDL. 1.2.2. Objetivos secundarios Descripcin de diferentes contadores digitales para la utilizacin en segundero, minutero y horas. Manejo de decodificadores de binario a 7 segmentos (display). Descripcin en un solo modulo, para representar el reloj. 1.3. Metodologa La elaboracin de este proyecto tiene dos etapas importantes: hardware y el software En la parte de hardware nos enfocaremos en el diseo utilizando diferentes circuitos integrados bsicos, conectados de tal forma que emulen el funcionamiento de un tpico reloj digital. Y cuando nos referimos a software utilizaremos el paquete informtico Quatus-2, para realizar la descripcin de hardware utilizando el lenguaje vhdl, para describir nuestro circuito reloj digital. Adems para correcciones si se lo amerita se empleara el software Proteus, para la simulacin de nuestro circuito a montar en laboratorio.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 3

    CAPITULO 2: DESARROLLO TERICO Se denomina reloj a un instrumento que permite medir el tiempo. Existen diversos tipos, que se adecuan segn el propsito: Conocer la hora actual (reloj de pulsera (automtico o 'de cuerda'), reloj de bolsillo, reloj de saln o pared, cronmetro) Medir la duracin de un suceso (crongrafo, reloj de arena) Sealar las horas por sonidos parecidos a campanadas o pitidos (reloj de pndulo, reloj de pulso con bip a cada hora) Activar una alarma en cierta hora especfica (reloj despertador) Los relojes se utilizan desde la antigedad. A medida que ha ido evolucionando la ciencia y la tecnologa de su fabricacin, han ido apareciendo nuevos modelos con mayor precisin, mejor prestancia y menor costo de fabricacin. Es quiz uno de los instrumentos ms populares que existen actualmente y casi todas las personas disponen de uno o varios relojes personales de pulsera. Mucha gente, adems de la utilidad que los caracteriza, los ostenta como smbolo de distincin y estatus social. La mayor precisin conseguida hasta ahora es la del ltimo reloj atmico desarrollado por la Oficina Nacional de Normalizacin (NIST) de los EE.UU., el NIST-F1, puesto en marcha en 1999, es tan exacto que tiene un margen de error de solo un segundo cada 20 millones de aos. A pesar de ello, los fsicos continan experimentando con nuevas variaciones, como los msers de hidrgeno (Townes), los de bombeo ptico de rubidio (Kasler) o los recientemente propuestos de mercurio, que permitiran alcanzar mayor precisin. En agosto de 2004 del NIST hicieron la primera demostracin de un reloj atmico del tamao de un circuito integrado. Esto representa un reloj cien veces menor que cualquier otro construido hasta la fecha y con un consumo de slo 0,079 vatios. Un reloj digital es un tipo de reloj que basa su funcionamiento en la electrnica digital para marcar el tiempo. La invencin, en 1956, del reloj digital supuso una gran revolucin en el campo de la relojera porque se consigui fabricar relojes mucho ms baratos y precisos que los de funcionamiento mecnico.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 4

    Para representar la hora, muchos relojes digitales usan los siete segmentos LED (los que se usan en el proyecto), VFD o LCD, para formar cada uno de los nmeros. Estos relojes tambin incluyen otros elementos, para indicar si la hora es por la maana AM o por la tarde PM, as como si est activada la alarma y a qu hora est programada. Los relojes digitales son muy pequeos, tiles y baratos. Por estas razones se han incorporado a la mayora de equipos electrnicos. La ruptura principal con el reloj mecnico es que se eliminaron todos los mecanismos que haba en el interior de la caja de los relojes y fueron sustituidos por unos circuitos electrnicos alimentados por una pequea batera y que facilitaba la lectura directa del tiempo. Debido a lo barato que son los relojes digitales ya se han impuestos en muchas aplicaciones, y as la mayora de despertadores son ya digitales, los relojes que hay en electrodomsticos, ordenadores, telfonos celulares, automviles, etc. Asimismo, muchos de los relojes de pulsera que se utilizan son digitales si bien en el campo de los relojes de pulsera se han impuesto los relojes electrnicos analgicos de cuarzo.

    Figura 2: Reloj Atmico NIST-F1, EE.UU.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 5

    2.1. Elementos del reloj digital Un reloj electrnico es un reloj en el que la base de tiempos es electrnica o electromecnica y la divisin de frecuencia, tambin. La exactitud del reloj depende de la base de tiempos, que puede consistir en un oscilador o en un adaptador que, a partir de una referencia, genera una seal peridica. El divisor de frecuencia es un circuito digital formado por una sucesin de contadores hasta obtener una frecuencia de 1 Hz, que permite mostrar segundos. Si se quiere mostrar dcimas, la divisin se detiene al llegar a los 10 Hz. Esta frecuencia pasa al mdulo de presentacin, que puede ser electrnico o mecnico, donde otros divisores van separando los segundos, minutos y horas para presentarlas mediante algn tipo de display. 2.1.1. Codificadores, decodificadores Decodificador: Se trata de un dispositivo con n entradas y 2n salidas donde en funcin de la combinacin binaria de sus entradas, una y slo una de las salidas se activa. Es decir, convierte un cdigo binario de entrada en cdigo "1-entre-n. Su smbolo para el caso DEC 2:4 con habilitacin y salidas activa en alta, su tabla de verdad y sus ecuaciones de cada salida se muestran a continuacin:

    Figura 3: Decodificador Bsico

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 6

    Decodificador binario 4bits a display 7 segmentos nodo comn: La cuenta de nmeros se lo realizara en binario 4 bits, no obstante este nmero de base 2 no representa los nmeros decimales 0 a 9 mostrados por un tpico reloj, por tal motivo se utilizara decodificadores de 4 bits a 7 segmentos. Los displays de nodo comn son activos en nivel bajo y tienen un punto comn que es la alimentacin de este. Para mostrar nmeros decimales en los displays, los 7 bits deben de obedecer la siguiente tabla: Decimal Binario 4bits Display 7 segmentos B3 B2 B1 B0 a b c d e f g 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 2 0 0 1 0 0 0 1 0 0 1 0 3 0 0 1 1 0 0 0 0 1 1 0 4 0 1 0 0 1 0 0 1 1 0 0 5 0 1 0 1 0 1 0 0 1 0 0 6 0 1 1 0 1 1 0 0 0 0 0 7 0 1 1 1 0 0 0 1 1 1 1 8 1 0 0 0 0 0 0 0 0 0 0 9 1 0 0 1 0 0 0 0 1 0 0 10 1 0 1 0 X X X X X X X 11 1 0 1 1 X X X X X X X 12 1 1 0 0 X X X X X X X 13 1 1 0 1 X X X X X X X 14 1 1 1 0 X X X X X X X 15 1 1 1 1 X X X X X X X Tabla 1: Decodificador binario a display 7 segmentos nodo comn De la tabla, los elementos marcados con X, no sern utilizados por que tan solo necesitamos los nmeros 0 al 9, el circuito integrado que realiza la decodificacin de binario a display nodo comn es el 7447.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 7

    Tabla 2: Tabla de verdad de CI 7447

    Figura 4: Diagrama de Pines CI 7447

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 8

    2.1.2. Contadores Los contadores son circuitos que tienen la propiedad de incrementar su contenido (ascendentes), decrementarlo (descendentes) o ambas (reversibles). Un contador mdulo-K cuenta K valores de forma cclica, normalmente entre 0 y el K-1. Adems, estos dispositivos pueden tener operaciones que permitan cargar un estado inicial de cuenta, (carga o load) y restablecer el estado inicial de cuenta, ya sea el cero para contadores ascendentes (clear) o todos los bits a 1 (estado 2n-1) para los descendentes (preset). Existe gran diversidad de contadores dependiendo del tipo de operaciones que realizan y del tamao del contador. El tamao se especifica por el mdulo (p.ej.: mdulo 10) o por el nmero de bits en caso de mdulos 2n. Por ejemplo, en la siguiente figura se muestra el esquema de un contador sncrono ascendente de mdulo 8 (3 bits) con las operaciones de cuenta arriba, carga, puesta a 0 e inhibicin.

    Figura 5: Contador Sncrono Modulo-3 En la siguiente figura aparece la secuencia de salidas de un contador mdulo 8 ascendente. Como se observa, el periodo de las seales de salida va duplicndose, lo que motiva que a los contadores se les denomine, tambin, divisores de frecuencia.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 9

    Figura 6: Diagrama de Tiempos Contador Flanco descendente Al momento de definir nuestro reloj requeriremos de dos contadores modulo-60 para el segundero y el minutero, adems de un contador modulo-24 para las horas si nuestras horas son en ese sistema. Hay dos formas de realizar contadores: 1) los de rizado (ripple-counter) o contadores asncronos; y 2) los sncronos. En los contadores de rizado la salida de cada biestable se utiliza como seal de reloj del siguiente.

    Figura 7: Contador Asncrono El circuito integrado 7490 nos brinda un contador BCD de modulo-10. Con la interconexin de varios podemos realizar contadores de mdulos mayores (p.ej.: modulo-60).

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 10

    Tabla 3: Secuencia de Cuenta de CI 7490 Note A: Salida QA tiene que estar conectada a la entrada B para la cuenta BCD

    Tabla 4: Tabla de verdad de CI 7490

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 11

    2.1.3. Generador de pulsos (multivibrador-astable) Los contadores digitales anteriormente vistos, utilizar una seal de clock que no es otra cosa ms que un tren de pulsos con una frecuencia dada. La precisin del reloj depende de esta frecuencia de clock. En electrnica, un astable es un multivibrador que no tiene ningn estado estable, lo que significa que posee dos estados "cuasi-estables" entre los que conmuta, permaneciendo en cada uno de ellos un tiempo determinado. La frecuencia de conmutacin depende, en general, de la carga y descarga de condensadores.

    Figura 8: Multivibrador astable con transistores Tambin podemos obtener un multivibrador utilizando el CI 555, que un circuito integrado ampliamente conocido con mucha informacin.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 12

    555 modo astable:

    Figura 9: Multivibrador Astable con CI 555 Este tipo de funcionamiento se caracteriza por una salida con forma de onda cuadrada (o rectangular) continua de ancho predefinido por el diseador del circuito. El esquema de conexin es el que se muestra. La seal de salida tiene un nivel alto por un tiempo t1 y un nivel bajo por un tiempo t2. La duracin de estos tiempos depende de los valores de R1, R2 y C, segn las frmulas siguientes:

    CRRtCRRt

    211

    211

    693.02ln y

    CRtCRt

    22

    22

    693.02ln

    La frecuencia con que la seal de salida oscila est dada por la frmula: 21 2693.01

    RRCf

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 13

    2.3. Descripcin de Hardware Con la creciente complejidad de los diseos digitales ha aparecido una necesidad de describir un circuito de la forma ms eficiente y prctica posible. Un lenguaje de programacin ofrece la posibilidad de un alto nivel de abstraccin y es la solucin adecuada para dicha tarea. Los lenguajes de descripcin hardware son lenguajes de alto nivel con una sintaxis similar a los de programacin (C, ADA, Pascal, Modula, etc.) y una semntica que permite el modelado y simulacin de los dispositivos hardware a diferentes niveles de abstraccin. Los primeros lenguajes de este tipo slo pretendan servir de vehculo de comunicacin del diseo. Los actuales lenguajes han adquirido un alto grado de estandarizacin y han adoptado los nuevos conceptos de la ingeniera de software, permitiendo la verificacin de la especificacin del diseo mediante simulacin. 2.3.1. VHDL VHDL es un lenguaje de descripcin de circuitos electrnicos digitales que utiliza distintos niveles de abstraccin. El significado por sus siglas VHDL es VHSIC (Very High Speed Integrated Circuits) Hardware Description Language. Esto significa que VHDL permite acelerar el proceso de diseo. VHDL no es un lenguaje de programacin, por ello conocer su sintaxis no implica necesariamente saber disear con l. VHDL es un lenguaje de descripcin de hardware genrico, que permite describir circuitos sncronos y asncronos. Para realizar esto debemos: - Pensar en puertas y biestables, no en variables ni funciones. - Evitar bucles combinacionales y relojes condicionados. - Saber qu parte del circuito es combinacional y cul secuencial. Los circuitos descritos en VHDL pueden ser simulados utilizando herramientas de simulacin para reproducir el funcionamiento del circuito. Adems utilizando herramientas de sntesis se puede implementar dicho circuito en un dispositivo lgico programable o en un circuito integrado.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 14

    i) Elementos bsicos VHDL VHDL es un lenguaje y como tal, posee sus tipos de datos y operadores. Los datos se almacenan en objetos que contienen valores de un tipo dado. IDENTIFICADORES. - CONSTANT. Los objetos de esta clase tienen un valor inicial que es asignado de forma previa a la simulacin y que no puede ser modificado durante sta. o constant identificador: tipo:= valor; - VARIABLE. Los objetos de esta clase contienen un nico valor que puede ser cambiado durante la simulacin con una sentencia de asignacin. Las variables generalmente se utilizan como ndices, principalmente en instrucciones de bucle, o para tomar valores que permitan modelar componentes. Las variables NO representan conexiones o estados de memoria. o variable identificador: tipo [:= valor];

    - SIGNAL. Los objetos de esta clase contienen una lista de valores que incluye el valor actual y un conjunto de valores futuros. Las seales representan elementos de memoria o conexiones y si pueden ser sintetizadas. Los puertos de una entidad son implcitamente declarados como seales en el momento de la declaracin, ya que estos representan conexiones. Tambin pueden ser declaradas en la arquitectura antes del BEGIN, lo cual nos permite realizar conexiones entre diferentes mdulos. o signal identificador: tipo; VHDL permite utilizar tipos predefinidos, as como otros definidos por el usuario. BIT 0, 1 BIT_VECTOR (range*) BOOLEAN TRUE, FALSE CHARACTER {ascii} STRING {ascii} SEVERITY_LEVEL {WARNING, ERROR, FALURE} INTEGER range*

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 15

    NATURAL range* POSITIVE range* REAL range* TIME *(range: n_min TO n_max; n_max DOWNTO n_min) STD_LOGIC. Tipo predefinido en el estndar IEEE 1164. Este tipo representa una lgica multivaluada de 9 valores. Adems del 0 lgico y el 1 lgico, posee alta impedancia Z, desconocido X sin inicializar U entre otros. Igual que se permite crear un vector de bits se puede crear un vector de std_logic, STD_LOGIC_VECTOR. Para poder utilizar el tipo std_logic hay que aadir la librera que lo soporta. Para poder utilizar el tipo: use ieee.std_logic_1164.all. Para poder utilizar las funciones aritmeticolgicas definidas (suma, resta multiplicacin) use ieee.std_logic_arith.all. Si los vectores estn en representacin binaria pura use ieee.std_logic_unsigned.all. Los vectores estn en C2 use ieee.std_logic_unsigned.all. TIPO ENUMERADO es un tipo de dato con un grupo de posibles valores asignados por el usuario. Los tipos enumerados se utilizan principalmente en el diseo de mquinas de estados type nombre is (valor1, valor2, ); Los tipos enumerados se ordenan de acuerdo a sus valores. Los programas de sntesis automticamente codifican binariamente los valores del tipo enumerado para que estos puedan ser sintetizados. Algunos programas lo hacen mediante una secuencia binaria ascendente, otros buscan cual es la codificacin que mejor conviene para tratar de minimizar el circuito o para incrementar la velocidad del mismo una vez que la descripcin ha sido sintetizada. Tambin es posible asignar el tipo de codificacin mediante directivas propias de la herramienta de sntesis. TIPOS COMPUESTOS un tipo compuesto es un tipo de dato formado con elementos de otros tipos, existen dos formas de tipos compuestos, arrays y records.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 16

    UN ARRAY es un objeto de datos que consiste en una coleccin de elementos del mismo tipo. type nombre is array (rango) of tipo; UN RECORD es un objeto de datos que consiste en una coleccin de elementos de distintos tipos. type nombre is record elemento1: tipo_de_dato1; elemento2: tipo_de_dato2; end record; OPERADORES. Un operador nos permite construir diferentes tipos de expresiones mediante los cuales podemos calcular datos utilizando diferentes objetos de datos con el tipo de dato que maneja dicho objeto. En VHDL existen distintos operadores de asignacin con lo que se transfieren valores de un objeto de datos a otro, y operadores de asociacin que relacionan un objeto de datos con otro, lo cual no existe en ningn lenguaje de programacin de alto nivel. abs *, /, mod, rem + (sig.), - (sig) +, -, & and, or, nand, nor, xor := asignacin de valores a constantes y variables.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 17

    Una entidad es anloga a un smbolo esquemtico de los diagramas electrnicos, el cual describe las conexiones del dispositivo hacia el resto del diseo. Lo siguiente muestra un ejemplo de su contenido: 1. Define externamente al circuito o subcircuito. 2. Nombre y nmero de puertos, tipos de datos de entrada y salida. 3. Tienes toda la informacin necesaria para conectar tu circuito a otros circuitos.

    Figura 10: Ejemplo de Entity entity F is port (A, B: in bit; Y out bit); end F; Los puertos pueden ser para seales de entrada in, salida out, entrada-salida o un buffer; que utilizar el modo in/out. Adems, la entidad puede definir un valor genrico (GENERIC) que se utilizar para declarar las propiedades y constantes del circuito, independientemente de cul sea la arquitectura. entity nombre is generic (cte1: tipo := valor1; cte2: tipo:= valor 2; ); port (entrada1, entrada2, : in tipo; salida1, salida2, : out tipo; puertoi : modo tipo); end nombre;

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 18

    ARQUITECTURA (ARCHITECTURE). Los pares de entidades y arquitecturas se utilizan para representar la descripcin completa de un diseo. Una arquitectura describe el funcionamiento de la entidad a la que hace referencia. Si una entidad la asociamos con una caja en la que se enumeran las interfaces de conexin hacia el exterior, entonces la arquitectura representa la estructura interna de esa caja. Sus principales funciones son: 1. Define internamente el circuito. 2. Seales internas, funciones, procedimientos, constantes 3. La descripcin de la arquitectura puede ser estructural o por comportamiento. Lo siguiente muestra un ejemplo de su contenido: architecture arch_name of entity_name is -- declaraciones de la arquitectura -- tipos -- seales -- componentes begin -- cdigo de descripcin -- instrucciones concurrentes -- ecuaciones booleanes process begin -- cdigo de descripcin end process; end arch_name; Una arquitectura se describe por comportamiento o por estructura. Una entidad puede tener ms de una arquitectura, pero cuando se compile se debe indicar cul es la arquitectura que queremos utilizar. PROCESS: Cuando en VHDL se escribe un process, dentro de l aparece la parte secuencial del circuito. La simulacin no entra en el process hasta que no haya variado alguna de las seales o variables de su lista de sensibilidad independientemente de lo

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 19

    que este contenido dentro del process. Por otro lado nicamente dentro de un process pueden aparecer las sentencias de tipo if y else y nunca puede aparecer una sentencia del tipo wait. Sentencias de descripcin WAIT esta instruccin es utilizada en procesos que no tienen lista de sensibilidad: wait on signal_list; wait for time_expression; wait until condition; Eventos sobre las seales (EVENT) nos indican cuando ocurre un cambio en la seal signal'event signal'last_event signal'last_value IF THEN ELSE solo son aplicables dentro de un process if condicin then ... instrucciones secuenciales elsif otra_condicin then ... instrucciones secuenciales else ... instrucciones secuenciales end if; CASE WHEN solo son aplicables dentro de un process case expresin is when alternativa_l => ... instrucciones secuenciales when alternativa_n => ... -- instrucciones secuenciales when others => ... -- instrucciones secuenciales end case; FOR LOOP solo son aplicables dentro de un process

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 20

    for loop_var in range loop ... -- instrucciones secuenciales end loop; WHILE LOOP solo son aplicables dentro de un process while condicin loop ... -- instrucciones secuenciales end loop; WHEN ELSE Signal_name

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 21

    CAPITULO 3: MECANISMO DE DISEO Describiremos el proyecto a implementarse en laboratorio mediante componentes bsicos ya vistos en el anterior capitulo. Ademas mostraremos cada bloque controlador por separado, para que pueda observarse en plenitud el diseo utilizado para el reloj digital. 3.1. SS: Segundos El bloque del segundero se lo implemento con un contador modulo-60 utilizando 2 circuitos integrados 7490 que son contadores BCD, segn el siguiente diagrama de bloques:

    Figura 11: Diagrama de bloques del Segundero

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 22

    Al primer contador se conecta el clock de 1Hz, diseado previamente con un multivibrador astable, como es un contador BCD este cuenta de 0 al 9 una vez concluida esta cuenta vuelve a comenzar en 0. El segundo contador cuenta del 0 hasta el 5 y cuando es 6 esta habilita mediante el and los resets de ambos contadores comenzando la cuenta en 0 otra vez. El clock del segundo contador ser el bit de mayor peso posicional de del primer contador, que cuando cambie de 1 a 0 (flanco de bajada) har como un pulso de clock. La cuenta realizada por los contadores BCD es de binario (0000 - 1001) del 0 al 9, este cdigo binario ser decodificado a 7 segmentos para un display anodo comn

    Figura 12: Diagrama de bloques del decodificador Cuando se menciona nodo comn es que el segmento se enciende con un 0 lgico, porque el punto comn est conectado a la alimentacin o 1 lgico. 3.2. MM: Minutos De igual manera que el segundero se disea un contador modulo 60 para el minutero, con la diferencia que el clock del primer contador ya no es 1Hz sino que es un impulso dado por el reset del bloque del segundero.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 23

    Figura 13: Diagrama de bloques del Minutero Y similar al segundero cada salida del contador se conecta a un decodificador de 4bits a 7 segmentos, para mostrar los 2 dgitos del minutero. 3.3. HH: Horas De igual manera que los anteriores elementos descritos, las horas ser un contador mudulo-24 que contara las horas, el clock el primer contador ser el impulso reset del minutero que se realiza cada que se cumple los 60 minutos. Cada contador a la salid se conectara un decodificador de 4 bits a 7 segmentos para observar los 2 dgitos de este. El reset ser utilizando ambos contadores segn el diagrama siguiente

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 24

    Figura 14: Diagrama de bloques del Horero 3.4. Ajuste de hora Para el ajuste de hora se aprovechara los impulsos realizados por el bloque del segundero y del minutero, para modificar minutos y horas respectivamente, ya que estos son los clock de entrada de los bloques de minutero y horero. Se pondr 2 botones conectados a la alimentacin, que nos emularan estos pulsos (clock de los bloques minutero y horero) en cualquier momento que el usuario requiera modificar la hora a una cualquiera. Cuando se presione un botn reseteara el modulo inmediatamente inferior, asi que se tendr que modificar horas, luego minutos en ese orden.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 25

    3.5. Descripcin VHDL Mediante el uso de lenguaje de descripcin de hardware se proceder a describir el reloj digital, con todas las caractersticas del diseo circuital anteriormente descrito: 1- Un bloque segundero contador modulo-60, utilizamos una seal de este para habilitar el bloque minutero cada 60 segundos. 2- Un bloque minutero contador modulo-60, utilizamos una seal de este para habilitar el bloque horero cada 60 minutos. 3- Un bloque de horas contador modulo-24. Adems de mostrar la hora esta se debe modificar en cualquier momento que el usuario requiera mediante 2 botones para modificar horas y minutos. Ya que no tenemos limitaciones econmicas, ni de CI al momento de realizar la descripcin en vhdl, se aadir un selector que cuando este en 1 se pueda modificar la hora y cuando este en 0 no se pueda. Adems de un Reset para reiniciar nuestro sistema. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    ----------------------------------------------------------------- -- Reloj Digital -- Autor: Amrico Alvarez S. ----------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; entity reloj_v3 is port(clk_50Mhz:in std_logic; reset,ajuste:in std_logic; ajuste_hh,ajuste_mm:in std_logic; hex0,hex1,hex2,hex3,hex4,hex5:out std_logic_vector(0 to 6) ); end reloj_v3; architecture rtl of reloj_v3 is signal clk0,clk1,clk2,clk3,clk4,clk5: std_logic:='0'; signal clk_a1,clk_a2:std_logic:='0'; signal ajuste_sync:std_logic;

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 26

    20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

    constant max: integer := 2;--50000000; constant half: integer := max/2; signal count: integer range 0 to max; function numero(digito:integer) return std_logic_vector is Variable hex:std_logic_vector(0 to 6); begin case digito is when 0 => hex := "0000001"; when 1 => hex := "1001111"; when 2 => hex := "0010010"; when 3 => hex := "0000110"; when 4 => hex := "1001100"; when 5 => hex := "0100100"; when 6 => hex := "1100000"; when 7 => hex := "0001111"; when 8 => hex := "0000000"; when 9 => hex := "0000100"; when others => null; end case; return(hex); end numero; begin -- definimos el clock de 1 hz process (clk_50Mhz) begin if (clk_50Mhz'event and clk_50Mhz='1') then if (count < max) then count

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 27

    55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

    process (clk0,reset,ajuste,ajuste_hh,ajuste_mm) variable uu_s: integer range 0 to 10; variable dd_s: integer range 0 to 6; variable uu_m: integer range 0 to 10; variable dd_m: integer range 0 to 6; variable uu_h: integer range 0 to 10; variable dd_h: integer range 0 to 3; begin -- seal asincrona de reset if (reset='1') then uu_s:=0; dd_s:=0; uu_m:=0; dd_m:=0; uu_h:=0; dd_h:=0; else -- definimos segundos contador mod 60 if (clk0'event and clk0='1') then uu_s:= uu_s+1; clk1

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 28

    90 91 92 93 94 95 96 97 98 99

    100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124

    -- sincronizamos a los segundos if (clk0'event and clk0='0') then ajuste_sync

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 29

    125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141

    if (clk5'event and clk5='1') then dd_h:= dd_h+1; end if; if (dd_h=2 and uu_h=4) then uu_h:= 0; dd_h:= 0; end if; end if; -- definimos la alarma -- mostramos en displays hex0

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 30

    CAPITULO 4: SIMULACIONES Y PRUEBAS EN LABORATORIO 4.1. Simulacin plano circuital usando Proteus

    Figura 15: Plano Circuital completo del Reloj digital

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 31

    Anlisis diagrama de tiempos de los clock del circuito U1 es la seal de clock de 1hz. U6 es la generacin de impulsos por el reset del modulo del Segundero (cada 60 segundos). Que sirve como clock para el bloque del minutero U3 es la generacin de impulsos por el reset del modulo del Minutero (cada 60 minutos). Que sirve como clock para el bloque del Horero

    Figura 16: cada 60 Pulsos de 1Hz, se enva un Impulso (clock del minutero)

    Figura 17: cada 60 impulsos del minutero, se enva un Impulso (clock del horero)

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 32

    4.2. Simulacin VHDL usando Quatus2 A continuacin se presenta la simulacin del diagrama de tiempos simulado en quartus2, cabe mencionar que se establecieron seales de prueba de reset y modificar hora, en cualquier instante de cuenta de nuestro reloj digital. Las seales de salida de los displays de 7 segmentos se los muestra en su equivalente decimal del numero de 7 bits que representa, segn la siguiente tabla: Decimal Display 7 segmentos Numero decimal mostrado en la simulacin de quatus2 a b c d e f g 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 79 2 0 0 1 0 0 1 0 18 3 0 0 0 0 1 1 0 6 4 1 0 0 1 1 0 0 76 5 0 1 0 0 1 0 0 36 6 1 1 0 0 0 0 0 96 7 0 0 0 1 1 1 1 15 8 0 0 0 0 0 0 0 0 9 0 0 0 0 1 0 0 4 Tabla 6: Numero decimal mostrado en quartus2 que representa los 7 bits, del decodificador El Anlisis diagrama de tiempos en quatus2 se presenta a continuacin:

    Clk0 representa la seal de 1Hz. Reset representa la entrada de reset que pulsaremos en cualquier momento. Ajuste: cuando este en 1 logico, se podr ajustar la hora (ajuste_hh) y minutos(ajuste_mm), caso contrario no. Hex0: primer digito segundero, unidades segundero. Hex1: segundo digito segundero, decenas segundero.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 33

    Hex2: primer digito minutero, unidades minutero. Hex3: segundo digito minutero, decenas minutero. Hex4: primer digito horero, unidades horero. Hex5: segundo digito horero, decenas horero.

    Figura 18: Segmento de cuenta segundero y reset

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 34

    Figura 19: Segmento, ajustando horas y minutos

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 35

    CAPITULO 5: CONCLUSIONES Y MEJORAS 5.1. Conclusiones Se diseo e implemento satisfactoriamente el reloj digital utilizando componentes digitales bsicos. Se describi en lenguaje VHDL el comportamiento de nuestro circuito pudiendo comprobar satisfactoriamente que realiza lo mismo que nuestro circuito armado El reloj implementado en VHDL utilizando la tarjeta DE2, fue ms preciso que el ensamblado, esto se debe a que nuestro clock de 1 hz tubo errores de exactitud al momento de calcular el 1Hz por el error que lleva cada resistencia y capacitor utilizado para realizar el oscilador astable. La descripcin en vhdl nos ahorro mucho tiempo y se le dio el aadido del activar el ajuste de hora y un reset del sistema. La descripcin fue ms rpida y es fcil detectar los errores en sintaxis del lenguaje de nuestra descripcin, en futuras ocasiones se debera de dar ms manejo a este lenguaje, as no se tendr falencias en componentes que hay pocos en nuestro mercado. 5. 2. Mejoras Implementar un reloj que adems nos brinde un calendario, la fecha del da en que nos encontramos. Se puede utilizar el impulso de reset del modulo de horas, para realizar la cuenta de das, y estos realizaran de meses. Se podra implementar un calendario utilizando una memoria EEPROM ya que los meses varan en nmero de das. Aadir al reloj una alarma a manera de despertador u otra alarma segn sea el agrado del diseador. Se podra implementar esto con comparadores, que se introdusca la hora de alarma a un registro y que cuando la hora sea igual que el dato guardado en el registro, se encienda la alarma, y cuando se apage de igual manera con otro registro para apagar la alarma a los X segundos. Aadir a este mismo reloj un cronometro digital utilizando los displays empleados. El inconveniente estara en el reloj de 10Hz. Implementarlo en pantalla LCD 16x2.

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 36

    6. BIBLIOGRAFA 1. Problemas de circuitos y sistemas digitales Mc Graw Hill 2. Fundamentos de lgica digital con diseo VHDL Stephen Brown Zvonko Vranesic 3. Circuit Desing with VHDL Volnei A. Pedroni 4. DE2_UserManual 5. http://www.iesleonardo.info/ele/pro/CURSO%202001-2002/p02-relojdigital/ 7. ANEXOS 7.1. Tarjeta Cyclone II- DE2 de Altera

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 37

    DE2 board provides users many features to enable various multimedia project development. Component selection was made according to the most popular design in volume production multimedia products such as DVD, VCD, and MP3 players. The DE2 platform allows users to quickly understand all the insight tricks to design real multimedia projects for industry. Altera Cyclone II 2C35 FPGA with 35000 LEs Altera Serial Configuration devices (EPCS16) for Cyclone II 2C35 USB Blaster built in on board for programming and user API controlling JTAG Mode and AS Mode are supported 8Mbyte (1M x 4 x 16) SDRAM 512K byte(256K X16) SRAM 4Mbyte Flash Memory (upgradeable to 4Mbyte) SD Card Socket 4 Push-button switches 18 DPDT switches 9 Green User LEDs 18 Red User LEDs 16 x 2 LCD Module 50MHz Oscillator and 27MHz Oscillator for external clock sources 24-bit CD-Quality Audio CODEC with line-in, line-out, and microphone-in jacks VGA DAC (10-bit high-speed triple DACs) with VGA out connector TV Decoder (NTSC/PAL) and TV in connector 10/100 Ethernet Controller with socket. USB Host/Slave Controller with USB type A and type B connectors. RS-232 Transceiver and 9-pin connector PS/2 mouse/keyboard connector IrDA transceiver Two 40-pin Expansion Headers with diode protection DE2 Lab CD-ROM which contains many examples with source code to exercise the boards, including: SDRAM and Flash Controller, CD-Quality Music Player, VGA and TV Labs, SD Card reader, RS-232/PS-2 Communication Labs, NIOSII, and Control Panel API

  • 3 de diciembre de 2010 PROYECTO RELOJ DIGITAL

    Amrico lvarez Surci 38