<?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-59282015000300005</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Análisis de la respuesta temporal del diseño de un controlador de SSRAM]]></article-title>
<article-title xml:lang="en"><![CDATA[Timing analysis of a SSRAM controller design.]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Criado Cruz]]></surname>
<given-names><![CDATA[Dilaila]]></given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Escartín Fernández]]></surname>
<given-names><![CDATA[Víctor]]></given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Pavoni Oliver]]></surname>
<given-names><![CDATA[Sonnia]]></given-names>
</name>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,CUJAE Facultada de Eléctrica Centro de Investigaciones en Microelectrónica]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2015</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2015</year>
</pub-date>
<volume>36</volume>
<numero>3</numero>
<fpage>46</fpage>
<lpage>55</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S1815-59282015000300005&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S1815-59282015000300005&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S1815-59282015000300005&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Los sistemas digitales son cada día más rápidos y complejos. Por esta razón, desde la concepción de un diseño hasta la validación de su funcionamiento, es necesario realizar un detallado estudio de la respuesta temporal de los mismos. En ese sentido, este trabajo tiene como objetivo central analizar la respuesta temporal de un sistema digital, desde el diseño hasta la verificación. El sistema desarrollado se implementó en un FPGA EP3C25F324C6 de la familia Cyclone III de Altera y consistió en un controlador para la memoria SSRAM IS61LPS25636A, cuya frecuencia de reloj máxima es 200 MHz. Se emplearon el programa Quartus II y su herramienta TimeQuest Timing Analyzer. Con el método de diseño utilizado, corroborado por los análisis y herramientas empleadas, se garantizó un controlador con un margen de seguridad mínimo en el tiempo de setup de 155 ps a una frecuencia de reloj de 190 MHz.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[The digital systems are every day faster and more complex. Therefore, from the conception of a design until the validation of their operation, it is necessary to carry out a detailed time analysis. In that sense, this work has as central objective the analysis of the timing performance of a digital system, from the design until the verification. The memory controller was implemented in the EP3C25F324C6, FPGA of the family Cyclone III from Altera. The memory IS61LPS25636A, manufactured by ISSI (Integrated Silicon Solution, Inc.) was used. The design was focused to work with the greater clock frequency as possible. The analysis of the design was carried out using the simulation tools Modelsim and TimeQuest Timing Analyzer from Quartus II. It was obtained an SSRAM controller with a worst setup slack of 155 ps for a clock frequency of 190 MHz.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[SSRAM pipeline]]></kwd>
<kwd lng="es"><![CDATA[FPGA]]></kwd>
<kwd lng="es"><![CDATA[Controlador]]></kwd>
<kwd lng="en"><![CDATA[pipelined SRAM]]></kwd>
<kwd lng="en"><![CDATA[FPGA controller]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <div align="right">        <p><font face="Verdana" size="2"> <b>ART&Iacute;CULO ORIGINAL</b></font></p>       <p>&nbsp; </p> </div>     <P>&nbsp;      <p><font size="4" face="Verdana"><B>An&aacute;lisis de la respuesta temporal del    dise&ntilde;o de un controlador de SSRAM</B></font></p>     <p>&nbsp;</p>     <P><font size="3" face="Verdana"><B>Timing analysis of a SSRAM controller design.</B></font>      <p>&nbsp;</p>     <p>&nbsp;</p>     <P><font size="2" face="Verdana"><strong>MSc. Dilaila Criado Cruz, Dr. C. V&iacute;ctor    Escart&iacute;n Fern&aacute;ndez, Dra. C. Sonnia Pavoni Oliver</strong></font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Centro de Investigaciones en Microelectr&oacute;nica    de la Facultada de El&eacute;ctrica de la CUJAE, La Habana, Cuba. </font>     <P>&nbsp;     <P>&nbsp;  <hr size="1" noshade>     <P><font size="2" face="Verdana"><B>RESUMEN</B></font>      <P><font size="2" face="Verdana">Los sistemas digitales son cada d&iacute;a m&aacute;s    r&aacute;pidos y complejos. Por esta raz&oacute;n, desde la concepci&oacute;n    de un dise&ntilde;o hasta la validaci&oacute;n de su funcionamiento, es necesario    realizar un detallado estudio de la respuesta temporal de los mismos. En ese    sentido, este trabajo tiene como objetivo central analizar la respuesta temporal    de un sistema digital, desde el dise&ntilde;o hasta la verificaci&oacute;n.    El sistema desarrollado se implement&oacute; en un FPGA EP3C25F324C6 de la familia    Cyclone III de Altera y consisti&oacute; en un controlador para la memoria SSRAM    IS61LPS25636A, cuya frecuencia de reloj m&aacute;xima es 200&#160;MHz. Se emplearon    el programa Quartus II y su herramienta <I>TimeQuest Timing Analyzer</I>. Con    el m&eacute;todo de dise&ntilde;o utilizado, corroborado por los an&aacute;lisis    y herramientas empleadas, se garantiz&oacute; un controlador con un margen de    seguridad m&iacute;nimo en el tiempo de <I>setup</I> de 155 ps a una frecuencia    de reloj de 190 MHz. </font>     <P><font size="2" face="Verdana"><B>Palabras claves</B>: SSRAM pipeline, FPGA,    Controlador </font> <hr size="1" noshade>     <P><B><font size="2" face="Verdana">ABSTRACT</font></B>      <P><font size="2" face="Verdana">The digital systems are every day faster and    more complex. Therefore, from the conception of a design until the validation    of their operation, it is necessary to carry out a detailed time analysis. In    that sense, this work has as central objective the analysis of the timing performance    of a digital system, from the design until the verification. The memory controller    was implemented in the EP3C25F324C6, FPGA of the family Cyclone III from Altera.    The memory IS61LPS25636A, manufactured by ISSI (Integrated Silicon Solution,    Inc.) was used. The design was focused to work with the greater clock frequency    as possible. The analysis of the design was carried out using the simulation    tools Modelsim and TimeQuest Timing Analyzer from Quartus II. It was obtained    an SSRAM controller with a worst setup slack of 155 ps for a clock frequency    of 190 MHz. </font><font size="2">     <P><font face="Verdana"><B>Key words: </B>pipelined SRAM, FPGA controller </font>  <hr size="1" noshade>     <P>&nbsp;     ]]></body>
<body><![CDATA[<P>&nbsp;     <P><B><font size="3" face="Verdana">INTRODUCCI&Oacute;N</font> </B>     <P>&nbsp;     <P><font face="Verdana">El desarrollo alcanzado en las tecnolog&iacute;as de fabricaci&oacute;n    de circuitos integrados, ha permitido la construcci&oacute;n de transistores    m&aacute;s peque&ntilde;os y consecuentemente, la disminuci&oacute;n de los    tiempos de respuesta <SUP>1</SUP>. Es por ello que hoy en d&iacute;a es posible    dise&ntilde;ar circuitos digitales m&aacute;s r&aacute;pidos, que pueden realizar    m&aacute;s operaciones en. Sin embargo, las aplicaciones y los requerimientos    actuales resultan grandes retos para el dise&ntilde;o y la verificaci&oacute;n    de los sistemas digitales debido a su creciente complejidad. Para desarrollar    sistemas digitales complejos la metodolog&iacute;a de dise&ntilde;o sincr&oacute;nico    es la m&aacute;s importante <SUP>3</SUP>. Los circuitos globalmente sincr&oacute;nicos    o simplemente circuitos sincr&oacute;nicos utilizan biestables controlados por    una &uacute;nica se&ntilde;al de reloj. Esto no solo facilita la s&iacute;ntesis    del circuito sino, sobre todo, la prueba y verificaci&oacute;n del sistema final.    Seg&uacute;n los sistemas digitales se vuelven m&aacute;s complejos, aumenta    la necesidad de tener en cuenta desde la concepci&oacute;n del dise&ntilde;o,    la repercusi&oacute;n de los par&aacute;metros temporales, as&iacute; como la    utilizaci&oacute;n de las herramientas para el an&aacute;lisis de la respuesta    temporal como m&eacute;todo de validaci&oacute;n <SUP>4</SUP>. </font>     <P><font face="Verdana">En sistemas digitales es com&uacute;n la utilizaci&oacute;n    de circuitos integrados de memorias para aumentar la capacidad de almacenamiento    de datos. Los requerimientos exigidos para la selecci&oacute;n de estas memorias    dependen enteramente de la aplicaci&oacute;n donde se utilizan. En particular,    las memorias est&aacute;ticas y sincr&oacute;nicas de acceso aleatorio (SSRAM)    son las m&aacute;s r&aacute;pidas, por lo que se seleccionan para las aplicaciones    donde se requiera de baja latencia y para cuando se realizan varias lecturas    o escrituras seguidas, como por ejemplo en los sistemas de comunicaciones<SUP>    5 6</SUP>. En la literatura se reportan dise&ntilde;os de controladores para    diferentes tipos de memoria <SUP>2 7 8 9</SUP>. Sharmay Singh presentan el dise&ntilde;o    de un controlador de SRAM ZBT <I>(Zero Bus Turnaround)</I>, utilizando la herramienta    Xilinx ISE Design Suite 12.4 <SUP>2</SUP>. En la nota de aplicaci&oacute;n de    Altera <SUP>9</SUP>, se describe la funcionalidad de un controlador para memorias    SRAM ZBT, donde se explica la estructura del controlador as&iacute; como su    instalaci&oacute;n, compilaci&oacute;n y simulaci&oacute;n. Este dise&ntilde;o    est&aacute; optimizado para trabajar a 200 MHz en dispositivos Stratix y Stratix    GX, que son dentro de los FPGA de ALTERA, la familia de mayores prestaciones.    En general, los dise&ntilde;os que involucran interfaces con memorias externas    constituyen grandes desaf&iacute;os para lograr el cumplimiento de las especificaciones    temporales, elemento clave para garantizar el correcto funcionamiento del sistema    digital <SUP>10</SUP>. </font>      <P><font face="Verdana">Este trabajo tiene como objetivo central el an&aacute;lisis    de la respuesta temporal de un circuito digital, desde su dise&ntilde;o hasta    la verificaci&oacute;n. El dise&ntilde;o desarrollado se implement&oacute; en    un FPGA EP3C25F324C6, disponible en la tarjeta de desarrollo Cyclone III FPGA    Starter Board del fabricante Altera <SUP>11</SUP> y consisti&oacute; en un controlador    para una memoria SSRAM IS61LPS25636A fabricada por ISSI (Integrated Silicon    Solution, Inc.), cuya frecuencia de reloj m&aacute;xima es 200 MHz. Se estableci&oacute;    que el dise&ntilde;o debe cumplir los requerimientos temporales en condiciones    de peor caso en cuanto a la dispersi&oacute;n de los par&aacute;metros del proceso    de fabricaci&oacute;n, temperatura y tensi&oacute;n de alimentaci&oacute;n (PVT    por sus siglas en ingl&eacute;s). Se emplearon el programa Quartus II y su herramienta    <I>TimeQuest Timing Analyzer</I>. Con el m&eacute;todo de dise&ntilde;o utilizado,    corroborado por los an&aacute;lisis y herramientas empleadas, se garantiz&oacute;    un controlador con un margen de seguridad m&iacute;nimo en el tiempo de <I>setup</I>    de 155 ps a una frecuencia de reloj de 190 MHz. </font>     <P>&nbsp;      <P><font size="3" face="Verdana"><B>Materiales y M&eacute;todos</B> </font>     <P>&nbsp;      <P><font face="Verdana">Se utiliz&oacute; la tarjeta de desarrollo Cyclone III    FPGA Starter Board <SUP>11</SUP>, que tiene el FPGA EP3C25F324C6 de la familia    Cyclone III del fabricante Altera. La familia Cyclone III es la tercera generaci&oacute;n    de FPGA de bajo costo y de los primeros FPGA con tecnolog&iacute;a de 65 nm.    El FPGA EP3C25F324C6, tiene 24624 celdas, 324 terminales, trabaja en el rango    de temperatura comercial (0&#176;C - 85&#176;C) y es el m&aacute;s r&aacute;pido    de esta familia <SUP>12</SUP>. La tarjeta dispone de un oscilador de 50 MHz    conectado a una de las entradas de reloj del FPGA. Esta tarjeta tambi&eacute;n    dispone de una memoria est&aacute;tica, sincr&oacute;nica (SSRAM) y una memoria    <I>Flash</I>, estas memorias comparten 16 bits del bus de datos y el bus de    direcciones. </font>     ]]></body>
<body><![CDATA[<P><font face="Verdana">La SSRAM es la IS61LPS25636A <SUP>13</SUP> fabricada por    ISSI (<I>Integrated Silicon Solution, Inc</I>.), est&aacute; organizada en 262144    palabras de 36 bits cada una. Esta memoria maneja niveles l&oacute;gicos definidos    por el est&aacute;ndar LVCMOS y trabaja a una frecuencia m&aacute;xima de reloj    de 200 MHz. Es una memoria del tipo <I>pipeline </I><SUP>14</SUP>, ya que las    entradas y las salidas pasan a trav&eacute;s de registros que almacenan con    el frente positivo del reloj, por lo que tiene una latencia de un periodo de    reloj en la lectura, como se muestra en la <a href="/img/revistas/eac/v36n3/f0105315.jpg">figura    1</a>. En la escritura despu&eacute;s de una lectura, este tipo de memoria requiere    dos ciclos inactivos (IDLE en la <a href="/img/revistas/eac/v36n3/f0105315.jpg">figura    1</a>). </font>      <P><font face="Verdana">La conexi&oacute;n de la SSRAM en la tarjeta de desarrollo    tiene inhabilitadas varias se&ntilde;ales de control, y en esta situaci&oacute;n    solo se tiene acceso a las se&ntilde;ales de control ADSC (habilitaci&oacute;n    de la direcci&oacute;n del controlador), CE (selecci&oacute;n del circuito),    BWE (habilitaci&oacute;n de la escritura de bytes), las se&ntilde;ales BWx (selecci&oacute;n    de bytes) y OE (habilitaci&oacute;n de salida). No est&aacute; permitido el    modo r&aacute;faga (<I>burst</I>) por lo que para escribir o leer es necesario    establecer la direcci&oacute;n y activar las se&ntilde;ales ADSC y CE. </font>     <P><font face="Verdana">En caso de escritura tambi&eacute;n hay que combinar la    se&ntilde;al BWE con una o m&aacute;s de las se&ntilde;ales BWx, lo que permite    escribir una palabra completa o seleccionar cu&aacute;l o cu&aacute;les bytes    se escribir&aacute;n. La lectura permite obtener una palabra completa a partir    de activar la se&ntilde;al OE. </font></font>      <P><font size="2" face="Verdana">El dise&ntilde;o del controlador de SSRAM, como    todo desarrollo de un sistema digital, consisti&oacute; en un proceso de refinamiento    y validaci&oacute;n que comenz&oacute; en un nivel de abstracci&oacute;n grande,    y se transform&oacute; gradualmente hasta llegar a la implementaci&oacute;n    f&iacute;sica. En este caso se sigui&oacute; el siguiente flujo de dise&ntilde;o    <SUP>15</SUP>: </font>     <P><font size="2" face="Verdana">&bull; Dise&ntilde;o de la arquitectura del sistema    </font>     <P><font size="2" face="Verdana">&emsp;&ndash; Descripci&oacute;n y s&iacute;ntesis de    los bloques que integran la arquitectura. </font>      <P><font size="2" face="Verdana">&emsp;&ndash; Simulaci&oacute;n para la verificaci&oacute;n    funcional (ModelSim). </font>     <P><font size="2" face="Verdana">&emsp;&ndash; Proceso de refinamiento (de ser necesario).    </font>     <P><font size="2" face="Verdana">&bull; Dise&ntilde;o detallado </font>     <P><font size="2" face="Verdana">&emsp;&ndash; Establecer y a&ntilde;adir las restricciones    al dise&ntilde;o. </font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">&emsp;&ndash; Posicionamiento y ruteo (<I>fitter</I>)    del dise&ntilde;o para el FPGA seleccionado y verificaci&oacute;n temporal (TimeQuest    Analyzer y ModelSim). </font>     <P><font size="2" face="Verdana">&emsp;&ndash; Proceso de refinamiento (de ser necesario)    </font>     <P><font size="2" face="Verdana">&emsp;&emsp;o Redise&ntilde;o y ajuste de las restricciones.    </font>     <P><font size="2" face="Verdana">&emsp;&emsp;o Sintetizar el dise&ntilde;o y verificar el    cumplimiento de los requerimientos temporales. </font>     <P><font size="2" face="Verdana">&bull; Realizar la implementaci&oacute;n </font>     <P><font size="2" face="Verdana">&emsp;&ndash; Realizar la programaci&oacute;n del dispositivo.    </font>     <P><font size="2" face="Verdana">&emsp;&ndash; Realizar la verificaci&oacute;n de la    implementaci&oacute;n. </font>     <P>      <P><font size="2" face="Verdana">La arquitectura dise&ntilde;ada se describi&oacute;    en VHDL y se utiliz&oacute; el programa Quartus II versi&oacute;n 13.0 sp1 (32-bits)    de Altera para la implementaci&oacute;n del dise&ntilde;o. Para la verificaci&oacute;n    funcional se implement&oacute; un banco de prueba y se utiliz&oacute; el programa    ModelSim. </font>     <P><font size="2" face="Verdana">La etapa de dise&ntilde;o detallado tiene que    garantizar el cumplimiento de las especificaciones temporales del controlador.    Las restricciones se definieron en un fichero con el formato Synopsy Design    Constraints (.sdc) <SUP>16 17</SUP> donde se establecieron par&aacute;metros    tales como: la frecuencia del reloj de entrada y la frecuencia del reloj interno    de trabajo <SUP>18</SUP>. </font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Despu&eacute;s del posicionamiento y el ruteo    se realiz&oacute; el an&aacute;lisis est&aacute;tico de la respuesta temporal    <SUP>19</SUP> con las peores condiciones (PVT) para la verificaci&oacute;n del    cumplimiento de los requerimientos de tiempo. El an&aacute;lisis est&aacute;tico    se realiz&oacute; con la herramienta TimeQuest Analyzer del programa Quartus    II. Tambi&eacute;n se utiliz&oacute; el banco de prueba dise&ntilde;ado y la    simulaci&oacute;n temporal con el programa ModelSim donde se incluyen las demoras    de los dispositivos para los diferentes modelos. </font>     <P><font size="2" face="Verdana">Adem&aacute;s se estableci&oacute; con la herramienta    Board Trace Model del Quartus, a cada terminal de la interfaz la capacidad de    carga externa asociadas a la SSRAM y la FLASH que comparte los 16 bits menos    significativos del bus de datos. Estas asignaciones son tenidas en cuenta por    la herramienta de an&aacute;lisis para estimar con mayor exactitud el tiempo    que demoran las se&ntilde;ales desde el circuito de salida correspondiente en    el FPGA hasta los terminales de la SSRAM. </font>     <P><font size="2" face="Verdana"><B>Verificaci&oacute;n del dise&ntilde;o</B>    </font>     <P><font size="2" face="Verdana">La verificaci&oacute;n es el proceso de comprobar    si un dise&ntilde;o cumple con las especificaciones que se le establecieron.    La verificaci&oacute;n tiene dos aspectos: funcionalidad y prestaciones. La    verificaci&oacute;n funcional comprueba cu&aacute;ndo un sistema genera la respuesta    deseada. Las prestaciones son representadas por las restricciones temporales    y se utiliza la verificaci&oacute;n temporal para comprobar si la respuesta    es generada dentro de las restricciones temporales. Estas restricciones comunican    los requerimientos del dise&ntilde;o a la herramienta de implementaci&oacute;n    y adem&aacute;s permiten que la herramienta de an&aacute;lisis temporal pueda    reportar correctamente las demoras de las se&ntilde;ales en todos los nodos    del dise&ntilde;o realizado. La verificaci&oacute;n temporal normalmente se    expresa en t&eacute;rminos de m&aacute;xima demora de propagaci&oacute;n y m&iacute;nima    frecuencia de reloj. La verificaci&oacute;n se realiza en diferentes fases del    dise&ntilde;o y a diferentes niveles de abstracci&oacute;n <SUP>3</SUP>. Existen    varios m&eacute;todos de verificaci&oacute;n: la simulaci&oacute;n funcional    y de la respuesta temporal, el an&aacute;lisis de la respuesta temporal y la    emulaci&oacute;n del hardware. </font>      <P><font size="2" face="Verdana">La simulaci&oacute;n funcional permite verificar    el correcto comportamiento del circuito sin tener en cuenta las demoras de los    componentes. Para esto se crea un banco de prueba donde se definen vectores    de entrada y se chequea que los vectores de las salidas cumplan con la funcionalidad    del dise&ntilde;o. </font>     <P><font size="2" face="Verdana">La simulaci&oacute;n de la respuesta temporal    permite comprobar el correcto comportamiento del dise&ntilde;o considerando    tambi&eacute;n el tiempo que tardan en responder las diferentes componentes    e interconexiones para las peores condiciones (PVT) <SUP>20</SUP>. Este tipo    de simulaci&oacute;n es m&aacute;s compleja y demora m&aacute;s en su ejecuci&oacute;n    pero es m&aacute;s realista que la simulaci&oacute;n funcional. Las simulaciones    de la respuesta temporal de un dise&ntilde;o son &uacute;tiles para: </font>     <P><font size="2" face="Verdana">&bull; Permitir verificar la validez de algunas    de las restricciones temporales establecidas como pueden ser falsos camino (<I>false    path)</I> y caminos de ciclos m&uacute;ltiples. (<I>multi cycles path).</I>    </font>     <P><font size="2" face="Verdana">&bull; Verificar las condiciones iniciales del    sistema. </font>     <P><font size="2" face="Verdana">&bull; Permite analizar la inclusi&oacute;n de    puntos de prueba (<I>design for test</I>) </font>     <P><font size="2" face="Verdana">&bull; Realizar simulaciones para estimar el    factor de conmutaci&oacute;n (<I>switching factor)</I> para el c&aacute;lculo    de la disipaci&oacute;n de potencia. </font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">El an&aacute;lisis est&aacute;tico de la respuesta    temporal chequea, para las peores condiciones, los requerimientos de las demoras    est&aacute;ticas del circuito sin utilizar vectores de entrada. Este involucra    el an&aacute;lisis de registro a registro, de registros a salidas, de entradas    a registros adem&aacute;s de los caminos de los <I>reset </I>asincr&oacute;nicos,    solo se aplica para circuitos sincr&oacute;nicos. Para el an&aacute;lisis est&aacute;tico    de la respuesta temporal en las peores condiciones (PVT), se requiri&oacute;    de la herramienta TimeQuest Analyzer del programa Quartus II. Esta herramienta    determina las relaciones de los tiempos que tienen que lograrse para el correcto    funcionamiento del dise&ntilde;o, y chequea los tiempos de llegada de los datos    (<I>data arrival time</I>) en relaci&oacute;n con los tiempos requeridos (<I>data    requiered time</I>) para verificar el funcionamiento del circuito y detectar    las posibles violaciones de los tiempos <SUP>21</SUP>. Para la verificaci&oacute;n    de la respuesta temporal, la herramienta calcula las demoras de propagaci&oacute;n    de todos los caminos, chequea las restricciones de tiempo y reporta los resultados.    Uno de estos resultados son los m&aacute;rgenes de seguridad (<I>slack</I>)    en las peores condiciones (PVT). Los m&aacute;rgenes negativos indican violaciones    de los requerimientos temporales. El TimeQuest Analyzer realiza el an&aacute;lisis    est&aacute;tico del sistema no solo teniendo en cuenta los tiempos internos    del FPGA sino tambi&eacute;n tiempos de dispositivos externos y par&aacute;metros    de la tarjeta<SUP>22</SUP>. </font>     <P><font size="2" face="Verdana">ALTERA provee para el c&aacute;lculo de la respuesta    temporal para diferentes condiciones de operaci&oacute;n (PVT) los tres modelos    que se muestra en la <a href="#tab1">tabla 1</a>. Cada condici&oacute;n de operaci&oacute;n es utilizada    para modelar los tiempos de demora bajo condiciones de temperatura, tensi&oacute;n    de alimentaci&oacute;n y condiciones del proceso de fabricaci&oacute;n <SUP>23</SUP>.    Los modelos Slow 85&#176;C y el Fast 0&#176;C describen el comportamiento t&iacute;pico    de los dispositivos con largo de canal mayores de 65 nm, donde el primero de    ellos reporta la respuesta m&aacute;s lenta y el segundo la respuesta m&aacute;s    r&aacute;pida de los dispositivos. El modelo Slow 0&#186;C es para considerar    la situaci&oacute;n conocida como inversi&oacute;n de la temperatura <SUP>23</SUP>,    que ocurre para dispositivos con largo de canal de 65 nm o menos como el Cyclone    III, en donde la tensi&oacute;n de umbral del transistor disminuye con la temperatura    lo que puede provocar una respuesta m&aacute;s lenta por esta condici&oacute;n.    </font>     <P align="center"><img src="/img/revistas/eac/v36n3/t0105315.jpg"><a name="tab1"/>      <P align="center">&nbsp;     <P><font size="3" face="Verdana"><B>Resultados y Discusi&oacute;n </B></font>     <P>&nbsp;<font size="2"><B>     <P><font face="Verdana">Descripci&oacute;n y s&iacute;ntesis de los bloques que    integran la arquitectura del M&oacute;dulo Controlador</font></B></font>      <P><font size="2" face="Verdana">Se dise&ntilde;&oacute; y se describi&oacute;    en VHDL la arquitectura del circuito siguiendo una estructura jer&aacute;rquica,    donde el bloque de mayor nivel se identific&oacute; como M&oacute;dulo Controlador,    como se muestra en la <a href="#fig2">figura 2</a>. Las se&ntilde;ales que interact&uacute;an    con la memoria tienen el prefijo &#171;M_&#187; y las se&ntilde;ales internas    del FPGA el prefijo &#171;S_&#187;. El m&oacute;dulo controlador se dise&ntilde;&oacute;    integrado por dos bloques: el bloque de control del reloj (clk_ctrl) y el controlador    SSRAM. Todas las se&ntilde;ales de control, excepto las de la memoria, se dise&ntilde;aron    activas en UNO. El controlador es parametrizable, lo que permite definir la    cantidad de bits de datos y de direcciones de la memoria con lo que se facilita    su utilizaci&oacute;n con otras SSRAM. </font>      <P><font size="2" face="Verdana">El bloque clk_ctrl contiene el circuito de inicializaci&oacute;n    (reset) de todos los registros del sistema. Tambi&eacute;n utiliza un PLL para    generar la se&ntilde;al de reloj interno (Clk) de 200 MHz para todo el m&oacute;dulo    controlador a partir de los 50 MHz que recibe el FPGA del oscilador externo.    Esta misma se&ntilde;al de reloj se env&iacute;a por un terminal externo (M_Clk)    a la entrada de reloj de la memoria. Donde &uacute;nico se utilizaron bibliotecas    propias del fabricante ALTERA fue en la generaci&oacute;n del reloj interno    en el FPGA asociado con el PLL, por lo que para implementar este dise&ntilde;o    con un dispositivo de otro fabricante solo hay que adecuar la descripci&oacute;n    de este bloque. </font>     <P align="center"><img src="/img/revistas/eac/v36n3/f0205315.jpg"><a name="fig2"/>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">El segundo bloque es el Controlador SSRAM y se    conform&oacute; por los m&oacute;dulos denominados RAM_ctrl y Data_ctrl (ver    <a href="#fig2">figura 2</a>). El m&oacute;dulo RAM_ctrl, genera las    se&ntilde;ales de control para trabajar con la memoria y las se&ntilde;ales    que brindan la informaci&oacute;n necesaria para la utilizaci&oacute;n del controlador.    Se implement&oacute; con una m&aacute;quina de estados finita tipo Mealy con    sus salidas registradas para que estas se&ntilde;ales de salida demoren lo menos    posible. El bloque Data_ctrl se dedica al manejo de los datos, en &eacute;l    se registra la direcci&oacute;n de memoria a la que se quiere tener acceso.    Adem&aacute;s, este bloque tiene un registro para almacenar el dato a escribir    y otro para almacenar el dato le&iacute;do. El resultado de la s&iacute;ntesis    del dise&ntilde;o report&oacute; un total de 114 elementos l&oacute;gicos y    109 registros utilizados. </font>     <P><font size="2" face="Verdana"><B>Simulaci&oacute;n funcional</B> </font>     <P><font size="2" face="Verdana">Para la verificaci&oacute;n del m&oacute;dulo    controlador se dise&ntilde;&oacute; un banco de prueba que consta de tres bloques    funcionales, que se muestran en la <a href="#fig3">figura 3</a>. El bloque Generador de Est&iacute;mulos se encarg&oacute;    de la generaci&oacute;n de las se&ntilde;ales para cada una de las comprobaciones    que se llevaron a cabo. El bloque del centro de la <a href="#fig3">figura 3</a> corresponde al dispositivo bajo prueba, es decir el M&oacute;dulo Controlador.    El tercer bloque describe a la SSRAM. Para la verificaci&oacute;n de circuitos    como este que tiene una componente externa es imprescindible contar con un modelo    de la misma. El modelo de SSRAM empleado se dise&ntilde;&oacute; a partir de    las informaciones que aparecen en la hoja de datos del fabricante de la SSRAM    <SUP>13</SUP>. </font>     <P align="center"><img src="/img/revistas/eac/v36n3/f0305315.jpg"><a name="fig3"/>     <P><font size="2" face="Verdana">En la <a href="/img/revistas/eac/v36n3/f0405315.jpg">figura 4</a>    se presentan los resultados de la simulaci&oacute;n funcional obtenidos del    programa ModelSim, donde se muestran las se&ntilde;ales de entrada y salida    del controlador para las operaciones de escritura y lectura. Primeramente se    realiz&oacute; la escritura consecutiva de dos datos. Para ello, a partir de    los 120 ns se establecieron, por el generador de est&iacute;mulos, consecutivamente    las direcciones 1 y 2 en S_ADRS, respectivamente los datos 0x00000003 y 0xF00F000C    en S_Data_Wr y se activ&oacute; la se&ntilde;al de escritura. S_Wr. </font>      <P><font size="2" face="Verdana">Como consecuencia de estos est&iacute;mulos el    controlador genera las se&ntilde;ales para la memoria relacionadas con la escritura,    es decir el bloque Data_ctrl genera las se&ntilde;ales M_ADRS, M_DATA y M_BWE    y el bloque RAM_ctrl genera las se&ntilde;ales MBWE, M_ADSC y M_CE1. </font>     <P><font size="2" face="Verdana">Seguidamente se comprob&oacute; el resultado    de la escritura mediante la lectura de los datos anteriormente escritos. En    este caso, a partir de los 130 ns se establecen nuevamente las direcciones 1    y 2 y se activa la se&ntilde;al de lectura S_Rd. Como puede observarse, cada    direcci&oacute;n aparece en la entrada de la memoria M_ADRS en el siguiente    frente positivo del reloj. En el pr&oacute;ximo frente del reloj la direcci&oacute;n    es almacenada en la memoria y despu&eacute;s del tercer frente del reloj (desde    que el generador de est&iacute;mulos estableciera la direcci&oacute;n en S_ADRS)    el dato est&aacute; disponible en M_Data, debido al per&iacute;odo de latencia    propia de la memoria con salidas registradas (<I>pipeline</I>). De esta forma    se corrobora que el dato le&iacute;do coincide con el dato escrito. Cuando la    se&ntilde;al S_Rdy se activa, el dato le&iacute;do est&aacute; disponible en    la salida del controlador. </font>      <P>      <P><font size="2" face="Verdana"><B>Establecer y a&ntilde;adir las restricciones    al dise&ntilde;o</B> </font>     <P><font size="2" face="Verdana">En estos dise&ntilde;os es importante gobernar    el proceso de posicionamiento y ruteo mediante restricciones temporales <SUP>24</SUP>.    Como ya se plante&oacute;, estas restricciones comunican los requerimientos    del dise&ntilde;o a la herramienta de implementaci&oacute;n y adem&aacute;s    permiten que la herramienta de an&aacute;lisis temporal pueda reportar correctamente    las demoras de las se&ntilde;ales en todos los nodos del dise&ntilde;o realizado.    Debido a que el dise&ntilde;o interact&uacute;a con la SSRAM (circuito externo),    se le definieron restricciones a todas las se&ntilde;ales de entrada y salida    del FPGA. Esto se realiz&oacute; declarando en el fichero sdc los tiempos de    <I>setup</I> y <I>hold </I>(tsu y th) que impone la memoria al FPGA y el tiempo    de respuesta de la memoria (tco) <SUP>13</SUP>. </font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Se modelaron las conexiones del FPGA que est&aacute;n    definidas en la tarjeta de desarrollo asociadas a la SSRAM. A trav&eacute;s    de la herramienta Board Trace Model del Quartus se tuvo en cuenta los terminales    del bus de direcciones y de datos de la SSRAM que est&aacute;n compartidos con    la memoria <I>Flash</I> por lo que se consideraron las respectivas capacidades    acopladas a trav&eacute;s de una resistencia de 22 &Omega; presente en el impreso    <SUP>25</SUP>. Tambi&eacute;n se asignaron los pines establecidos en la tarjeta    de desarrollo. </font>     <P><font size="2" face="Verdana">Se decidi&oacute; que tanto los registros de    salida como los registros de entradas de las se&ntilde;ales que interact&uacute;an    con la memoria fueran posicionados en la periferia del FPGA para minimizar las    demoras de los registros a los terminales del FPGA y de los terminales del FPGA    a los registros y la memoria. Con este prop&oacute;sito se le asignaron a dichos    registros la opci&oacute;n <I>Fast Output Register</I>, <I>Fast Input Register</I>,    y <I>Fast Output Enable Register</I>a trav&eacute;s del editor de asignaciones    del Quartus II. </font>     <P>      <P><font size="2" face="Verdana"><B>Posicionamiento y ruteo (<I>fitter</I>) del    dise&ntilde;o para el FPGA seleccionado y verificaci&oacute;n temporal</B> </font>     <P><font size="2" face="Verdana">Despu&eacute;s del posicionamiento y ruteo y    para cumplir con las restricciones temporales, se utilizaron finalmente 21 elementos    l&oacute;gicos y 137 registros en total, de los cuales 122 son registros de    entrada/salida en la periferia del FPGA. </font>     <P><font size="2" face="Verdana">Para verificar el cumplimiento de los requerimientos    temporales se analizaron los reportes de la herramienta TimeQuest Analyzer adem&aacute;s    de realizarse simulaciones considerando las demoras de los componentes y en    las interconexiones utilizando ModelSim<I>. </I>El TimeQuest Analyzer report&oacute;    violaci&oacute;n por 410 ps del ancho m&iacute;nimo del pulso del reloj de la    memoria, M_Clk. Para resolver este problema se aument&oacute; la corriente que    maneja el terminal de esta se&ntilde;al a su valor m&aacute;ximo (16 mA), con    lo que se logr&oacute; un margen positivo de 382 ps. En estas condiciones se    lograron m&aacute;rgenes de seguridad positivos en los tres modelos para la    operaci&oacute;n de escritura en la SSRAM, pero en la operaci&oacute;n de lectura    se obtuvieron m&aacute;rgenes negativos para los tres modelos en el tiempo de    <I>setup</I>, siendo el peor 1408 ps para el modelo Slow 85&#176;C<I>.</I> </font>     <P><font size="2" face="Verdana">En el reporte del TimeQuest Analyzer se apreci&oacute;    una demora (<I>skew</I>) entre los dos relojes, el interno en el FPGA (CLK)    y el generado para la memoria (M_CLK), que representa el 41% del periodo del    reloj. Esta diferencia es la que m&aacute;s contribuye a los m&aacute;rgenes    negativos en la lectura. Para mejorar este resultado se utiliz&oacute; en el    dise&ntilde;o el m&oacute;dulo ALTCLKCLTR <SUP>26</SUP>, de biblioteca parametrizada    propia de Altera (LPM por su siglas en ingl&eacute;s), que conecta la salida    del PLL con el terminal dedicado de salida M_Clk. Esto permiti&oacute; en la    lectura disminuir el peor valor del <I>skew</I> a un 12.4 % del periodo del    reloj aunque siguieron negativos los m&aacute;rgenes de seguridad en los dos    modelos Slow y result&oacute; positivo el margen de seguridad en el modelo Fast    0&#176;C. Esta situaci&oacute;n afect&oacute; los m&aacute;rgenes de seguridad    en la escritura obteni&eacute;ndose valores negativos para el modelo Slow 85&#176;C    solo en los pines de datos 31 y 17. La afectaci&oacute;n en la escritura se    debe a que el reloj que lanza el dato en la operaci&oacute;n de lectura (M_Clk)    es el reloj que captura el dato en la operaci&oacute;n de escritura por lo que    en la medida en que el desplazamiento entre ellos mejore una operaci&oacute;n    empeorar&aacute; la otra. </font>     <P><font size="2" face="Verdana">A partir de reconocer que los terminales de datos    31 y 17 son terminales de tensi&oacute;n de referencia (Vref) del FPGA, que    tienen mayor capacitancia <SUP>12</SUP> que los terminales regulares de entrada    y salida, se les configur&oacute; para que manejen la corriente m&aacute;xima    (16 mA). </font>      <P><font size="2" face="Verdana">Esto disminuye el tiempo de respuesta de los    mismos, lo que solucion&oacute; el problema en la escritura logr&aacute;ndose    en esta operaci&oacute;n m&aacute;rgenes positivos para todos los modelos, siendo    el peor margen 78 ps para el modelo Slow 85&#176;C. </font>     <P><font size="2" face="Verdana">Con las nuevas condiciones, la herramienta TimeQuest    Analyzer report&oacute; m&aacute;rgenes de seguridad positivos para la lectura    en el modelo Fast 0&#186;C y el modelo Slow 85&#186;C pero para el modelo Slow    0&#186;C report&oacute; margen de seguridad negativo. En este modelo se violaron    por los 32 bits de datos (M_DATA) las restricciones de tiempo en la lectura    dela memoria. El valor para el peor caso en el margen de seguridad en el tiempo    de <I>setup </I>fue de -108 ns. De la evaluaci&oacute;n de los resultados que    se obtienen de la herramienta TimeQuest Analyzer se determina que en la lectura,    los peores m&aacute;rgenes de tiempo est&aacute;n definidos por los terminales    de la SSRAM que se comparten con la memoria <I>Flash</I> de configuraci&oacute;n.    Esto te&oacute;ricamente pudiera mejorarse si se utiliza para la configuraci&oacute;n    una memoria serie y adem&aacute;s no se compartiera con ella ning&uacute;n terminal.    En la <a href="#tab2">tabla 2</a> se muestran los m&aacute;rgenes de seguridad para los tiempos    de <I>setup </I>y de <I>hold</I> en la lectura y la escritura reportados para    cada uno de los modelos utilizados con una frecuencia interna de trabajo de    200 MHz. Una posibilidad reportada en la literatura <SUP>9</SUP> para lograr    los requerimientos de tiempo es aprovechar la posibilidad que brindan los PLL    de generar relojes con diferentes fases entre ellos. Se redise&ntilde;o el PLL    con dos salidas de reloj uno para el sistema y otro para la memoria, pero en    este caso no se encontr&oacute; ninguna diferencia de fase que pudiera satisfacer    los tres modelos ya que la diferencia entre los m&aacute;rgenes es muy peque&ntilde;a    en el modelo Slow 85&#176;C. </font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">Con estas condiciones una opci&oacute;n para    lograr m&aacute;rgenes de seguridad positivos es disminuir la frecuencia del    reloj de trabajo. Se determin&oacute;, a partir de las ecuaciones que utiliza    la herramienta TimeQuest Analyzer para el c&aacute;lculo de los m&aacute;rgenes    de seguridad <SUP>21</SUP> y de los valores reportados por esta, que la frecuencia    de reloj m&aacute;xima para la cual todos los modelos cumplen con las restricciones    temporales es 195.77 MHz. Con el mismo procedimiento se calcul&oacute; que para    lograr un margen de seguridad para el tiempo de <I>setup </I>(de peor caso)    de al menos el 3% del periodo el reloj (155 ps) la frecuencia de trabajo debe    ser de 190 MHz. En la <a href="#tab3">tabla 3</a> se muestran los m&aacute;rgenes de seguridad para    los tiempos de <I>setup </I>y de <I>hold</I> reportados por la herramienta TimeQuest    Analyzer para cada uno de los modelos utilizados con una frecuencia de reloj    de 190 MHz. </font>     <P align="center"><img src="/img/revistas/eac/v36n3/t0205315.jpg"><a name="tab2"/>      <P align="center"><img src="/img/revistas/eac/v36n3/t0305315.jpg"><a name="tab3"/>      <P><font size="2" face="Verdana">para una frecuencia de reloj de 190 MHz.</font></FONT>      <P>      <P><font size="2" face="Verdana">En la <a href="/img/revistas/eac/v36n3/f0505315.jpg">figura 5</a> se    muestra el resultado de la simulaci&oacute;n donde se incluyen las demoras del    dispositivo empleando la herramienta ModelSim de ALTERA con el modelo de Slow    0&#176;C, se utiliz&oacute; el banco de prueba descrito anteriormente. Para    evaluar la respuesta temporal de la memoria tanto en la escritura como en la    lectura, se generaron est&iacute;mulos para escribir dos datos (0x00000003 y    0xF00F000C) de forma consecutiva en las direcciones 1 y 2 de la SSRAM, seguido    de la lectura del primer dato. </font>     <P><font size="2" face="Verdana">Despu&eacute;s de la operaci&oacute;n de lectura    se esperan tres periodos de reloj, se&ntilde;alados por <I>idle</I> en la <a href="/img/revistas/eac/v36n3/f0505315.jpg">figura    5</a>, y se escriben los datos 0x00000020 y 0x00000030 en las direcciones 4    y 5 respectivamente. </font>      <P><font size="2" face="Verdana">La simulaci&oacute;n de la respuesta temporal,    permiti&oacute; comprobar que el m&oacute;dulo dise&ntilde;ado escribe y lee    en la memoria de forma consecutiva como describe el manual de la memoria a 190    MHz. Cuando la operaci&oacute;n que se realiza es una lectura seguida por una    escritura es necesario incorporar un ciclo de espera adicional a lo reportado    en las memorias del tipo <I>pipeline</I> ya que puede existir contienda en el    bus de datos de la memoria <SUP>27</SUP>. </font>     <P><font size="2" face="Verdana">A partir del an&aacute;lisis de la interfaz entre    los terminales de datos del controlador y la memoria se concluy&oacute; que,    para evitar la contienda se debe cumplir, en el peor caso, la siguiente condici&oacute;n:    </font>      <P><font size="2" face="Verdana">tQHZ<SUB>max</SUB>&lt; tzx<SUB>min</SUB> (M_Data)      (1) </font>      ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">donde: </font>     <P><font size="2" face="Verdana">t<SUB>QHZmax</SUB> = tcomax(M_OE) + t<SUB>OEHZmax</SUB>(SSRAM)      (2) </font>     <P><font size="2" face="Verdana">tcomax(M_OE): es el tiempo m&aacute;ximo de demora    con relaci&oacute;n al reloj del sistema en que la se&ntilde;al M_OE se desactive.    </font>     <P><font size="2" face="Verdana">t<SUB>OEHZmax</SUB>(SSRAM): es el tiempo m&aacute;ximo    en que despu&eacute;s de deshabilitarla salida de datos de la SSRAM, esta va    a alta impedancia. </font>     <P><font size="2" face="Verdana">tzxmin (M_Data): es el tiempo m&iacute;nimo de    demora con relaci&oacute;n al reloj del sistema en que las se&ntilde;ales M_Data    aparecen en los terminales de salida. </font>     <P><font size="2" face="Verdana">A partir de los valores del <I>Data Sheet Report</I>    de la herramienta TimeQuest Analyzer para el FPGA y los reportados por el manual    de la SSRAM <SUP>13</SUP>, se comprob&oacute; en este caso que t<SUB>QHZmax</SUB>    es 6.825 ns y tzx<SUB>min</SUB> (M_Data) es 3.541 ns, por lo que hay contienda    al no cumplirse la condici&oacute;n (1). </font>     <P>&nbsp;      <P><font size="3" face="Verdana"><B>CONCLUSIONES</B> </font>     <P>&nbsp;      <P><font size="2" face="Verdana">En el presente trabajo se han dise&ntilde;ado    y evaluados los m&oacute;dulos que integran un controlador para la SSRAM IS61LPS25636A    fabricada por ISSI (Integrated Silicon Solution, Inc.) que se encuentra en la    tarjeta de desarrollo Cyclone III Starter Board. Este controlador es implementado    en el circuito EP3C25F324C6, FPGA de la familia Cyclone III del fabricante Altera,    y puede adecuarse a dispositivos l&oacute;gicos de otros fabricantes e incluso    modificarse para satisfacer necesidades espec&iacute;ficas, ya que solo se utilizaron    funciones propias del fabricante para la generaci&oacute;n de la frecuencia    del reloj interna. </font>     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana">El m&eacute;todo de dise&ntilde;o, los an&aacute;lisis    temporales est&aacute;ticos realizados y las herramientas de an&aacute;lisis    empleadas permitieron determinar la frecuencia m&aacute;xima de trabajo del    dise&ntilde;o con m&aacute;rgenes de seguridad positivos para el peor caso,    tomando en cuenta la dispersi&oacute;n de par&aacute;metros en el FPGA y la    SSRAM, el intervalo de temperatura comercial y la variaci&oacute;n en la tensi&oacute;n    de alimentaci&oacute;n. </font>     <P><font size="2" face="Verdana">El dise&ntilde;o realizado garantiza un controlador    que trabaja con m&aacute;rgenes de seguridad positivos para frecuencias de reloj    hasta 195.77 MHz para el peor caso. Si se utiliza una frecuencia de reloj de    190 MHz el peor de los m&aacute;rgenes de seguridad para el tiempo de <I>setup    </I>ocurre en el proceso de lectura y es 155 ps. </font>     <P>&nbsp;      <P><font size="3" face="Verdana"><B>REFERENCIAS</B> </font>     <P>&nbsp;      <!-- ref --><P><font size="2" face="Verdana">1. Kiran Kumar, Kaushik Battachariyya, &#171;FPGA    implementation of Systemonchip architecture for space craft application&#187;,    <I>The International Journal of Engineering and Science</I>, Vol 3, Issue 6,    pages 16-24, 2014 </font>     <!-- ref --><P><font size="2" face="Verdana">2. Smriti Sharma and Balwinder Singh &#171;Design    and performance analysis of ZBT SRAM controller&#187;, <I>International Journal    of VLSI design &amp; Communication Systems (VLSICS),</I>Vol.4, No.3, June 2013    </font>     <!-- ref --><P><font size="2" face="Verdana">3. Pong P. Chu, <I>RTL HARDWARE DESIGN USING    VHDL Coding for Efficiency, Portability, and Scalability</I>, ed. John Wiley    &amp; Sons, Inc., 2006 </font>     <!-- ref --><P><font size="2" face="Verdana">4. Quartus II Handbook Version 11.0<I>: Section    II, Timing Analysis, </I>Altera Corporation, Vol 3: Verification, May, 2011    </font>     <!-- ref --><P><font size="2" face="Verdana">5. AN1116 <I>Introductions to Cypress SRAMs</I>,    Cypress Semiconductor Corporation, June 2006 </font>     <!-- ref --><P><font size="2" face="Verdana">6. AN4011 <I>Choosing the right Cypress SRAMs</I>,    Cypress Semiconductor Corporation, November 2006 </font>      <!-- ref --><P><font size="2" face="Verdana">7. Kang Li; Hongye Jia; Honghu Gong; Jiangyi    Shi; Peijun Ma, &#171;Optimization of QDR SRAM Controller in Network Processor,&#187;    Fourth International Symposium on Computational Intelligence and Design (ISCID),    2011, vol.1, pp.254-257. DOI :10.1109/ISCID.2011.7128-30 Oct. 2011 </font>     <!-- ref --><P><font size="2" face="Verdana">8. Abhishek Kumar, Yogesh. E. Wankhede, Kirti    Shinde P., Nisha Sarwade, &#171;Design of SDRAM Memory Controller using VHDL&#187;,    <I>International Journal of Computer Science and Application Issue</I>, pp.    184-189, ISSN 0974-0767 2010.     </font>     <!-- ref --><P><font size="2" face="Verdana">9. AN329 1.0: <I>ZBT SRAM Controller Reference    Design for Stratix &amp; Stratix GX Devices</I>, Altera Corporation, March 2004    </font>     <!-- ref --><P><font size="2" face="Verdana">10. Application Note AN 584-1.0<I>: Timing Closure    Methodology for Advanced FPGA Designs, Altera Corporation, August</I> 2009 </font>     <!-- ref --><P><font size="2" face="Verdana">11. Cyclone III FPGA Starter Board Reference    Manual, Altera Corporation, April 2007 </font>     <!-- ref --><P><font size="2" face="Verdana">12. Cyclone III Device Handbook, Vol 1 Chapter    1, Altera Corporation, October 2008 </font>     <!-- ref --><P><font size="2" face="Verdana">13. Data Sheet <I>SSRAM, IS61LPS25636A, ISSI,    </I>Integrated Silicon Solution, Inc., February 2009 </font>     <!-- ref --><P><font size="2" face="Verdana">14. Application notes, <I>Understanding static    RAM operation</I>, IBM, 1997 </font>     <!-- ref --><P><font size="2" face="Verdana">15. Application Note AN204-1.2: <I>Using Modelsim    Altera in a Quartus II Design Flow, </I>Altera Corporation, December 2002<I>.    </I>    </font>     <!-- ref --><P><font size="2" face="Verdana">16. Ryan Scoville <I>TimeQuest User Guide</I>,    Wiki Release, December 2010 </font>     <!-- ref --><P><font size="2" face="Verdana">17. AN 466: <I>Cyclone III Design Guidelines</I>,    Altera Corporation, November 2008 </font>     <!-- ref --><P><font size="2" face="Verdana">18. AN 433: <I>Constraining and Analyzing Source    Synchronous Interfaces</I>, Altera Corporation, February 2014 </font>     <!-- ref --><P><font size="2" face="Verdana">19. White Paper &#171;TimeQuest Timing Analyzer:    Native SDC Support for Timing Analysis of FPGA-Based Designs&#187;, Altera Corporation,    May, 2006 </font>     <!-- ref --><P><font size="2" face="Verdana">20. White Paper &#171;Gate-Level Simulation Methodology&#187;    , Cadence Design Systems, Inc., May, 2015 </font>     <!-- ref --><P><font size="2" face="Verdana">21. Quartus II Handbook Version 13.1<I>: Timing    Analysis Overview TimeQuest Terminology and Concepts, </I>Altera Corporation,    Vol 3 Chapter 6, June,2012 </font>     <!-- ref --><P><font size="2" face="Verdana">22. Quartus II Handbook Version 13.1<I>: The    Quartus II TimeQuest Timing Analyze, </I>Altera Corporation, Vol 3, Chapter    7, November 2013 </font>     <!-- ref --><P><font size="2" face="Verdana">23. White Paper &#171;Guaranteeing Silicon Performance    with FPGA Timing Models&#187; , Altera Corporation, August, 2010 </font>     <!-- ref --><P><font size="2" face="Verdana">24. Jack Marshall, &#171;RTL Coding and Optimization    Guide for use with Design Compiler&#187;, Tera Systems Inc., SNUG, San Jos&eacute;,    2002 </font>     <!-- ref --><P><font size="2" face="Verdana">25. Board schematic and layout,CycloneIII_SB_3C25,Altera    Corporation, April 2007 </font>     <!-- ref --><P><font size="2" face="Verdana">26. Clock Control Block (ALTCLKCTRL) Megafunction,    User Guide, Altera Corporation, February, 2014 </font>      <!-- ref --><P><font size="2" face="Verdana">27. Application Brief AN-203<I>ZBT SRAMS: System    Design Issues and Bus Timing</I>, Integrated Device Technology, Inc. June 2001    </font>     <P>&nbsp;      <P>&nbsp;      <P><font size="2" face="Verdana">Recibido:17 de diciembre de 2014    <br>   Aprobado: 15 de mayo de 2015</font>      <P>&nbsp;     <P>&nbsp;     ]]></body>
<body><![CDATA[<P><font size="2" face="Verdana"><em>Dilaila Criado Cruz</em>, </font><font size="2"><font face="Verdana">Centro    de Investigaciones en Microelectr&oacute;nica de la Facultada de El&eacute;ctrica    de la CUJAE, La Habana, Cuba</font></font><font size="2" face="Verdana">. E-mails:<a href="mailto:dilaila.criado@electrica.cujae.edu.cu">dilaila.criado@electrica.cujae.edu.cu</a>,    <a href="mailto:victor.escartin@electrica.cujae.edu.cu">victor.escartin@electrica.cujae.edu.cu</a>,    <a href="mailto:sonnia.pavoni@electrica.cujae.edu.cu">sonnia.pavoni@electrica.cujae.edu.cu</a></font><font size="2"></font>       ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kumar]]></surname>
<given-names><![CDATA[Kiran]]></given-names>
</name>
<name>
<surname><![CDATA[Battachariyya]]></surname>
<given-names><![CDATA[Kaushik]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[FPGA implementation of Systemonchip architecture for space craft application]]></article-title>
<source><![CDATA[The International Journal of Engineering and Science]]></source>
<year>2014</year>
<volume>3</volume>
<numero>6</numero>
<issue>6</issue>
<page-range>16-24</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sharma]]></surname>
<given-names><![CDATA[Smriti]]></given-names>
</name>
<name>
<surname><![CDATA[Singh]]></surname>
<given-names><![CDATA[Balwinder]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Design and performance analysis of ZBT SRAM controller]]></article-title>
<source><![CDATA[International Journal of VLSI design & Communication Systems]]></source>
<year>June</year>
<month> 2</month>
<day>01</day>
<volume>4</volume>
<numero>3</numero>
<issue>3</issue>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chu]]></surname>
<given-names><![CDATA[Pong P.]]></given-names>
</name>
</person-group>
<source><![CDATA[RTL HARDWARE DESIGN USING VHDL Coding for Efficiency, Portability, and Scalability]]></source>
<year>2006</year>
<publisher-name><![CDATA[John Wiley & Sons]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<source><![CDATA[Quartus II Handbook Version 11.0: Section II, Timing Analysis]]></source>
<year>May,</year>
<month> 2</month>
<day>01</day>
<volume>3</volume>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<source><![CDATA[AN1116: Introductions to Cypress SRAMs]]></source>
<year>June</year>
<month> 2</month>
<day>00</day>
<publisher-name><![CDATA[Cypress Semiconductor Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="book">
<source><![CDATA[AN4011: Choosing the right Cypress SRAMs]]></source>
<year>Nove</year>
<month>mb</month>
<day>er</day>
<publisher-name><![CDATA[Cypress Semiconductor Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[Kang]]></given-names>
</name>
<name>
<surname><![CDATA[Jia]]></surname>
<given-names><![CDATA[Hongye]]></given-names>
</name>
<name>
<surname><![CDATA[Gong]]></surname>
<given-names><![CDATA[Honghu]]></given-names>
</name>
<name>
<surname><![CDATA[Shi]]></surname>
<given-names><![CDATA[Jiangyi]]></given-names>
</name>
<name>
<surname><![CDATA[Ma]]></surname>
<given-names><![CDATA[Peijun]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Optimization of QDR SRAM Controller in Network Processor]]></article-title>
<source><![CDATA[Fourth International Symposium on Computational Intelligence and Design (ISCID), 2011]]></source>
<year>Oct.</year>
<month> 2</month>
<day>01</day>
<volume>1</volume>
<page-range>254-257</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kumar]]></surname>
<given-names><![CDATA[Abhishek]]></given-names>
</name>
<name>
<surname><![CDATA[Wankhede]]></surname>
<given-names><![CDATA[Yogesh. E.]]></given-names>
</name>
<name>
<surname><![CDATA[Shinde P.]]></surname>
<given-names><![CDATA[Kirti]]></given-names>
</name>
<name>
<surname><![CDATA[Sarwade]]></surname>
<given-names><![CDATA[Nisha]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Design of SDRAM Memory Controller using VHDL]]></article-title>
<source><![CDATA[International Journal of Computer Science and Application Issue]]></source>
<year>2010</year>
<page-range>184-189</page-range></nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="book">
<source><![CDATA[AN329 1.0: ZBT SRAM Controller Reference Design for Stratix & Stratix GX Devices]]></source>
<year>Marc</year>
<month>h </month>
<day>20</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="book">
<source><![CDATA[Application Note AN 584-1.0: Timing Closure Methodology for Advanced FPGA Designs]]></source>
<year>Augu</year>
<month>st</month>
<day> 2</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="book">
<source><![CDATA[Cyclone III FPGA Starter Board Reference Manual]]></source>
<year>Apri</year>
<month>l </month>
<day>20</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="book">
<source><![CDATA[Cyclone III Device Handbook]]></source>
<year>Octo</year>
<month>be</month>
<day>r </day>
<volume>1</volume>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="book">
<source><![CDATA[SSRAM, IS61LPS25636A, ISSI]]></source>
<year>Febr</year>
<month>ua</month>
<day>ry</day>
<publisher-name><![CDATA[Integrated Silicon Solution]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="book">
<source><![CDATA[Understanding static RAM operation]]></source>
<year>1997</year>
<publisher-name><![CDATA[IBM]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="book">
<source><![CDATA[AN204-1.2: Using Modelsim Altera in a Quartus II Design Flow]]></source>
<year>Dece</year>
<month>mb</month>
<day>er</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Scoville]]></surname>
<given-names><![CDATA[Ryan]]></given-names>
</name>
</person-group>
<source><![CDATA[TimeQuest User Guide]]></source>
<year>Dece</year>
<month>mb</month>
<day>er</day>
<publisher-name><![CDATA[Wiki Release]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="book">
<source><![CDATA[AN 466: Cyclone III Design Guidelines]]></source>
<year>Nove</year>
<month>mb</month>
<day>er</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="book">
<source><![CDATA[AN 433: Constraining and Analyzing Source Synchronous Interfaces]]></source>
<year>Febr</year>
<month>ua</month>
<day>ry</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="book">
<source><![CDATA[TimeQuest Timing Analyzer: Native SDC Support for Timing Analysis of FPGA-Based Designs]]></source>
<year>May,</year>
<month> 2</month>
<day>00</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="book">
<source><![CDATA[Gate-Level Simulation Methodology]]></source>
<year>May,</year>
<month> 2</month>
<day>01</day>
<publisher-name><![CDATA[Cadence Design Systems]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B21">
<label>21</label><nlm-citation citation-type="book">
<source><![CDATA[Quartus II Handbook Version 13.1: Timing Analysis Overview TimeQuest Terminology and Concepts]]></source>
<year>June</year>
<month>,2</month>
<day>01</day>
<volume>3</volume>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B22">
<label>22</label><nlm-citation citation-type="book">
<source><![CDATA[Quartus II Handbook Version 13.1: The Quartus II TimeQuest Timing Analyze]]></source>
<year>Nove</year>
<month>mb</month>
<day>er</day>
<volume>3</volume>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B23">
<label>23</label><nlm-citation citation-type="book">
<source><![CDATA[Guaranteeing Silicon Performance with FPGA Timing Models]]></source>
<year>Augu</year>
<month>st</month>
<day>, </day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B24">
<label>24</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Marshall]]></surname>
<given-names><![CDATA[Jack]]></given-names>
</name>
</person-group>
<source><![CDATA[RTL Coding and Optimization Guide for use with Design Compiler]]></source>
<year>2002</year>
<publisher-loc><![CDATA[San José ]]></publisher-loc>
<publisher-name><![CDATA[Tera Systems Inc.]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B25">
<label>25</label><nlm-citation citation-type="book">
<source><![CDATA[Board schematic and layout: CycloneIII_SB_3C25]]></source>
<year>Apri</year>
<month>l </month>
<day>20</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B26">
<label>26</label><nlm-citation citation-type="book">
<source><![CDATA[Clock Control Block (ALTCLKCTRL) Megafunction: User Guide]]></source>
<year>Febr</year>
<month>ua</month>
<day>ry</day>
<publisher-name><![CDATA[Altera Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B27">
<label>27</label><nlm-citation citation-type="book">
<source><![CDATA[Application Brief AN-203ZBT SRAMS: System Design Issues and Bus Timing]]></source>
<year>June</year>
<month> 2</month>
<day>00</day>
<publisher-name><![CDATA[Integrated Device Technology]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
