Usuario anónimo ¿Quieres tener tu propio blog?
Crear blog gratis en OboLog

Diseño de un temporizador digital mediante Programación VHDL y simbólica con FPGA.

por edgart
sábado, 26 de enero del 2008 a las 09:12
guardado en
 

Resumen: Se presenta el desarrollo de la programación y diseño, en VHDL y simbólico, de un circuito temporizador, a través del dispositivo lógico programable FPGA; del fabricante  ALTERA, haciendo uso del software  Quartus II, licencia de 30 días de evaluación, del fabricante. Se realizó la simulación del diagrama simbólico y del programa VHDL, corroborándose el correcto funcionamiento del circuito.

Palabras claves: VHDL, ALTERA, FPGA.

 

1. INTRODUCCIÓN

   Realizar un temporizador  a base de electrónica digital discreta, puede resultar costoso, sobre todo cuando el diseño amerita el uso de una gran cantidad de componentes digitales. En este punto el lector pudiera pensar que la solución mas económica sería un microcontrolador; bien quizás uno de esos que cueste menos de 55$ USD, pudiera servir, pero que sucedería si al pasar el tiempo se tiene la necesidad de implementar mas hardware al mismo temporizador para otras aplicaciones, lo primero que se piensa es que no hay problema en el software, pero hay que implementar un nuevo hardware, es decir,  hay que instalar una nueva tarjeta de circuito impreso y hasta podría haber problemas por limitación de espacio, entonces al final se piensa en comprar mejor un nuevo temporizador que incluya la actualización que se desea realizar,  ya que podría salir demasiado costoso  el rediseño. Por lo tanto la solución que se plantea en este artículo es poder diseñar y rediseñar la cantidad de veces que sea necesario, a menor costo, en un mismo dispositivo lógico programable, sin necesidad de implementar un nuevo hardware. Todo el diseño digital se desarrolla en lenguaje simbólico y VHDL, a través del software de programación del fabricante ALTERA.

   En este artículo se presenta el desarrollo de un temporizador digital que realiza un conteo descendente desde un valor prefijado por el usuario, hasta llegar a cero.

2. ESPECIFICACIONES DEL DISEÑO

   El temporizador diseñado cumple con las siguientes especificaciones:

 

  • 1- El tiempo máximo a temporizar será de 99 minutos y 59 segundos.
  • 2- El conteo será de manera decreciente y se debe de tener al llegar a cero.
  • 3- Para la visualización del tiempo se utilizarán cuatro display 7 segmentos.
  • 4- Debe poseer un pulsador para incrementar los segundos de manera manual.
  • 5- Debe poseer un pulsador para decrementar los segundos de manera manual.
  • 6- Debe poseer un pulsador para incrementar los minutos de manera manual.
  • 7- Debe poseer un pulsador para decrementar los minutos de manera manual.
  • 8- Debe tener un pulsador para resetear el temporizador en cualquier momento.
  • 9- Debe tener un pulsador para detener o reiniciar el conteo en cualquier momento.
  • 10- Debe tener una salida que indique el momento en que el temporizador llega a cero.

 

   Conocidas las especificaciones del diseño se pueden definir las señales de entrada y salida del sistema:

 

   - Señales de entrada:

  • CLOCK_1s: Señal de reloj con frecuencia 1Hz.
  • Min_down: Pulsador que al generar un flanco de subida decrementa en uno al contador de minutos.
  • Min_up: Pulsador que al generar un flanco de subida incrementa en uno al contador de minutos.
  • SEG_DOWN: Pulsador que al generar un flanco de subida decrementa en uno al contador de segundos.
  • SEG_UP: Pulsador que al generar un flanco de subida incrementa en uno al contador de segundos.
  • START_STOP: Pulsador que inicia o detiene el conteo al generar un flanco de bajada.
  • CLEAR: Pulsador que resetea todo el temporizador al generar un flanco de bajada.

 

   - Señales de salida:

  • Parada: Señal que va a bajo cuando el temporizador llega a cero.
  • SEG_A_ds hasta SEG_G_ds: Siete pines de salida activas en alta para el siete segmento de las décimas de segundo.
  • SEG_A_s hasta SEG_G_s: Siete pines de salida activas en alta para el siete segmento de las centésimas de segundo.
  • SEG_A_dmin hasta SEG_G_dmin: Siete pines de salida activas en alta para el siete segmento de las décimas de minutos.
  • SEG_A_min hasta SEG_G_min: Siete pines de salida activas en alta para el siete segmento de las centésimas de minutos.

 

3. DISEÑO SIMBOLICO

   Se utilizó la librería del software Quartus II para seleccionar el contador 74192, el decodificador BCD-7 segmento 7448, un Flip-Flop 7476 y las compuertas AND, OR y NOT necesarias para la implementación del temporizador. Se realizó la interconexión de estos dispositivos para formar tanto el tiempo en segundo como en minutos. En total se utilizaron cuatro contadores, un Flip-Flop cuatro decodificadores BCD-7 segmentos y varias compuertas lógicas. Para la simulación en tiempo real se seleccionó un dispositivo lógico programable FPGA del fabricante Altera, específicamente se seleccionó la FPGA EP1C12F256C6.

   La figura 1 muestra el diseño simbólico del temporizador

 

