• No se han encontrado resultados

Ingeniería inversa del componente programable (fpga ep1c12q24017n) de la tarjeta t222

N/A
N/A
Protected

Academic year: 2020

Share "Ingeniería inversa del componente programable (fpga ep1c12q24017n) de la tarjeta t222"

Copied!
60
0
0

Texto completo

(1)Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Departamento de Telecomunicaciones y Electrónica. TRABAJO DE DIPLOMA INGENIERÍA INVERSA DEL COMPONENTE PROGRAMABLE (FPGA EP1C12Q24017N) DE LA TARJETA T222. Autor: Cadete Yadiel Alejandro Toledo Dalmau Tutor: T Cor. Félix Enrique Gomara Tristá Consultante: T Cor. Gerardo García Pierrat. Santa Clara 2014 “Año 56 de la Revolución".

(2) Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Departamento de Telecomunicaciones y Electrónica. TRABAJO DE DIPLOMA INGENIERÍA INVERSA DEL COMPONENTE PROGRAMABLE (FPGA EP1C12Q24017N) DE LA TARJETA T222. Autor: Cadete Yadiel Alejandro Toledo Dalmau [email protected] Tutor: T Cor. Félix Enrique GomaraTristá [email protected] Consultante: T Cor. Gerardo García Pierrat.. Santa Clara 2014 “Año 56 de la Revolución".

(3) Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Telecomunicaciones y Electrónica, autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicado sin autorización de la Universidad.. ____________________ Firma del Autor Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. __________________ Firma del Tutor. _____________________ Firma del Jefe de Departamento. ________________________ Firma del Responsable de Información Científico-Técnica.

(4) i. PENSAMIENTO. “Quien nunca descansa, quien con el corazón y la sangre piensa lograr lo imposible, triunfa”.

(5) ii. DEDICATORIA. A mi madre Marlenis, que ha estado siempre apoyándome en todos los momentos de mi vida, brindándome mucho amor y cariño. A mi padrastro Yunisdey, que se ha sido como un padre para mí. A mi abuelo Pedro Dalmau, que aunque no me acompaña físicamente sé que estaría muy orgulloso de mis logros. Lo quiero y siempre estará dentro de mi corazón. A mi abuela Adelaida, por toda su paciencia y cariño, su fe, sus años, su vida, dedicada a mí. A mi padre y mi madrasta, por brindarme brindarme su apoyo y cariño. A mi tía Telvia que a pesar de su problema físico me apoya con sus sentimientos y su confianza en mí. A toda mi familia, por ser tan especiales, por quererme siempre, perdonarme, confiar en mí, y enseñarme a crecer..

(6) iii. AGRADECIMIENTOS. A Dios por estar siempre presente ayudándome en cada momento de mi vida, y sin su ayuda no hubiera sido posible la realización de este trabajo. A mis padres porque sin ellos no es posible realizar mis sueños. A mi abuela Adelaida, por su amor y dedicación. A mis compañeros de aula Jorge Daniel y Roberto Carlos, que ha sido amigo, siempre brindándome su ayuda para seguir adelante. A Abadía que me brindó su ayuda en la realización de este trabajo. A mi tutor el T. Cor. Gomara, por brindarme su amistad y ayudarme en la realización de este trabajo. A el T. Cor. Pierrat, por estar al tanto de mis dudas y realizar su mejor esfuerzo por aclararlas. Siendo de gran importancia en la realización de este trabajo. A mis profesores, por toda mi educación y formación hasta los días de hoy..

(7) iv. A Adis y Yandy que fueron de gran ayuda en la realización de este trabajo, por acogerme en su laboratorio con amabilidad y apoyo incondicional. A todos mis amigos, por dejarme formar parte de sus vidas. A todos Gracias..

(8) v. TAREA TÉCNICA. Para llegar a confeccionar el informe final se llevaron a cabo una serie de tareas técnicas que son objetivos de gran importancia para la realización de esta tesis, estas son:.  Generalidades de la Estación de Conducción de Artículos ECC S125MIA “Pechora”.  Estudio preciso sobre los antecedentes relacionados con la tarjeta T222 del sistema de Representación de la Información de la Estación de Trabajo con Objetos Aéreos.  Descripción y argumentación de las funciones del sistema, encontradas en cada segmento de código en VHDL o AHDL.  Implementar los procedimientos para la realización de ingeniería inversa de software.  Elaboración de un informe final.. ________________. _______________. Firma del Autor. Firma del Tutor.

(9) vi. RESUMEN. Con el propósito de defender y mantener la seguridad e independencia nacional de nuestro país, se cuenta con diferentes sistemas para la vigilancia del espacio aéreo, a los cuales es de gran importancia aplicarles una modernización de la tecnología. En este caso tenemos el “Complejo Pechora” (Estación de Conducción de Artículos), siendo uno de los sistemas que necesita esta renovación tecnológica. Está compuesto por la cabina de dirección y el puesto de antenas. Entre los dispositivos que componen la cabina de dirección se encuentra el bloque de imitación y control conocido como tarjeta funcional T222. Siendo la existencia de nuevos componentes para adquirir las diferentes tarjetas programables empleadas en esta Estación de Vigilancia del espacio aéreo, sobre la cual no se tiene más información que sus esquemas electrónicos y los códigos fuentes no documentados, lo que nos impone la gran necesidad de esta investigación, dedicada a explicar fundamentalmente el funcionamiento de la tarjeta T222, con la realización de ingeniería inversa al código fuente presente en el componente programable de la misma. Para lograr la realización de este trabajo se hizo un análisis de las principales características de los FPGAs y de los Lenguajes de Descripción de Hardware (HDL), utilizado en la programación de dichos componentes. Se caracterizó la familia Cyclone I de Altera, siendo el componente programable de dicha tarjeta, y la herramienta de simulación Quartus II, utilizada en el proceso de ingeniería inversa. Además se explica y se caracteriza en que consiste el proceso de ingeniería inversa, el cual nos permitiría sustituir una tecnología obsoleta, sin el inconveniente de realizar grandes inversiones..

(10) vii. ÍNDICE PENSAMIENTO ....................................................................................................................i DEDICATORIA .................................................................................................................... ii AGRADECIMIENTOS ........................................................................................................ iii TAREA TÉCNICA ................................................................................................................. v RESUMEN ............................................................................................................................vi INTRODUCCIÓN .................................................................................................................. 1 CAPITULO I: Características generales del subsistema electrónico de la ECC y su interrelación con la T222 ........................................................................................................ 6 1.1.. El Complejo Pechora en la defensa del país ............................................................ 6. 1.2.. Funciones de la tarjeta T222 dentro de la ECC........................................................ 8. 1.3.. Principales características de los FPGA ................................................................. 12. 1.3.1. Aplicaciones de los FPGAs ............................................................................ 15. 1.4.. La familia Cyclone I de Altera ............................................................................... 15. 1.5.. Caracterización de la herramienta de simulación Quartus II ................................. 16. CAPITULO II: Propuesta de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables ................................................................................................ 20 2.1. Definición de ingeniería inversa de software ........................................................ 20. 2.2. Características generales de la ingeniería inversa .................................................. 21. 2.3. Lenguajes de descripción de hardware usados en la programación de FPGA ....... 23. 2.4. Principales estructuras del lenguaje VHDL en la descripción de subsistemas. típicos combinacionales y secuenciales ............................................................................ 24 2.5. Principales estructuras del lenguaje AHDL en la descripción de subsistemas. típicos combinacionales y secuenciales ............................................................................ 26.

