scieee Open visual document viewer

Protección de circuitos para aplicaciones espaciales contra los efectos de rayos cósmicos

Cabañas García, Carlos; Rodríguez Carmona, Jaime

Abstract

Los dispositivos implementados con tecnologías de última generación son cada vez más vulnerables a alteraciones en su comportamiento debido a la radiación cósmica. El objetivo de este trabajo es controlar esa posible vulnerabilidad. Esto sucede fundamentalmente en circuitos embarcados en aviones, satélites o cohetes. Nuestro trabajo consiste en adaptar una herramienta de inyección de errores que sólo funcionaba para tecnologías basadas en FPGA para que pueda ser usada sobre ASIC (Application-Specific Integrated Circuit). Esta herramienta llamada Nessy fue desarrollada por otros compañeros en esta facultad en proyectos de SSII durante los cursos académicos 2009/2010 y 2010/2011. Para ello se ha necesitado modificar la herramienta y los ficheros de tal forma que permita inyectar errores sobre FlipFlops y de esta forma lograr emular errores en ASIC. Una de las principales diferencias entre una FPGA y un ASIC es que la primera se puede reconfigurar e implementar nuevas funcionalidades, mientras que los ASIC, al no tener una memoria de configuración no permiten, una vez implementado, tener un uso distinto, es decir no permiten ser reconfigurado. Sólo permite resetear su circuito, con lo que los fallos no lo desconfiguran, sólo alteran su funcionamiento. Por otro lado, se ha querido ampliar la herramienta para que también permita proteger automáticamente los circuitos. El método utilizado es la triplicación del circuito (situando cada uno de los tres elementos en regiones distintas para que en el caso de que una partícula colisione, no dañe dos elementos a la vez), por medio del cual obtenemos tres señales iguales. En el momento en el que un circuito es dañado y crea una salida errónea, el sistema la detecta y saca una de las salidas correctas para que el resto de componentes no sufran ese fallo.

Full text

