<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Laboratorio de SDP-2</title>
	<atom:link href="http://osciloscopiodigital.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://osciloscopiodigital.wordpress.com</link>
	<description>Diseño de un osciloscopio digital sobre FPGA</description>
	<lastBuildDate>Wed, 04 Jun 2008 17:55:54 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='osciloscopiodigital.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Laboratorio de SDP-2</title>
		<link>http://osciloscopiodigital.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://osciloscopiodigital.wordpress.com/osd.xml" title="Laboratorio de SDP-2" />
	<atom:link rel='hub' href='http://osciloscopiodigital.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Prueba final y despedida</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/06/04/prueba-final-y-despedida/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/06/04/prueba-final-y-despedida/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 17:36:36 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=26</guid>
		<description><![CDATA[Para despedir este blog, cerraremos con la prueba del sistema final sobre el hardware. Para la realización de dicha prueba se conectó a la placa el módulo con el convertidor analógico-digital y la VGA, y se programó. El resultado tras la depuración del fichero .ucf fue el correcto funcionamiento del sistema en modo simulación (podía [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=26&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align:justify;"><span>Para despedir este blog, cerraremos con la prueba del sistema final sobre el hardware.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span> <span> </span>Para la realización de dicha prueba se conectó a la placa el módulo con el convertidor analógico-digital y la VGA, y se programó. El resultado tras la depuración del fichero .ucf fue el correcto funcionamiento del sistema en modo simulación (podía verse la señal triangular en la pantalla), esto es, utilizando el modelo interno del ADC; sin embargo, hubo problemas con el convertidor externo (la señal que salía por pantalla permanecía a cero). El sistema no pudo depurarse completamente por falta de tiempo, y aunque las causas del fallo barajadas a priori eran problemas con el HW (cable mal conectado…) o problemas con la interfaz al ADC (pero en las simulaciones no se observaron problemas), un repaso de la documentación reveló la causa más probable, repasemos para ello el modelo del ADC (ver apartados <strong>interfaz</strong> e <strong>imperfecciones</strong>):</span> <span><a href="../2008/04/20/modelo-del-adcs7476/">http://osciloscopiodigital.wordpress.com/2008/04/20/modelo-del-adcs7476/</a></span></p>
<p class="MsoNormal" style="text-align:justify;"><span> <span> </span>En el cronograma proporcionado por el fabricante vemos que la señal CS debe permanecer activa durante toda la adquisición de la muestra, y vemos que aunque habíamos previsto el problema, se diseñó la unidad de control de la unidad de adquisición como si el ADC comenzara la adquisición<span> </span>con el flanco descendente. Las soluciones posibles serían la modificación de la UC de la unidad de adquisición para que mantenga CS activa el tiempo necesario o colocar un bloque que prolongue la duración de la señal CS_OUT; en todo caso el fallo está localizado.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span> <span> </span>Nos despedimos finalmente de los que hayan podido interesarse por la aplicación comentada aquí, esperamos que haya sido de interés para los lectores.</span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=26&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/06/04/prueba-final-y-despedida/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>
	</item>
		<item>
		<title>Nuevas simulaciones y memorias del proyecto</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/06/02/nuevas-simulaciones-y-memorias-del-proyecto/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/06/02/nuevas-simulaciones-y-memorias-del-proyecto/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 10:15:38 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[actividad final]]></category>
		<category><![CDATA[skydrive]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=25</guid>
		<description><![CDATA[Hemos colgado en la carpeta de Skydrive nuevas simulaciones del sistema completo (dentro del apartado simulaciones), así como la memoria del proyecto en formatos pdf y word 03 (en el archivo docs.zip que se puede encontrar en la carpeta raiz)<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=25&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hemos colgado en la carpeta de Skydrive nuevas simulaciones del sistema completo (dentro del apartado simulaciones), así como la memoria del proyecto en formatos pdf y word 03 (en el archivo docs.zip que se puede encontrar en la carpeta raiz)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=25&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/06/02/nuevas-simulaciones-y-memorias-del-proyecto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>
	</item>
		<item>
		<title>Simulaciones del sistema completo</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/05/30/simulaciones-del-sistema-completo/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/05/30/simulaciones-del-sistema-completo/#comments</comments>
		<pubDate>Fri, 30 May 2008 09:45:49 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[actividad final]]></category>
		<category><![CDATA[Simulaciones]]></category>
		<category><![CDATA[skydrive]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=24</guid>
		<description><![CDATA[Hemos colgado en la carpeta Skydrive, dentro del apartado SIMULACIONES, diversos ficheros wlf con los resultados de la simulación del sistema digital completo y algunos de sus componentes. Todas las simulaciones se han efectuado con la versión XEIII 6.2 g de ModelSim. Los archivos se encuentran comprimidos en ficheros con formato 7z autoextraibles.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=24&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hemos colgado en la carpeta Skydrive, dentro del apartado SIMULACIONES, diversos ficheros wlf con los resultados de la simulación del sistema digital completo y algunos de sus componentes. Todas las simulaciones se han efectuado con la versión XEIII 6.2 g de ModelSim.</p>
<p>Los archivos se encuentran comprimidos en ficheros con formato 7z autoextraibles.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=24&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/05/30/simulaciones-del-sistema-completo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>
	</item>
		<item>
		<title>UNIDAD DE CONTROL GLOBAL</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/05/16/unidad-de-control-global/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/05/16/unidad-de-control-global/#comments</comments>
		<pubDate>Fri, 16 May 2008 18:20:08 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[actividad final]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=23</guid>
		<description><![CDATA[En esta publicación se detalla la implementación de la unidad del control del sistema completo. Los puntos que se comentarán serán la interfaz, la secuencia interna de operaciones de la FSM y la verificación de su funcionamiento mediante simulación. INTERFAZ A continuación se muestra una breve descripción de las señales de entrada y salida de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=23&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align:justify;">En esta publicación se detalla la implementación de la unidad del control del sistema completo. Los puntos que se comentarán serán la <strong>interfaz</strong>, la <strong>secuencia interna de operaciones</strong> de la FSM y la verificación de su funcionamiento mediante <strong>simulación</strong>.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><strong>INTERFAZ</strong></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><strong> </strong>A continuación se muestra una breve descripción de las señales de entrada y salida de la UC, siendo ésta superficial, aunque en el fichero vhdl pueden verse con detalle las funciones de cada señal:</p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">El bloque diseñado dispone de las entradas típicas de reloj (<em>clk</em>) y de reset síncrono (<em>reset</em>). Una vez aplicada la señal de reset, la  UC inicializa todos los circuitos del sistema final mediante dos señales de reset, una global (<em>reset_out</em>) y otra para el divisor de frecuencia (<em>reset_clk_out</em>). Se incluyeron además dos señales de salida para el control de dos leds (<em>led_interfaz</em> y <em>led_funcionando</em>), que indicarán respectivamente que se esperan las modificaciones pertinentes en la interfaz (amplitud: <em>ampli_in</em>; periodo: <em>peri_in</em>; modo simulación: <em>simul_in</em>) y consiguiente activación de la señal de comienzo (<em>empieza</em>), y estado de funcionamiento del osciloscopio. Además se incluye una señal de entrada (<em>cambio</em>) que lleva a la UC al estado “interfaz” (estado 6). Asimismo, la UC incluye salidas de control para todos los bloques (<em>inicio_adq, inicio_pro, inicio_vga; simul_out, peri_out, ampli_out; sel_mux_adc, sel_mux_vga</em>) y entradas de dichos bloques (<em>fin_adq, fin_pro, fin_vga</em>).</p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><strong>SECUENCIA INTERNA DE OPERACIONES</strong></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><strong> </strong>Puede verse a continuación el diagrama de secuencia de operaciones de la UC, aunque se obviaron las activaciones de señales permitiendo una visión de más alto nivel:</p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><img src="http://i273.photobucket.com/albums/jj219/labsdp2/uc_1.jpg" alt="" /></p>
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&amp;gt;                    &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;"><span> </span>Cabe resaltar que los flags a los que se refiere el diagrama son señales que permanecen activas tras la activación de las señales (biestables): <em>cambio, empieza, </em>y <em>fin_vga</em>. Cada una de las citadas señales tiene su flag, y nacen de la necesidad de memorizar la activación de dichas señales ya que ésta podría durar un único ciclo y la comprobación sólo se realiza en determinados estados.</p>
<p class="MsoNormal" style="text-align:justify;"><span> </span>Por ejemplo, la señal <em>fin_vga </em>se activa durante un ciclo de reloj tras la finalización de la representación, y si esto ocurre antes de la activación de la señal <em>fin_adq</em>, la FSM se quedará indefinidamente en el estado 7 esperando la activación de <em>fin_adq</em>, la cual no volverá a producirse. Así, se soluciona este problema introduciendo un biestable que se resetea tras su comprobación.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;"><span> </span><strong>VERIFICACIÓN DE LA UC</strong></p>
<p class="MsoNormal" style="text-align:justify;"><strong> </strong><span> </span>En la siguiente figura pueden verse las simulaciones funcional y temporal de la UC diseñada. Cabe resaltar que para las señales <em>fin_* </em>, se utilizaron las señales <em>inicio_*</em> correspondientes retardadas cierto número de ciclos (no el que tardarían realmente, pero esto es indiferente para la verificación actual) con un retardo “tipo transporte” y no “tipo inercial” (tipo predeterminado), ya que éste último no sigue las variaciones.</p>
<p class="MsoNormal" style="text-align:justify;">Simulación funcional: En la primera gráfica se ve la inicialización y normal funcionamiento, y en la segunda se prueba el cambio en la interfaz.</p>
<p class="MsoNormal" style="text-align:justify;"><img src="http://i273.photobucket.com/albums/jj219/labsdp2/uc_2.jpg" alt="" /></p>
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&amp;gt;  &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;"><img src="http://i273.photobucket.com/albums/jj219/labsdp2/uc_3.jpg" alt="" /></p>
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&amp;gt;  &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;">Simulación temporal: Se incluye también un extracto de la simulación temporal, ya que no sería suficiente con la temporal para concluír un correcto funcionamiento. El estado indeterminado en las señales <em>fin_*</em> se deben como se comentó arriba al modelo transport del retardo utilizado para esas señales.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&amp;gt;  &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;"><img src="http://i273.photobucket.com/albums/jj219/labsdp2/uc_4.jpg" alt="" /></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=23&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/05/16/unidad-de-control-global/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/uc_1.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/uc_2.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/uc_3.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/uc_4.jpg" medium="image" />
	</item>
		<item>
		<title>UNIDAD DE ADQUISICIÓN (cont.)</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/05/16/unidad-de-adquisicion-cont/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/05/16/unidad-de-adquisicion-cont/#comments</comments>
		<pubDate>Fri, 16 May 2008 18:16:41 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[actividad final]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=22</guid>
		<description><![CDATA[En esta publicación comentaremos los cambios realizados en la unidad de adquisición, así como su prueba conjunta con la BRAM. CAMBIOS EN LA UNIDAD DE ADQUISICIÓN Inicialmente se había realizado el modelo del ADC para un reloj de 25 MHz, cuando el ADC real trabaja como máximo a 20 MHz. Para la solución de este [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=22&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">En esta publicación comentaremos los cambios realizados en la unidad de adquisición, así como su prueba conjunta con la  BRAM.</p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><strong>CAMBIOS EN LA UNIDAD DE ADQUISICIÓN</strong></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">Inicialmente se había realizado el modelo del ADC para un reloj de 25 MHz, cuando el ADC real trabaja como máximo a 20 MHz. Para la solución de este problema se planteaban dos posibles soluciones: introducir un bloque “gestor de reloj digital” (DCM) que generara una señal de 20 MHz o cambiar el divisor de frecuencia 1/2 por otro 1/10 (la implementación del divisor de frecuencia no aconseja la elección de un divisor 1/5, ya que al ser impar el número de ciclos de 10 ns necesarios para hacer un ciclo de 50 ns, el cambio de nivel alto a bajo debería hacerse por flanco descendente; además entre 5 y 10 MHz no llega a haber un orden de magnitud y al ser ésta una aplicación didáctica podemos permitirnos la consecuente pérdida de calidad del osciloscopio). Finalmente se optó por esta última opción por ser la más sencilla, aunque no se descarta la anterior si una vez terminado el proyecto sobra tiempo. Además se introdujo un contador en la unidad de control de esta unidad para mantener las señales necesarias para controlar el ADC activas durante 10 ciclos, ya que la UC trabaja con el reloj de 50 MHz y el ADC con el de 5 MHz.</p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">En esta imagen puede verse un extracto de la simulación del ADC donde vemos un ciclo de muestreo:</p>
<p class="MsoNormal" style="text-align:justify;"><span> </span><img src="http://i273.photobucket.com/albums/jj219/labsdp2/adq2_1.jpg" alt="" width="566" height="309" /></p>
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&amp;gt;                    &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">Puede apreciarse además en las gráficas que se muestran a continuación que el tiempo total de operación, comprendido entre las activaciones de las señales “inicio_adq” y “fin_adq” se ve incrementado al hacerlo el período del reloj del ADC. Finalmente el período de muestreo es 4 μs (como es lógico resulta ser 4 veces el obtenido en simulaciones anteriores, dado que la nueva frecuencia de reloj es un cuarto de la anterior) y el tiempo total de operación es 2.564 ms, tiempos que no se ciñen a los estimados al inicio de este proyecto pues los cálculos se habían realizado con el reloj de 20MHz, pero por otra parte no se salen de las restricciones de tiempo real (el tiempo total de operación).</p>
<p class="MsoNormal" style="text-align:justify;"><!--[if gte vml 1]&amp;gt;  &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;"><img src="http://i273.photobucket.com/albums/jj219/labsdp2/adq2_2.jpg" alt="" width="565" height="226" /></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><strong>PRUEBA DE LA UNIDAD DE ADQUISICIÓN CON LA BRAM</strong></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">Para la simulación conjunta de estos dos bloques, se han interconectado dentro de otro bloque. Aunque las simulaciones vistas arriba también se han realizado conjuntamente con la BRAM, ahora comentaremos sus implicaciones:</p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><!--[if gte vml 1]&amp;gt;  &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;"><span> </span><img src="http://i273.photobucket.com/albums/jj219/labsdp2/adq2_3.jpg" alt="" /></p>
<p class="MsoNormal" style="text-align:justify;text-indent:35.4pt;">En la figura, se realiza dos veces la simulación y en la segunda el ADC vuelve a escribir los mismos datos (ya que se reinicializa, no así la BRAM), realizándose lecturas previas al establecer la dirección, pudiendo observarse los resultados esperados.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=22&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/05/16/unidad-de-adquisicion-cont/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/adq2_1.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/adq2_2.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/adq2_3.jpg" medium="image" />
	</item>
		<item>
		<title>SIMULACIONES DE LOS BLOQUES DE MEMORIA</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/05/11/simulaciones-de-los-bloques-de-memoria/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/05/11/simulaciones-de-los-bloques-de-memoria/#comments</comments>
		<pubDate>Sun, 11 May 2008 17:08:55 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[actividad final]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=21</guid>
		<description><![CDATA[Esta semana hemos incluido una pequeña memoria sobre las simulaciones de los bloques correspondientes a las memorias usadas en el proyecto BLOQUES USADOS EN LAS MEMORIAS En nuestro sistema usamos dos bloques de memoria:  un bloque está destinado al almacenamiento de las muestras adquiridas por parte de la unidad de adquisición, y un segundo bloque [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=21&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esta semana hemos incluido una pequeña memoria sobre las simulaciones de los bloques correspondientes a las memorias usadas en el proyecto</p>
<p><strong>BLOQUES USADOS EN LAS MEMORIAS</strong></p>
<p><strong> </strong></p>
<p>En nuestro sistema usamos dos bloques de memoria:  un bloque está destinado al almacenamiento de las muestras adquiridas por parte de la unidad de adquisición, y un segundo bloque se dedica a almacenar el mapa de la pantalla en formato pixel después de procesar adecuadamente las muestras adquiridas.</p>
<p>El primer bloque ha sido implementado en la propia FPGA usando una memoria Block RAM de 1 K x 16 bits, instanciada según las plantillas de Xilinx. Disponemos de un bus de direcciones de 10 bits, y un bus de datos de 16 bits, con dos bits de paridad.</p>
<p>Esta memoria consume todos los recursos disponibles en la FPGA para este tipo de circuito. En conjunto con el bloque BRAM disponemos de un multiplexor conectado a las unidades de adquisición y procesado. Este multiplexor permite que ambas unidades accedan de manera independiente a la BRAM. La unidad de adquisición solamente efectuará operaciones de escritura en la memoria, mientras que la unidad de procesado efectuará operaciones de lectura. El multiplexor permite seleccionar la dirección de escritura/lectura en la memoria BRAM, mediante una variable de selección de la salida del multiplexor (conteniendo la dirección efectiva a la cual se quiere acceder en la memoria BRAM) que será operada desde la unidad de control principal del sistema.</p>
<p>El segundo bloque se basa en una memoria SRAM externa presente en la placa Digilent S3 Starter Board. La memoria SRAM dispone de dos módulos de 512 Kbytes.</p>
<p>Para está implementación usamos solamente uno de los módulos disponibles. Disponemos de un bus de direcciones de 18 bits y un bus de datos de 18 bits con 2 bits de paridad.</p>
<p>Para el control de esta memoria externa disponemos de dos circuitos: un multiplexor y un buffer intermedio. El multiplexor cumple las mismas funciones que el usado en el bloque destinado a la memoria BRAM. En este caso se permiten operaciones de escritura en la memoria por parte de la unidad de procesado, y operaciones de lectura por parte de la unidad de visualización. El buffer intermedio dispone de tercer estado y permite el envío de datos a la memoria SRAM por parte de la unidad de procesado, y su puesta en tercer estado cuando se realicen operaciones de lectura por parte de la unidad de visualización. Se ha implementado este sistema para evitar que ambas unidades puedan interferirse en su acceso a la memoria SRAM, ya que el puerto de datos de la memoria es de entrada/salida.</p>
<p>A continuación podemos observar la jerarquía de los ficheros vhd que contienen los circuitos diseñados para ambos bloques de memoria.</p>
<p><img src="http://i273.photobucket.com/albums/jj219/labsdp2/memorias_vhd.jpg" alt="" width="467" height="110" /></p>
<p>Veremos ahora la simulación del bloque correspondiente a la memoria BRAM (<em>memoria_adq_pro</em>).</p>
<p>En esta simulación escribimos dos datos consecutivos en la memoria BRAM por parte de la unidad de adquisición (cuando la variable sel_mux es igual a cero y write_enable está habilitado) en la dirección d&#8221;0&#8243; y en la dirección d&#8221;2&#8243;. Después leemos de la posición d&#8221;0&#8243; cuando sel_mux es igual a uno (simulando la lectura por parte de la unidad de visualización), para volver a escribir en la posición d&#8221;3&#8243;, y nuevamente leer de la posición d&#8221;2&#8243;.  La salida en esos instantes de lectura son los datos que habíamos escrito anteriormente con la unidad de procesado. En el momento que cambiamos la dirección de escritura/lectura, la salida es  cero hasta una nueva orden de escritura o lectura (ya que la memoria esta inicialmente a cero en todas sus posiciones). Nótese que la señal de reset en este caso se denomina ssr (sinchronous set and reset). Los cursores señalan el comienzo de la primera operación de lectura/escritura.</p>
<p><img src="http://i273.photobucket.com/albums/jj219/labsdp2/simula_adq.jpg" alt="" /></p>
<p>Ahora veremos la simulación del bloque correspondiente a la memoria SRAM</p>
<p>(<em>memoria_pro_VGA</em>) .</p>
<p>En esta simulación escribimos datos desde la unidad de procesado (con sel igual a cero escribimos al estar we_in activo a nivel bajo) y leemos datos consecutivamente desde la unidad de visualización (con sel igual a uno). Cuando efectuamos la operación de lectura el buffer intermedio se pone en tercer estado para evitar que los datos provenientes de la unidad de procesado se escriban mientras estamos leyendo. Puede observarse que el tercer estado se activa cuando la señal sel es igual a uno (operación de lectura). Durante esos instantes la salida dato_VGA_out está en tercer estado. Esto es así debido a que la memoria SRAM nos está incluida en la FPGA, por lo que al hacer una operación de lectura el bus de datos está &#8220;al aire&#8221;, prevaleciendo la señal de tercer estado proveniente del buffer intermedio, conectada al puerto de entrada/salida de datos de la memoria SRAM. Cuando el circuito se encuentre implementado en la placa, la salida en tercer estado para una operación de lectura será obviamente el dato contenido en la posición de memoria desde la cual se quiere leer (dirección dada por dir_out, que es modificada por las direcciones desde la unidad de procesado para escrituras con sel igual a cero o desde la unidad de visualización con sel igual a uno).</p>
<p>Nótese que al no tener disponible la memoria SRAM real, también se ha obviado la señal de reloj necesaria para esta, pero que estará implementada en el sistema final.</p>
<p>No se ha creído necesario crear un modelo de la memoria SRAM para su simulación, entre otros motivos por la falta de recursos de la FPGA utilizada. No obstante si el tiempo lo permite podría hacerse un modelo usando toda la capacidad disponible de la FPGA en una memoria BRAM interna, para la prueba del presente bloque.</p>
<p><img src="http://i273.photobucket.com/albums/jj219/labsdp2/simula_mem_VGA.jpg" alt="" width="1230" height="254" /></p>
<p>El presente articulo también se ha incluido en la carpeta Skydrive en formato pdf para facilitar su consulta offline.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=21&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/05/11/simulaciones-de-los-bloques-de-memoria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/memorias_vhd.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/simula_adq.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/simula_mem_VGA.jpg" medium="image" />
	</item>
		<item>
		<title>UNIDAD DE ADQUISICIÓN</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/05/05/unidad-de-adquisicion/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/05/05/unidad-de-adquisicion/#comments</comments>
		<pubDate>Mon, 05 May 2008 09:23:28 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[actividad final]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=20</guid>
		<description><![CDATA[Esta semana hemos terminado la UNIDAD DE ADQUISICIÓN. La tarea de este bloque es dejar almacenadas en las 640 primeras posiciones de la BRAM las muestras tomadas del conversor analógico-digital. Comentaremos a continuación los detalles concernientes a la estructura interna del bloque, interfaz y funcionamiento.   1.-ESTRUCTURA   Este bloque se compone de dos módulos, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=20&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">Esta semana hemos terminado </span><span style="font-size:10pt;font-family:Arial;">la UNIDAD</span><span style="font-size:10pt;font-family:Arial;"> DE</span><span style="font-size:10pt;font-family:Arial;"> ADQUISICIÓN. La tarea de este bloque es dejar almacenadas en las 640 primeras posiciones de </span><span style="font-size:10pt;font-family:Arial;">la BRAM</span><span style="font-size:10pt;font-family:Arial;"> las muestras tomadas del conversor analógico-digital. Comentaremos a continuación los detalles concernientes a la <strong>estructura</strong> interna del bloque, <strong>interfaz</strong> y <strong>funcionamiento</strong>. </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><strong><span style="font-family:Arial;"><span style="font-size:small;">1.-ESTRUCTURA</span></span></strong></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><strong><span style="font-family:Arial;"><span style="font-size:small;"> </span></span></strong></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">Este bloque se compone de dos módulos, uno con la parte operativa (<em>bloque_util_adq</em>) y otro con la de control (<em>uc_adq)</em>:</span><strong><span style="font-family:Arial;"></span></strong></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;"><span style="font-family:Times New Roman;"><span> <img src="http://i273.photobucket.com/albums/jj219/labsdp2/jpg1.jpg" alt="" width="479" height="226" /></span></span></span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><strong><span style="font-family:Arial;"><span style="font-size:small;">1.a.-UNIDAD DE CONTROL</span></span></strong></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">La unidad de control debe activar las señales pertinentes para la realización de la adquisición. Está implementada mediante una máquina de estados finita, siguiendo el siguiente diagrama de secuencia de operaciones: </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;"><span style="font-family:Times New Roman;"><span> <img src="http://i273.photobucket.com/albums/jj219/labsdp2/jpg2.jpg" alt="" width="442" height="342" /></span></span></span><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">Los contadores a los que se hace referencia son dos:</span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Contador_de_t: para variar la frecuencia de muestreo.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Contador_col: para capturar 640 datos.</span></li>
</ul>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">Cabe destacar que en el diagrama no se explicitan las asignaciones a señales sino que éstas van implícitas en las descripciones de los estados, lo que facilita su comprensión. También que </span><span style="font-size:10pt;font-family:Arial;">la FSM</span><span style="font-size:10pt;font-family:Arial;"> no se realizó con ningún programa específico, sino que se creó directamente en vhdl, dado que resultó ser así más sencilla su realización por la necesidad de contadores adicionales, decisión que aunque por una parte podría no aprovechar todas las posibilidades en cuanto a rendimiento de </span><span style="font-size:10pt;font-family:Arial;">la FPGA</span><span style="font-size:10pt;font-family:Arial;">, sí aumenta la portabilidad del diseño a otros dispositivos de lógica programable e independiza el diseño de programas específicos.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0 0 0 18pt;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><strong><span style="font-family:Arial;"><span style="font-size:small;">1.b.-UNIDAD OPERATIVA</span></span></strong></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><strong><span style="font-family:Arial;"><span style="font-size:small;"> </span></span></strong></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">La unidad operativa está formada por tres bloques: el modelo del ADC, un multiplexor, el receptor del puerto serie, y un bloque divisor de frecuencia de reloj.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">El modelo ADC fue implementado para probar el sistema, y aunque en un principio no pretendía formar parte del sistema final decidió incluírse para evitar la existencia de diferentes versiones de éste, además de permitir la prueba de la parte de procesado y visualización (ya que proporciona una fuente determinista de información) y ayudar a la detección de problemas una vez implementado en la placa. No se profundizará sobre detalles de su implementación ya que esto se hizo anteriormente.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">El multiplexor permite seleccionar como entrada al receptor serie-paralelo la salida del ADC interno o del externo.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">El receptor serie-paralelo recibe la trama y extrae de ella el dato de 12 bits, tarea para la cual necesita tres bloques:</span></li>
</ul>
<p class="MsoNormal" style="text-indent:-18pt;text-align:justify;margin:0 0 0 53.4pt;"><span style="font-size:10pt;font-family:Wingdings;"><span>§<span style="font-family:'Times New Roman';">         </span></span></span><span style="font-size:10pt;font-family:Arial;">Bloque de retardo: registro de desplazamiento de 5 bits si se selecciona la entrada del modelo del adc, 3 si es la externa, con un detector de flancos ascendentes a su entrada para conseguir la señal de inicio de conversión serie-paralelo del dato extraído del adc. La explicación de este retardo se basa en la inclusión al inicio de la trama de 4 ceros, lo que implica 4 registros para su retardo. Como el detector de flancos retarda un ciclo el pulso recibido, se utilizarán 3 registros. Los 2 adicionales para el modelo de ADC surgen de la imperfección del modelo realizado, que genera la trama con dos ciclos de retraso. El pulso retardado en este bloque dispara el siguiente bloque.</span></p>
<p class="MsoNormal" style="text-indent:-18pt;text-align:justify;margin:0 0 0 53.4pt;"><span style="font-size:10pt;font-family:Wingdings;"><span>§<span style="font-family:'Times New Roman';">         </span></span></span><span style="font-size:10pt;font-family:Arial;">Bloque de control de desplazamiento: está formado por un contador y un circuito combinacional que genera el pulso de habilitación de los registros de desplazamiento de 12 bits donde se guardan los datos extraídos del ADC, además de indicar la finalización del desplazamiento con la activación de una señal.</span></p>
<p class="MsoNormal" style="text-indent:-18pt;text-align:justify;margin:0 0 0 53.4pt;"><span style="font-size:10pt;font-family:Wingdings;"><span>§<span style="font-family:'Times New Roman';">         </span></span></span><span style="font-size:10pt;font-family:Arial;">Bloque de desplazamiento: 2 registros de 12 bits de desplazamiento colocados en serie en los que queda la muestra actual y la previa tras la adquisición de un dato. El almacenado de la muestra previa no provee todavía utilidad alguna, pero será útil en el momento de inclusión de un circuito de disparo para comenzar la adquisición con un cruce por cero, tras un máximo o mínimo&#8230;</span></p>
<p class="MsoNormal" style="text-indent:-18pt;text-align:justify;margin:0 0 0 36pt;"><span style="font-size:10pt;font-family:Symbol;"><span>·<span style="font-family:'Times New Roman';">         </span></span></span><span style="font-size:10pt;font-family:Arial;">El circuito divisor de frecuencia de reloj tiene por objeto generar la señal de reloj para alimentar al convertidor analógico-digital externo, ya que la frecuencia utilizada por el sistema es lo doble que la máxima que permite.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0 0 0 106.2pt;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-family:Arial;"><span style="font-size:small;">2.-INTERFAZ</span></span></strong></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-family:Arial;"><span style="font-size:small;"> </span></span></strong></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">Al inicio del apartado anterior (1.-ESTRUCTURA) pueden observarse las entradas y salidas del bloque diseñado.</span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">El <strong>reloj</strong> de entrada será el mismo que el del sistema, 50MHz.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Se incluyen dos señales diferentes de reset, ya que es necesario inicializar el bloque divisor de frecuencia antes que activar el reset global del sistema. Esto es así porque todos los reset son síncronos, y si se inicializa todo con un único reset los circuitos dependientes del reloj de 25MHz quedan sin inicializar al no tener señal de reloj durante su reseteo. Por tanto, primero debe aplicarse el pulso al terminal de <strong>reset_clk</strong> (que únicamente va conectado al bloque divisor de frecuencia) y luego el pulso al terminal de<span>  </span><strong>reset</strong> global.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">La entrada <strong>simul</strong> debe permancer a ‘1’ si se utiliza el ADC interno (modelo) y a ‘0’ en caso de utilizar el ADC externo, cuyos terminales conectaremos con los de la unidad de adquisición: sdata-&gt;<strong>sdata_externo</strong>, cs-&gt;<strong>cs_out</strong>, clk-&gt;<strong>clk25_out</strong>.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Las señales <strong>amplitud</strong> y <strong>frecuencia</strong> permiten aplicar una “amplificación digital” a la señal muestreada y variar la frecuencia de muestreo respectivamente, aunque sus funcionalidades no han sido implementadas todavía.</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">La unidad de adquisición se conecta con </span><span style="font-size:10pt;font-family:Arial;">la BRAM</span><span style="font-size:10pt;font-family:Arial;"> por medio de <strong>we_ram</strong> ( terminal de habilitación de escritura), <strong>puntero_ram</strong> (dirección) y <strong>dato_ram</strong> (dato de entrada).</span></li>
<li class="MsoNormal"><span style="font-size:10pt;font-family:Arial;">Una vez configurada la unidad con los parámetros pertinentes mediante la activación de las señales correspondientes, se inicia el proceso de adquisición mediante un pulso en la entrada <strong>inicio_adq</strong>. Cuando el proceso finalice, quedarán en las primeras 640 posiciones de </span><span style="font-size:10pt;font-family:Arial;">la BRAM</span><span style="font-size:10pt;font-family:Arial;"> los datos muestreados y se generará en la salida <strong>fin_adq</strong> un pulso para indicar tal finalización.</span></li>
</ul>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin:0;"><strong><span style="font-family:Arial;"><span style="font-size:small;">2.-FUNCIONAMIENTO</span></span></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">No incluiremos en esta publicación todos los test realizados a todos los subsistemas que forman la unidad operativa, aunque estos han sido realizados y verificados, para no incrementar demasiado la extensión de la misma; pero sí se incluye a continuación la gráfica resultante de la prueba del sistema final (unidad operativa):</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span><span style="font-size:10pt;font-family:Arial;"><span>                                                  <img src="http://i273.photobucket.com/albums/jj219/labsdp2/jpg3.jpg" alt="" width="508" height="110" /></span></span><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">En la gráfica puede verse la inicialización, cómo la señal de reloj de 25 MHz no empieza hasta la aplicación de reset_clk, luego se aplica la señal de reset; y posteriormente inicio_adq. Puede observarse cómo dato_ram es igual al puntero más uno: esto es así ya que la inicialización del ADC interno genera la muestra cero, y por tanto la primera vez que se pida una muestra ésta será la siguiente, esto es, x”</span><span style="font-size:10pt;font-family:Arial;">001”</span><span style="font-size:10pt;font-family:Arial;">.</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span><span style="font-size:10pt;font-family:Arial;"> </span><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;"><span style="font-family:Times New Roman;"><span> <img src="http://i273.photobucket.com/albums/jj219/labsdp2/jpg4.jpg" alt="" width="494" height="164" /></span></span></span><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">En la segunda gráfica podemos ver la finalización con activación de la señal fin_adq. Puede observarse que la frecuencia de muestreo máxima es 1/0.88 us = 1.14MHz.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span><span style="font-size:small;font-family:Times New Roman;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;"><span style="font-family:Times New Roman;"><span> <img src="http://i273.photobucket.com/albums/jj219/labsdp2/jpg5.jpg" alt="" width="440" height="188" /></span></span></span><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"> </p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">Y en la tercera podemos ver la duración mínima total del proceso de adqusición: 563.24 us. Puede comprobarse que está dentro de los márgenes estimados si revisamos las especificaciones establecidas al inicio del diseño.</span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<p class="MsoNormal" style="text-align:justify;margin:0;"><span style="font-size:10pt;font-family:Arial;">En la próxima publicación incluiremos la simulación temporal y la prueba con </span><span style="font-size:10pt;font-family:Arial;">la BRAM</span><span style="font-size:10pt;font-family:Arial;">, con lo daremos por finalizada la implementación de la unidad operativa básica. Intentaremos asimismo realizar las ampliaciones pertinentes para permitir la selección de amplitud y frecuencia, así como la selección del tipo de disparo para la captura tan pronto como nos sea posible. </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=20&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/05/05/unidad-de-adquisicion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/jpg1.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/jpg2.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/jpg3.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/jpg4.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/jpg5.jpg" medium="image" />
	</item>
		<item>
		<title>Diseño de la unidad VGA</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/04/27/diseno-de-la-unidad-vga/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/04/27/diseno-de-la-unidad-vga/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 18:06:18 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[actividad final]]></category>
		<category><![CDATA[skydrive]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=19</guid>
		<description><![CDATA[Esta semana hemos completado el diseño de la unidad de visualizacion. sólo queda por implementar una unidad de control que actue de interfaz entre la memoria de video (SRAM) y la citada unidad. Tambien se han completado los bloques basicos de las memorias de adquisicion y VGA. En la carpeta Labsdp2 de skydrive hemos colgado [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=19&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esta semana hemos completado el diseño de la unidad de visualizacion. sólo queda por implementar una unidad de control que actue de interfaz entre la memoria de video (SRAM) y la citada unidad. Tambien se han completado los bloques basicos de las memorias de adquisicion y VGA. En la carpeta Labsdp2 de skydrive hemos colgado todos los ficheros vhds disponibles hasta el momento (incluido el modelo del convertidor analógico digital), así como un archivo pdf conteniendo los resultados de las diversas simulaciones funcionales de los circuitos que componen la unidad de visualización. Por otra parte también se ha comenzado el diseño básico de la unidad de procesado. No hemos incluido el fichero vhd de esta por encontrarse en un estado muy primitivo por el momento.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=19&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/04/27/diseno-de-la-unidad-vga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>
	</item>
		<item>
		<title>Modelo del ADCS7476</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/04/20/modelo-del-adcs7476/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/04/20/modelo-del-adcs7476/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 12:12:46 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[actividad final]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=18</guid>
		<description><![CDATA[Esta semana hemos terminado el modelo de funcionamiento en VHDL del convertidor analógico-digital ADCS7476. El diseño de este bloque funcional, que no pertenece al sistema completo a introducir en la FPGA, nace de la necesidad de una caja negra que proporcione en las simulaciones una fuente de muestras, con una interfaz que se corresponda con [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=18&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="text-align:justify;"><span>Esta semana hemos terminado el modelo de funcionamiento en VHDL del convertidor analógico-digital ADCS7476.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span>El diseño de este bloque funcional, que no pertenece al sistema completo a introducir en la FPGA, nace de la <strong>necesidad</strong> de una caja negra que proporcione en las simulaciones una fuente de muestras, con una interfaz que se corresponda con la del ADC al que controlará el sistema final. Así, buscando un diseño sencillo, se optó por la salida de un contador (de 8 bits, aunque el dato que proporciona el ADC es de 12 bits, se han puesto a ‘0’ los 4 bits más significativos ya que no es objetivo ocupar todo el rango, y en caso de que así fuera, siempre puede sustituírse el contador por otro más “grande”). Se pensó también en una memoria con las muestras, pero repetimos, se buscaba la máxima sencillez posible.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span> El modelo se <strong>compone</strong> de:</span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span>Un contador de 8 bits para      generar la muestra en paralelo (4 bits a cero + 8 bits del contador).</span></li>
<li class="MsoNormal"><span>Un multiplexor de 16 a 1 para serializar la      muestra e introducir los bits de sincronización.</span></li>
<li class="MsoNormal"><span>Un contador de 4 bits para      controlar el multiplexor.</span></li>
<li class="MsoNormal"><span>Un circuito auxiliar para      seleccionar el sentido del contador de 8 bits, ya que el contador va de x”00” a x”FF” en sentido      ascendente y vuelve a x”00”      en sentido descendente, y así sucesivamente.</span></li>
<li class="MsoNormal"><span>Un circuito auxiliar para      controlar el contador de 4 bits y la salida en tercer estado del modelo      del ADC.</span></li>
</ul>
<p class="MsoNormal" style="text-align:justify;"><span> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span><span> </span>El <strong>esquema interno</strong> es el que sigue:</span></p>
<p class="MsoNormal" style="text-align:justify;"><img src="http://i273.photobucket.com/albums/jj219/labsdp2/adc_bloques-1.jpg" alt="" width="527" height="400" /></p>
<p class="MsoNormal" style="text-align:center;" align="center"><span><!--[if gte vml 1]&amp;gt;                    &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span>En cuanto a la <strong>interfaz</strong>, cabe resaltar que el modelo tiene 4 terminales, uno más que el circuito real (RESET). Como el bloque diseñado sólo se utilizará en simulaciones, se ha incorporado un terminal para la inicialización de circuitos internos. Los demás terminales se comportan tal y como describe la hoja de características del ADC: la señal de reloj se conecta a CLK; se inicia una nueva conversión para cada flanco descendente en CS; y la salida en serie se hace por SDATA siguiendo el protocolo descrito en la hoja de características:</span></p>
<p class="MsoNormal" style="text-align:justify;"><img src="http://i273.photobucket.com/albums/jj219/labsdp2/adc_tiempos-1.jpg" alt="" width="485" height="224" /></p>
<p class="MsoNormal" style="text-align:justify;"><span><!--[if gte vml 1]&amp;gt;  &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></span></p>
<p class="MsoNormal" style="text-align:justify;"><span> </span></p>
<p class="MsoNormal" style="text-align:justify;"><span>Es importante comentar que el modelo no se ciñe completamente a las especificaciones: </span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span>En el diagrama puede observarse      cómo tras el flanco descendente de CS (aunque en el dibujo pueda parecer      que durante la conversión CS debe permanecer a ‘0’, en el texto se indica      que las conversiones se inician con un flanco descendente) se inicia la      salida serie, mientras que en el modelo tal salida serie no se inicia      hasta 2 ciclos de reloj después. Esto se traduce en el diseño      introduciendo en la “unidad de adquisición” un bloque que retarde la      adquisición 2 ciclos tras el flanco descendente en CS, que será eliminado      cuando se introduzca el sistema en la FPGA, o bien en el arreglo ya que sus causas      son conocidas: un ciclo porque el contador de 4 bits se queda en x”F” y no      en x”0”      y otro ciclo debido al biestable de salida con tercer estado.</span></li>
<li class="MsoNormal"><span>El reloj se invierte justo al      llegar a la entrada del sistema, dado que el inicio de los bits en la      salida serie se hace con flancos descendentes de reloj. Sería más correcto      utilizar entradas por flanco descendente en los bloques internos, pero      este modelo no va a ser implementado en la FPGA, motivo por el cual no se invertirá      mucho tiempo en él, aunque si el tiempo lo permite se intentará depurar      para ceñir su funcionamiento al máximo al circuito real.</span></li>
</ul>
<p class="MsoNormal" style="text-align:justify;"><span>Tales <strong>imperfecciones</strong> no tienen una gran importancia, el sistema funciona bien y su diseño es consistente, y no propagará problemas a los demás bloques si dichas imperfecciones son tenidas en cuenta. Reiteramos que el bloque diseñado no pertenece al sistema y no debe invertirse en él más tiempo del necesario, aunque si fuera necesario se volverá sobre su depuración y se informará de ello en la presente publicación.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span>Se incluye a continuación un extracto de la simulación real del modelo, en la que se muestran los terminales del bloque y los estados de los contadores:</span></p>
<p class="MsoNormal" style="text-align:justify;"><img src="http://i273.photobucket.com/albums/jj219/labsdp2/adc_simul-1.jpg" alt="" width="552" height="106" /></p>
<p class="MsoNormal" style="text-align:justify;"><span><!--[if gte vml 1]&amp;gt;  &amp;lt;![endif]--><!--[if !vml]--><!--[endif]--></span></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;"><span>Enlaces de interés:</span></p>
<ul style="margin-top:0;" type="disc">
<li class="MsoNormal"><span>Hoja de características del      ADCS7476:</span></li>
</ul>
<p class="MsoNormal" style="margin-left:18pt;text-align:justify;"><span><span> </span><span style="color:navy;">http://www.national.com/mpf/DC/ADCS7476.html</span></span></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=18&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/04/20/modelo-del-adcs7476/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/adc_bloques-1.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/adc_tiempos-1.jpg" medium="image" />

		<media:content url="http://i273.photobucket.com/albums/jj219/labsdp2/adc_simul-1.jpg" medium="image" />
	</item>
		<item>
		<title>Inicio del diseño de la unidad vga</title>
		<link>http://osciloscopiodigital.wordpress.com/2008/04/13/inicio-del-diseno-de-la-unidad-vga/</link>
		<comments>http://osciloscopiodigital.wordpress.com/2008/04/13/inicio-del-diseno-de-la-unidad-vga/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 21:24:25 +0000</pubDate>
		<dc:creator>Pablo y Antonio</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[skydrive]]></category>

		<guid isPermaLink="false">http://osciloscopiodigital.wordpress.com/?p=17</guid>
		<description><![CDATA[Esta semana hemos iniciado el trabajo de diseño en vhdl de nuestro sistema digital. Hemos  comenzado por los circuitos que compondran la unidad de video encargada de generar una señal VGA para su posterior visualización en un monitor. Los circuitos diseñados hasta el momento son:  un generador de pulsos de sincronismo horizontal, un generador de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=17&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esta semana hemos iniciado el trabajo de diseño en vhdl de nuestro sistema digital. Hemos  comenzado por los circuitos que compondran la unidad de video encargada de generar una señal VGA para su posterior visualización en un monitor. Los circuitos diseñados hasta el momento son:  un generador de pulsos de sincronismo horizontal, un generador de pulsos de sincronismo vertical, un contador de ciclos de reloj para la señal de sincronismo horizontal, un contador de ciclos de reloj para la señal de sincronismo vertical y un generador de la señal de sincronismo de blanking.</p>
<p>A continuacion se puede observar el contenido de la primera version de cada uno de los ficheros vhd.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>&#8211; Company:        Universidad de Vigo</p>
<p>&#8211; Engineer:             Pablo Porta González</p>
<p>&#8211;                            Antonio José Vázquez Álvarez</p>
<p>&#8211; Create Date:    17:13:09 04/13/2008</p>
<p>&#8211; Design Name:</p>
<p>&#8211; Module Name:    Generador_pulsosync_horizontal &#8211; pulso_sincronia_horizontal</p>
<p>&#8211; Project Name:   Osciloscopio_Digital</p>
<p>&#8211; Target Devices: xc3s200</p>
<p>&#8211; Tool versions:  ise Foundation 8.2i</p>
<p>&#8211; Description:    Circuito generador de la senhal de sincronismo horizontal para</p>
<p>&#8211;                                  una senhal VGA (fin de la linea)</p>
<p>&#8211; Dependencies:</p>
<p>&#8211;</p>
<p>&#8211; Revision:</p>
<p>&#8211; Revision 0.01 &#8211; File Created</p>
<p>&#8211; Additional Comments:</p>
<p>&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>library IEEE;</p>
<p>use IEEE.STD_LOGIC_1164.ALL;</p>
<p>use IEEE.STD_LOGIC_ARITH.ALL;</p>
<p>use IEEE.STD_LOGIC_UNSIGNED.ALL;</p>
<p>&#8212;- Uncomment the following library declaration if instantiating</p>
<p>&#8212;- any Xilinx primitives in this code.</p>
<p>&#8211;library UNISIM;</p>
<p>&#8211;use UNISIM.VComponents.all;</p>
<p>entity Generador_pulsosync_horizontal is</p>
<p>Port ( clk50MHZ : in  STD_LOGIC;  &#8211;senhal de reloj</p>
<p>reset : in  STD_LOGIC;     &#8211;senhal de reset sincrono</p>
<p>contador_horizontal : in  STD_LOGIC_VECTOR (10 downto 0); &#8211;contador del numero de pixeles</p>
<p>Pulso_sync_horizontal : out  STD_LOGIC);                  &#8211;senhal de sincronia horizontal</p>
<p>end Generador_pulsosync_horizontal;</p>
<p>architecture pulso_sincronia_horizontal of Generador_pulsosync_horizontal is</p>
<p>&#8211;Declaracion de senhales auxiliares</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>SIGNAL h_ctr: integer range 1586 downto 0;  &#8211;contador de estado (tenemos 1586 ciclos de reloj para una linea)</p>
<p>SIGNAL pulsoH_aux, cambio_estado: STD_LOGIC;&#8211;senhal de pulso de sincronia horizontal auxiliar, estado del pulso</p>
<p>&#8211;Descripcion del circuito</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>begin</p>
<p>Pulso_sync_horizontal&lt;=pulsoH_aux;</p>
<p>h_ctr&lt;=CONV_INTEGER (contador_horizontal); &#8211;conversion de tipos (vector-&gt;entero)</p>
<p>&#8211;generacion del pulso de sincronia horizontal</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>PULSO: Process (clk50MHZ,reset,cambio_estado)</p>
<p>begin</p>
<p>if reset = &#8217;1&#8242; then</p>
<p>pulsoH_aux &lt;= &#8217;1&#8242;;</p>
<p>elsif clk50MHz=&#8217;1&#8242; and clk50MHz&#8217;event then</p>
<p>if cambio_estado = &#8217;1&#8242; then     &#8211;comprobamos si el pulso horizontal ha de cambiar de estado</p>
<p>pulsoH_aux &lt;= not pulsoH_aux;</p>
<p>else</p>
<p>pulsoH_aux &lt;= pulsoH_aux;</p>
<p>end if;</p>
<p>end if;</p>
<p>end process; &#8211;end PULSO</p>
<p>&#8211;el pulso horizontal debe cambiar de estado en instantes determinados</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>ESTADO: Process (h_ctr)</p>
<p>begin</p>
<p>if (h_ctr = 1326) or (h_ctr = 1514) then</p>
<p>cambio_estado &lt;= &#8217;1&#8242;;</p>
<p>else</p>
<p>cambio_estado &lt;= &#8217;0&#8242;;</p>
<p>end if;</p>
<p>end process;&#8211;end ESTADO</p>
<p>end pulso_sincronia_horizontal;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>&#8211; Company:              Universidad de Vigo</p>
<p>&#8211; Engineer:             Pablo Porta González</p>
<p>&#8211;                            Antonio José Vázquez Álvarez</p>
<p>&#8211; Create Date:    17:46:33 04/13/2008</p>
<p>&#8211; Design Name:</p>
<p>&#8211; Module Name:    Generador_pulsosync_vertical &#8211; Behavioral</p>
<p>&#8211; Project Name:   Osciloscopio_Digital</p>
<p>&#8211; Target Devices: xc3s200</p>
<p>&#8211; Tool versions:  ise Foundation 8.2i</p>
<p>&#8211; Description:    generador del pulso de sincronia vertical para una señal VGA</p>
<p>&#8211;                 (fin del cuadro de imagen)</p>
<p>&#8211; Dependencies:</p>
<p>&#8211;</p>
<p>&#8211; Revision:</p>
<p>&#8211; Revision 0.01 &#8211; File Created</p>
<p>&#8211; Additional Comments:</p>
<p>&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>library IEEE;</p>
<p>use IEEE.STD_LOGIC_1164.ALL;</p>
<p>use IEEE.STD_LOGIC_ARITH.ALL;</p>
<p>use IEEE.STD_LOGIC_UNSIGNED.ALL;</p>
<p>&#8212;- Uncomment the following library declaration if instantiating</p>
<p>&#8212;- any Xilinx primitives in this code.</p>
<p>&#8211;library UNISIM;</p>
<p>&#8211;use UNISIM.VComponents.all;</p>
<p>entity Generador_pulsosync_vertical is</p>
<p>Port ( reset : in  STD_LOGIC;    &#8211;senhal de reset sincrono</p>
<p>clk50MHZ : in  STD_LOGIC; &#8211;senhal de de reloj</p>
<p>contador_vertical : in  STD_LOGIC_VECTOR (9 downto 0); &#8211;contador vertical</p>
<p>pulso_sync_vertical : out  STD_LOGIC);                 &#8211;pulso de sincronia vertical</p>
<p>end Generador_pulsosync_vertical;</p>
<p>architecture pulso_sincronia_vertical of Generador_pulsosync_vertical is</p>
<p>&#8211;Declaracion de senhales auxiliares</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>SIGNAL V_ctr: integer range 524 downto 0;</p>
<p>&#8211;Descripcion del circuito</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>begin</p>
<p>V_ctr &lt;= CONV_INTEGER (contador_vertical); &#8211;conversion de tipos (vector-&gt;entero)</p>
<p>&#8211;generador del pulso de sincronia vertical</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>PULSO:Process (clk50MHz,reset,V_ctr)</p>
<p>begin</p>
<p>if reset = &#8217;1&#8242; then</p>
<p>pulso_sync_vertical &lt;= &#8217;1&#8242;;</p>
<p>elsif clk50MHz=&#8217;1&#8242; and clk50MHz&#8217;event then</p>
<p>if (V_ctr &gt;= 500) and (V_ctr &lt;= 502) then</p>
<p>pulso_sync_vertical &lt;= &#8217;0&#8242;;</p>
<p>else</p>
<p>pulso_sync_vertical &lt;= &#8217;1&#8242;;</p>
<p>end if;</p>
<p>end if;</p>
<p>end process;&#8211;end PULSO</p>
<p>end pulso_sincronia_vertical;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>&#8211; Company:              Universidad de Vigo</p>
<p>&#8211; Engineer:             Pablo Porta González</p>
<p>&#8211;                       Antonio José Vázquez Álvarez</p>
<p>&#8211; Create Date:    19:52:14 04/13/2008</p>
<p>&#8211; Design Name:</p>
<p>&#8211; Module Name:    CTR_horizontal &#8211; contaje_horizontal</p>
<p>&#8211; Project Name:   Osciloscopio_Digital</p>
<p>&#8211; Target Devices: xc3s200</p>
<p>&#8211; Tool versions:  ise Foundation 8.2i</p>
<p>&#8211; Description:    contador de los ciclos de reloj necesarios para el sincronismo horizontal</p>
<p>&#8211;</p>
<p>&#8211; Dependencies:</p>
<p>&#8211;</p>
<p>&#8211; Revision:</p>
<p>&#8211; Revision 0.01 &#8211; File Created</p>
<p>&#8211; Additional Comments:</p>
<p>&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>library IEEE;</p>
<p>use IEEE.STD_LOGIC_1164.ALL;</p>
<p>use IEEE.STD_LOGIC_ARITH.ALL;</p>
<p>use IEEE.STD_LOGIC_UNSIGNED.ALL;</p>
<p>&#8212;- Uncomment the following library declaration if instantiating</p>
<p>&#8212;- any Xilinx primitives in this code.</p>
<p>&#8211;library UNISIM;</p>
<p>&#8211;use UNISIM.VComponents.all;</p>
<p>entity CTR_horizontal is</p>
<p>Port ( clk50MHZ : in  STD_LOGIC;  &#8211;senhal de reloj</p>
<p>reset : in  STD_LOGIC;    &#8211;senhal de reset sincrono</p>
<p>senhal_contaje : out  STD_LOGIC_VECTOR (10 downto 0)); &#8211;vector de contaje</p>
<p>end CTR_horizontal;</p>
<p>architecture contaje_horizontal of CTR_horizontal is</p>
<p>&#8211;Declaracion de senhales auxiliares</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>SIGNAL contaje_int: integer range 1586 downto 0; &#8211;senhal de contaje</p>
<p>&#8211;Descripcion del circuito</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>begin</p>
<p>senhal_contaje &lt;= CONV_STD_LOGIC_VECTOR (contaje_int,11); &#8211;conversion de tipos (entero-&gt;vector)</p>
<p>&#8211;Proceso de contaje</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>CUENTA: Process (clk50MHZ,reset,contaje_int)</p>
<p>begin</p>
<p>if reset = &#8217;1&#8242; then contaje_int &lt;= 0;</p>
<p>elsif (clk50MHZ = &#8217;1&#8242; and clk50MHZ&#8217;event) then</p>
<p>if contaje_int = 1586 then</p>
<p>contaje_int &lt;= 0;  &#8211;en el estado 1,586 volvemos a cero</p>
<p>else</p>
<p>contaje_int &lt;= contaje_int + 1;</p>
<p>end if;</p>
<p>end if;</p>
<p>end Process; &#8211;end CUENTA</p>
<p>end contaje_horizontal;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>&#8211; Company:              Universidad de Vigo</p>
<p>&#8211; Engineer:             Pablo Porta González</p>
<p>&#8211;                       Antonio José Vázquez Álvarez</p>
<p>&#8211; Create Date:    20:25:01 04/13/2008</p>
<p>&#8211; Design Name:</p>
<p>&#8211; Module Name:    CTR_vertical &#8211; contaje_vertical</p>
<p>&#8211; Project Name:   Osciloscopio_Digital</p>
<p>&#8211; Target Devices: xc3s200</p>
<p>&#8211; Tool versions:  ise Foundation 8.2i</p>
<p>&#8211; Description:    Contador de ciclos de reloj para la senhal de sincronismo vertical</p>
<p>&#8211;</p>
<p>&#8211; Dependencies:</p>
<p>&#8211;</p>
<p>&#8211; Revision:</p>
<p>&#8211; Revision 0.01 &#8211; File Created</p>
<p>&#8211; Additional Comments:</p>
<p>&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>library IEEE;</p>
<p>use IEEE.STD_LOGIC_1164.ALL;</p>
<p>use IEEE.STD_LOGIC_ARITH.ALL;</p>
<p>use IEEE.STD_LOGIC_UNSIGNED.ALL;</p>
<p>&#8212;- Uncomment the following library declaration if instantiating</p>
<p>&#8212;- any Xilinx primitives in this code.</p>
<p>&#8211;library UNISIM;</p>
<p>&#8211;use UNISIM.VComponents.all;</p>
<p>entity CTR_vertical is</p>
<p>Port ( Sync_horizontal : in  STD_LOGIC;</p>
<p>senhal_contaje : out  STD_LOGIC_VECTOR (9 downto 0);</p>
<p>reset : in  STD_LOGIC;</p>
<p>clk50MHZ : in  STD_LOGIC);</p>
<p>end CTR_vertical;</p>
<p>architecture contaje_vertical of CTR_vertical is</p>
<p>&#8211;Declaracion de senhales auxiliares</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>SIGNAL contaje_int : integer range 524 downto 0;</p>
<p>SIGNAL H_sync_aux,H_sync_t_1,Fa_H_sync: STD_LOGIC; &#8211;senhales para el computo del flanco de reloj</p>
<p>&#8211;Descripcion del circuito</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>begin</p>
<p>senhal_contaje &lt;= CONV_STD_LOGIC_VECTOR (contaje_int, 10); &#8211;conversion de tipos (entero-&gt;vector)</p>
<p>&#8211;Detector de flancos ascendentes para el sincronismo horizontal</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>DETECTOR: Process (reset,clk50MHz,H_sync_aux,H_sync_t_1)</p>
<p>begin</p>
<p>if reset = &#8217;1&#8242; then     H_sync_aux &lt;= &#8217;0&#8242;;</p>
<p>H_sync_t_1 &lt;= &#8217;0&#8242;;</p>
<p>elsif (clk50MHz = &#8217;1&#8242; and clk50MHz&#8217;event) then</p>
<p>H_sync_t_1 &lt;= H_sync_aux;</p>
<p>H_sync_aux &lt;= Sync_horizontal;</p>
<p>end if;</p>
<p>FA_H_sync &lt;= H_sync_aux and not H_sync_t_1;</p>
<p>end process;&#8211;end DETECTOR</p>
<p>&#8211;contador vertical</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>CONTADOR: Process (FA_H_sync,reset,contaje_int,clk50MHz)</p>
<p>begin</p>
<p>if reset = &#8217;1&#8242; then</p>
<p>contaje_int &lt;= 0;</p>
<p>elsif (clk50MHz=&#8217;1&#8242; and clk50MHz&#8217;event) then</p>
<p>if FA_H_sync = &#8217;1&#8242; then</p>
<p>if contaje_int = 524 then</p>
<p>contaje_int &lt;= 0;</p>
<p>else</p>
<p>contaje_int &lt;= contaje_int + 1;</p>
<p>end if;</p>
<p>end if;</p>
<p>end if;</p>
<p>end process;&#8211;end CONTADOR</p>
<p>end contaje_vertical;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>&#8211; Company:              Universidad de Vigo</p>
<p>&#8211; Engineer:             Pablo Porta González</p>
<p>&#8211;                       Antonio José Vázquez Álvarez</p>
<p>&#8211; Create Date:    18:09:04 04/13/2008</p>
<p>&#8211; Design Name:</p>
<p>&#8211; Module Name:    Generador_blanking &#8211; pulso_de_blanking</p>
<p>&#8211; Project Name:   Osciloscopio_Digital</p>
<p>&#8211; Target Devices: xc3s200</p>
<p>&#8211; Tool versions:  ise Foundation 8.2i</p>
<p>&#8211; Description:    generador del pulso de blanking para la senhal VGA</p>
<p>&#8211;</p>
<p>&#8211; Dependencies:</p>
<p>&#8211;</p>
<p>&#8211; Revision:</p>
<p>&#8211; Revision 0.01 &#8211; File Created</p>
<p>&#8211; Additional Comments:</p>
<p>&#8211;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>library IEEE;</p>
<p>use IEEE.STD_LOGIC_1164.ALL;</p>
<p>use IEEE.STD_LOGIC_ARITH.ALL;</p>
<p>use IEEE.STD_LOGIC_UNSIGNED.ALL;</p>
<p>&#8212;- Uncomment the following library declaration if instantiating</p>
<p>&#8212;- any Xilinx primitives in this code.</p>
<p>&#8211;library UNISIM;</p>
<p>&#8211;use UNISIM.VComponents.all;</p>
<p>entity Generador_blanking is</p>
<p>Port ( clk50MHZ : in  STD_LOGIC;  &#8211;senhal de reloj</p>
<p>contador_vertical : in  STD_LOGIC_VECTOR (9 downto 0);   &#8211;contador vertical</p>
<p>contador_horizontal : in  STD_LOGIC_VECTOR (10 downto 0); &#8211;contador horizontal</p>
<p>reset : in  STD_LOGIC;     &#8211;senhal de reset</p>
<p>pulso_blank : out  STD_LOGIC); &#8211;pulso de blanking</p>
<p>end Generador_blanking;</p>
<p>architecture pulso_de_blanking of Generador_blanking is</p>
<p>&#8211;Declaracion de senhales auxiliares</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>SIGNAL H_ctr : integer range 1586 downto 0; &#8211;senhales de conteo</p>
<p>SIGNAL V_ctr : integer range 524 downto 0;</p>
<p>&#8211;Descripcion del circuito</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>begin</p>
<p>H_ctr &lt;= CONV_INTEGER (contador_horizontal); &#8211;conversion de tipos (vector-&gt;entero)</p>
<p>V_ctr &lt;= CONV_INTEGER (contador_vertical);</p>
<p>&#8211;generacion del pulso de blankeo</p>
<p>BLANKEO:Process (H_ctr,V_ctr)</p>
<p>begin</p>
<p>if ((H_ctr &gt;= 1258) and (H_ctr &lt;= 1586)) or</p>
<p>((V_ctr &gt;= 480) and (V_ctr &lt;= 524)) then</p>
<p>pulso_blank &lt;= &#8217;0&#8242;;</p>
<p>else</p>
<p>pulso_blank &lt;= &#8217;1&#8242;;</p>
<p>end if;</p>
<p>end process;&#8211;end BLANKEO</p>
<p>end pulso_de_blanking;</p>
<p>para facilitar su consulta tambien se ha colgado la primera version de los ficheros en la carpeta skydrive.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/osciloscopiodigital.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/osciloscopiodigital.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/osciloscopiodigital.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/osciloscopiodigital.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/osciloscopiodigital.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/osciloscopiodigital.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/osciloscopiodigital.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/osciloscopiodigital.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/osciloscopiodigital.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/osciloscopiodigital.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/osciloscopiodigital.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/osciloscopiodigital.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/osciloscopiodigital.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/osciloscopiodigital.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/osciloscopiodigital.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/osciloscopiodigital.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=osciloscopiodigital.wordpress.com&amp;blog=2985166&amp;post=17&amp;subd=osciloscopiodigital&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://osciloscopiodigital.wordpress.com/2008/04/13/inicio-del-diseno-de-la-unidad-vga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4c9c4e0b0e17930ed36a13d2467b586d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Pablo y Antonio</media:title>
		</media:content>
	</item>
	</channel>
</rss>