(11) viii 2.5.1. Estructura del AHDL ...................................................................................... 28. Capítulo 3: Asimilación de la funcionalidad del código fuente programado en el FPGA perteneciente a la T222 ......................................................................................................... 30 3.1. Descripción del proyecto de la T222 ..................................................................... 30. 3.2. Bloque SM_signal_gen .......................................................................................... 31. 3.2.1 Bloques que forman las 4 señales de videos correspondientes a los 4 blancos que elabora el imitador ........................................................................................................ 31 3.3. Bloque “SIM_Target” ............................................................................................ 35. 3.4. Bloque de diseño esquemático Target_sim ............................................................ 36. 3.5. Bloque Simdata_clk_guide .................................................................................... 40. CONCLUSIONES Y RECOMENDACIONES ................................................................... 42 REFERENCIAS BIBLIOGRÁFICAS ................................................................................. 44 ANEXOS .............................................................................................................................. 46 Anexo I Anexo II. Indicador saturado por interferencia ............................................................... 46 Esquema funcional de la Estación de Conducción de Artículos (ECC) ..... 47. Anexo III Exploración de la antena UV11 ....................................................................... 48 Anexo IV Conector Xp2 de la tarjeta 222 ........................................................................ 49.

(12) INTRODUCCIÓN. 1. INTRODUCCIÓN. Las Fuerzas Armadas Revolucionarias (FAR) se encuentra inmersa en un proceso de modernización y actualización de la técnica de combate con que cuenta, a su vez la Defensa Antiaérea y la Fuerza Aérea Revolucionaria (DAAFAR) desarrollan la renovación de sus viejos equipos de combate para alargar sus vidas operativas reduciendo así el costo que presupone la compra de equipos modernos. Los dispositivos obtenidos dentro de este proceso de remodelación carecen de documentación que permita la asimilación de todas las posibilidades que brindan los mismos para su explotación. Este es el caso de los diferentes subsistemas electrónicos que componen la Estación de Conducción de Artículos (ECC) S125MIA. La ECC se destina para la búsqueda, seguimiento y aniquilamiento de los objetivos aéreos, en los rangos de bajas y medias alturas, tanto de día como de noche y excepcionalmente de los objetivos navales y terrestres, en los regímenes de Radiolocalización o Televisión. Está compuesta por la cabina de dirección y el puesto de antenas. Entre los dispositivos que componen la cabina de dirección se encuentra el bloque de imitación y control conocido como tarjeta funcional T222. La T222 forma las señales de video imitadas correspondiente al objetivo, a los artículos y a la interferencia. La programación de esta tarjeta, es descrita tanto en VHDL como en AHDL y en general carece de documentación acerca de las funciones de los diferentes bloques descritos. Además es implementada con electrónica programada, emplea como dispositivo programable los FPGA (Arreglos de Compuertas Lógicas Programables). Estos surgen como una evolución de los CPLD (Dispositivos Lógicos Programables Complejos) y son cada vez más usados en la industria electrónica debido a su posibilidad de.

(13) INTRODUCCIÓN. 2. reconfiguración, lo cual minimiza la necesidad de realizar modificaciones de hardware durante actualizaciones tecnológicas a un diseño y a su capacidad para ejecutar operaciones de forma paralela.(Bozich 2005) Aprovechando la oportunidad de tener los códigos fuentes que se encuentran en los componentes programables de las tarjetas electrónicas, que fueron denominadas por los fabricantes y conociendo además, algunas de las señales de entrada presentes en sus conectores, es posible, mediante la ingeniería inversa al hardware programado, obtener la funcionalidad de dichas tarjetas.(Pierrat 2013.a) Realizar la ingeniería inversa al subsistema T222 de la ECC a través del análisis de su funcionamiento permitirá obtener la documentación general necesaria para el manejo de la misma en la defensa de la nación. La ingeniería inversa es el proceso mediante el cual una tecnología o producto es desarmado, con el fin de conocer los componentes que lo integran y la forma en que éstos interactúan, para lograr finalmente una comprensión cabal de su modo de funcionamiento, con el objetivo probable de construir una tecnología similar.(López 2010) Una forma de solución común para la actualización y renovación de las diferentes tarjetas dentro del funcionamiento de la estación, es la ejecución de nuevos algoritmos a partir de la experiencia y el conocimiento que se tiene sobre el funcionamiento de la estación dada. Se conoce por la experiencia obtenida de los especialistas extranjeros que implementaron el sistema, que un proceso de este tipo requiere de un personal calificado en la teoría de funcionamiento de dicha estación y que además tenga suficiente preparación en los temas de electrónica, digital y programada. Un grupo de este personal se tomaría un tiempo entre doce y quince años para evaluar las partes de la estación analógica que se convertirían en procesos digitales, realizar la conversión funcional teórica de integradores, discriminadores, esquemas de análisis, filtros de seguimiento, sistemas a lazo cerrado; diseñar los algoritmos de trabajo de la estación por partes o sistemas independientes, simularlos y compatibilizarlos entre sí, programarlos para diversos componentes, diseñar los esquemas electrónicos y las tarjetas de circuitos impresos, realizar el montaje de las placas, la puesta a punto y las pruebas, la programación de los componentes, el cableado entre placas y.

(14) INTRODUCCIÓN. 3. concluir con las pruebas funcionales a la nueva estación que estaría surgiendo a partir de este proceso.(Pierrat 2013.a) El presente trabajo se enfoca solamente en el análisis del código fuente de la tarjeta T222. Por las razones expuestas se declara como situación problémica: la existencia de los códigos fuentes que están en los componentes programables de las tarjetas, de los cuales aún no se ha logrado obtener su funcionalidad. Teniendo en cuenta lo anterior, en este trabajo se plantea el siguiente problema de investigación: ¿Qué hacer para obtener la funcionalidad de la tarjeta T222 a partir del código fuente que se encuentra en el componente programable FPGA EP1C12Q240I7N para su futura modificación y desarrollo en la DAAFAR? La investigación tiene como objeto de estudio: El código fuente del componente programable FPGA EP1C12Q240I7N de la tarjeta T222 y el objetivo general que se propone es: Obtener por ingeniería inversa la funcionalidad del código de la T222 para su futura modificación y desarrollo en la DAAFAR. Luego de conocer los objetivos generales podemos derivar de ellos los objetivos específicos necesarios para cumplir satisfactoriamente los propósitos investigativos. Estos son: 1. Describir el funcionamiento de la tarjeta T222 dentro de la ECC, especificando el trabajo imitado dentro de este sistema. 2. Caracterizar los FPGA y la sintaxis de los Lenguajes de Descripción de Hardware empleados en la programación del componente programable FPGA EP1C12Q240. 3. Describir los procedimientos para realizar la ingeniería inversa de sistemas programados en FPGA. 4. Caracterizar la herramienta de simulación Quartus II para emplearla en la ingeniería inversa. 5. Obtener el algoritmo de funcionamiento de la tarjeta T222, relacionado con las señales de salida a partir del empleo de las señales de entrada, existente en cada uno de los bloques que conforman la señal del blanco imitado..