UNIVERSIDAD COMPLUTENSE DE MADRID Facul ad de In o má ica Depa amen o de A qui ec u a de Compu ado es y Au omá ica P o ección de ci cui os pa a aplicaciones espaciales con a los e ec os de ayos cósmicos P oyec o Fin de G ado en Ingenie ía de Compu ado es Ca los Cabañas Ga cía Jaime Rod íguez Ca mona P o eso a Di ec o a: Ho ensia Mecha López P o eso Di ec o : Juan An onio Clemen e Ba ei a Mad id, 2014 iii Au o ización Los au o es de es e p oyec o au o izamos a la Uni e sidad Complu ense a di undi y u iliza con ines académicos no come ciales an o la memo ia, como el código, la documen ación y el p o o ipo de la pla a o ma desa ollada. Ca los Cabañas Ga cía Jaime Rod íguez Ca mona Mad id, 2014 Ag adecimien os Que emos ag adece a nues os di ec o es de p oyec o Ho ensia Mecha y Juan An onio Clemen e po la ayuda y dedicación o ecida en la ealización del mismo, pues o que siemp e hemos podido con a con ellos a cualquie ho a y día cuando lo hemos necesi ado. Ag adece ambién el habe nos acili ado un despacho pa a pode lle a lo a cabo. Que emos ag adece especialmen e a Felipe Se ano po la g an ayuda o ecida en los comienzos, que ue un g an apoyo pa a noso os. Además, que emos hace un ag adecimien o especial a nues as amilias, amigos y pa eja po es a a siemp e a nues o lado, apoya nos y mo i a nos en odo momen o. ii Índice de Figu as Figu a 1: Placa Vi ex 5 .................................................................................................................. 4 Figu a 2: Esquema de un IOB ........................................................................................................ 5 Figu a 3: Esquema de un CLB ....................................................................................................... 6 Figu a 4: Sis ema ha dwa e mul i a ea sob e el cual los ci cui os digi ales es eados con Nessy se implemen a án ................................................................................................................................ 8 Figu a 5: A qui ec u a de Nessy ..................................................................................................... 9 Figu a 6: Es uc u a del sis ema empo ado ................................................................................. 10 Figu a 7: GUI de Nessy ................................................................................................................ 11 Figu a 8: Bo ón Inyec a E o es en la GUI de Nessy .................................................................. 12 Figu a 9: Ejemplo de e o en el p oceso de inyección ................................................................ 13 Figu a 10: Resul ado inal de una inyección de e o es ............................................................... 14 Figu a 11: Tabla de e dad de un FF de Vi ex 5 ......................................................................... 15 Figu a 12: Esquema RTL de las modi icaciones ealizadas en un FF pa a pode inyec a e o es en él .............................................................................................................................................. 19 Figu a 13: Implemen ación de la señal RST modi icada ............................................................. 20 Figu a 14: Implemen ación de la señal CE modi icada ................................................................ 20 Figu a 15: Implemen ación de la señal SET modi icada .............................................................. 20 Figu a 16: Esquema RTL de las modi icaciones ealizadas en un FF (cuado al an las señales R, S y CE) ......................................................................................................................................... 21 Figu a 17: Implemen ación de la señal Rese (cuando al an las señales R, S, CE) ..................... 21 Figu a 18: Implemen ación de la señal CE (cuando al an las señales R, S, CE) ........................ 21 Figu a 19: Implemen ación de la señal Se (cuando al an las señales R, S, CE) ........................ 22 Figu a 20: Ejemplo de iche o UCF ............................................................................................ 22 Figu a 21: Ejemplo de mensaje po pan alla as la ejecución del "Adap ado VHDL" ............... 22 Figu a 22: Lis a de posibles alo es de uel os po la aplicación ................................................. 22 Figu a 23: Signi icado de la señal de salida "E o " del compa ado en unción del alo de uel o ........................................................................................................................................ 23 Figu a 24: Esquema gene al de un ci cui o iplicado .................................................................. 24 iii Figu a 25: Ejemplo de UCF con cambio de a iable "X" en el caso de un ci cui o iplicado .... 25 Figu a 26: Tes bench del ci cui o b05 cuando su salida e a e ónea ............................................ 26 Figu a 27: Salida del ci cui o b05 cuando su salida e a co ec a ................................................. 27 Figu a 28: Salidas Tes bench del ci cui o b11_Adap ado ............................................................ 27 Figu a 29: Golden del ci cui o b11_Adap ado ............................................................................. 28 Figu a 30: Resul ado de una inyección de e o es del ci cui o b12_T iplicado en Nessy ........... 29 Figu a 31: Resul ado de inyección de e o es del ci cui o b02_Adap ado (sin iplica ) ............. 30 Figu a 32: Resul ado de inyección de e o es del ci cui o b02_T iplicado .................................. 30 Figu a 33: G á ico esul ado de inyecciones de odos los FlipFlops en los ci cui os b01-b12 .... 30 ix Resumen Los disposi i os implemen ados con ecnologías de úl ima gene ación son cada ez más ulne ables a al e aciones en su compo amien o debido a la adiación cósmica. El obje i o de es e abajo es con ola esa posible ulne abilidad. Es o sucede undamen almen e en ci cui os emba cados en a iones, sa éli es o cohe es. Nues o abajo consis e en adap a una he amien a de inyección de e o es que sólo uncionaba pa a ecnologías basadas en FPGA pa a que pueda se usada sob e ASIC (Applica ion-Speci ic In eg a ed Ci cui ). Es a he amien a llamada Nessy ue desa ollada po o os compañe os en es a acul ad en p oyec os de SSII du an e los cu sos académicos 2009/2010 y 2010/2011. Pa a ello se ha necesi ado modi ica la he amien a y los iche os de al o ma que pe mi a inyec a e o es sob e FlipFlops y de es a o ma log a emula e o es en ASIC. Una de las p incipales di e encias en e una FPGA y un ASIC es que la p ime a se puede econ igu a e implemen a nue as uncionalidades, mien as que los ASIC, al no ene una memo ia de con igu ación no pe mi en, una ez implemen ado, ene un uso dis in o, es deci no pe mi en se econ igu ado. Sólo pe mi e ese ea su ci cui o, con lo que los allos no lo descon igu an, sólo al e an su uncionamien o. Po o o lado, se ha que ido amplia la he amien a pa a que ambién pe mi a p o ege au omá icamen e los ci cui os. El mé odo u ilizado es la iplicación del ci cui o (si uando cada uno de los es elemen os en egiones dis in as pa a que en el caso de que una pa ícula colisione, no dañe dos elemen os a la ez), po medio del cual ob enemos es señales iguales. En el momen o en el que un ci cui o es dañado y c ea una salida e ónea, el sis ema la de ec a y saca una de las salidas co ec as pa a que el es o de componen es no su an ese allo. Palab as cla e: - Bi lip - FlipFlop - Inyección de e o es - Ins umen ación - TMR (T iple Modula Redundancy) - Nessy - FPGA - Recon igu ación pa cial 2 Du an e los cu sos académicos 2009/2010 y 2010/2011 en la Facul ad de In o má ica se ha desa ollado Nessy. Es a he amien a es una pla a o ma de inyección de e o es basada en FPGA que pe mi e emula un allo en odos los bi s de la memo ia de con igu ación u ilizando el mé odo de econ igu ación pa cial, pe o no inyec a en FlipFlops. En dicha pla a o ma se ejecu a el ci cui o al mismo iempo que se ealiza una inyección de e o es. Nues o obje i o es modi ica es a he amien a pa a pe mi i que haga inyecciones en FlipFlops de o ma di ec a e indi idual median e modi icaciones sob e el código o iginal del ci cui o. Pa a pode llega a es e pun o hay que modi ica los iche os VHDL o iginales incluyendo las señales necesa ias pa a la inyección de e o es en el ci cui o. Con es o Nessy se á una pla a o ma de inyecciones an o pa a ecnología basada en FPGA como en ASIC. También hemos a ado de p o ege los ci cui os median e el mé odo de la iplicación, po medio del cual gene amos es ci cui os iguales, lo cual p oduce es conjun os de señales de salida. Es as señales ob enidas son e aluadas po un compa ado , el cual de ec a á si alguno de los ci cui os es á ob eniendo un esul ado e óneo, iden i icando al mismo y seleccionando el conjun o de señales p oceden es de uno de los ci cui os cuyo uncionamien o es el co ec o. Es deci , se selecciona aquella señal o conjun o de señales que sean iguales a las p oceden es de o o de los ci cui os iplicados, ya que es á comp obado que solo pod á habe una señal e ónea al encon a se es os ci cui os si uados en dis in as egiones del componen e y es es adís icamen e muy poco p obable que dos SEUs se p oduzcan al mismo iempo y p oduzcan la misma salida e ónea. Además se gene an a chi os de o ma au omá ica, en los cuales se aplica á el mé odo de la iplicación con la espec i a localización de cada ci cui o. Es o se ía una condición en el diseño del ci cui o global. En Nessy se emula usando egiones di e en es de la FPGA pa a cada ci cui o. 1.2- En o no So wa e En el desa ollo de es e abajo nos hemos ayudado de una se ie de he amien as explicadas a con inuación: - Eclipse: Es un edi o de código uen e que po debajo in oca a las he amien as JDK (Ja a De elopmen Ki ) y JRE (Ja a Run ime En i onmen ), el cual nos pe mi e c ea aplicaciones y en o nos de desa ollo in eg ados. Es a he amien a acili a la cons ucción de la in e az de usua io y una amplia isión del p oyec o. Debido a es o, nos hemos ayudado de es a he amien a pa a c ea una se ie de aplicaciones (que usa emos en Nessy) las cuales abajan de o ma au omá ica con los iche os VHDL o iginales pa a pode log a nues os obje i os. - Xilinx ISE (In eg a ed So wa e En i onmen ): Es una he amien a de diseño de sis emas digi ales, la cual pe mi e c ea , e i ica , simula y sin e iza diseños basados en una FPGA. Ha sido u ilizada pa a c ea los códigos en lenguaje VHDL de los diseños o ci cui os que se p e enden es ea , 3 e i ica los, sin e iza los y simula los, pa a comp oba su co ec i ud. Pa a ello, es a he amien a (además de lle a a cabo una se ie de adap aciones y ans o maciones) gene a un bi s eam ( iche o .bi ) el cual con iene oda la in o mación pa a que la FPGA sea con igu ada po comple o, desde la localización de los disposi i os, has a los elemen os de u ado. - Xilinx EDK (Embedded De elopmen Ki ): Es una he amien a que pe mi e diseña sis emas empo ados complejos pa a pos e io men e implemen a los sob e la FPGA. Es e so wa e se in eg a con ISE y pe mi e p og ama aplicaciones las cuales i án mapeadas en memo ia y se án ejecu adas po los dis in os p ocesado es que implemen emos. G acias a es a he amien a se ha gene ado el sis ema empo ado que se implemen a á en la FPGA. A di e encia del ISE, p o ee de una o ma de desa olla ha dwa e a más al o ni el, encapsulando cada módulo que desa ollemos en “IPco es”. Además, nos pe mi e e cómo es án elacionados los co es en e sí sin ene que en a en de alle y nos da la opción de pode con igu a los buses y es ablece cómo es os se conec an con los di e en es módulos del sis ema. - Xilinx SDK (So wa e De elopmen Ki ): Es una e sión modi icada de eclipse la cual es á in eg ada con Xilinx EDK. De es e modo, la he amien a debe ecibi un IDE (In eg a ed Delopmen En i onmen ) donde pode desa olla el código en lenguaje C de los p ocesos so wa e que el p ocesado del sis ema empo ado ha dwa e a a ejecu a . SDK man iene oda la in o mación impo an e elacionada con el ha dwa e en un p oyec o sepa ado y además, p opo ciona una se ie de unciones de manejo básico de los co es añadidos al sis ema, pa a de es e modo pode accede de mane a simple a ellos. Es a he amien a no puede se conside ada un sis ema ope a i o (SO) pues o que sólo nos p o ee con unciones de al o ni el adap adas a nues o ha dwa e. Pa a pode u iliza los disposi i os y en la memo ia asociada a los p ocesado es, no hay nada más que nues as aplicaciones. - Xilinx PlanAhead: He amien a u ilizada pa a la gene ación de un bi s eam pa cial pa a un componen e de nues o sis ema, es deci , pe mi e decidi dónde ubica cada uno de los módulos del sis ema (de inidos po las ne lis co espondien es “.ngc”) , así como decidi cuáles se án econ igu ables y cuales es á icos. Además, pe mi e lle a a cabo el p oceso de implemen ación y gene a los bi s eams pa ciales y globales en caso de que es os exis an. 4 1.3- Placa Vi ex 5 Nues o sis ema de emulación se a diseña sob e una FPGA de la amilia Vi ex 5, que se encuen a empo ada en la placa de desa ollo XUPV5-LX110T ( e Figu a 1 ob enida en [Xil1]). Figu a 1: Placa Vi ex 5 Las FPGA son ci cui os elec ónicos p e ab icados econ igu ables que con ienen bloques de lógica cuya uncionalidad e in e conexión se puede de e mina median e una memo ia de con igu ación. Es a ca ac e ís ica nos da la posibilidad de gene a di e en es ci cui os cuyo compo amien o se á de inido de o ma p e ia y pe sonalizada. A es a ca ac e ís ica se la denomina econ igu abilidad. Las FPGA apa ecie on como una e olución de los ci cui os CPLD (Complex P ogammable Logic De ice). Las mejo as que encon amos espec o a es os son su mayo densidad de pue as, la lexibilidad de su a qui ec u a y que habi ualmen e con ienen módulos empo ados que implemen an unciones más complejas, como pueden se DSP (Digi al Signal P ocessing) o mul iplicado es. También con ienen bloques de memo ia empo ados (BRAM). La p incipal en aja de las FPGA es que al diseña un sis ema podemos educi los cos es pues o que nos pe mi e implemen a un ci cui o de o ma di ec a sob e la placa, con lo que no es necesa ia su ab icación du an e la ase de desa ollo. Debido a la lexibilidad, capacidad de p oceso y a la ápida implemen ación de sis emas sob e FPGA, es os disposi i os se emplean habi ualmen e en: - P ocesamien o de señales digi ales. 5 - Sis emas de isión a i icial. - Sis emas ae onáu icos y de de ensa. - Fo mación en el diseño de sis emas ha dwa e. - Simulación y depu ación en el diseño de mic op ocesado es y mic ocon olado es. - Sis emas de imágenes médicas. - Codi icación y enc ip ación. Una FPGA es p og amable a ni el ha dwa e, aunque ac ualmen e exis en disposi i os p og amables que lle an además p ocesado es empo ados capaces de ejecu a p og amas esc i os en lenguajes de al o ni el. Debido a es o, p opo ciona las en ajas de un p ocesado de p opósi o gene al y de un ci cui o especializado (sis ema empo ado). Además, median e la u ilización de IPco es ha dwa e, es posible emula el compo amien o de un p ocesado . 1.3.1- A qui ec u a Vi ex 5 La a qui ec u a de es e ipo de FPGA consis e en una ma iz con los siguien es elemen os: - IOBs (Inpu Ou pu Bu e s): Comunican el disposi i o con el ex e io y es án si uados odeando la ma iz de bloques lógicos, p óximos a las pa illas del chip. Su uncionamien o se puede con igu a pa a que se compo en como pue os de en ada, salida o en ada-salida. El esquema de un IOB se mues a en la Figu a 2. Figu a 2: Esquema de un IOB 6 - CLB (Con igu able Logic Block): En Vi ex 5 exis en dos ipos de slice: slicel y slicem. Los p ime os se usan cuando lo que se a a implemen a en ellos es lógica combinacional y los segundos, cuando se necesi a almacena en memo ia. Un ejemplo de slicem es el que se puede e en la Figu a 3 (ob enido en [Xil2]). Figu a 3: Esquema de un CLB - BRAM (Block RAM): Es os elemen os se encuen an in eg ados en la FPGA y son los enca gados de e i a usa los CLB con la unción de sin e iza los módulos de memo ia menos e icien es. Son disposi i os de almacenamien o muy ápidos y en el caso de las FPGA Vi ex 5, cada uno de ellos iene una capacidad de 2KB. - DSP (Digi al Signal P ocessing): Se u ilizan pa a ope aciones a i mé ico-lógicas. Es á compues o po un mul iplicado de 25 bi s * 15 bi s y un sumado de 48 bi s. 7 - CMT (Clock Manage Tiles): Es un componen e que ag upa los DCM (Digi al Clock Manage ), que se enca gan de la ges ión del eloj y ealizan a eas de mul iplica o di idi ecuencias, asegu an una señal de eloj limpia y des asan el eloj una can idad ija. 1.4- T abajo ealizado U ilizando Nessy, una pla a o ma de inyección de e o es (que explicamos en el Capí ulo 2) y g acias a las he amien as desc i as en es e capí ulo, hemos c eado una se ie de aplicaciones capaces de adap a y iplica el código de un ci cui o cuya ulne abilidad quie e p oba se, de o ma que se pueda ajus a a las nue as necesidades pa a la inyección sob e FlipFlops y p ueba de e o es. Es as aplicaciones son: - Adap ado VHDL: Es a aplicación es la enca gada de adap a el código o iginal pa a pode ealiza las inyecciones de o ma di ec a en FlipFlops, in oduciendo las señales necesa ias y adap ando sin ác icamen e el iche o de o ma que no suponga ningún p oblema pa a su pos e io in oducción en Nessy. A su ez, gene a un iche o que con iene la localización espacial donde se coloca án odos sus elemen os sob e la placa. - T iplicado VHDL: Es a aplicación se enca ga de gene a un nue o iche o a pa i del gene ado po la aplicación “Adap ado VHDL”, iplicando sus componen es de mane a anspa en e al usua io. A su ez, gene a un nue o iche o que ambién con end á la localización espacial donde se coloca án odos sus elemen os. - Modi ica TB: Es a sencilla aplicación gene a un nue o Tes bench (codi icado en un iche o con ex ensión . x ) a pa i de o o o iginal, el cual con iene una lis a de es ímulos a las señales de en ada del ci cui o. Es e nue o iche o es igual que el o iginal pe o añadiéndole el alo de una nue a señal llamada Se _Nessy en la segunda columna. Cuando es a señal oma alo “1”, indica en qué ciclo de eloj exac o se inyec a el bi lip. 8 Capí ulo 2: Nessy 2.1 –De inición de la he amien a Nessy es una pla a o ma de inyección de e o es que cuen a con un al o endimien o y un ni el de in usión nulo y pe mi e emula la caída de una pa ícula cósmica sob e la memo ia de con igu ación de la FPGA. La no in usi idad se ga an iza conside ando que la aplicación se ejecu a en un sis ema ha dwa e mul i a ea siguiendo el modelo a qui ec ónico ep esen ado en la Figu a 4. Figu a 4: Sis ema ha dwa e mul i a ea sob e el cual los ci cui os digi ales es eados con Nessy se implemen a án En es e sis ema, la FPGA se di ide en un conjun o de Regiones Pa cialmen e Recon igu ables (RPRs). Es as RPRs se conec an a una in aes uc u a de comunicación que puede se implemen ada po medio de un bus o un Ne wo k-on-Chip (NoC) [BdM02]. Cada a ea a ejecu a en es e sis ema se coloca y en u a en una de es as RPRs y és a se comunica á con el es o del sis ema u ilizando la in aes uc u a de comunicación mencionada. El con ol de la ejecución de las a eas (con igu ación, I/O, e c) se ealiza a a és de un sis ema ope a i o o midlewa e y puede se ejecu ado en un p ocesado que se puede coloca an o den o como ue a de la FPGA. En cualquie caso, el p ocesado ambién es á conec ado a la in aes uc u a de comunicación. La I/O de las a eas se implemen a jun o con el ha dwa e de la a ea asignada en la RPR co espondien e. Cada RPR se con igu a median e econ igu ación pa cial, ya sea median e un pue o de con igu ación ex e no (JTAG, BPI, e c) o uno in e no (ICAP). Nessy dispone de una in e az de usua io que pe mi e in oduci los iche os necesa ios, como son el VHDL del ci cui o a es ea , el iche o de Tes bench, el Golden, e c. A pa i de ellos, gene a de o ma au omá ica los bi s eams pa ciales y globales del sis ema in ocando 9 las he amien as de desa ollo de Xilinx PlanAhead y EDK 12.1. El bi s eam pa cial es el que co esponde únicamen e al ci cui o a es ea (ci cui o bajo p ueba en Figu a 5). Figu a 5: A qui ec u a de Nessy La Figu a 5 p esen a una isión de la a qui ec u a de Nessy. Es e sis ema se compone de un PC y una placa de desa ollo XUPV5LX110T, que se conec an median e dos canales de comunicación. El canal de con igu ación ges iona oda la con igu ación inicial de la FPGA usando la in e az de JTAG, mien as que el de da os se u iliza pa a el in e cambio de iche os bi s eams y Tes bench en e el so wa e del PC y la FPGA, y pa a a eas de sinc onización. En es e úl imo caso el p o ocolo de comunicación u ilizando es el RS232, po lo an o las comunicaciones a a és de es e canal es án es ingidas en la medida de lo posible, con el in de no deg ada el endimien o de la inyección de e o es. La implemen ación del sis ema ha dwa e en la FPGA Vi ex 5 (Figu a 5) es consis en e con el modelo de a qui ec u a mos ado en la Figu a 4. En es e caso la inyección de e o es se lle a a cabo median e el mic op ocesado Mic oBlaze [Xil5], el cual se implemen a u ilizando los ecu sos disponibles en la FPGA. Nessy iene ambién un pue o de con igu ación in e no (ICAP) y una in e az que conec a el ci cui o es eado con la in aes uc u a de comunicación, que en es e caso ha sido implemen ado usando un bus PLB (P ocesso Local Bus). En es e sis ema, los ci cui os es eados se colocan en una RPR, exac amen e con las mismas ca ac e ís icas (localización, anchu a y al u a) que la que se u iliza á como pa e del ci cui o en una misión eal. Además el so wa e que se ejecu a en la Mic oBlaze se sinc oniza con el es o de elemen os de Nessy del mismo modo que en un sis ema eal. La Figu a 6 mues a el esquema gene al del sis ema ha dwa e de Nessy. Dicho sis ema con iene un p ocesado Mic oBlaze conec ado a la memo ia de ins ucciones y da os (BRAM) median e un bus LMB (Local Memo y Bus). Es o se conec a al es o del sis ema median e un bus de ipo PLB. Además, a es e bus se conec an o os elemen os como la memo ia DDR (Double Da a Ra e), el adap ado UART (Uni e sal Asynch onous Recei e - T ansmi e ) y el pue o de con igu ación ICAP (In e ne Con en Adap a ion P o ocol). Tambien, se incluye el ci cui o que se quie e es ea (ci cui o en Figu a 6), el cual necesi a de una in e az pa a pode conec a se a dicho bus. Eso nos pe mi e diseña y emula el ci cui o sin necesidad de ab ica lo. 10 Figu a 6: Es uc u a del sis ema empo ado P ecisamen e ese módulo que llamamos “ci cui o” se á el módulo cuya ulne abilidad se quie e e alua median e una inyección de e o es. La u ilización de FPGA se es á ex endiendo en odos los ámbi os del diseño de sis emas digi ales, debido a que los cos es y el iempo de desa ollo son mucho meno es. En la mayo ía de casos, no se p ocede a la ab icación del ci cui o g acias a la posibilidad de pode gene a lo en la p opia FPGA. Finalmen e, el sis ema es conec ado con la UART de la placa XUP median e el módulo adap ado de la UART. Es e esquema pe mi e al pue o ICAP ealiza las emulaciones de SEUs median e econ igu ación pa cial. Con el in de emula un SEU, el so wa e que se ejecu a en la Mic oBlaze inyec a un bi lip en uno de los bi s de con igu ación que con igu a el ci cui o es eado. Pa a ello, Nessy ealiza econ igu ación pa cial de la ame (que es la mínima unidad de econ igu ación) co espondien e al bi que se quie e modi ica . Como Nessy no ealiza la econ igu ación o al del ci cui o con el in de emula el SEU, se log a un endimien o muy al o. La me odología desc i a pe mi e inyec a SEUs sin in oduci ninguna modi icación ni en la colocación, ni en el en u ado del ci cui o es eado excep o el bi lip inyec ado. Po es a azón, Nessy es una pla a o ma de emulación de SEU no in usi a. Nessy ambién cuen a con dos en ajas adicionales. Po un lado, un cos e de implemen ación asequible. En e ec o, Nessy no equie e una pla a o ma ad-hoc, sólo se u ilizan unas FPGA y un PC pa a la comunicación con la Mic oBlaze. Po o o lado, es ácil de po a a o as FPGA de Xilinx Vi ex. Finalmen e, el PC (Figu a 5) con ola el uncionamien o global de los expe imen os de inyección de e o es a a és de una GUI (G aphical Use In e ace), p og amada en Ja a. Dicha GUI se puede obse a en la Figu a 7. 11 Figu a 7: GUI de Nessy Así, abaja con Nessy es muy ácil e in ui i o. Pueden encon a se más de alles de es a GUI en [ASCM12]. La ame es la mínima unidad de con igu ación. Es o signi ica que, pa a inyec a un bi lip en un ci cui o median e econ igu ación pa cial, se debe ca ga en el pue o de con igu ación, al menos, la in o mación de con igu ación de la ame que con iene el bi de con igu ación in oluc ado. Cada ame con iene 40 palab as de 32 bi s (po lo an o hay un o al de 40 * 32=1280 bi s de con igu ación). Va ios ames consecu i os con ienen la in o mación de con igu ación asociada a un conjun o de bloques de ecu sos adyacen es si uados en la misma columna, de al mane a que una única ame con iene in o mación de con igu ación de 20 CLB o de 4 DSP. A a és de un análisis más p o undo, se puede obse a que la ma iz de bloques de ecu sos es i egula . En o as palab as, cada bloque de ecu sos no se con igu a a a és del mismo núme o de ames. Así, se necesi an 36 ames pa a con igu a un conjun o de 20 CLB, y 28 ames pa a un conjun o de 4 DSP. Po lo an o, cada conjun o de 20 CLB se econ igu an con 36 * 1280 = 46080 bi s de con igu ación, mien as que pa a con igu a un conjun o de 4 bloques DSP se necesi an 28 * 1280 = 35840 bi s de con igu ación. 18 Capí ulo 4: Aplicaciones desa olladas 4.1 - Adap ado VHDL En es e capí ulo se desc iben las es aplicaciones que se han desa ollado e in eg ado en Nessy pa a la inyección de e o es en FlipFlops. Es a aplicación iene como obje i o adap a el código VHDL es uc u al de un ci cui o pa a pode hace inyecciones de o ma di ec a sob e los FlipFlops según se ha explicado en el Capí ulo 3. Pa a ello es necesa ia la c eación de una nue a señal llamada Se _Nessy y el edi eccionamien o de las señales an iguas pa a que la nue a señal pueda ac ua sob e ellas. Añadimos cie a can idad de ha dwa e de ins umen ación pa a cada FlipFlop, en el cual la nue a señal Se _Nessy, jun o con el bi SRHIGH/SRLOW, pe mi a modi ica el alo de las señales de cada FlipFlop de o ma independien e. En p ime luga , el a chi o ecibido debe se la e sión sin e izada de un VHDL o iginal. Pa a ello es necesa io c ea un nue o p oyec o ISE y selecciona la opción “Gene a e Pos - Syn hesis Simula ion Model” habiendo desac i ado p e iamen e la opción de inclui los I/O Bu e s. Una ez enemos el iche o p epa ado, pasamos a in oduci lo en el Adap ado . Pa a ello, nues o p og ama nos pide una se ie de da os que son, el nomb e del iche o y la posición X e Y iniciales de las que se pa i á pa a la pos e io colocación de los elemen os sob e la placa. Es os X e Y deben se consis en es con la localización inal que se selecciona á en Nessy pa a coloca inalmen e el ci cui o a es ea . Una ez in oducidos los da os, comienza la ejecución de nues o p og ama. En p ime luga , se in oca a una unción llamada “explo aA chi o” en la cual se lee el a chi o o igen buscando los las p imi i as de FlipFlops exis en es en es e código e iden i ica sus señales gua dándolas en una lis a donde se e leja su nomb e y a qué FlipFlop pe enecen. Las di ec i as omadas pa a la iden i icación de los componen es y sus espec i as señales son: * D(da a inpu ), CE(clock enable), C(clock), CLR(asynch onous clea ), Q(da a ou pu ), PRE(asynch onous p ese ), S(se ), R(synch onous ese ) - FDCE: D, CE, C, CLR, Q - FDE: PRE, D, CE, C, CLR, Q - FDCPE: PRE, D, CE, C, CLR, Q - FDRSE: S, D, CE, C, R, Q - FDCE_1: D, CE, C, CLR, Q - FDCPE_1: PRE, D CE, C, CLR, Q - FDRSE_1: S, D, CE,C, R, Q - FDP: PRE, DC, Q 19 - FDR: S, D, CE, C, R, Q - FDS: Q, D, C, S En el caso de que el FlipFlop no disponga de nomb e en el código VHDL, se le asigna uno siguiendo el pa ón “FF_x” pa a que pos e io men e pueda se enomb ado de o ma co ec a. Debido a que hay dis in os ipos de FlipFlops, exis en señales nomb adas de dis in o modo pe o con una misma uncionalidad, po ello las señales “R o CLR” se nomb a án como “R” y las señales “S o PRE” se nomb a án como “S”. Una ez e minado es e paso, ya disponemos de una lis a de señales pa a pode abaja con ellas y p ocedemos a llama a una segunda unción llamada “gene aA chi o”. Es a unción en p ime luga gene a un iche o VHDL nue o y as es o, comienza a lee línea po línea el iche o o igen. P ime o elimina la línea “use UNISIM.VPKG” y las asignaciones de las a iables iniciales con enidas en el “po ” de la en idad como puede se “X: ou s dlogic := ‘X’;” ans o mándolas a “ X: ou s dlogic;” incluyendo la nue a señal Se _Nessy siemp e en la segunda posición. Además de es o, enomb a la en idad llamándola con su mismo nomb e más “_syn hesis_Adap ado”. T as es o, incluye la decla ación de las nue as señales necesa ias pa a la adap ación del ci cui o. Una ez inalizados es os pasos, con inúa con la lec u a del iche o o igen. Si no se de ec a la es uc u a de un FlipFlop, se copia de o ma di ec a línea po línea, en caso con a io, p ocede á a su adap ación. En es a modi icación, lo p ime o que hace es esc ibi el nomb e del FlipFlop de iniendo la nue a es uc u a, que en caso de se sínc ono se á FDRSE y en caso con a io FDCPE, p ocediendo a edi ecciona las señales an iguas y esc ibiendo las nue as señales. De es e modo, la es uc u a esul an e se ía la ilus ada en la Figu a 12. Figu a 12: Esquema RTL de las modi icaciones ealizadas en un FF pa a pode inyec a e o es en él 20 Los elemen os señalados como LUT implemen an las siguien es unciones que se co esponden con las ecuaciones (1), (2) y (3) del Capí ulo 3: - LUT1 (FF_RST): (( no Q) and Se _Nessy) o ((no Se _Nessy) and O iginal_R) Figu a 13: Implemen ación de la señal RST modi icada - LUT2 (FF_CE): (no Se _Nessy) and O iginal_CE Figu a 14: Implemen ación de la señal CE modi icada - LUT3 (FF_SET): (Q and Se _Nessy) o ((no Se _Nessy) and O iginal_S) Figu a 15: Implemen ación de la señal SET modi icada Exis e la posibilidad de que alguno de los FlipFlops no con enga alguna de es as señales necesa ias (RST, CE y/o SET), sin emba go en es e caso, es as señales se ían incluidas de o ma au omá ica en la in o mación de las p imi i as, aunque no apa ece ían e lejadas en las unciones po simplicidad. Las señales son incluidas con la “ , ” delan e pa a iden i ica que son señales pues as a pos e io i y además, se mues a po consola un mensaje de e o a modo in o ma i o en el cual se e leja el nomb e del FlipFlop y las señales que le al an. De es e modo, la es uc u a esul an e se ía la que se puede e en la Figu a 16. 21 Figu a 16: Esquema RTL de las modi icaciones ealizadas en un FF (cuado al an las señales R, S y CE) En es a nue a es uc u a, los elemen os señalados como LUT implemen an las siguien es unciones: - LUT1 (FF_RST): (no Q) and Se _Nessy Figu a 17: Implemen ación de la señal Rese (cuando al an las señales R, S, CE) - FF_CE: (no Se _Nessy) Figu a 18: Implemen ación de la señal CE (cuando al an las señales R, S, CE) 22 - LUT2 (FF_SET): Q and Se _Nessy Figu a 19: Implemen ación de la señal Se (cuando al an las señales R, S, CE) Una ez e minada la gene ación del nue o iche o VHDL, se p ocede a la gene ación de un iche o UCF en el cual se de ine la ubicación de los FlipFlops en unción de los alo es iniciales dados po el usua io p e iamen e (obse able en la Figu a 20). Figu a 20: Ejemplo de iche o UCF Pa a ubica los elemen os, cada línea de es e iche o debe con ene el nomb e que iene asignado el FlipFlop y su localización. El alo de la al u a es á es ablecido de o ma que nunca supe e el alo de Y = 159, po lo que si se alcanza es a al u a, se pasa á de o ma au omá ica a la siguien e posición de X y el alo de Y ol e á a su o igen. Cuando inaliza el p og ama, nos mues a dos mensajes po consola, uno diciendo “Fin de P og ama” y o o mos ando si ha e minado de o ma co ec a o con algún e o , iden i icando el mismo. Un ejemplo de lo que se mues a du an e la ejecución del p og ama es el ilus ado en la Figu a 21. Figu a 21: Ejemplo de mensaje po pan alla as la ejecución del "Adap ado VHDL" Si hay e o , el p og ama lo iden i ica y lo mues a po pan alla en unción del alo de uel o al inaliza la ejecución, basándose en la clasi icación que se mues a en la Figu a 22. Figu a 22: Lis a de posibles alo es de uel os po la aplicación 23 4.2 - T iplicado VHDL Es a aplicación iene como obje i o c ea un nue o iche o VHDL en el cual se iplica un componen e del iche o o igen y se conec an sus salidas a un compa ado que nos o o ga la salida o conjun o de salidas co ec as y una señal que indica si las es señales p oceden es de los dis in os ci cui os iplicados son iguales, si son dis in as o iden i ica cuál es la señal o conjun o de señales dis in as. Además, gene a un nue o iche o UCF con la co espondien e localización de odos los elemen os gene ados sob e la placa. En p ime luga , la aplicación ecibe el nomb e del iche o ob enido en la ejecución de la aplicación “Adap ado VHDL”. Es e debe es a en la ca pe a de ejecución de la aplicación. Asimismo, en ese mismo di ec o io debe exis i su co espondien e iche o UCF con la in o mación de la localización de los FlipFlops en el disposi i o. El iche o “compa ado . hd” mencionado an e io men e, con iene la desc ipción del compa ado , es deci , la con igu ación del ci cui o que usa emos pa a compa a las señales ecibidas po los elemen os iplicados. Pa a ello, ecibe es ec o es con eniendo las señales de salida de cada componen e, las compa a y gene a dos salidas llamadas “E o ” y “Salida”. La señal “Salida” es un ec o que con iene la salida seleccionada (Salida1, Salida2 o Salida3) como esul ado de la compa ación. La señal “E o ” es un ec o de es elemen os el cual nos indica el esul ado de la compa ación, como se mues a en la Figu a 23. Figu a 23: Signi icado de la señal de salida "E o " del compa ado en unción del alo de uel o Una ez ob enidos y si uados es os documen os, se p ocede a la ejecución de la aplicación. En p ime luga , se in oca a la unción “explo aA chi o” la cual eco e el iche o o igen en busca del componen e a iplica . Una ez localizado es e componen e, iden i ica sus señales y las gua da en una lis a, ob eniendo sus ca ac e ís icas (como son el ipo, el amaño del ec o o si es de en ada o salida). Es a unción es á desa ollada de al mane a que es capaz de econoce los da os a pesa de es a esc i os de di e sas mane as, como puede se con ene “;” al inal de la línea, encon a se la in o mación de una misma señal en dis in as líneas con iguas, e iden i icando el inal de la de inición “);” a pesa de es a en la misma línea que una señal no mal o que una señal ec o ial, aunque el pa én esis inal de es a se encuen e jun o a dicha exp esión. Después se llama a la unción “c eaA chi o” que lo p ime o que hace es inco po a la lib e ía “IEEE” y “IEEE.STD_LOGIC_1164.ALL”. T as es o, gene a la en idad añadiendo “_TMR op” al nomb e que enía en la en idad o igen y a con inuación se de ine el “po ” con las mismas señales que se han iden i icado an e io men e en la unción “explo aA chi o”. Es o se hace pa a que nues o ci cui o de o ma ex e na siga uncionando de o ma indi idual, pe o in e namen e lo haga de o ma iplicada. A con inuación se 24 p ocede a la de inición de la a qui ec u a del ci cui o iplicado. Pa a ello se comienza de iniendo las señales que el ci cui o a a necesi a . Es as señales son, una salida po cada ama del ci cui o iplicado (las cuales se i án de en ada al compa ado ), una salida de e o (p oducida po el compa ado ) y la salida seleccionada po el compa ado . T as es o decla a los componen es que usa á el ci cui o, pues o que és os es án en iche os ex e nos. En es e caso se decla a un componen e igual que el decla ado en la en idad y o o del ipo compa ado . Una ez hecho es o, se p ocede a la iplicación del componen e. Pa a ello, se c ean es ins ancias del elemen o o igen, ag upando las espec i as salidas en ec o es nomb ados como “Salida1, Salida2 y Salida3”, los cuales se i án de en adas al compa ado . T as c ea es os elemen os, se c ea el úl imo de los componen es, el compa ado y se conec an sus en adas con las salidas an e io men e nomb adas. Se puede e un ejemplo de la a qui ec u a gene al esul an e en la Figu a 24. Figu a 24: Esquema gene al de un ci cui o iplicado Una ez inalizada la c eación del iche o VHDL iplicado se comienza la gene ación del nue o iche o UCF. Pa a ello, en p ime luga se in oca a la unción “lee Uc ”, que se enca ga de lee el documen o de con igu ación del elemen o adap ado o iginal iden i icando el nomb e del FlipFlop y sus coo denadas. T as es o, se in oca a la unción llamada “c ea UCF”. Dicha unción gene a un nue o documen o usando el nomb e del iche o o igen más “_Res icciones_Top.uc ”. En es e documen o es donde se esc ibi á la localización de los elemen os del ci cui o, pe o en es e caso de o ma iplicada, es deci , una localización especí ica pa a cada uno de los elemen os gene ados. En es e caso se sigue man eniendo la es icción po la cual la coo denada Y no debe supe a el alo de 159 y se iene en cuen a una nue a, según la cual, si un componen e e mina en una coo denada X, la siguien e debe empeza en X+1, es deci , si un elemen o e mina en X = 61, el siguien e componen e debe empeza en X = 62. Es o se mues a en la Figu a 25. 25 Figu a 25: Ejemplo de UCF con cambio de a iable "X" en el caso de un ci cui o iplicado 4.3 - Modi ica TB El iche o Tes bench es el enca gado de pasa le los alo es a las señales de nues o ci cui o du an e le ejecución del p og ama Nessy. Es a aplicación iene como obje i o c ea un nue o iche o “. x ” pa iendo de o o ya exis en e. El o iginal con iene los alo es que oma án las señales de nues o ci cui o. Se á necesa io añadi le un alo adicional, la señal Se _Nessy. Es e alo se á un ce o y se coloca en la segunda posición empezando po la izquie da, pues o que es el p opio p og ama Nessy quien oma á el alo de la segunda posición pa a dicha señal. Es impo an e des aca que, po de ec o, es e p og ama asigna un alo de “0” a la nue a señal Se _Nessy. Sin emba go, a la ho a de ealiza una inyección de e o es, Nessy elige de mane a alea o ia un ciclo de eloj donde se inyec a á el e o , y ac i a a “1” la en ada Se _Nessy de la línea del Tes bench co espondien e. De es e modo, el usua io no iene que in e ac ua di ec amen e con es a señal en el Tes bench. Es Nessy quien se enca ga de ello de una mane a o almen e anspa en e. En p ime luga la aplicación ecibe el nomb e del iche o Tes bench. x o iginal y un a gumen o, el cual si es “de echa” signi ica á que se debe in oduci el nue o alo po la de echa, en cualquie o o caso se añadi á po la izquie da. El p og ama comienza c eando un nue o a chi o con el mismo nomb e que el o iginal, añadiéndole “_nessy_izquie da. x ” o “_nessy_de echa. x ” dependiendo po dónde le añadamos el nue o alo . A con inuación el p og ama p ocede á a inse a un ce o en odas las líneas del iche o en la posición indicada p e iamen e. 26 Capí ulo 5: Resul ados ob enidos Pa a pode compa a la di e encia en ulne abilidad en e el ci cui o o iginal y el ci cui o con nues as modi icaciones, se han u ilizado doce ci cui os (ob enidos del conjun o de iche os de es con enidos en “ITC’99” [CMS00]). Pa a cada uno de ellos se ha c eado un p oyec o de ISE y una simulación del Tes bench Nessy y de es a o ma i compa ando que ambas salidas, an es de se modi icadas, ob enían los mismos esul ados. Pa a ello, en p ime luga se elabo ó un iche o Tes bench con la con igu ación de los iche os o iginales VHDL y se gua dó una imagen ob enida de los esul ados de la simulación. Una ez almacenadas es as imágenes, se p ocedió a gene a los iche os es uc u ales u ilizando la opción “Gene a e Pos Syn hesis Simula ion” de ISE y como consecuencia, su co espondien e iche o Tes bench. De igual mane a, se gua da on las imágenes de las simulaciones y se compa a on con las de los iche os o iginales, ob eniendo algunas di e encias en e algunos de los ci cui os. Un ejemplo de es o es el p oblema que se encon ó en el iche o “b05. hd”, el cual con enía la ins ucción “TM := -MAX mod 2**5;” a la cual se le aplicó la siguien e modi icación “TM := (-MAX) mod 2**5;”. Es o ue debido a que la ins ucción o iginal gene aba un alo de TM e óneo, al de ol e como nega i o el esul ado de la ope ación en ez de cambia le el signo a MAX (cuando és e es nega i o) an es de ealiza la ope ación. Los esul ados ob enidos an es de modi ica es a ins ucción se mues an en la Figu a 26. Figu a 26: Tes bench del ci cui o b05 cuando su salida e a e ónea Se obse a que la a iable DISMAX3 iene un cie o alo . A la ho a de implemen a el sin e izado y e que el alo de las salidas no co espondía con el ob enido con an e io idad, se e isó el código pa a busca dónde se p oducía ese alo e óneo. T as la modi icación de esa ins ucción se ob u o el esul ado co ec o de la a iable, el cual se puede e en la Figu a 27. 27 Figu a 27: Salida del ci cui o b05 cuando su salida e a co ec a Además de es os p oblemas se u ie on di e sas complicaciones con algunos de los iche os (como puede se el b07, b08, b12…) pues o que el VHDL no usaba el es ánda es ablecido en el IEEE. Es o condujo a co egi p ime o es os e o es an es de pode p ocede con la ejecución de nues as aplicaciones. Una ez que odas las simulaciones ue on co ec as, se in odujo cada iche o es uc u al en nues o p og ama “Adap ado VHDL” pa a gene a los nue os iche os adap ados con sus co espondien es iche os de es icciones UCF. T as es o, se gene a on unos nue os Tes bench que se adap a ían a los nue os iche os y de es e modo pode ob ene las nue as simulaciones. Una ez solucionados los p oblemas, se p ocedió a in oduci el iche o VHDL y su co espondien e UCF po nues o p og ama “T iplicado VHDL” y de es e modo se gene a on los iche os iplicados con sus co espondien es iche os UCF. T as habe ob enido es os iche os, se pasó a c ea los p oyec os en la aplicación Nessy (pla a o ma explicada en el Capí ulo 2), p ime o los adap ados y después los iplicados. Una ez gene ados de o ma co ec a los p oyec os, se p ocedió a la gene ación del Golden, el cual nos enía que de ol e los mismos esul ados que las imágenes de las simulaciones ob enidas an e io men e, como se puede obse a en las Figu as 28 y 29. Figu a 28: Salidas Tes bench del ci cui o b11_Adap ado 34 de con igu ación, podíamos man ene el bi s eam pe o debíamos gene a un nue o Golden y una nue a inyección. Pa a es as a eas u imos que i o ganizándonos (según la disponibilidad de cada uno) de modo que uésemos poniendo a gene a aquellos p oyec os allidos. Cuando odos los p oyec os ue on gene ados de o ma co ec a ( odas las salidas e an co ec as an es de las inyecciones, es deci , coincidían con las ob enidas an e io men e) pudimos comp oba que con el nue o mé odo ob eníamos un muy buen esul ado en cuan o al po cen aje de e o es (del 0%) y comenzamos con la documen ación del abajo ealizado, plasmándolo en la memo ia. 35 Capí ulo 8: Apo ación de Jaime Rod íguez Ca mona en el p oyec o El p oyec o empezó con la a ea de hace un código que adap a a los iche os VHDL pa a que Nessy pudie a inyec a e o es en ellos. Es a pa e al se la p ime a y única que eníamos po aquel en onces la hicimos los dos jun os, aunque ue mi compañe o el que comenzó c eando el p oyec o. Como nos die on libe ad a la ho a de elegi la pla a o ma de desa ollo de la aplicación, elegimos Eclipse que ya lo conocíamos y nos es ácil abaja con ella. Una ez que eníamos casi e minada la unción “explo aA chi o”, unción muy la ga y compleja, mi compañe o se enca gó de puli los de alles de és a y yo empecé a desa olla la unción “gene aA chi o”. Po lo gene al, cuando uno e minaba se ponía con o a cosa pa a i a anzando, aunque cla o es á, nos ayudábamos mu uamen e cuando nos quedábamos bloqueados. Una ez que e miné con esa unción me puse con la unción que se enca ga de gene a el iche o UCF, mien as mi compañe o se enca gaba de aplica modi icaciones sob e Nessy pa a pode inco po a nues a aplicación, modi icando la in e az y demás. Una ez que e miné con la pa e de gene a los UCF ayudé a mi compañe o a e mina de hace las modi icaciones necesa ias en Nessy pa a que se pudiese lle a a cabo la inyección de e o es. Los iche os hay que sin e iza los an es de hace la inyección de e o es. Una ez e minada la aplicación y ene lis o Nessy, nos pusimos a simula los ci cui os y comp oba las salidas pa a comp oba si e an las co ec as. Al p incipio die on e o es, en ese momen o mi compañe o y yo decidimos di idi nos es os e o es pa a a a de esol e los con la mayo b e edad posible. A la ho a de soluciona es os p oblemas u imos que consul a nos muchas cosas ya que implicaba modi ica nues a aplicación. Mien as yo e minaba de soluciona los e o es ob enidos as las simulaciones, mi compañe o empezó con el código de nues a segunda aplicación, “T iplicado VHDL”. Como siguie on dándonos libe ad a la ho a de elegi la pla a o ma, decidimos con inua con Eclipse. Cuando e miné con esos e o es me puse a ayuda le con el código del T iplicado . Igual que en la aplicación an e io , en es a pa e del desa ollo nos di idimos las a eas, mi compañe o hacía unas unciones y yo iba haciendo o as. Algunas de es as unciones las ob u imos modi icando un poco las hechas en la aplicación an e io . Una ez e minadas las dos aplicaciones comenzamos las p uebas en Nessy. Pa a ello gene amos un p oyec o pa a cada ci cui o “bxx_adap ado” y “bxx_ iplicado”. Las p uebas en Nessy nos lle a on mucho iempo, ya que en gene a el bi s eam a daba muchísimo, lo que nos hacía pasa po el despacho con mucha ecuencia pa a comp oba si habían e minado o no. En es e pun o mi compañe o uso TeamWie e , pa a pode maneja el o denado en el que se es aba ejecu ando Nessy desde el suyo. Es o nos pe mi ió gana mucho iempo ya que podíamos deja lo en uncionamien o los ines de semana. Como no odos los iche os cumplían el es ánda es ablecido en el IEEE, nos daban p oblemas a la ho a de c ea los bi s eam. En es e pun o mi compañe o se enca gó de modi ica unos iche os mien as yo modi icaba o os. Al e mina con es os e o es nos 36 dimos cuen a que los Golden se gene aban de o ma inco ec a po que les al aba un alo pa a la señal Se _Nessy. Pa a que unciona an de o ma co ec a había que modi ica (inco po ando un alo más) odas las líneas de odos los iche os “TB. x ”. Como la modi icación había que hace la pa a odos los iche os nos gene amos una aplicación, ambién en Eclipse, la que ecibe un iche o “. x ”, de uel e o o p ác icamen e igual que el an e io pe o con un alo más (el cual puede se in oducido po la de echa o po la izquie da, según se indique) que se á pa a la señal Se _Nessy y siemp e se á “0”. O o de los e o es que encon amos es que en algunos iche os el o den de las en adas no e a el co ec o (la señal Rese enía que se la p ime a), po ello u imos que coloca las señales en el o den co ec o y ol e a ejecu a odos los pasos o a ez. Cuando los p oyec os ue on gene ados de o ma co ec a, la salida an es de la inyección coincidía con la gene ada en el Golden, pudimos comp oba que con el nue o mé odo se ob enía un buen esul ado, un po cen aje de e o es del 0%. Al hace la memo ia, hemos abajado p ác icamen e jun os. Casi siemp e en un mismo o denado , pensando los dos en al o y esc ibiendo lo que nos pa ecía más co ec o. Aun así, ambién hemos hecho pa e de la misma en casa, cada uno ponía lo que le pa ecía en el documen o y luego se hablaba si al o o le pa ecía bien. 37 Apéndice 1 Manual Adap ado VHDL 1- Ab i Eclipse. 2- Hace click en File->Impo … 3- Desplega la ca pe a gene al y selecciona exis ing p oyec s in o wo kspace, pulsa nex . 4- Apa ece á es a pan alla: Pulsa B owse y busca y selecciona la ca pe a con enedo a de la aplicación y pulsa inish. 5- In oduci en la ca pe a en la que se encuen a la aplicación el iche o VHDL sin e izado bxx_syn hesis. hd. 38 6- Hace click de echo en la ca pe a con enedo a del p oyec o en Eclipse, y selecciona la opción P ope ies. 7- T as es o se ab i á la en ana 1 2 3 39 Seleccionamos Run/Debug Se ings, después seleccionamos la con igu ación Main, y pinchamos en Edi … 8- Se ab i á la siguien e en ana: Seleccionamos la pes aña A gumen s e in oducimos el nomb e del iche o o igen. Seleccionamos OK. 9- Po úl imo iniciamos la ejecución del p og ama pulsando: 10- Al e mina la ejecución de la aplicación gene a a dos iche os nue os: bxx_syn hesis_Adap ado. hd y bxx_syn hesis_Res icciones.uc . 40 Apéndice 2 Manual T iplicado VHDL 1- Ab i Eclipse. 2- Hace click en File->Impo … 3- Desplega la ca pe a gene al y selecciona exis ing p ojec s in o wo kspace, pulsa nex . 4- Apa ece á es a pan alla: Pulsa B owse y busca y selecciona la ca pe a con enedo a de la aplicación y pulsa inish. 5- In oduci en la ca pe a en la que se encuen a la aplicación los iche os VHDL adap ado sin e izado bxx_syn hesis_adap ado. hd y el iche o UCF bxx_syn hesis_Res icciones.uc . 41 6- Hace click de echo en la ca pe a con enedo a del p oyec o en Eclipse, y selecciona la opción P ope ies. 7- T as es o se ab i á la en ana Seleccionamos Run/Debug Se ings, después seleccionamos la con igu ación Main, y pinchamos en Edi … 1 2 3 42 8- Se ab i á la siguien e en ana: Seleccionamos la pes aña A gumen s e in oducimos el nomb e del iche o o igen. Seleccionamos OK. 9- Po úl imo iniciamos la ejecución del p og ama pulsando: 10- Al e mina la ejecución de la aplicación gene a a dos iche os nue os: bxx_syn hesis_Adap ado_TMR op. hd y bxx_syn hesis_Adap ado_Res icciones_Top.uc . 43 Apéndice 3 Manual Modi ica TB 1- Ab i Eclipse. 2- Hace click en File->Impo … 3- Desplega la ca pe a gene al y selecciona exis ing p oyec s in o wo kspace, pulsa nex . 4- Apa ece á es a pan alla: Pulsa B owse y busca y selecciona la ca pe a con enedo a de la aplicación y pulsa inish. 5- In oduci en la ca pe a en la que se encuen a la aplicación Tes bench NOMBRE. x .