56696-48383.jpg

Figura 1. Diagrama esquemático del temporizador

3.1 SIMULACION DEL DIAGRAMA ESQUEMATICO

   Una vez realizado el diagrama esquemático del temporizador se procedió a realizar la respectiva simulación para verificar el funcionamiento del mismo. Los resultados se muestran en la figura 2. En esta figura se puede observar que las señales de entrada se hacen variar de diferentes maneras para comprobar el funcionamiento del temporizador para diferentes condiciones de las señales de entrada.

 

56696-48384.jpg

Figura 2. Simulación del diseño esquemático.

 

4. DISEÑO DEL TEMPORIZADOR EN LENGUAJE DE PROGRAMACIÓN VHDL.

   Como bien se sabe en VHDL existen varios niveles que permiten la programación en VHDL, y la que se desarrolló en este artículo fue el nivel algorítmico o conocido también por descripción a alto nivel HDL. Para el diseño se utilizaron los fundamentos básicos de una descripción como lo es:

  • Biblioteca (library)
  • Entidad (entity)
  • Arquitectura (architectures)

   Se diseñó la descripción de las entidades y arquitecturas empleando elementos almacenados en las bibliotecas: STD_LOGIC_1164 y Standard; de la librería IEEE y STD, respectivamente. En la entidad se definió la entrada y salidas del sistema completo del temporizador. En la arquitectura se desarrolla todo el proceso del conteo regresivo del reloj y las diferentes manipulaciones de incremento y decremento del tiempo. Como se mostrará mas adelante. Por la naturaleza del diseño se utilizó sentencias secuenciales y el tipo de descripción fue por procedimiento. Los puertos de salidas de las señales de los display de 7 segmentos, fueron declarados como vectores de 7 digitos. Durante el desarrollo se utilizó variables compartidas (tipo "shared") para disponer de la información en todo momento.

   Debido al tamaño del diseño en VHDL no es posible su publicación en este documento, sin embargo, se puede tener acceso al mismo consultando la página:

En la figura 3 se puede observar el resultado de la simulación del diseño implementado en VHDL.

 

56696-48386.jpg

Figura 3. Simulación del diseño en VHDL.

Nota: El Software Quartus II del fabricante ALTERA, es una versión evaluación de 30 días, por lo tanto no se puede generar el archivo necesario para programar la FPGA.

6. CONCLUSIONES

 

   En este documento se ha presentado el proceso de desarrollo de un temporizador digital de conteo decreciente que es capaz de temporizar desde 99 minutos y 59 segundos hasta cero.

   En la simulación del diseño esquemático se pueden notar los efectos reales del comportamiento de los circuitos integrados que en la mayoría de los casos exhiben, a su salida, valores intermedios antes de estabilizarse en un valor definitivo, aunque esto no afecta el resultado final esperado.

   En la simulación del diseño con VHDL se puede observar que no existen los valores intermedios que se dan en la simulación del esquemático, o sea, las salidas son más limpias.

   En ambas simulaciones se puede observar que las salidas responden de la manera esperada ante los diferentes cambios de las señales de entrada.

   La programación en VHDL acorta el tiempo de realización de los proyectos de electrónica digital, abarata los costos y reduce el tamaño de las tarjetas de circuito impreso y por ende el tamaño de los equipos diseñados.

 

REFERENCIAS

[1] S.A. Pérez, E. Soto, S. Fernández, "Diseño de Sistemas Digitales con VHDLt", Thomson Editores Spain, 2002,

[2] http://www.altera.com/, consultada el 02/01/2008

Archivo tipo documento.

Plano esquemático

Proyecto completo sobre la programación en VHDL, realizado en el software Quartus II del fabricante ALTERA.

Proyecto completo sobre el diseño simbólico, realizado en el software Quartus II del fabricante ALTERA.

 

 

Ver álbum de fotos »

Sobre el blog

Diseño de un temporizador digital con FPGA

Universidad Nacional Experimental Politécnica
                    "Antonio José De Sucre"
Post-Grado: Maestría en Ingeniería en Electrónica
Profesor: Ing. Angel Custodio Ph D.
Alumnos: Ing. Williams Trinitario wtrinitario@edelca.com.ve 
                     Ing. Edgart Marchán edgartmarchan@cantv.net
Materia: Electrónica Integrada.

Ver ficha del blog en OboLog

Login

Suscripción

Suscríbete al Feed RSS XML

También puedes suscribirte directamente con alguno de los siguientes enlaces:

  • Suscríbete en Bloglines
  • Suscríbete en Google