(15) INTRODUCCIÓN. 4. Para cumplir los objetivos específicos planteados anteriormente es necesario dar respuesta a las siguientes interrogantes científicas: 1. ¿En qué contexto se desarrolla el funcionamiento de la T222 dentro del sistema general de la Estación de Conducción de Artículos (ECC) S125MIA? 2. ¿Qué características poseen la tarjeta T222 y la FPGA de la familia Cyclone I de Altera? 3. ¿Qué características poseerán los Lenguajes de Descripción de Hardware utilizados en la programación de la FPGA? 4. ¿Qué procedimientos de ingeniería inversa utilizar para obtener la funcionalidad del código fuente de la tarjeta T222? 5. ¿Qué ventajas presenta la herramienta Quartus II para la obtención de la funcionalidad de la T222? 6. ¿Cómo obtener el funcionamiento de la T222, a partir del análisis de su esquema electrónico y su código fuente? Con la realización de este Trabajo de Diploma se pretende contribuir al análisis general del dispositivo, así como conocer el funcionamiento del componente programable FPGA EP1C12Q240I7N de la T222. Para satisfacer los objetivos planteados el trabajo se dividió en: introducción, tres capítulos, conclusiones, recomendaciones, referencias bibliográficas y anexos. En el primer capítulo se describen las principales características del “Complejo Pechora” y las funciones que realiza este para la defensa de nuestro país, y las funciones que realiza la T222 dentro de dicho complejo actuando como imitador de las señales de video. Se dan a conocer las principales características de los FPGAs, dispositivos utilizados en dicha tarjeta, junto a la familia Cyclone I de Altera. Además se demuestran las principales características de la herramienta Quartus II, empleada en el proceso de ingeniería inversa. En el segundo capítulo se aborda en que consiste el proceso de ingeniería inversa, así como sus principales características y las herramientas empleadas durante este proceso. También se presentan los lenguajes de descripción de hardware usados en la programación de FPGA,.

(16) INTRODUCCIÓN. 5. haciendo énfasis en las características y estructuras que contienen los mismos en la programación del FPGA EP1C12Q240I7N perteneciente a la T222.. En el tercer capítulo se caracterizan las señales de entrada y salida de la T222, dentro de una breve descripción del proyecto de esta tarjeta. Además del análisis que se realiza a diferentes bloques relacionados con la señal del blanco imitado, dentro de la funcionalidad del código fuente programado en el FPGA perteneciente a dicha tarjeta..

(17) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 6 con la T222. CAPITULO I: Características generales del subsistema electrónico de la ECC y su interrelación con la T222. En el presente capítulo se hará una breve descripción sobre la importancia que tiene el complejo Pechora para la defensa de nuestro país, el cual se destina para la búsqueda, seguimiento y aniquilamiento de los objetivos aéreos, navales y terrestres. Además de las funciones que realiza la T222 dentro de esta estación. Se dan a conocer las principales características de los FPGAs y de la familia Cyclone I de Altera. También se hace una caracterización de la herramienta de simulación Quartus II, que además de todas las ventajas que presenta, permite evaluar la viabilidad y el desempeño de los sistemas implementados, lo más rápido y eficiente posible. 1.1.. El Complejo Pechora en la defensa del país. Por lo anterior planteado la ECC se destina para la búsqueda, seguimiento y aniquilamiento de los objetivos aéreos, en los rangos de bajas y medias alturas, tanto de día como de noche y excepcionalmente de los objetivos navales y terrestres, en los regímenes de Radiolocalización o Televisión. Está compuesta por la cabina de dirección y el puesto de antenas. Entre los dispositivos que componen la cabina de dirección se encuentra el bloque de imitación y control conocido como tarjeta funcional T222.(Pierrat 2013.a) La ECC posee dos canales de trabajo: Radiolocalización y Televisión. En el canal de Radiolocalización posee dos regímenes de exploración del espacio aéreo: Localización (LOC) y Acompañamiento (ACOMP), siendo el último el que se emplea para el tiro. Para una buena realización del tiro, el régimen de ACOMP permite:  Actuar contra objetivos de pequeña SER (Superficie Efectiva de Reflexión).  Actuar contra objetivos de grandes dimensiones.  Actuar contra objetivos en grupo.  Actuar contra objetivos del tipo ADA (Aerostatos Automáticos a la Deriva).  Actuar contra objetivos portadores de interferencias activas y pasivas..

(18) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 7 con la T222. Cuando se lleva a cabo el funcionamiento de la ECC se le aplica una alimentación de 220 V 50Hz y 200 V 400Hz, poniendo en práctica los diferentes dispositivos, equipos y sistemas que la componen, mediante la conexión “a distancia”, dirigida y efectuada desde la cabina de dirección (Cabina UNK) cuando se conecta para el combate. Se puede observar como desde la cabina de dirección, el operador de conducción, gira las manivelas (volantes) por los planos de azimut (plano β) y ángulo de elevación (plano ξ) del armario 3, provocando que a través del SUPA (esta sigla es la pronunciación de las siglas en ruso CYПA) este giro sea transmitido al puesto de antenas, para que las antenas se orienten hacia la posición angular en la que se encuentra el objetivo. En este proceso intervienen varias tarjetas entre las que encontramos la T121,. T122, T123, T124, T125, T126 y el bloque. UK61.(Pierrat 2013.a) Al llegar las señales correctamente al DDC se puede ver como a la salida de estos bloques se obtienen impulsos representativos del centro energético de la señal y por tanto la posición por distancia y ángulo del objetivo y del artículo. Donde los impulsos del objetivo y del artículo se aplican al DEM, obteniéndose el error angular entre objetivo y artículo, y a partir de este error se van a elaborar los mandos de dirección. A la salida del DEM se obtienen los mandos de dirección K1, K2, y los mandos únicos K3, K4, K5 y K6. Los mandos K1 y K2, contienen las magnitudes y el sentido en que debe moverse el artículo en el espacio para disminuir el error lineal entre su posición calculada y la real. Los mandos únicos K3, están destinados para el accionamiento a distancia de la radioespoleta o explosión de la carga combativa del artículo. Los mandos K4 están destinados para elevar la trayectoria del artículo una vez que éste haya rebasado el punto de encuentro. El mando K5 se emplea para el tiro contra objetivos de superficie y el mando K6 para el tiro al alcance. Estos mandos se envían al dispositivo cifrador del DTM (T811). De la parte de alta frecuencia del DTM se toma una muestra en video de los mandos que se envía hacia el artículo, la cual se envía al dispositivo descifrador (T224) en el cual se modulan y decodifican los mandos obteniendo estos en sus magnitudes originales para dirigir el artículo imitado que se forma en el dispositivo imitador (T222). La señal imitada del artículo se envía en.

(19) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 8 con la T222. video a la T311 con el objetivo de introducirla en el canal receptor. Esto permite realizar el control de funcionamiento evaluando la dirección del artículo hacia el blanco en los monitores. Se puede apreciar como la dinámica de funcionamiento de la ECC comienza cuando hay un objetivo violador del espacio aéreo, que es localizado por alguno de los radares de la guardia combativa. A partir de esto el puesto de mando de la unidad superior (PM) designa el grupo que debe derribarlo y ordena localizarlo y destruirlo. Una vez transmitidas las coordenadas del objetivo la unidad pasa a “Posición 1”, momento en el cual se conectan la ECC y las ERL. Para lograr así una alta efectividad del fuego contra los medios de agresión del enemigo. 1.2.. Funciones de la tarjeta T222 dentro de la ECC. Entre las diferentes funciones que realiza la T222, se puede apreciar como esta tarjeta debe formar el objetivo y los artículos que se emplean para el control funcional de la ECC; además, en el caso de los entrenamientos a las dotaciones, en esta tarjeta deben formarse las señales de objetivos imitados, la señal de interferencia y también los artículos imitados para simular un tiro real. Para así también realizar el cálculo de la posición espacial de los artículos imitados, a partir de los mandos que se le envían a un supuesto artículo real en vuelo, para que la trayectoria del artículo imitado sea la misma que tomaría el artículo real con dichos mandos.(Pierrat 2013.b) Como se dijo anteriormente, la T222 es la que forma las señales de video imitadas correspondiente al objetivo, a los artículos y a la interferencia. Donde estas señales son enviadas a la T311 en la cual se convierten en señales de FI (solo el objetivo y la interferencia porque el receptor del artículo es de video) y se les introduce mayor o menor atenuación para el envío posterior a las tarjetas del receptor (T312, T313 y T314). Dentro del desempeño que realiza la T222 en el funcionamiento de la ECC, se encuentra la conexión que tiene con otras tarjetas, donde se observa que los mandos de dirección que llegan a dicha tarjeta para su conversión en coordenadas espaciales relativas al sector de exploración de las antenas, son elaborados en el descifrador (T224).. La conversión de los mandos en. coordenadas espaciales se realiza en el DSP de la T222 y con dichas coordenadas debe cambiar la.

