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 .