<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">
<!-- Generado by OboLog XML-O-Matic Script -->
<channel>
	<title><![CDATA[Diseño de un temporizador digital con FPGA]]></title>
	<link>http://tempfpga.obolog.com</link>
	<description>
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. 
</description>
	<language>es-es</language>
	<pubDate>Sat, 22 Nov 2008 21:22:33 +0100</pubDate>
	<lastBuildDate>Sat, 22 Nov 2008 21:22:33 +0100</lastBuildDate>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs>
	<generator>OboLog XML-O-Matic Script</generator>
	<managingEditor>webmaster@obolog.com</managingEditor>
	<webMaster>webmaster@obolog.com</webMaster>
	<image>
		<url>http://www.obolog.com/img/obolog-blog-gratis.png</url>
		<title><![CDATA[Diseño de un temporizador digital con FPGA]]></title>
		<link>http://tempfpga.obolog.com</link>
	</image>
	<item>
		<title>Diseño de un temporizador digital mediante Programación VHDL y simbólica con FPGA.</title>
		<link>http://tempfpga.obolog.com/diseno-temporizador-digital-mediante-programacion-vhdl-simbolica-56696</link>
		<description>
			<![CDATA[
			&nbsp; 
<p>
<strong><em>Resumen:</em></strong> Se presenta el desarrollo de la programaci&oacute;n y dise&ntilde;o, en VHDL y simb&oacute;lico, de un circuito temporizador, a trav&eacute;s del dispositivo l&oacute;gico programable FPGA; del fabricante &nbsp;ALTERA, haciendo uso del software&nbsp; Quartus II, licencia de 30 d&iacute;as de evaluaci&oacute;n, del fabricante. Se realiz&oacute; la simulaci&oacute;n del diagrama simb&oacute;lico y del programa VHDL, corrobor&aacute;ndose el correcto funcionamiento del circuito. 
</p>
<p>
<strong><em>Palabras claves:</em></strong><em> VHDL, ALTERA, FPGA.</em> 
</p>
<p>
&nbsp;
</p>
<p align="center">
<strong>1. INTRODUCCI&Oacute;N</strong> 
</p>
<p>
&nbsp;&nbsp; Realizar un temporizador &nbsp;a base de electr&oacute;nica digital discreta, puede resultar costoso, sobre todo cuando el dise&ntilde;o amerita el uso de una gran cantidad de componentes digitales. En este punto el lector pudiera pensar que la soluci&oacute;n mas econ&oacute;mica ser&iacute;a un microcontrolador; bien quiz&aacute;s uno de esos que cueste menos de 55$ USD, pudiera servir, pero que suceder&iacute;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, &nbsp;hay que instalar una nueva tarjeta de circuito impreso y hasta podr&iacute;a haber problemas por limitaci&oacute;n de espacio, entonces al final se piensa en comprar mejor un nuevo temporizador que incluya la actualizaci&oacute;n que se desea realizar, &nbsp;ya que podr&iacute;a salir demasiado costoso &nbsp;el redise&ntilde;o. Por lo tanto la soluci&oacute;n que se plantea en este art&iacute;culo es poder dise&ntilde;ar y redise&ntilde;ar la cantidad de veces que sea necesario, a menor costo, en un mismo dispositivo l&oacute;gico programable, sin necesidad de implementar un nuevo hardware. Todo el dise&ntilde;o digital se desarrolla en lenguaje simb&oacute;lico y VHDL, a trav&eacute;s del software de programaci&oacute;n del fabricante ALTERA. 
</p>
<p>
&nbsp;&nbsp; En este art&iacute;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. 
</p>
<p align="center">
<strong>2. ESPECIFICACIONES DEL DISE&Ntilde;O</strong> 
</p>
<p>
&nbsp;&nbsp; El temporizador dise&ntilde;ado cumple con las siguientes especificaciones: 
</p>
<p>
&nbsp;
</p>
<ul>
	<li>1- El tiempo m&aacute;ximo a temporizar ser&aacute; de 99 minutos y 59 segundos.</li>
	<li>2- El conteo ser&aacute; de manera decreciente y se debe de tener al llegar a cero.</li>
	<li>3- Para la visualizaci&oacute;n del tiempo se utilizar&aacute;n cuatro display 7 segmentos.</li>
	<li>4- Debe poseer un pulsador para incrementar los segundos de manera manual.</li>
	<li>5- Debe poseer un pulsador para decrementar los segundos de manera manual.</li>
	<li>6- Debe poseer un pulsador para incrementar los minutos de manera manual.</li>
	<li>7- Debe poseer un pulsador para decrementar los minutos de manera manual.</li>
	<li>8- Debe tener un pulsador para resetear el temporizador en cualquier momento.</li>
	<li>9- Debe tener un pulsador para detener o reiniciar el conteo en cualquier momento.</li>
	<li>10- Debe tener una salida que indique el momento en que el temporizador llega a cero.</li>
</ul>
<p>
&nbsp;
</p>
<p>
&nbsp;&nbsp; Conocidas las especificaciones del dise&ntilde;o se pueden definir las se&ntilde;ales de entrada y salida del sistema: 
</p>
<p>
&nbsp;
</p>
<p>
&nbsp;&nbsp; - Se&ntilde;ales de entrada: 
</p>
<ul>
	<li>CLOCK_1s: Se&ntilde;al de reloj con frecuencia 1Hz.</li>
	<li>Min_down: Pulsador que al generar un flanco de subida decrementa en uno al contador de minutos.</li>
	<li>Min_up: Pulsador que al generar un flanco de subida incrementa en uno al contador de minutos.</li>
	<li>SEG_DOWN: Pulsador que al generar un flanco de subida decrementa en uno al contador de segundos.</li>
	<li>SEG_UP: Pulsador que al generar un flanco de subida incrementa en uno al contador de segundos.</li>
	<li>START_STOP: Pulsador que inicia o detiene el conteo al generar un flanco de bajada.</li>
	<li>CLEAR: Pulsador que resetea todo el temporizador al generar un flanco de bajada.</li>
</ul>
<p>
&nbsp;
</p>
<p>
&nbsp;&nbsp; - Se&ntilde;ales de salida: 
</p>
<ul>
	<li>Parada: Se&ntilde;al que va a bajo cuando el temporizador llega a cero.</li>
	<li>SEG_A_ds hasta SEG_G_ds: Siete pines de salida activas en alta para el siete segmento de las d&eacute;cimas de segundo.</li>
	<li>SEG_A_s hasta SEG_G_s: Siete pines de salida activas en alta para el siete segmento de las cent&eacute;simas de segundo.</li>
	<li>SEG_A_dmin hasta SEG_G_dmin: Siete pines de salida activas en alta para el siete segmento de las d&eacute;cimas de minutos.</li>
	<li>SEG_A_min hasta SEG_G_min: Siete pines de salida activas en alta para el siete segmento de las cent&eacute;simas de minutos.</li>
</ul>
<p>
&nbsp;
</p>
<p align="center">
<strong>3. DISE&Ntilde;O SIMBOLICO</strong> 
</p>
<p>
&nbsp;&nbsp; Se utiliz&oacute; la librer&iacute;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&oacute;n del temporizador. Se realiz&oacute; la interconexi&oacute;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&oacute;gicas. Para la simulaci&oacute;n en tiempo real se seleccion&oacute; un dispositivo l&oacute;gico programable FPGA del fabricante Altera, espec&iacute;ficamente se seleccion&oacute; la FPGA EP1C12F256C6. 
</p>
<p>
&nbsp;&nbsp; La figura 1 muestra el dise&ntilde;o simb&oacute;lico del temporizador 
</p>
<p>
&nbsp;
</p>
<p align="center">
<img style="width: 907px; height: 755px" src="http://static.obolog.com/multimedia/fotos/57000/56696/56696-48383_o.jpg" alt="56696-48383.jpg" title="56696-48383.jpg" width="921" height="755" /> 
</p>
<p align="center">
Figura 1. Diagrama esquem&aacute;tico del temporizador 
</p>
<p align="center">
<strong>3.1 SIMULACION DEL DIAGRAMA ESQUEMATICO</strong> 
</p>
<p align="left">
&nbsp;&nbsp; Una vez realizado el diagrama esquem&aacute;tico del temporizador se procedi&oacute; a realizar la respectiva simulaci&oacute;n para verificar el funcionamiento del mismo. Los resultados se muestran en la figura 2. En esta figura se puede observar que las se&ntilde;ales de entrada se hacen variar de diferentes maneras para comprobar el funcionamiento del temporizador para diferentes condiciones de las se&ntilde;ales de entrada. 
</p>
<p>
&nbsp;
</p>
<p align="center">
<img style="width: 932px; height: 614px" src="http://static.obolog.com/multimedia/fotos/57000/56696/56696-48384_o.jpg" alt="56696-48384.jpg" title="56696-48384.jpg" width="766" height="614" /> 
</p>
<p align="center">
Figura 2. Simulaci&oacute;n del dise&ntilde;o esquem&aacute;tico. 
</p>
<p>
&nbsp;
</p>
<p align="center">
<strong>4. DISE&Ntilde;O DEL TEMPORIZADOR EN LENGUAJE DE PROGRAMACI&Oacute;N VHDL.</strong> 
</p>
<p>
&nbsp;&nbsp; Como bien se sabe en VHDL existen varios niveles que permiten la programaci&oacute;n en VHDL, y la que se desarroll&oacute; en este art&iacute;culo fue el nivel algor&iacute;tmico o conocido tambi&eacute;n por descripci&oacute;n a alto nivel HDL. Para el dise&ntilde;o se utilizaron los fundamentos b&aacute;sicos de una descripci&oacute;n como lo es: 
</p>
<ul>
	<li>Biblioteca (library)</li>
	<li>Entidad (entity)</li>
	<li>Arquitectura (architectures)</li>
</ul>
<p>
&nbsp;&nbsp; Se dise&ntilde;&oacute; la descripci&oacute;n de las entidades y arquitecturas empleando elementos almacenados en las bibliotecas: STD_LOGIC_1164 y Standard; de la librer&iacute;a IEEE y STD, respectivamente. En la entidad se defini&oacute; 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&aacute; mas adelante. Por la naturaleza del dise&ntilde;o se utiliz&oacute; sentencias secuenciales y el tipo de descripci&oacute;n fue por procedimiento. Los puertos de salidas de las se&ntilde;ales de los display de 7 segmentos, fueron declarados como vectores de 7 digitos. Durante el desarrollo se utiliz&oacute; variables compartidas (tipo &quot;<strong>shared</strong>&quot;) para disponer de la informaci&oacute;n en todo momento. 
</p>
<p>
&nbsp;&nbsp; Debido al tama&ntilde;o del dise&ntilde;o en VHDL no es posible su publicaci&oacute;n en este documento, sin embargo, se puede tener acceso al mismo consultando la p&aacute;gina: 
</p>
<p>
En la figura 3 se puede observar el resultado de la simulaci&oacute;n del dise&ntilde;o implementado en VHDL. 
</p>
<p>
&nbsp;
</p>
<p align="center">
<img style="width: 930px; height: 528px" src="http://static.obolog.com/multimedia/fotos/57000/56696/56696-48386_o.jpg" alt="56696-48386.jpg" title="56696-48386.jpg" width="822" height="528" /> 
</p>
<p align="center">
Figura 3. Simulaci&oacute;n del dise&ntilde;o en VHDL. 
</p>
<p>
Nota: El Software Quartus II del fabricante ALTERA, es una versi&oacute;n evaluaci&oacute;n de 30 d&iacute;as, por lo tanto no se puede generar el archivo necesario para programar la FPGA. 
</p>
<p align="center">
<strong>6. CONCLUSIONES</strong> 
</p>
<p>
&nbsp;
</p>
<p>
&nbsp;&nbsp; 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. 
</p>
<p>
&nbsp;&nbsp; En la simulaci&oacute;n del dise&ntilde;o esquem&aacute;tico se pueden notar los efectos reales del comportamiento de los circuitos integrados que en la mayor&iacute;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. 
</p>
<p>
&nbsp;&nbsp; En la simulaci&oacute;n del dise&ntilde;o con VHDL se puede observar que no existen los valores intermedios que se dan en la simulaci&oacute;n del esquem&aacute;tico, o sea, las salidas son m&aacute;s limpias. 
</p>
<p>
&nbsp;&nbsp; En ambas simulaciones se puede observar que las salidas responden de la manera esperada ante los diferentes cambios de las se&ntilde;ales de entrada. 
</p>
<p>
&nbsp;&nbsp; La programaci&oacute;n en VHDL acorta el tiempo de realizaci&oacute;n de los proyectos de electr&oacute;nica digital, abarata los costos y reduce el tama&ntilde;o de las tarjetas de circuito impreso y por ende el tama&ntilde;o de los equipos dise&ntilde;ados. 
</p>
<p>
&nbsp;
</p>
<p align="center">
<strong>REFERENCIAS</strong> 
</p>
<p>
[1] S.A. P&eacute;rez, E. Soto, S. Fern&aacute;ndez, &quot;Dise&ntilde;o de Sistemas Digitales con VHDLt&quot;, <em>Thomson Editores Spain</em>, 2002, 
</p>
<p>
[2] http://www.altera.com/, consultada el 02/01/2008 
</p>
<p>
<a href="http://rapidshare.com/files/86724447/TEMPORIZADOR_IMPLEMENTADO_EN_FPGA.doc" target="_blank" title="Paper">Archivo tipo documento. </a>
</p>
<p>
<a href="http://rapidshare.com/files/86724234/DEFINITIVA_paper_circuito.jpg" target="_blank" title="plano">Plano esquem&aacute;tico</a> 
</p>
<p>
<a href="http://rapidshare.com/files/86725373/contador.zip" target="_blank" title="VHDL">Proyecto completo sobre la programaci&oacute;n en VHDL, realizado en el software Quartus II del fabricante ALTERA.</a> 
</p>
<p>
<a href="http://rapidshare.com/files/86725942/temporizador_simbolico.zip" target="_blank" title="SIMBOLICO">Proyecto completo sobre el dise&ntilde;o simb&oacute;lico, realizado en el software Quartus II del fabricante ALTERA.</a> 
</p>
<p>
&nbsp;
</p>
<p>
&nbsp;
</p>			<p>
			<a href="http://tempfpga.obolog.com/fotos/diseno-temporizador-digital-mediante-programacion-vhdl-simbolica-56696" title="Fotos de Diseño de un temporizador digital mediante Programación VHDL y simbólica con FPGA.">Ver álbum de fotos</a> |
			Leer <strong><a href="http://tempfpga.obolog.com/diseno-temporizador-digital-mediante-programacion-vhdl-simbolica-56696" title="Diseño de un temporizador digital mediante Programación VHDL y simbólica con FPGA.">Diseño de un temporizador digital mediante Programación VHDL y simbólica con FPGA.</a></strong> en <a href="http://tempfpga.obolog.com" title="Electrónica Integrada">Diseño de un temporizador digital con FPGA</a>
			</p>
			 ]]>
		</description>
				<author>edgart</author>
				<category>especificaciones</category>
				<comments>http://tempfpga.obolog.com/diseno-temporizador-digital-mediante-programacion-vhdl-simbolica-56696#formulario</comments>
		<guid>http://tempfpga.obolog.com/diseno-temporizador-digital-mediante-programacion-vhdl-simbolica-56696</guid>
		<pubDate>Sat, 26 Jan 2008 09:12:52 +0100</pubDate>
	</item>
</channel>
</rss>