(20) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 9 con la T222. posición de los artículos que se forman en el FPGA de la misma. Las señales de los artículos que se forman en la T222 se envían como señales de video a la T311 en la cual se les introduce mayor o menor atenuación para el envío posterior a la T314 (receptor). A la entrada de la T222 también llegan señales de sincronización y señales de datos por el bus serie. Además como señales de sincronismo llegan los impulsos relacionados con la exploración de las antenas y los relacionados con el período de repetición del sondeo del transmisor. Consecuentemente como señales de datos serie le llegan las señales denominadas SB1, SB6, SB8 y B14. Siendo la salida de esta tarjeta las señales SB11 y SB16.(Pierrat 2013.b) A continuación se muestra en la figura1.1 y en la figura1.2, la imagen y el esquema modernizado de la T222 respectivamente:. Figura1.1 Imagen de la T222.(Pierrat 2013.b) En esta imagen se observa que la T222 se encuentra compuesta por dos componentes programables: un FPGA del tipo CYCLONE I (EP1C12Q240I7N) y un DSP del tipo TMS320C6713PYPA. En cada uno de estos componentes está programado el hardware y.

(21) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 10 con la T222. los algoritmos que permiten realizar las funciones del sistema. Así mismo hay otros componentes que no están programados y que se encargan de la parte analógica y de las entradas y salida; entre estos componentes se encuentran los conversores A/D y D/A, memorias, amplificadores, etc.. Figura1.2 Esquema modernizado de la T222. En la ECC sin modernizar (el original ruso), el sistema entrenador o imitador se encuentra implementado en un armario; el armario UK40. Quien recibe señales desde el SUPA, para obtener la información de la posición que tienen las antenas y elaborar las señales del objetivo y de los artículos relacionadas con el movimiento de las manivelas. Además el UK40 recibe los.

(22) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 11 con la T222. mandos de dirección desde el Descifrador del DTM, con los cuales se elaboran las trayectorias de vuelo de los artículos. Para formar las señales con el objetivo de entrenar a las dotaciones, el imitador tiene relación con otros sistemas de la estación. En la figura 1.3 se ofrece un esquema funcional simplificado de la ECC, en la cual se muestra la relación con el Imitador.(Pierrat 2013.c). Figura 1.3 Esquema funcional para el entrenamiento..

(23) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 12 con la T222. Las tareas principales que cumple el Imitador son dos: 1. Elaborar las envolventes de video de los objetivos imitados y convertirlas en radio principal y por el canal antifeeding. Además de, elaborar las envolventes de video de los artículos imitados para entregárselas a los amplificadores de video de los receptores por el canal del artículo. 2. Elaborar la posición de los objetivos imitados, en cada momento de tiempo, para imitar la trayectoria de su vuelo. Además, elaborar la posición de los artículos imitados, en cada momento de tiempo, para imitar la trayectoria de su vuelo. Específicamente para la asimilación de la T222, que debe formar las señales imitadas y mostrarlas en los monitores de la misma manera en que se muestran las señales reales, es crucial conocer al detalle el proceso de exploración del espacio en régimen de acompañamiento. 1.3.. Principales características de los FPGA. Los FPGA por sus siglas en inglés (Fiel Programable Gate Array) son dispositivos que en español significa Arreglos de Puertas Programables en el Campo, no son más que circuitos integrados que contienen bloques configurables de lógica junto con conexiones configurables entre esos bloques. Pueden ser programados, es decir, los puede programar el que los desarrolla en su laboratorio, ya que un dispositivo puede ser programado mientras está residente, o embebido en un sistema mayor, por lo que se dice que es un ISP(impulso específico), un parámetro de los motores cohete.(Borensztejn 2012). El FPGA es un dispositivo de fácil programación mediante Lenguajes de Descripción de Hardware (HDL), se permite la programación concurrente y su principal ventaja es que puede programarse múltiples veces bajando los costos cuando en el diseño se encuentran fallos y se requiera que sea reprogramado.(Castillo A 2008) Podemos decir que el nombre Gate Array dado al FPGA proviene de un tipo de tecnología de fabricación de los ASIC, los cuales son diseñados para implementar una función lógica particular ganándole en rapidez a los FPGA siendo manufacturados en gran escala debido a que son más.

(24) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 13 con la T222. baratos y consumen menos. Según los términos que caracterizan al FPGA se le puede considerar también como una lógica programable organizada de alguna manera dentro de un chip, donde marcaría un gran uso en diferentes etapas.(Borensztejn 2012) Según la arquitectura general de un FPGA se podría decir que este consiste en arreglos de varios bloques programables (bloques lógicos) los cuales están interconectados entre sí a través de canales verticales y horizontales, y cuenta además con bloques de entrada/salida. (Figura 1.4).. Figura 1.4 Arquitectura básica de un FPGA .(Bozich 2005) Haciendo una breve descripción sobre los bloques de entrada/salida, que son una de las partes que componen la arquitectura general de un FPGA. Diríamos que la función de un bloque de entrada/salida es permitir el paso de una señal hacia dentro o hacia el exterior del dispositivo. Además debe contar con recursos tales como.(Bozich 2005): -STATE u open-collector. ilidad de pull-up o pull-down programables.. Registros de entrada fabricantes de los FPGA..

(25) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 14 con la T222. Se llegaría al acuerdo de que, no todas las FPGA son iguales, porque dependiendo del fabricante se podrían encontrar con diferentes soluciones. Esto es debido a que las FPGAs que existen en la actualidad en el mercado, se pueden clasificar como pertenecientes a cuatro grandes familias, dependiendo de la estructura que adoptarían los bloques lógicos que tengan definidos. Las familias son:  Matriz simétrica, que es el caso de las de XILINX.  Basada en canales, ACTEL.  Mar de puertas, ORCA.  PLD jerárquica, ALTERA o CPLDs de XILINX. En el caso de la cuarta familia (CPLDs), se puede decir que un CPLD (Complex Programable Logic Device) extiende el concepto de un PLD a un nivel de integración superior; esto es, se dispone de mayor número de puertas y de entradas/salidas en un circuito programable (con lo que se disminuye el tamaño del diseño, el consumo y el precio). En vez de hacer estos circuitos con mayor número de términos producto por macrocelda, o de mayor número de entradas/salidas, cada CPLD contiene bloques lógicos, cada uno de ellos similar a una estructura PAL o GAL. Estos bloques lógicos se comunican entre sí utilizando una matriz programable de interconexiones lo cual hace más eficiente el uso del silicio, conduciendo a un mejor desempeño y un menor costo. La figura 1.5 muestra de manera detallada un modelo genérico de un CPLD..

(26) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 15 con la T222. Figura1.5 Arquitectura básica de un CPLD.(Bozich 2005) 1.3.1. Aplicaciones de los FPGAs. Cualquier circuito de aplicación específica puede ser implementado en un FPGA, siempre y cuando este disponga de los recursos necesarios. Las aplicaciones donde más comúnmente se utilizan los FPGA incluyen a los DSP (procesamiento digital de señales), radio definido por software, sistemas aeroespaciales y de defensa, prototipos de ASICs, sistemas de imágenes para medicina, sistemas de visión para computadoras, reconocimiento de voz, bioinformática, emulación de hardware de computadora, entre otras. Se puede señalar que su uso en otras áreas es cada vez mayor, sobre todo en aquellas aplicaciones que requieren un alto grado de paralelismo. 1.4.. La familia Cyclone I de Altera. Como complemento de los dispositivos de Ciclón, Altera permite ofrecer dispositivos de configuración de serie de flash, especializado con los precios para aplicaciones de volumen a menos del 10 por ciento del dispositivo de ciclón correspondiente. De gran compatibilidad con la familia de dispositivos Ciclón se tiene la versión 3.0 del Nios con procesador incorporado. El procesador Nios toma ventaja de multi-master switch fabric Avalon,.

