<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>1815-5928</journal-id>
<journal-title><![CDATA[Ingeniería Electrónica, Automática y Comunicaciones]]></journal-title>
<abbrev-journal-title><![CDATA[EAC]]></abbrev-journal-title>
<issn>1815-5928</issn>
<publisher>
<publisher-name><![CDATA[Universidad Tecnológica de La Habana José Antonio Echeverría, Cujae]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1815-59282013000200004</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Diseño en VHDL de un controlador HDLC]]></article-title>
<article-title xml:lang="en"><![CDATA[Desing in VHDL of HDLC controller]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Del Valle Crespo]]></surname>
<given-names><![CDATA[Ilena]]></given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Torres Dávila]]></surname>
<given-names><![CDATA[Dallán]]></given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[González Padilla]]></surname>
<given-names><![CDATA[Yudith Florencia]]></given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[González Badillo]]></surname>
<given-names><![CDATA[Javier]]></given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Herrera Fonseca]]></surname>
<given-names><![CDATA[Yosbel J.]]></given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Molina Campos]]></surname>
<given-names><![CDATA[Juan C.]]></given-names>
</name>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Centro de Investigación y Desarrollo Técnico CIDT  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A02">
<institution><![CDATA[,ETECSA  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Instituto Superior Politécnico José Antonio Echeverría,Cujae  ]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>08</month>
<year>2013</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>08</month>
<year>2013</year>
</pub-date>
<volume>34</volume>
<numero>2</numero>
<fpage>36</fpage>
<lpage>47</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S1815-59282013000200004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S1815-59282013000200004&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S1815-59282013000200004&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En esta investigación se presenta el diseño de un módulo de hardware embebido con la funcionalidad de un controlador HDLC (de sus siglas en inglés High Level Dato Link Control) para una interfaz de línea digital E1. El sistema diseñado realiza las tareas de un transmisor-receptor, encargándose de acciones como la inserción y detección de las banderas de inicio y fin de trama, la inserción y detección de ceros para evitar la existencia de la secuencia de bandera en el campo de dato y el chequeo de trama. También incorpora una interfaz con un microprocesador para la configuración de los parámetros iníciales y a través de ella se adquieren los datos de control que se van a transmitir o recibir. Cada uno de los bloques presentes en el sistema se ha diseñado a través del lenguaje de descripción de hardware VHDL (de sus siglas en inglés Very High Density Language) empleando el software Xilinx ISE Design Suite 12.4. Finalmente, la investigación es implementada en la tarjeta de desarrollo SPARTAN3 Starter Board Kit y los resultados quedan validados con las comprobaciones pertinentes.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[This research presents the design of an embedded hardware module with functionality of a HDLC controller to an E1digital line interface. The designed system performs the tasks of a transmitter-receiver, responsible for actions such as insertion and detection of start and end flags of frame, the insertion and detection of zeros to avoid the existence of the sequence of flags in the data field and the frame check. It also incorporates an interface with a microprocessor for setting the initial parameters and through it control data's are acquired to be transmitted or received. Each of the blocks in the system has been designed through the hardware description language VHDL using Xilinx software ISE Design Suite 12.4. Finally, research is carried through in the development board Spartan3 Starter Board Kit and the results are validated with the appropriate verifications.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[controlador HDLC]]></kwd>
<kwd lng="es"><![CDATA[trama]]></kwd>
<kwd lng="es"><![CDATA[VHDL]]></kwd>
<kwd lng="es"><![CDATA[FPGA]]></kwd>
<kwd lng="es"><![CDATA[xilinx]]></kwd>
<kwd lng="en"><![CDATA[frame]]></kwd>
<kwd lng="en"><![CDATA[HDLC controller]]></kwd>
<kwd lng="en"><![CDATA[VHDL]]></kwd>
<kwd lng="en"><![CDATA[FPGA]]></kwd>
<kwd lng="en"><![CDATA[xilinx]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <P align="right"><font size="2" face="Verdana"><strong>ARTICULO ORIGINAL</strong></font></p>     <P align="right">&nbsp;</p>     <P align="left"><font size="4" face="Verdana"><B>Dise&ntilde;o en VHDL de un controlador HDLC.</B></font></p>     <P>&nbsp;</p>     <P><font size="2"><font size="3" face="Verdana"><B>Desing in VHDL of HDLC controller.</B></font></font></p>     <P>&nbsp;</p>     <P>&nbsp;</p>     <P><font size="2" face="Verdana"><strong>Ilena Del Valle Crespo<SUP>1</SUP>, Dall&aacute;n Torres    D&aacute;vila<SUP>2</SUP>, Yudith Florencia Gonz&aacute;lez    Padilla<SUP>3</SUP>, Javier Gonz&aacute;lez    Badillo<SUP>3</SUP>, Yosbel J. Herrera    Fonseca<SUP>3</SUP>, Juan C. Molina Campos</strong></font><font size="2" face="Verdana"><strong><SUP>3</SUP></strong></font>.</p>     <P><font size="2"><font face="Verdana"><sup>1</sup> Centro de Investigaci&oacute;n y Desarrollo T&eacute;cnico &#171;CIDT&#187;, Cuba, <a href="mailto:cidt@mn.mn.co.cu">cidt@mn.mn.co.cu</a>    <br> <sup>2</sup> ETECSA, Cuba    ]]></body>
<body><![CDATA[<br> <sup>3</sup> Instituto Superior Polit&eacute;cnico Jos&eacute; Antonio Echeverr&iacute;a,Cuaje, La Habana, Cuba, <a href="mailto:florencia.gp@electrica.cujae.edu.cu">florencia.gp@electrica.cujae.edu.cu</a></font></font></p>     <P>&nbsp;</p>     <P>&nbsp;</p> <hr>     <P><font size="2" face="Verdana"><B>RESUMEN  </B> </font></p>     <P><font size="2" face="Verdana">En esta investigaci&oacute;n se presenta el dise&ntilde;o de un m&oacute;dulo de hardware embebido con la funcionalidad de un  controlador HDLC (de sus siglas en ingl&eacute;s High Level Dato Link Control) para una interfaz de l&iacute;nea digital E1. El sistema  dise&ntilde;ado realiza las tareas de un transmisor-receptor, encarg&aacute;ndose de acciones como la inserci&oacute;n y  detecci&oacute;n de las  banderas de inicio y fin de trama, la inserci&oacute;n y detecci&oacute;n de ceros para evitar la existencia  de la secuencia de bandera en  el campo de dato y el chequeo de trama. Tambi&eacute;n incorpora una interfaz con un microprocesador  para la  configuraci&oacute;n de los par&aacute;metros in&iacute;ciales y a trav&eacute;s de ella se adquieren los datos de control que se van a transmitir o recibir. </font><font size="2" face="Verdana">Cada uno de los bloques presentes en el sistema  se ha  dise&ntilde;ado a trav&eacute;s del lenguaje de descripci&oacute;n de  hardware VHDL (de sus siglas en ingl&eacute;s Very High Density Language) empleando el software Xilinx ISE Design Suite 12.4. </font><font size="2" face="Verdana">Finalmente, la investigaci&oacute;n es implementada en la tarjeta de desarrollo SPARTAN3 Starter Board Kit y los  resultados quedan validados con las comprobaciones pertinentes. </font></p>     <P><font size="2" face="Verdana"><strong>Palabras claves:</strong> controlador HDLC, trama, VHDL, FPGA, xilinx. </font>    <br> </p> <hr>     <P><font size="2" face="Verdana"><B>ABSTRACT </B> </font></p>     <P> <font size="2" face="Verdana">This research presents the design of an embedded hardware module with functionality of a HDLC controller to  an E1digital line interface. The designed system performs the tasks of a transmitter-receiver, responsible for  actions such as insertion and detection of start and end flags of frame, the insertion and detection of zeros to avoid  the existence of the sequence of flags in the data field and the frame check. It also incorporates an interface with  a microprocessor for setting the initial parameters and through it control data's are acquired to be transmitted  or received. </font><font size="2"><font face="Verdana">Each of the blocks in the system has been designed through the hardware description language VHDL using    Xilinx software ISE Design Suite 12.4. Finally, research is carried through in the development board Spartan3 Starter Board Kit and the results    are validated with the appropriate verifications.   </font>   </font></p>     <P><font size="2"><font face="Verdana"><B>Key words:</B> frame, HDLC controller, VHDL, FPGA, xilinx.    ]]></body>
<body><![CDATA[<br> </font></font></p> <hr>     <P>&nbsp;</p>     <P>&nbsp;</p>     <P><font size="3" face="Verdana"><B>INTRODUCCION</B>  </font></p>     <P>&nbsp;</p>     <P><font size="2" face="Verdana">El protocolo HDLC maneja una estructura orientado a bitpacket switching protocol defined in the X.25 (Level    2) recommendations of the . Este se encuentra ubicado en la capa de enlace del modelo OSI y es responsable de    la transferencia fiable de informaci&oacute;n a trav&eacute;s de un circuito de transmisi&oacute;n de datos digital a 2048KHz;    recibe peticiones de la capa de red y utiliza los servicios de la capa f&iacute;sica. Entre sus funciones est&aacute;n el control de    errores, de flujo y la inicializaci&oacute;n y desconexi&oacute;n de    estaciones<SUP>1</SUP>. El protocolo se define en la norma    <B>ISO/IEC 13239:2002(E)  </B>    <BR>   en la cual se especifica un formato de encapsulamiento de trama para enlaces de datos sincr&oacute;nicos y orientados a    la conexi&oacute;n el cual se presenta en la <a href="#f1">figura 1</a>. </font></p>     <P align="center"><img src="/img/revistas/eac/v34n2/f0104213.jpg" width="358" height="108"><a name="f1"></a></p>     
<P>&nbsp;</p>     <P><font size="2" face="Verdana">La trama del protocolo est&aacute; constituida por un campo de bandera de ocho bits el cual da inicio y fin de trama;  adem&aacute;s tiene un campo de direcci&oacute;n que consta de un byte que identifica al m&oacute;dulo; le sigue el campo de control que es  de longitud extendida ya que puede ser de uno o m&aacute;s bytes; despu&eacute;s se tiene en 16 bits una secuencia de verificaci&oacute;n  de trama (FCS). </font></p>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Esta investigaci&oacute;n se enfoc&oacute; en dise&ntilde;ar un sistema con funcionalidad semejante al controlador de la familia  MT8952B, el cual utiliza una de las versiones del protocolo HDLC como resultado de su estandarizaci&oacute;n, como es el LAPB (de  sus siglas en ingl&eacute;s Link Access Procedure Balanced). Su funci&oacute;n es el procedimiento de acceso al enlace  balanceado usado en las interfaces X.25, nivel 2, procurando una entrega segura de los datos entre el dispositivo del usuario y  la red de paquetes. </font></p>     <P><font size="2" face="Verdana">En la actualidad se encuentran FPGA de alto rendimiento con sistemas de millones de compuertas y bloques  embebidos de microprocesadores, interfaces de entrada/salida de muy alta velocidad (pudiendo sobrepasar los 5Gbps).Lo  anterior justifica que estos dispositivos sean aptos para casi cualquier aplicaci&oacute;n, como por ejemplo sistemas de  comunicaciones, redes neuronales artificiales y procesamiento digital de se&ntilde;ales, por mencionar algunos. </font></p>     <P><font size="2" face="Verdana">El &eacute;xito que han tenido los FPGA se debe en gran medida al hecho de que, a pesar de sus vastos recursos, su  valor comercial no se ha incrementado en la misma proporci&oacute;n que  estos<SUP>3</SUP>. Por ello muchos sectores del pa&iacute;s  se han  acogido a la modernizaci&oacute;n de sus dispositivos haciendo uso de  m&oacute;dulos de hardware embebido (HE), que no es m&aacute;s  que descripciones software de componentes hardware que implementados en un FPGA como un m&oacute;dulo de  propiedad intelectual (IP), pueden sustituir la circuiter&iacute;a instalada y obsoleta, con  ventajas tales como: la reducci&oacute;n en los  costos y la capacidad de reutilizaci&oacute;n, permitiendo esto el aprovechamiento de las capacidades tecnol&oacute;gicas existentes. </font></p>     <P>&nbsp;</p>     <P><font size="3" face="Verdana"><B>DISE&Ntilde;O DE LOS BLOQUES FUNCIONALES DEL    CONTROLADOR HDLC.</B> </font></p>     <P>&nbsp;</p>     <P><font size="2" face="Verdana">En esta seccion se presentar&aacute; el dise&ntilde;o de los diferentes bloques que conforman el m&oacute;dulo de hardware embebido    que ser&aacute; implementado en el FPGA, con la funcionalidad de controlador HDLC para una interfaz digital de flujo E1. Con    el uso de la herramienta de dise&ntilde;o ISE 12.4 del fabricante Xilinx, se construyeron los bloques que conforman    los subsistemas, los cuales obedecen a los requerimientos del controlador de la familia MT8952B. </font></p>     <P><font size="2" face="Verdana"><B>Descripci&oacute;n general del dise&ntilde;o del controlador HDLC.</B> </font></p>     <P><font size="2" face="Verdana">En un sentido el sistema adquiere el dato que da el microprocesador a trav&eacute;s del buffer de transmisi&oacute;n para  incorporarlo en el intervalo de tiempo del canal 16, o en cualquier otro intervalo de tiempo de canal que sea elegido por el  modo externo, a trav&eacute;s de la salida ST_BUS; y en el otro sentido se adquiere el dato a trav&eacute;s de la se&ntilde;al ST_BUS_RX  para envi&aacute;rsela al microprocesador a trav&eacute;s del buffer de recepci&oacute;n y este pueda procesarla. Ambos sentidos cuentan  con el suministro de reloj y se&ntilde;ales que le permitan  mantenerse sincronizado con el flujo E1 y adem&aacute;s,  una interfaz con  el microprocesador que permite el intercambio necesario de informaci&oacute;n. </font><font size="2" face="Verdana">Para poder lograr toda la funcionalidad que respecta al controlador HDLC, el dise&ntilde;o qued&oacute; divido en 5  subsistemas como se muestra en la <a href="/img/revistas/eac/v34n2/f0204213.jpg">figura 2</a>. </font></p>     
<P><font size="2" face="Verdana">&#183;     <I>Subsistema Interfaz con el  Microprocesador</I>: Dise&ntilde;ado con el prop&oacute;sito de comunicar al controlador  HDLC con el microprocesador. Con el objetivo principal de configurar el modo de trabajo del controlador y escribir o  los datos a entramar o leer los que se reciben . </font></p>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">&#183;     <I>Subsistema de Control</I>: Encargado de actualizar todos  los registros que conforman la interfaz con  el microprocesador.Informa al Subsistema de Transmis&oacute;n sobre el estado delos buffer de transmisi&oacute;n y  recepci&oacute;n, as&iacute; como del estado delos byte a transmitir y recibir. </font></p>     <P><font size="2" face="Verdana">&#183;     <I>Subsistema de  Temporizaci&oacute;n</I>: Garantiza que el dato sea transmitido o recibido en el momento adecuado, ya sea   en el intervalo de tiempo de canal 16 de la trama E1 o en cualquier otro intervalo de tiempo de canal  seleccionado por el microprocesador a trav&eacute;s de la temporizaci&oacute;n externa. </font></p>     <P><font size="2" face="Verdana">&#183;     <I>Subsistema de  Transmisi&oacute;n</I>: Conforma la trama HDLC siguiendo los procedimientos de la norma IS13239.  Le agrega al dato suministrado por el microprocesador, los campos de FCS y las banderas de inicio y fin.  </font></p>     <P><font size="2" face="Verdana">&#183;     <I>Subsistema de  Recepci&oacute;n</I>: Una vez recibida la trama, permite el desencapsulamiento del dato siguiendo  los procedimientos de la norma IS13239. A trav&eacute;s de los diferentes bloques que lo conforman es capaz de extraer  el dato de la trama y entregarlo a la interfaz con el microprocesador. </font></p>     <P><font size="2" face="Verdana"><B> Entradas y Salidas generales del Controlador HDLC.</B> </font></p>     <P><font size="2" face="Verdana">Seg&uacute;n como se present&oacute; en la <a href="/img/revistas/eac/v34n2/f0204213.jpg">figura 2</a> el sistema est&aacute; compuesto por un n&uacute;mero de se&ntilde;alesde entrada y salida  las cuales se describir&aacute;n en este ep&iacute;grafe. </font></p>     
<P><font size="2" face="Verdana"><B>D_in: </B>A trav&eacute;s de esta se&ntilde;al el microprocesador env&iacute;a los datos pertenecientes a los registros o los datos propios  de control que conforman la trama HDLC. </font></p>     <P><font size="2" face="Verdana"><B>D_out: </B>A trav&eacute;s de esta se&ntilde;al el microprocesador recibe los datos provenientes de los registros o los datos propios  de control que conforman la trama que se recibi&oacute;. </font></p>     <P><font size="2" face="Verdana"><B>A31...A0:</B> Estos bits constituyen el bus de direcciones, que posibilita que el microprocesador direccione el  controlador HDLC, as&iacute; como  un registro en particular. </font></p>     <P><font size="2" face="Verdana"><B>R_W:</B> Bit que indica si el microprocesador va a realizar una escritura o una lectura. Si se encuentra en nivel alto  indica que se realizar&aacute; una lectura(R) y si se encuentra en nivel bajo se realizar&aacute; una escritura (W). </font></p>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana"><B>EN</B>: Bit que habilita, de encontrarse en nivel alto, el bus de direcciones, las funciones de lectura y escritura, as&iacute;  como la transferencia de datos hacia el bus de datos. </font></p>     <P><font size="2" face="Verdana"><B>CS</B>: De encontrarse este bit en nivel alto, habilita las operaciones de lectura y escritura hacia los registros del controlador.  </font></p>     <P><font size="2" face="Verdana"><B>IRQ</B>: Se&ntilde;al de un bit que solicita  interrupci&oacute;n al microprocesador, para esto debe pasar a nivel bajo. </font></p>     <P><font size="2" face="Verdana"><B>CLK</B>: Entrada de reloj  del sistema con un valor de 2048KHz.  </font></p>     <P><font size="2" face="Verdana"><B>rst</B>: Inicializa todos los bloques que comprenden este controlador, cuando se encuentra en nivel bajo. </font></p>     <P><font size="2" face="Verdana"><B>F0</B>: Se&ntilde;al de un bit que cuando sube su nivel a `1', indica que se  comenz&oacute; a transmitir el canal 0 de la Trama E1.  Est&aacute; dirigida al Subsistema de Temporizaci&oacute;n para lograr el modo interno de temporizaci&oacute;n.   </font></p>     <P><font size="2" face="Verdana"><B>TX_CEN</B>: Se&ntilde;al que act&uacute;a directamente sobre el Subsistema de Temporizaci&oacute;n permitiendo el modo externo; cuando  la transmisi&oacute;n est&aacute; concebida por esta se&ntilde;al no necesariamente el dato de control va en el canal 16 de la Trama E1,  se transmite en el canal que ella seleccione. </font></p>     <P><font size="2" face="Verdana"><B>RX_CEN</B>: Se&ntilde;al que act&uacute;a directamente sobre el Subsistema de Temporizaci&oacute;n permitiendo el modo externo; cuando  la recepci&oacute;n est&aacute; concebida por esta se&ntilde;al no necesariamente el dato de control va a recibirse en el canal 16 como  est&aacute; preestablecido. </font></p>     <P><font size="2" face="Verdana"><B>ST_BUS</B>: Se&ntilde;al de 8 bit, que permite que el m&oacute;dulo HDLC envi&eacute; la trama de control hacia el transceptor y as&iacute;  incorporarla al flujo digital E1. </font></p>     <P><font size="2" face="Verdana"><B>ST_BUS_RX</B>: Se&ntilde;al  de 8 bits, a trav&eacute;s de la cual se obtiene el dato de control proveniente del transceptor del  flujo digital E1. </font></p>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana"><B>TEOP</B>: Se&ntilde;al de un bit, que sube su nivel a uno para indicar fin de transmisi&oacute;n del espacio de dato de la trama  de control. </font></p>     <P><font size="2" face="Verdana"><B>REOP: </B>Se&ntilde;al de un bit, que sube su nivel a uno para indicar fin de recepci&oacute;n del espacio de dato de la trama de control. </font></p>     <P><font size="2" face="Verdana"><B>Subsistema Interfaz con el Microprocesador</B> </font></p>     <P><font size="2" face="Verdana">El subsistema Interfaz con el Microprocesador es el encargado de comunicar el m&oacute;dulo del controlador HDLC con  el microprocesador. Para poder realizar la comunicaci&oacute;n, el microprocesador debe habilitar el m&oacute;dulo del  Controlador HDLC a trav&eacute;s  de la se&ntilde;al ENen nivel alto, realizar la selecci&oacute;n del m&oacute;dulo a trav&eacute;s de la se&ntilde;al CS en `1' y el bit  m&aacute;s significativo del  bus de direcciones en nivel alto (A(31)= `1'). Una vez que se habilit&oacute; la comunicaci&oacute;n hacia el  m&oacute;dulo del controlador, si lo que se desea realizar es una escritura,  la se&ntilde;al R_Wdebe bajar su nivel a cero, se escribe el  dato en el bus de ocho bits D_inque entra al m&oacute;dulo y se direcciona a trav&eacute;s de los tres bits menos significativos del bus  de direcciones (A(2..0)) a cual de los tres registros de escritura se le desea enviar el dato o si es hacia el Buffer  FIFO(Primero que entra, primero que sale, de sus siglas en ingl&eacute;s) de Transmisi&oacute;n. Si lo que se desea realizar es una lectura, la  se&ntilde;al R_W debe subir a `1', y se direcciona con los tres bits menos significativos del bus de direcci&oacute;n (A(2..0)) cual de  los tres registros o Buffer FIFO de Recepci&oacute;n quiere ser leido por el microprocesador. Ambos procesos  quedan esquematizados para una mejor comprensi&oacute;n en la <a href="/img/revistas/eac/v34n2/f0304213.jpg">figura 3</a>. </font></p>     
<P><font size="2" face="Verdana"><b>Subsistema de Temporizaci&oacute;n</b></font></p>     <P><font size="2" face="Verdana">El Subsistema de Temporizaci&oacute;n es el encargado de que los datos se transmitan y reciban en el momento adecuado,  ya que el  bus de datos es compartido. Este subsistema permite que el controlador pueda trabajar en modo de temporizaci&oacute;n   interno o externo. </font></p>     <P><font size="2" face="Verdana">En el  modo interno los datos del canal de se&ntilde;alizaci&oacute;n se encuentran en el intervalo de tiempo del canal 16 de la  trama E1 y se utilizan las se&ntilde;ales F0 y CLK para su transmisi&oacute;n o recepci&oacute;n. En el modo externo los datos del canal  de   se&ntilde;alizaci&oacute;n se encuentran en el intervalo de tiempo seleccionado desde el exterior, por lo  que se utilizan en este  caso las se&ntilde;ales TX_CEN y RX_CEN. </font></p>     <P><font size="2" face="Verdana">A continuaci&oacute;n en la <a href="#f4">figura 4</a> se presenta la carta de tiempo referente al modo interno de temporizaci&oacute;n, as&iacute; como   los tiempos a esperar por el contador de pulsos del reloj para obtener el intervalo de tiempo del canal 16 de la trama E1,  para el proceso de transmisi&oacute;n y de recepci&oacute;n. Una vez que la se&ntilde;al F0baja su nivel a cero, se espera un tiempo  de 62,0&#181;shasta un per&iacute;odo de reloj antes de que comience el canal 16. En este caso se pierde un periodo del reloj  debido a  la existencia de un  Multiplexor de Temporizaci&oacute;n antes del Subsistema de Transmisi&oacute;n o de Recepci&oacute;n. Una  vez concluido el tiempo de 62,0&#181;s, las se&ntilde;ales H_BUS o  H_BUS_RX suben su nivel a uno durante 3,9&#181;s para habilitar  la transmisi&oacute;n o la recepci&oacute;n seg&uacute;n corresponda, durante el tiempo que demora el canal 16 de la trama E1. </font></p>     <P align="center"><img src="/img/revistas/eac/v34n2/f0404213.jpg" width="474" height="312"><a name="f4"></a></p>     
<P>&nbsp;</p>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana"><B>Subsistema de Transmisi&oacute;n</B> </font></p>     <P><font size="2" face="Verdana">Para el dise&ntilde;o del Subsistema de Transmisi&oacute;n se realiz&oacute; un estudio detallado de las caracter&iacute;sticas de una trama  HDLC, partiendo de este, el subsistema qued&oacute; dise&ntilde;ado como un conjunto de tres bloques. </font></p>     <P><font size="2" face="Verdana">Para realizar el proceso de transmisi&oacute;n, el microprocesador debe inicializar todo el sistema, es decir fijar los  par&aacute;metros de habilitaci&oacute;n de la  transmisi&oacute;n a trav&eacute;s de TX_EN y el modo de temporizaci&oacute;n deseado con la se&ntilde;al IC. Este a su  vez es el encargado de proveer los datos de control que se almacenar&aacute;n en el buffer tipo FIFO que se encuentra en  la Interfaz con el Microprocesador. Posteriormente, el canal de transmisi&oacute;n tomar&aacute; los datos del buffer tipo FIFO,  los encapsula y los env&iacute;a por el bus de salida en el tiempo del canal de se&ntilde;alizaci&oacute;n habilitado por el Subsistema  de Temporizaci&oacute;n con la se&ntilde;al H_BUS. Este canal, de encontrar vac&iacute;o el almacenador de datos, transmitir&aacute; cualquiera  de los tres posibles estados inactivos (banderas continuas, inactivo (FFh), o go_ahead (7Fh)), el cual ser&aacute;  previamente seleccionado por el microprocesador a trav&eacute;s del Registro de Control. Si es habilitado el modo transparente se  inhabilitar&aacute; entonces el protocolo HDLC y  los datos se transmitir&aacute;n  tal y como se escriben en el Buffer FIFOde Transmisi&oacute;n. Si  el buffer  contiene  datos y no est&aacute; habilitado el modo transparente, entonces los datos pasar&aacute;n por el canal de  transmisi&oacute;n con el objetivo de ser entramados y posteriormente transmitidos. Una vez que se comienzan a transmitir los  datos entramados, el microprocesador puede decidir abortar la trama, por lo que se transmitir&aacute; la secuencia de  aborto &#171;11111111&#187; , se limpiar&aacute; el registro que lleva el computo de la secuencia de FCS y posteriormente se comenzar&aacute;  a transmitir una nueva trama, comenzando por su bandera de inicio. En la <a href="/img/revistas/eac/v34n2/f0504213.jpg">figura 5</a> se muestra el algoritmo antes  descrito lo que permite una mejor comprensi&oacute;n. </font></p>     
<P><font size="2"><b><font face="Verdana">Subsistema de Recepci&oacute;n</font></b></font></p>     <P><font size="2" face="Verdana">Para realizar el dise&ntilde;o del canal de recepci&oacute;n se tuvo en cuenta el estudio del formato de trama del protocolo HDLC,  as&iacute; como el dise&ntilde;o final del canal de transmisi&oacute;n y los requisitos del hardware.</font></p>     <P><font size="2" face="Verdana">Para este proceso de recepci&oacute;n tambi&eacute;n se necesita que el microprocesador inicialice los par&aacute;metros para la    recepci&oacute;n con RX_EN y con RX_AD<B>, </B>habilitarla verificaci&oacute;n o no de la direcci&oacute;n en el primer byte de dato, as&iacute; como    seleccionar el modo de temporizaci&oacute;n a trav&eacute;s de IC. Una vez habilitado el bus de entrada ST_BUS_RX por el Subsistema    de Temporizaci&oacute;n con la se&ntilde;al H_BUS_RX, se reciben los datos en modo serie que pueden corresponder con: la    secuencia de cualquiera de los tres posibles estados inactivos, seg&uacute;n el que est&eacute; seleccionado por el microprocesador a    trav&eacute;s del Registro de Control. Si la secuencia indica estado transparente, entonces  se deshabilitar&aacute; el protocolo HDLC y    los datos que se reciban se escriben directamente en el Buffer FIFO de Recepci&oacute;n que se encuentra en la Interfaz con    el Microprocesador. De no estar habilitado este modo, si se detecta una bandera y posteriormente un byte de    secuencia desconocida, este se pasar&aacute; al interior del canal de recepci&oacute;n para desencapsular el campo de dato y almacenarlo en    el buffer. Una vez que se comience a recibir datos despu&eacute;s de la bandera de inicio, se verificar&aacute; que este no coincida    con la secuencia  de aborto de trama &#171;11111111&#187;,  ya que de ser as&iacute; se limpia el registro que almacena el c&oacute;mputo de    la secuencia de FCS y se pasa a detectar la bandera de inicio de una nueva trama. Si el n&uacute;mero de datos entre la    bandera de inicio y de fin es menor que cuatro byte, estos datos no se almacenar&aacute;n en el buffer, ya que corresponden a    una trama invalida (una trama v&aacute;lida debe tener entre las bandera de inicio y fin cuatro o m&aacute;s bytes). En la <a href="/img/revistas/eac/v34n2/f0604213.jpg">figura 6</a> se    muestra un esquema con el algoritmo de trabajo, el cual  facilitar&aacute; su comprensi&oacute;n. </font></p>     
<P>&nbsp;</p>     <P><font size="2"><b><font size="3" face="Verdana">IMPLEMENTACI&Oacute;N DE LOS BLOQUES FUNCIONALES EN EL FPGA</font></b></font></p>     <P>&nbsp;</p>     <P><font size="2" face="Verdana">En esta secci&oacute;n se describen los resultados obtenidos de la implementaci&oacute;n de la entidad VHDL de m&aacute;s alto nivel    del controlador HDLC dise&ntilde;ado. </font></p>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Inicialmente la herramienta de dise&ntilde;o ISE, permiti&oacute; con la s&iacute;ntesis de los subsistemas de manera individual,   chequear la sintaxis de todos los bloques que los conforman, as&iacute;  como obtener simulaciones a nivel funcional  donde no  se tienen en cuenta los retardos provocados por el hardware. En este caso se utilizan los modelos  de Test Bench  que brinda la herramienta, donde se fija el estado de las entradas de cada subsistema seg&uacute;n lo estime el programador. </font></p>     <P><font size="2" face="Verdana">Una vez realizada la s&iacute;ntesis de todos los subsistemas, se  sintetiz&oacute; la entidad VHDL de m&aacute;s alto nivel, que permite  en un futuro la implementaci&oacute;n del controlador en el FPGA. Se obtuvo con ella datos referentes al consumo de  recursos del FPGA, dicha tabla se muestra en la <a href="/img/revistas/eac/v34n2/f0704213.jpg">figura 7</a>. </font></p>     
<P><font size="2" face="Verdana">Como se observa en la <a href="/img/revistas/eac/v34n2/f0704213.jpg">figura 7</a>, se utiliz&oacute; el 31% de los LUTs (de sus siglas en ingl&eacute;s, Look-Up Tables) disponibles  en el FPGA, que corresponden a 1195 LUTs. Adem&aacute;s, para los registros generados en la descripci&oacute;n VHDL de  los m&oacute;dulos, se utiliz&oacute; el 18% del total, lo que equivale a 706  flip-flops. Se utiliz&oacute; el 18% de los bloques de  entrada/salida para las conexiones externas del FPGA y los Slices consumidos representaron el 34% de los existentes. </font></p>     
<P><font size="2" face="Verdana">Una vez realizada la s&iacute;ntesis general del sistema HDLC, se quiere con el uso de la herramienta Platform  Studio, desarrollar un m&oacute;dulo IP que contenga el hardware HDLC dise&ntilde;ado. Este perif&eacute;rico se instanci&oacute; en un sistema  empotrado a trav&eacute;s del bus PLB para realizarle una interfaz con el procesador Microbleaze.  Posteriormente se implement&oacute;  una aplicaci&oacute;n software de ejemplo, a trav&eacute;s de la cual se comprob&oacute; el correcto funcionamiento del  m&oacute;dulo HDLC. </font></p>     <P><font size="2" face="Verdana">Luego de implementar el dise&ntilde;o, se crea un fichero para programar el FPGA. Este fichero se llama bitstream y es  el archivo del sistema con extensi&oacute;n <I>.bit</I> que puede ser descargado directamente en el FPGA.   </font></p>     <P><font size="2" face="Verdana">La tarjeta de desarrollo utilizada, incorpora en su estructura el FPGA Spartan3 XC3S400-FT256. Este dispositivo  brinda al usuario gran rendimiento y abundantes recursos l&oacute;gicos, ya que contiene internamente 400 000 compuertas,  8064 celdas l&oacute;gicas, 898 CLBs (de sus siglas en ingl&eacute;s <I>Configurable Logic Blocks</I>), 56 kbits de memoria distribuida y  288 Kbits de bloques de RAM. Tambi&eacute;n posee un puerto JTAG (de sus siglas en ingl&eacute;s <I>Joint Test ActionGroup</I>) que se usa para enviar la configuraci&oacute;n hacia el FPGA directamente desde una PC a trav&eacute;s del puerto paralelo. De esta forma  es que se logra descargar el programa confeccionado en el FPGA e iniciar las mediciones y comprobaci&oacute;n de los  resultados reales.<SUP>4</SUP> </font></p>     <P><font size="2" face="Verdana">Para validar el correcto funcionamiento del controlador HDLC, se hizo necesario el uso  del  hardware el cual se  est&aacute; sustituyendo, para adquirir de &eacute;l el reloj de 2MHz del sistema y la se&ntilde;al FO. Se hizo tambi&eacute;n uso de un  osciloscopio digital. </font></p>     <P><font size="2" face="Verdana"><B>Implementaci&oacute;n del Subsistema  Interfaz con el Microprocesador</B> </font></p>     <P><font size="2" face="Verdana">Primeramente se le realizan las pruebas a la Interfaz con el Microprocesador, ya que chequeando su  correcto funcionamiento, se asegura la comunicaci&oacute;n del m&oacute;dulo HDLC con el Microprocesador. </font></p>     <P><font size="2" face="Verdana">Para llevar a cabo esta prueba se direccion&oacute; y se escribi&oacute; en el Registro de Control, habilitando as&iacute; la transmisi&oacute;n,  el modo interno de temporizaci&oacute;n y el estado inactivo de banderas continuas, a trav&eacute;s de la secuencia &#171;10010100&#187;. En  la <a href="#f8">figura 8</a> se muestra la transmisi&oacute;n del estado inactivo de banderas continuas. </font></p>     ]]></body>
<body><![CDATA[<P align="center"><img src="/img/revistas/eac/v34n2/f0804213.jpg" width="538" height="384"><a name="f8"></a></p>     
<P></p>     <P><font size="2" face="Verdana"><b>Implementaci&oacute;n del Subsistema  de Temporizaci&oacute;n</b></font></p>     <P><font size="2" face="Verdana">Para evidenciar un correcto funcionamiento de este subsistema se hizo necesario el uso del osciloscopio, el  cual permite observar las se&ntilde;ales, su sincronismo con el reloj de 2,048MHz  que  se adquiere del hardware que quiere  ser sustituido y los respectivos tiempos de demora. </font></p>     <P><font size="2" face="Verdana">Esta prueba fue hecha para el modo interno de temporizaci&oacute;n (IC= `1') del canal de transmisi&oacute;n. En la <a href="/img/revistas/eac/v34n2/f0904213.jpg">figura 9</a> se  muestra la se&ntilde;al H_BUS que corresponde con la se&ntilde;al de color  morado, la cual se encuentra en `1' pasado 62,0&#181;s, despu&eacute;s de   que F0 (se&ntilde;al de color azul) baja su nivel a `0' y H_BUS  mantiene su estado en `1' durante 3,9&#181;s, el tiempo exacto  del intervalo de tiempo del canal 16, todas estas se&ntilde;ales sincronizadas con el reloj de 2,048 MHz (se&ntilde;alizado  con  color amarillo). </font></p>     
<P><font size="2" face="Verdana"><b>Implementaci&oacute;n del Subsistema  de Transmisi&oacute;n    </b></font></p>     <P><font size="2" face="Verdana">Para poder llevar a cabo la transmisi&oacute;n, el microprocesador debe habilitarla  inicialmente, as&iacute; como establecer el  modo de temporizaci&oacute;n y el modo de trabajo cuando el transmisor se encuentra en estado inactivo, configuraciones que  se realizan a trav&eacute;s de la Interfaz con el Microprocesador. El reloj del sistema y la se&ntilde;al FO se adquieren del hardware  en desarrollo. En el bus de salida el dato de control se debe obtener con el formato de trama espec&iacute;fico y debe ser en  el momento del canal 16 de la trama E1, aspecto de gran importancia que se garantiza por el Subsistema de  Temporizaci&oacute;n, a trav&eacute;s de la se&ntilde;al H_BUS en `1'. Para poder realizar pruebas que validen la ocurrencia de una correcta transmisi&oacute;n  se hizo el uso de un osciloscopio digital el cual permite observar el comportamiento  de dicho proceso. </font></p>     <P><font size="2" face="Verdana">En la <a href="/img/revistas/eac/v34n2/f1004213.jpg">figura 10</a> se puede comprobar la correcta transmisi&oacute;n del dato en el formato de trama del protocolo HDLC. El  dato del bus de salida (se&ntilde;al de color verde) garantiza la transmisi&oacute;n de una bandera de inicio de trama, dos datos de  control los cuales coinciden con los que les fueron escritos por el microprocesador, la secuencia de correcci&oacute;n de errores  de 16 bits correspondiente a este dato y por &uacute;ltimo la bandera de fin de trama. Para verificar que el dato se encuentra  en el bus de salida en el momento oportuno se muestra tambi&eacute;n la se&ntilde;al de habilitaci&oacute;n del bus, que brinda el  Subsistema de Temporizaci&oacute;n (H_BUS, se&ntilde;alizada con el color morado). </font></p>     
<P><font size="2" face="Verdana"><B>Implementaci&oacute;n del Subsistema  de Recepci&oacute;n</B> </font></p>     <P><font size="2" face="Verdana">Al igual que el proceso de transmisi&oacute;n, la recepci&oacute;n debe ser habilitada por el microprocesador, as&iacute; como la  selecci&oacute;n del modo de temporizaci&oacute;n, y habilitar o no la detecci&oacute;n de direcci&oacute;n en el primer byte del  campo de dato de la trama.   En esta prueba se adquiere  el dato por el bus de entrada  ST_BUS_RX<B>, </B> que llega desde el controlador de la  familia MT8952B que se encuentra en la tarjeta que se quiere sustituir. </font></p>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Para poder llevar a cabo esta prueba el procesador Microbleaze debe direccionar el Buffer FIFO de Recepci&oacute;n  y habilitar la lectura de este, para que el dato salga por el bus de salida del m&oacute;dulo HDLC. Debido a que este  procesador tiene un reloj de 50MHz no se sincroniza con el sistema dise&ntilde;ado, que trabaja con un reloj de 2MHz y se vio  afectado la comprobaci&oacute;n del proceso de recepci&oacute;n el cual es sensible a las demoras que se producen en la transici&oacute;n de  los datos del Buffer de Recepci&oacute;n al Multiplexor, ya que el dato no se encuentra a la salida del m&oacute;dulo en el momento  que el procesador realiza la lectura sino tres per&iacute;odos del reloj de 2MHz despu&eacute;s de habilitarla,  lo que equivale a  75 per&iacute;odos de reloj de 50MHz. </font></p>     <P>&nbsp;</p>     <P><font size="3" face="Verdana"><B>CONCLUSIONES</B> </font></p>     <P>&nbsp;</p>     <P><font size="2" face="Verdana">El presente trabajo estuvo orientado a la realizaci&oacute;n del dise&ntilde;o en VHDL de un controlador HDLC el cual fuera    capaz de controlar el enlace de una interfaz de l&iacute;nea digital E1 y su implementaci&oacute;n en un FPGA. El formato de trama de    este protocolo  se encuentra estandarizado en la norma IS12392 de la ISO  y presenta mecanismos para no perder    la sincronizaci&oacute;n frente a diversas situaciones que se den en el enlace. El m&iacute;nimo n&uacute;mero de datos que debe tener    una trama para que sea v&aacute;lida es 2 byte, y se env&iacute;a una secuencia de ocho unos consecutivos si el sistema quiere    abortar la trama que se transmite. </font></p>     <P><font size="2" face="Verdana">Mediante la utilizaci&oacute;n de las herramientas de dise&ntilde;o <I>ISE Design Suite </I>12.4de <I>Xilinx</I> y el      <I>Spartan3 StarterBoard Kit</I>, qued&oacute; confeccionado el m&oacute;dulo de transmisi&oacute;n y recepci&oacute;n de los datos de control, as&iacute; como realizar todo  el procesamiento necesario para el funcionamiento interno. </font>     <P><font size="2" face="Verdana">Se dise&ntilde;&oacute; una interfaz con un microprocesador que se encarga de habilitar el canal de transmisi&oacute;n y recepci&oacute;n de  los datos de control, el tipo de interrupci&oacute;n, decidir el modo de temporizaci&oacute;n, as&iacute; como registrar el estado interno  del sistema. Para su validaci&oacute;n  se integr&oacute; al sistema un Microblaze a trav&eacute;s de un bus PLB. Se desarroll&oacute; tambi&eacute;n  un n&uacute;mero de pruebas las cuales dieron validez al Subsistema de Control encargado este de actualizar al  microprocesador del estado de los buffer de transmisi&oacute;n y recepci&oacute;n, el tipo de interrupci&oacute;n ocurrida,  as&iacute; como controlar el canal  de transmisi&oacute;n. </font></p>     <P><font size="2" face="Verdana">Se verific&oacute;, en la pr&aacute;ctica, el potencial que poseen los FPGAs actuales y, en particular, la arquitectura de los FPGA  de la familia Spartan3, cuyos componentes han facilitado la descripci&oacute;n VHDL e implementaci&oacute;n de funciones de  gran complejidad de c&oacute;mputo. </font></p>     <P><font size="2" face="Verdana">Los IP Cores que se encuentran disponibles en la herramienta de desarrollo del Xilinx ISE      <I>Design Suite </I>12.4, constituyeron un importante apoyo en el dise&ntilde;o del proyecto, ya que con &eacute;stos, se llev&oacute; a cabo el dise&ntilde;o del Buffer FIFO  de Trasmisi&oacute;n y de Recepci&oacute;n optimizando as&iacute; recursos del FPGA. </font></p>     <P><font size="2" face="Verdana">Se verific&oacute;, en la pr&aacute;ctica, el potencial que poseen los FPGAs actuales y, en particular, la arquitectura de los FPGA  de la familia Spartan3, cuyos componentes han facilitado la descripci&oacute;n VHDL e implementaci&oacute;n de funciones de  gran complejidad de c&oacute;mputo. </font></p>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">La propuesta de dise&ntilde;o contribuye al desarrollo tecnol&oacute;gico y sustituye elementos circu&iacute;tales obsoletos por la  puesta en marcha de tecnolog&iacute;as m&aacute;s avanzadas para la transmisi&oacute;n de datos. </font></p>     <P>&nbsp;</p>     <P><strong><font size="3" face="Verdana">REFERENCIAS</font></strong></p>     <P>&nbsp;</p>     <!-- ref --><P><font size="2" face="Verdana">1.   Comunicaciones, C.D., &#171;Ejercicios Resueltos del Protocolo    HDLC&#187;, Ingenier&iacute;a en Sistemas de    Informaci&oacute;n. Facultad Tecnol&oacute;gica Regional Santa Fe: Bogot&aacute;, Colombia, 2005.     </font></p>     <!-- ref --><P><font size="2" face="Verdana">2.   ISO, &#171;ISO/IEC 13239, Information technology: Telecommunications and information exchange between    systems, High-level data link control (HDLC)    procedures&#187;, I.O.f. Standardization, Edito, ISO/IEC: Suiza, p.140, 2002.     </font></p>     <!-- ref --><P><font size="2" face="Verdana">3.  Leyva Hern&aacute;ndez, G.,    &#171;Generaci&oacute;n de m&oacute;dulos aritm&eacute;ticos en punto flotante para procesamiento digital de      altas prestaciones&#187;, Universidad de Guadalajara. Centro Universitario de Ciencias Exactas e Ingenier&iacute;as: M&eacute;xico DF, 2010.     </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><P><font size="2" face="Verdana">4.  Anaya, M. and A.    Medina, &#171;Dise&ntilde;o en VHDL de un transceptor de flujo E1 y su implementaci&oacute;n en un      FPGA&#187;, Departamento de Telecomunicaciones y        Telem&aacute;tica, ISPJAE: La Habana. p.99, 2011.    </font></p>     <P>&nbsp;</p>     <P>&nbsp;</p>     <P><font size="2" face="Verdana">Recibido: Abril 2013    <br>   Aprobado: Mayo 2013 </font></p>     <P></p>     <P>&nbsp;</p>     <P></p>     <P></p>     ]]></body>
<body><![CDATA[<P>&nbsp;</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
</name>
</person-group>
<source><![CDATA[Ejercicios Resueltos del Protocolo HDLC]]></source>
<year>2005</year>
<publisher-loc><![CDATA[Bogotá ]]></publisher-loc>
<publisher-name><![CDATA[Facultad Tecnológica Regional Santa Fe]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
</name>
</person-group>
<person-group person-group-type="editor">
<name>
</name>
</person-group>
<source><![CDATA[ISO/IEC 13239, Information technology: Telecommunications and information exchange between systems, High-level data link control (HDLC) procedures]]></source>
<year>2002</year>
<page-range>140</page-range><publisher-name><![CDATA[I.O.f. Standardization, Edito, ISO/IEC]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Leyva Hernández]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<source><![CDATA[Generación de módulos aritméticos en punto flotante para procesamiento digital de altas prestaciones]]></source>
<year>2010</year>
<publisher-name><![CDATA[Universidad de Guadalajara. Centro Universitario de Ciencias Exactas e Ingenierías]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[M.]]></surname>
<given-names><![CDATA[Anaya]]></given-names>
</name>
<name>
<surname><![CDATA[Medina]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<source><![CDATA[Diseño en VHDL de un transceptor de flujo E1 y su implementación en un FPGA]]></source>
<year>2011</year>
<page-range>99</page-range><publisher-loc><![CDATA[La Habana ]]></publisher-loc>
<publisher-name><![CDATA[Departamento de Telecomunicaciones y Telemática, ISPJAE]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