(27) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 16 con la T222. simultánea de Altera, e incluye la instrucción personalizada, capacidades y soluciones avanzadas de depuración. Por un precio tan bajo como $ 2 para la lógica necesaria a la hora de integrar un procesador Nios y sus periféricos en el dispositivo de Ciclón más pequeño, los diseñadores podrían llegar a tener unos 32 bits, 50 Dhrystone MIPS RISC procesador que es menos costoso que la mayoría de los microprocesadores o micro controladores independientes. Los FPGAs presentan características dentro de la familia Cyclone I de Altera entre las que se encuentran:  Las densidades van desde 2910 a 20060 Les y disponen de hasta 288-Kbits de memoria integrada.  Los dispositivos de Ciclón se basan en un proceso de SRAM 1.5-V de todas las capas de cobre, optimizado para la máxima capacidad de la lógica en el costo más bajo.  Con hasta dos bucles fase-lock (PLL) por dispositivo y una estructura jerárquica de reloj, oferta Ciclón FPGA un extenso circuito de administración de reloj on-y off-chip para diseños complejos.  Cada dispositivo de Ciclón está integrado con circuitería dedicada para la interfaz con alto rendimiento de datos única externa tasa (SDR) SDRAM y doble velocidad de datos (DDR) SDRAM y dispositivos de memoria FCRAM.  Dispositivos Cyclone soporta una variedad de estándares de E/S de una sola terminal como LVTTL, LVCMOS, PCI, y SSTL-2/3, y puede tener hasta 129 canales de interfaces de E/S compatibles LVDS, cada uno capaz de funcionar a 311 Mbps. (CORPORATION 2010) 1.5. Caracterización de la herramienta de simulación Quartus II Las herramientas de simulación y modelado de alto nivel permiten mejorar y optimizar los tiempos de desarrollo e implementación de las aplicaciones. Así mismo, poseen funciones predefinidas en bibliotecas propias del software para facilitar y agilizar el trabajo del diseñador, y módulos con dispositivos reales del mercado para semejar todo lo posible el trabajo real de los dispositivos.(Medina 2013).

(28) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 17 con la T222. Quartus II es una herramienta de software producido por Altera para el análisis y la síntesis de los diseños en HDL. Ella permite al desarrollador compilar los diseños, realizar análisis temporales, examinar diagramas RTL (Registro de transferencia lógico) y configurar el dispositivo de destino con el programador.(CORPORATION 2010) Con el programa de diseño Quartus II los diseñadores pueden usar los dispositivos HardCopyStratix de manera que puede prever y verificar su rendimiento, el cual resulta en promedio un 50 por ciento más rápido que su FPGA equivalente. Además, en el flujo de diseño del HardCopyStratix, Quartus II incluye una serie de utilidades que reducen el tiempo de diseño. Como contraste adicional, se tiene el bajo precio del Quartus II en comparación con otras herramientas de diseño de ASIC.(CORPORATION 2010) El software Quartus II de Altera proporciona un entorno de desarrollo para el diseño de arreglos de compuertas programables en campo, o FPGAs. Se podría utilizar para crear la lógica para el diseño y probar la funcionalidad del circuito. Estos circuitos juegan un papel importante en el campo de la ingeniería informática y son el primer paso en el diseño de un sistema digital. Quartus II ofrece simulaciones tanto de la funcionalidad del diseño y el tiempo de la simulación para ayudar a asegurar la exactitud del circuito. Siendo una herramienta de software producida por Altera para el análisis y la síntesis de diseños realizados en HDL (Hardware Description Language).(CORPORATION 2010) Este software brinda un ambiente de diseño multiplataforma que se adapta con facilidad a las necesidades del diseñador, brindando grandes facilidades en el diseño de sistemas SOPC (system-on-a-programable-chip). Quartus II incluye soluciones para cada una de las fases de diseño de FPGAs, CPLDs. (Figura 1.6).

(29) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 18 con la T222. Figura 1.6 Flujo de diseño del Quartus II.(CORPORATION 2010) Además, Quartus II permite el uso de interfaces gráficas de usuario (GUI) e interfaces de líneas de comando para cada una de las etapas de diseño. Las mismas pueden ser utilizadas indistintamente, sin restricción de tipo alguno. La figura 1.7 muestra las etapas del proceso de diseño de este software en la plataforma ALTERA..

(30) Capítulo I: Características generales del subsistema electrónico de la ECC y su interrelación 19 con la T222. Figura 1.7 Etapas del proceso se diseñó en la plataforma ALTERA.(Altera 2013b) Entre las diferentes etapas que brindan grandes ventajas se tiene el compilador que es capaz de recibir como entrada tantos archivos con la descripción del sistema (VHDL, VERILOG o AHDL), como archivos con circuitos esquemáticos. Puede ejecutar simulaciones, usando como archivo de entrada uno creado por el editor de formas de onda.(Altera 2013b).

(31) CAPÍTULO 2. Propuesta. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 20. CAPITULO II: Propuesta de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables En el capítulo se podrá apreciar la definición con la cual ha sido definida la ingeniería inversa de software, así como las principales características que esta presenta. Se analiza con gran precisión los lenguajes de descripción de hardware usados en la programación de FPGA. Además de las principales estructuras de los lenguajes VHDL y AHDL en la descripción de subsistemas típicos combinacionales y secuenciales. 2.1. Definición de ingeniería inversa de software. La ingeniería inversa de software se conoce como la actividad que se ocupa de descubrir cómo funciona un programa, función o característica de cuyo código fuente no se dispone, hasta el punto de poder modificar ese código o generar código propio que cumpla las mismas funciones. Gran parte del software de pago incluye en su licencia una prohibición expresa de aplicar ingeniería inversa a su código, con el intento de evitar que se pueda modificar su código y que así los usuarios tengan que pagar si quieren usarlo. También se puede definir la ingeniería inversa como. el proceso de construir. especificaciones de un mayor nivel de abstracción partiendo del código fuente de un sistema software o cualquier otro producto (se puede utilizar como punto de partida cualquier otro elemento de diseño).(Morena 2009) Como concepto el término de ingeniería inversa se usa para obtener información o un diseño, a partir de un producto accesible al público, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado.(Morena 2009) Por lo anterior expuesto se llega a la conclusión de que los sistemas de software evolucionan con el tiempo y la actividad de mantenimiento se realiza para cumplir con los requisitos del usuario. Así como las actividades de ingeniería inversa, que presentan los objetos del sistema en los niveles más altos de abstracción y estos objetos que existen en diferentes niveles de inversa abstracciones de ingeniería (dominio funcional, estructural y la aplicación). Es por eso que los ingenieros de software tienen los recursos, y el tiempo obliga a recuperar los elementos de las tareas de mantenimiento..

(32) CAPÍTULO 2. Propuesta. 2.2. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 21. Características generales de la ingeniería inversa. La ingeniería inversa tiene la finalidad de desentrañar los misterios y secretos de los sistemas en uso a partir del código. Para ello, se emplean una serie de herramientas que extraen información de los datos, procedimientos y arquitectura del sistema existente. Entre este conjunto de herramientas apreciaríamos el uso de la herramienta CASE (ComputerAided Systems Engineering), que. se utilizan para analizar la semántica del código. existente.(Morena 2009) La ingeniería inversa de software es un proceso que consiste en analizar un programa, en un esfuerzo por crear una representación del mismo con un nivel de abstracción más elevado que el código fuente. Según va aumentando la complejidad del trabajo crece la necesidad de comprensión de la aplicación. La misma debe ser capaz de extraer, a partir del código fuente, información significativa del procesamiento que se realiza y las estructuras de datos que se usan en el programa.(Martínez 2012) Las herramientas que son utilizadas durante este proceso de ingeniería inversa son las encargadas de extraer información de los datos, procedimientos y arquitectura del sistema existente. Por lo que son utilizadas en sistemas con las siguientes características:  Documentación inexistente o totalmente obsoleta.  Programación en bloque de códigos muy grandes y/o sin estructurar.  Inexistencia de documentación interna en los programas, o bien ésta es incomprensible o está desfasada.  La aplicación cubre gran parte de los requisitos y del rendimiento esperado.  La aplicación está sujeta a cambios frecuentes, que pueden afectar a parte del diseño.  Se prevé que la aplicación pueda tener aún larga vida. Debido a que no hay un documento que especifique como es exactamente un proceso de ingeniería inversa, cada ingeniero de software que desea realizar un proceso de este tipo propone su propia metodología. El instituto de ingeniería de software propone un marco de trabajo para llevar a cabo un proceso de ingeniería inversa. En la siguiente figura se muestra el proceso ingeniería inversa.(FOWLER 2004).

(33) CAPÍTULO 2. Propuesta. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 22. Figura 2.1 Proceso de ingeniería inversa. El nivel de abstracción de un proceso de ingeniería inversa y las herramientas que se utilizan para realizarlo aluden a la sofisticación de la información de diseño que se puede extraer del código fuente. A medida que crece el nivel de abstracción se proporciona al ingeniero de software información que le permitirá comprender más fácilmente estos programas.(Pressman 2003).

(34) CAPÍTULO 2. Propuesta. 2.3. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 23. Lenguajes de descripción de hardware usados en la programación de FPGA. Debido a la gran necesidad de integrar un mayor número de dispositivos en un solo circuito integrado, se desarrollaron nuevas herramientas de diseño que auxilian al ingeniero a integrar sistemas de mayor complejidad. Esto permitió que en la década de los cincuenta aparecieran los Lenguajes de Descripción de Hardware (HDL) como una opción de diseño para el desarrollo de sistemas electrónicos elaborados. Los cuales vienen utilizándose, desde los años 70, en los ciclos de diseño de sistemas digitales asistidos por herramientas de CAD electrónico.(Scalvinoni 2005) Cuando se utiliza HDL para modelar un sistema, se está modelando hardware, y no escribiendo software. El software se caracteriza por ser secuencial, es decir los efectos de una instrucción dependen exclusivamente de los efectos de las instrucciones anteriores. En el hardware, sin embargo, hay muchas tareas que suceden de manera concurrente y paralela, o sea, muchos parámetros y señales cambian al mismo tiempo, es decir, la variable tiempo predomina.(Güichal 2005) Los HDL permiten modelos de tiempos síncronos y asíncronos y posibilita la implementación de distintas técnicas de modelado digital como descripciones de máquinas de estados finitos (FSM), descripciones algorítmicas y ecuaciones booleanas. También permite jerarquía, pues un sistema digital puede ser modelado como un conjunto de componentes interconectados y a su vez cada componente puede ser modelado como un conjunto de subcomponentes.(Scalvinoni 2005) Los lenguajes (HDL) posibilita modelar los sistemas digitales completos mediante diferentes herramientas de software estos modelos pueden luego sintetizarse para implementarlos como circuitos reales. El trabajo con el HDL para sintetizar sistemas digitales y la utilización de PLD permiten crear prototipos funcionales en plazos relativamente cortos. Esto hace que todo el proceso de desarrollo de un sistema digital sea mucho. más. simple. y. rápido. en. comparación. con. metodologías. clásicas.. (AGUASCALIENTES 2012) Existen actualmente diferentes lenguajes de HDL, entre los que se encuentran(Noriega 2008):.

(35) CAPÍTULO 2. Propuesta. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 24. • VHDL: Es el acrónimo que representa la combinación de VHSIC (Very High Speed Integrated Circuit, Circuitos Integrados de muy Alta Velocidad) y HDL. Es un lenguaje textual de alto nivel de complejidad, utilizado para la descripción del hardware de sistemas digitales. • Verilog: Algunas veces llamado Verilog HDL, soporta el diseño, prueba e implementación de circuitos analógicos, digitales y de señal mixta. Es considerado un lenguaje de alto nivel de complejidad. A continuación en la figura 2.3 se muestra una descripción de este tipo de lenguaje VHDL.. Figura 2.2 Descripción Verilog. • AHDL: Es el acrónimo de Altera Hardware Description Language, posee un nivel medio de complejidad, desarrollado por la compañía Altera. 2.4. Principales estructuras del lenguaje VHDL en la descripción de subsistemas. típicos combinacionales y secuenciales El lenguaje VHDL fue creado con el propósito de especificar y documentar circuitos y sistemas digitales utilizando un lenguaje formal. En la práctica se ha convertido, en un gran número de entornos de CAD, y en el HDL de referencia para realizar modelos sintetizables automáticamente. A continuación se presentan sus principales características, explicadas en los siguientes puntos (Ligadas a las ventajas que presenta este lenguaje):.

(36) CAPÍTULO 2. Propuesta. . de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 25. Descripción textual normalizada: VHDL es un lenguaje de descripción que. especifica los circuitos electrónicos en un formato adecuado para ser interpretado tanto por máquinas como por personas. Se trata además de un lenguaje formal, es decir, no resulta ambiguo a la hora de expresar el comportamiento o representar la estructura de un circuito. Se encuentra normalizado, o sea, existe un único modelo para el lenguaje, cuya utilización está abierta a cualquier grupo que quiera desarrollar herramientas basadas en dicho modelo, garantizando su compatibilidad con cualquier otra herramienta que respete las indicaciones especificadas en la norma oficial. Es además un lenguaje ejecutable, lo que permite que la descripción textual del hardware se materialice en una representación del mismo utilizable por herramientas auxiliares tales como simuladores y sintetizadores lógicos, compiladores de silicio, simuladores de tiempo, de cobertura de fallos, herramientas de diseño físico, etc. . Amplio rango de capacidad descriptiva: VHDL posibilita la descripción del. hardware con distintos niveles de abstracción, pudiendo adaptarse a distintos propósitos y utilizarse en las sucesivas fases que se dan en el desarrollo de los diseños. Puede ser adaptable a distintas metodologías de diseño y es independiente de la tecnología, permitiendo, en el primer caso, cubrir el tipo de necesidades de los distintos géneros de instituciones, compañías y organizaciones relacionadas con el mundo de la electrónica digital, y en el segundo, facilita la actualización y adaptación de los diseños a los avances de la tecnología en cada momento. . Otras ventajas: Además de las ventajas ya expuestas anteriormente también se. puede destacar la capacidad del lenguaje para el manejo de proyectos de grandes dimensiones, las garantías que comporta su uso cuando, durante el ciclo de mantenimiento del proyecto, hay que sustituir componentes o realizar modificaciones en los circuitos, y el hecho de que, para muchas organizaciones contratantes, sea parte indispensable de la documentación, los lenguajes de especificación hardware como VHDL están orientados al modelado de las características lógicas y dinámicas del hardware. El modelado de un dispositivo “simple” (uno que no está compuesto por dos o más conectados entre sí); los dispositivos “complejos” pueden describirse mediante la conexión de otros, con un lenguaje de descripción de hardware que consiste en la descripción de su interfaz y su comportamiento, incluyendo características dinámicas haciendo uso de las construcciones de que disponga el lenguaje y respetando las reglas que se impongan.(Rubio 2010).

(37) CAPÍTULO 2. Propuesta. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 26. En los circuitos combinacionales las señales en VHDL tienen un estado actual y un estado futuro, teniendo como ventaja la manera de simplificar la creación de elementos de memoria, y como desventaja permite que puedan generarse latches no deseados cuando todas las opciones de una sentencia condicial no están especificadas.(González 2006) 2.5. Principales estructuras del lenguaje AHDL en la descripción de subsistemas. típicos combinacionales y secuenciales AHDL (Lenguaje de Descripción de Hardware de Altera) es un lenguaje de descripción de hardware (HDL) propietario de Altera Corporation para la programación de CPLDs (Dispositivos Complejos de Lógica Programable) y FPGAs (Field Programmable Gate Arrays o Campo de Matrices de Puertas Programables). Compilado con el Quartus de Altera y la serie de compiladores Max+. Este lenguaje tiene una sintaxis parecida al lenguaje de programación C y una funcionalidad similar a VHDL. Posibilita la descripción del hardware a través de su comportamiento (behavior), en lugar de hacerlo a través de un circuito. Utiliza ecuaciones lógicas, variables, constantes, funciones, operadores aritméticos, tablas de verdad, y expresiones condicionales, en forma similar a la de un lenguaje de software de alto nivel, además trabaja con un archivo de texto, de extensión (.tdf), el cual puede contener cualquier combinación de ecuaciones booleanas, tablas de verdad, máquinas de estado así como operaciones de grupo. Dicho lenguaje está especialmente orientado para definir máquinas de estado de gran complejidad y toda la descripción del comportamiento es resuelta en forma concurrente (Noriega 2008)..

(38) CAPÍTULO 2. Propuesta. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 27. El lenguaje AHDL es un lenguaje de alto nivel que permite describir las características de una red lógica, siendo orientado a la descripción de estructuras y el comportamiento del hardware. A través. de este. se pueden representar diagramas lógicos, expresiones. booleanas o circuitos digitales, además se puede realizar simulación y síntesis lógica.(CORPORATION 2013) Simulación lógica: representa la estructura y el comportamiento de un sistema digital empleando una computadora. Permite detectar errores sin necesidad de crear el circuito físico. Síntesis lógica: es el resultado de la simulación a bajo nivel, de la cual se obtiene una lista de los componentes del sistema, los pines de entradas/salidas así como las interconexiones existentes.. Entre las principales características de los AHDLs se encuentran:  Los identificadores y las palabras clave son case-sensitive.  Las expresiones terminan con un punto y coma.  Los bloques de comentarios empiezan y terminan con el símbolo porcentaje.. El AHDL presenta sus ventajas y desventajas: Ventajas:  Notación formal: permite su uso en cualquier diseño electrónico.  Disponibilidad pública.  Independencia tecnológica de diseño: soporta PLD, FPGA, ASIC, etc.  Independencia de la tecnología y proceso de fabricación: el lenguaje funciona igual en circuitos diseñados con tecnología MOS, bipolares, etc.  Independencia de los proveedores.  Reutilización de código.. Desventajas: Los principales problemas que presenta es que en algunas compañías le adicionan características al lenguaje, lo que aumenta su complejidad, además su diseño se ve afectado puesto que es realizado por un comité de expertos..

(39) CAPÍTULO 2. Propuesta. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 28. 2.5.1 Estructura del AHDL Un bloque AHDL se divide en tres secciones: 1. El subdiseño (subdesign) 2. Las variables (variable) 3. El cuerpo (body)  Subdesign En esta sección se declara el nombre del componente, que debe corresponder con el nombre que reciba el fichero. También se declaran todas las señales de entrada y salida que intervendrán en el programa, se pueden importar y exportar máquinas de estado y se asignan valores constantes de vcco gnda, entradas que no vayan a ser utilizadas en un nivel superior.  Variable Los componentes secuenciales son declarados en esta sección así como los registros, instancias de funciones, las máquinas de estado, los nodos, así como asignarle alias a máquinas de estado. Se trata de una sección opcional puesto que pueden existir aplicaciones que no necesiten de variables internas que intervengan en el diseño (las secciones subdesign y body no son opcionales).  Body En esta sección se define la lógica del componente. Se abre la sección con BEGIN y se cierra con END. Se compone de ecuaciones lógicas y de control, evalúa expresiones usando operadores y reglas de precedencia, dichas expresiones pueden ser lógicas y aritméticas.. Expresiones booleanas (palabras claves): NOT! NOT AND: &, AND OR: #, OR XOR: $, XOR.

(40) CAPÍTULO 2. Propuesta. de estrategia para realizar la ingeniería inversa en dispositivos VLSI digitales programables. 29. Tabla 2.1 Operadores lógicos en AHDL. Literales numéricos En AHDL se indica la base de los literales numéricos usados. Por defecto, los literales numéricos se interpretan en base decimal pero se puede indicar que la base es binaria o hexadecimal: Decimal: 60154 Hexadecimal: H”eafa” Binario: B”1110101011111010”.

(41) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 30. Capítulo 3: Asimilación de la funcionalidad del código fuente programado en el FPGA perteneciente a la T222 3.1. Descripción del proyecto de la T222. Siendo abierto el proyecto, en la jerarquía del navegador de proyecto aparece como único elemento el esquemático que contiene todo el diseño. La jerarquía, puede tener varios niveles de diseño dentro de los elementos del esquemático. El proyecto cuenta con 78 archivos de los cuales 51 son archivos con extensión .vhd de código VHDL, 13 son .tdf de código AHDL y 14 son esquemas en archivos .bdf; esta cantidad de archivos es desde el punto de vista del navegador de proyecto. El esquema principal está constituido por un conjunto de bloques, compuertas lógicas, puertos y multiplexores. De izquierda a derecha y comenzando desde arriba aparecen los siguientes bloques: clkcr, clkcr1, fai12_masking, fai2gen, LOimp, epsilgen, dos bloques: Fai_jun_val, 485_project, SIM_signal_gen, new_dsp, dos bloques: SIM_Rocket y ADS7822. Las entradas son:SIN1, SIN2, SIN3, SIN4, SIN5, SIN6, SIN7, SIN8, SB1, SB8, SB14, SB6, ECLKOut, TEA[21..2], TCEon, TAWEn, TCE1n, TAREn, TAOEn, clk40m1, clk40m, ADS_delta_fai1, ADS_delta_fai2 y las salidas son:DA2out[9..0], sendclk, BRD_ACT, DSP_ACT, DACLK1, DACLK2, DACLK3, DACLK4, SB11, SB21, DA1out[9..0], DA3out[9..0], DA4out[9..0], LD7, LD8, ADS_CLK1, ADS_CLK2, ADS_cs1, ADS_cs2, RESETn, FRAM_RSTn, INT4, INT5, NMI, FRAM_CEn, FRAMWEn, FRAMOEn,.Además cuenta con una señal bidireccional llamada TED[15..0], que se utiliza tanto de entrada como salida..

(42) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 31. 3.2 Bloque SM_signal_gen Las señales de video de los blancos imitados, para el canal principal y para el canal A/F, y la envolvente de video para la interferencia, se generan en el siguiente bloque del programa, en formato de diseño esquemático, P222.bdf, instalado en el FPGA de la T222.. Figura 3.1Imagen del bloque SM_signal_gen. 3.2.1 Bloques que forman las 4 señales de videos correspondientes a los 4 blancos que elabora el imitador Dentro del bloque de diseño esquemático se encuentra programada la formación de hasta 4 señales de videos correspondientes a los 4 blancos que elabora el imitador. Esto se muestra en la siguiente figura 3.2:.

(43) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 32. Figura 3.2Señales de videos correspondientes a los 4 blancos que elabora el imitador.. Los cuatro bloques de generación de las señales de los blancos son iguales. Para el análisis se escoge uno de ellos, es el siguiente:. Figura 3.3 Bloque de generación de las señales del blanco 1..

(44) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 33. Como se observa en la figura 3.3, a la entrada de este bloque (por la parte izquierda), llegan un grupo de señales: Clk40m. Esta señal es el reloj que viene desde el oscilador a cuarzo que esta instalado en la tarjeta (ver en el esquema electrónico el componente denominado “CY”). Clk91k. Esta señal se forma en un esquema divisor de frecuencia programado en el mismo P222.BDF (“inst19” por el diagrama esquemático del programa), al cual le entra la señal de reloj “clk40m” (la del punto anterior) y a su salida se obtienen varias frecuencias luego de realizar la división. Esta señal es un tren de impulsos cuya caída se obtiene cada 10.35 us (96.6 KHz). Clk62k. Esta señal se forma en un esquema divisor de frecuencia programado en el mismo P222.BDF (“inst19” por el diagrama esquemático del programa), al cual le entra la señal de reloj “clk40m” (la del punto anterior) y a su salida se obtienen varias frecuencias luego de realizar la división. Esta señal es un tren de impulsos cuya caída se obtiene cada 16us (62.5 KHz). cs0. Esta señal es un impulso que coincide con el frente posterior del blanqueo por el plano ε; es decir, coincide con el comienzo del paso directo por ese plano, tal como se observa en la siguiente gráfica, donde se muestran en la línea superior los impulsos de reloj “clk40m”, en la segunda fila están los impulsos de blanqueo por el plano ε (pulsos negativos de 4ms) y en la última fila los impulsos “cs0”.. Figura 3.4Impulsos de reloj “clk40m” (línea superior) e impulsos de blanqueo por el plano ε (línea inferior).. cs1. Esta señal es un impulso que coincide con el frente posterior del blanqueo por el plano F1; es decir, coincide con el comienzo del paso directo por ese plano y se forma de la misma manera que la señal anterior..

(45) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 34. cs2. Esta señal es un impulso que coincide con el frente posterior del blanqueo por el plano F2; es decir, coincide con el comienzo del paso directo por ese plano y se forma de la misma manera que la señal anterior. Fai2_en. Esta señal llega a la T222 por el bus serie SB1, que se convierte en paralelo en el bloque “485_projet”, tomando el nombre de “SB1out11d[3]” y luego cambia este nombre por “F_222com[8]”. Es decir, que la señal es parte del bus de 16 bits denominado “F_222com”, específicamente su bit 8 y a la entrada del bloque “SIM_signal_gen” esta señal cambia su nombre y comienza a denominarse “Fai2_en. Está relacionada con el establecimiento del régimen de Localización (cuando está en “cero”) o el régimen de Acompañamiento (cuando está en “uno”). Dsynch_00. Esta señal es un impulso que coincide con el frente trasero del impulso Ro-UK (que tiene período de repetición 280 us [560 us en escala 80]) que llega desde el sincronizador (T221). Fai1. Este es el impulso de paso directo normalizado por el plano F1 (antena UV11); es decir, esta señal está en valor “uno” mientras el “Blanck F1” esté en cero y no hayan pasado los 23.4 ms de paso directo por el plano F1.. Fai2. Este es el impulso de paso directo normalizado por el plano F2 (antena UV11); es decir, esta señal está en valor “uno” mientras el “Blanck F2” esté en cero y no hayan pasado los 23.4 ms de paso directo por el plano F2. Imp_epsil. Este es el impulso de paso directo normalizado por el plano ε (antena UV10); es decir, esta señal está en valor “uno” durante el paso directo por el plano ε. Flag_state[0]. Esta señal es el bit “cero” del bus de 16 bit denominado “Flag_state[15..0]”, originado en el bloque “new_dsp” del diseño esquemático del programa de la T222. Esta señal trae la información desde el DSP, sobre si la coordenada del blanco coincide o no con la posición de la antena por ázimut (β). Target1_R[15..0]. Coordenada del blanco por distancia, elaborada en el DSP. Target1_fai1[15..0]. Coordenada del blanco en el plano F1, elaborada en el DSP. Target1_fai2[15..0]. Coordenada del blanco en el plano F2, elaborada en el DSP. Data_epsiljun[15..0]. Esta señal es el dato de un conteo de los impulsos de reloj de 62.5KHz, el cual comienza con la llegada del Blanck ε (comienzo del paso directo) y.

(46) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 35. termina con la llegada de la MV ε (marca vertical por el plano ε). Este número del conteo es la separación entre el comienzo del barrido y la MV. 3.3 Bloque “SIM_Target” El esquema que sigue es un segmento de la salida del bloque de diseño esquemático SIM_Target, por el cual se obtiene el blanco imitado.. Figura 3.5 Imagen del bloque SIM_Target. Como se observa, la salida está conectada con un multiplexor (BUSMUX) dirigido por la señal “fai2_en”, que escoge el blanco en localización (por la entrada de arriba) o en acompañamiento (por la entrada de abajo). A su vez el blanco en régimen de localización (el que llega por arriba al BUSMUX) pasa solo cuando está presente la señal “beta_enable”, lo que permite la aparición del blanco.

(47) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 36. imitado, con un efecto real, solo cuando coincide la coordenada de la antena con la coordenada del blanco por el plano β.. 3.4. Bloque de diseño esquemático Target_sim. Figura 3.6 Imagen del bloque Target_sim.. En el bloque de diseño esquemático Target_sim está programado en formato texto, en VHDL, el siguiente segmento de código..

(48) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 37. A la entrada de “Target_sim” se tiene las señales siguientes: Clk40m. Esta es la misma que en el anterior bloque. Guide_en. Esta señal une las condiciones de estar en el régimen de localización y coincidir las coordenada del blanco, por β y ε, con el ángulo de la antena. Dsynch_00. Esta señal la vimos anteriormente. Tar_R_guide[15..0]. Esta es la coordenada del blanco por distancia sincronizada con los impulsos “cs0” relativos al paso directo del barrido por el plano ε. Sim_data[9..0]. Esta es la figura del paquete del blanco previamente grabada en segmentos de 10 bits, en una memoria ROM de 512 palabras..

(49) Capítulo III: Asimilación de la funcionalidad del código fuente programado en la FPGA perteneciente a la T222. 38. El segmento de código programado en VHDL para el bloque “Target_sim” cumple el siguiente algoritmo lógico:. Figura 3.7 Algoritmo lógico del código programado en VHDL para el bloque Target_sim. Como se puede observar en el diagrama en bloques del algoritmo, en este se espera por la llegada de los impulsos de reloj de 25 ns, luego se encuesta la variable “en”, también se encuesta la llegada del impulso Ro-UK, y por último encuesta el valor de la variable “buf”, cuyo valor impone los límites para que a la salida aparezca el blanco grabado en la ROM, que llega como dato de 10 bits en la entrada “sim_data”. La variable “en” significa principalmente que se está en régimen de localización y que puede ponerse el blanco (ver condiciones de la variable “en”). La presencia del impulso Ro-UK significa que comienza el barrido por distancia, por lo tanto cuando llega este impulso se inicializa todo. Con cada llegada del impulso de reloj (“clk40m”), si la variable.

Figure

Figura 1.3 Esquema funcional para el entrenamiento.
Figura 1.4 Arquitectura básica de un FPGA .(Bozich 2005)
Figura 1.6 Flujo de diseño del Quartus II.(CORPORATION 2010)
Figura 1.7 Etapas del proceso se diseñó en la plataforma ALTERA.(Altera 2013b)
+7

Referencias

Documento similar

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

dente: algunas decían que doña Leonor, "con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

Este acercamiento entre Roma y la Gran Bretaña lo atribuía Azara al Padre Ricci, general de los jesuítas (1758-73), quien, siempre ateniéndonos al juicio del agente, había