• No se han encontrado resultados

Ingeniería Inversa del componente Programable (FPGA EP2C70F896C8) De la tarjeta 138

N/A
N/A
Protected

Academic year: 2020

Share "Ingeniería Inversa del componente Programable (FPGA EP2C70F896C8) De la tarjeta 138"

Copied!
126
0
0

Texto completo

(1)Facultad de Ingeniería Eléctrica Departamento de Telecomunicaciones y Electrónica. TRABAJO DE DIPLOMA INGENIERÍA INVERSA DEL COMPONENTE PROGRAMABLE (FPGA EP2C70F896C8) DE LA TARJETA 138.. Autor: Asiel E. Hernández Cervantes Tutor: Dr. Juan Pablo Barrios Rodríguez. Santa Clara 2013 “Año 55 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 EP2C70F896C8) DE LA TARJETA 138.. Autor: Asiel E. Hernández Cervantes E-mail: [email protected]. Tutor: Dr. Juan Pablo Barrios Rodríguez Decano de la Facultad de Ingeniería Eléctrica. E-mail: [email protected]. Consultante: Tte. Cor. Gerardo García Pierrat. Santa Clara 2013 "Año 55 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 publicados 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 Autor. Firma del Jefe de Departamento donde se defiende el trabajo. Firma del Responsable de Información Científico-Técnica.

(4) i. PENSAMIENTO. ¨La ciencia se compone de errores, que a su vez, son los pasos hacia la verdad¨ Julio Verne.

(5) ii. DEDICATORIA. A mis padres, porque son el ejemplo que guía mi vida. A mis abuelos, que no pudieron ver este sueño hecho realidad. Los quiero y siempre los tendré muy dentro de mi corazón. A mi abuela Cora, por toda su paciencia y cariño, su fe, sus años, su vida, dedicada a mí. A toda mi familia, por ser tan especiales, por quererme siempre, perdonarme, confiar en mí, y enseñarme a crecer. A Clau, por darme la oportunidad de amar con todo mi ser. Por amarme. A mis amigos, los de lejos y los de cerca, los de ayer y los de hoy, los grandes y los chiquitos, los blancos y los negros, los bonitos y los feos, a todos, porque muy por encima de todo, está su amistad..

(6) iii. AGRADECIMIENTOS. A mi padre y mi madre, porque sin ellos, cualquier sueño sería imposible. A mis abuelos, Oscar, Ada y Efraín, que aunque no me acompañen hoy, siempre vivirán dentro de mí. A mi abuela Cora, por su confianza y cariño. A mis tíos, por querer ser para mi, padres. A mi hermano, mi hermana y mi primo, por su apoyo incondicional. A Claudia, por su entrega y amor. A los muchachos del “grupo”, por toda la ayuda que me han brindado. A Yaisa, Baby e Hildito, por toda su fe en mí. A Yoko, Mandy, Filo, Uva y Armandito, por acogerme en su casa, como si fuera mía y darme todo su cariño. A Osledys, Nelson, el Marciano, Humber, Maikel, Vargas, Ronny, Lienna, Issaka, Sandra, Liudmila, Milo, y todos los del aula que de una forma u otra estuvieron junto a mí. A Alfredo, Rafa, Mario y Luis Roberto, por ser amigos que nunca olvidaré..

(7) iv. A Danay, por ser una amiga tan especial. A Arianet, por su cuidado y ayuda. A Norma, por su cariño y dedicación. A mi tutor, por ayudarme a alcanzar este sueño. A las niñas de letras. A mis profesores, por toda mi educación. A mis amigos todos, por dejarme formar parte de sus vidas..

(8) v. TAREA TÉCNICA. Para cumplir con los objetivos científicos de la investigación, se definieron un grupo de tareas técnicas para la redacción del informe final, ellas fueron: 1. Revisión bibliográfica acerca del diseño de aplicaciones HW-SW con FPGAs. 2. Estudio de la documentación disponible de la Estación de Vigilancia Aérea. 3. Contextualización del funcionamiento de la Tarjeta 138 dentro del sistema general de la estación de vigilancia. 4. Descripción de las especificaciones de funcionamiento de la Tarjeta 138. 5. Documentación de la estrategia de diseño para FPGAs con el Altera.QUARTUS. 6. Documentación de la estructura modular del software desarrollado en el FPGA EP2C70F896C8 de la tarjeta 138. 7. Descripción de los diferentes módulos del FPGA EP2C70F896C8 de la tarjeta 138. 8. Redacción del Informe Final.. Firma del Autor. Firma del Tutor.

(9) vi. RESUMEN. Con vistas a mantener la seguridad e independencia nacional, en el país se cuenta con Sistemas de Vigilancia Aérea a los cuales es necesario realizar una modernización de la tecnología. Uno de los sistemas que precisa de renovación tecnológica es el Complejo Antiaéreo “Volga”. Dicho sistema está implementado con electrónica analógica y digital. El componente fundamental del complejo es la denominada “Tarjeta de Cálculo”, o Tarjeta 138, la misma está implementada con electrónica programada y su funcionamiento está basado en un dispositivo lógico FPGA. El propósito investigativo fundamental es realizar un proceso de asimilación por Ingeniería Inversa de la programación dentro de la Tarjeta 138, que permita una reproducción parcial o total de la misma en el ámbito nacional, por ende se necesita realizar un análisis especializado que permita comprender el funcionamiento del dispositivo, para ello se utiliza el software de Altera, de diseño y simulación Quartus II. La interpretación mediante ingeniería inversa permitiría sustituir una tecnología obsoleta, sin el inconveniente de realizar grandes inversiones, además suministraría una plataforma de análisis para los dispositivos, no solo militares sino también industriales con que cuenta en la actualidad el país..

(10) vii. ÍNDICE. PENSAMIENTO .......................................................................................................................i DEDICATORIA ...................................................................................................................... ii AGRADECIMIENTOS ........................................................................................................... iii TAREA TÉCNICA ................................................................................................................. v RESUMEN ............................................................................................................................vi ÍNDICE ................................................................................................................................ vii INTRODUCCIÓN .................................................................................................................. 1 CAPÍTULO 1. 1.1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL ...... 6. Los FPGAs .............................................................................................................. 6. 1.1.1. Evolución de los dispositivos FPGAs ................................................................. 6. 1.1.2. FPGA .................................................................................................................. 7. 1.1.3. Características de los FPGAs .............................................................................. 8. 1.1.4. Programación ...................................................................................................... 9. 1.1.5. Aplicaciones de los FPGAs .............................................................................. 13. 1.1.6. Tecnología de la memoria de programación ..................................................... 13. 1.1.7. Rendimiento ...................................................................................................... 14. 1.1.8. Tiempo en llegar al mercado ............................................................................ 14. 1.1.9. Precio ................................................................................................................ 14.

(11) viii 1.1.10. Fiabilidad de los FPGAs ............................................................................... 15. 1.1.11. Mantenimiento a largo plazo ........................................................................ 15. 1.2. Características de los dispositivos FPGAs de Altera ............................................ 16. 1.2.1. FPGAs de Altera ............................................................................................... 16. 1.2.2. Soluciones de Procesamiento Empotrado de bajo costo ................................... 17. 1.2.3. Soluciones DSP de bajo costo .......................................................................... 17. 1.2.4. Características de los FPGAs Cyclone II .......................................................... 18. 1.2.5. Descripción funcional ....................................................................................... 20. 1.2.6. Elementos Lógicos ............................................................................................ 23. 1.2.7. Software ............................................................................................................ 25. 1.3. Lenguajes de Descripción de Hardware ............................................................... 25. 1.3.1. Lenguaje de Descripción de Hardware de Altera ............................................. 26. 1.3.2. Ventajas y desventajas del lenguaje AHDL ..................................................... 27. 1.3.3. Características del lenguaje .............................................................................. 27. 1.3.4. Estructura AHDL .............................................................................................. 28. 1.3.5. Palabras Claves ................................................................................................. 28. 1.3.6. Vectores ............................................................................................................ 30. 1.3.7. Primitivas .......................................................................................................... 30. 1.3.8. Tablas de Verdad .............................................................................................. 30. 1.3.9. Máquinas de Estados ........................................................................................ 30. 1.4. Conclusiones del capítulo ..................................................................................... 31. CAPÍTULO 2. 2.1. Tarjeta 138. Software de diseño y simulación Altera Quartus II.............. 33. 2.1.1. Tarjeta 138 ............................................................................................................ 33 Módulo de procesamiento principal ................................................................. 35.

(12) ix 2.1.2. Circuito de entrada de información .................................................................. 35. 2.1.3. Circuito de salida de información ..................................................................... 35. 2.1.4. Particularides Tecnológicas de la Tarjeta 138 .................................................. 36. 2.1.5. Esquema Físico ................................................................................................. 39. 2.1.6. Esquema en bloques.......................................................................................... 40. 2.1.7. Esquema Lógico ............................................................................................... 42. 2.1.8. Relación de señales de entrada/salidas ............................................................. 43. 2.2. Software Altera Quartus® II................................................................................ 43. 2.2.1. Flujo de Diseño ................................................................................................. 44. 2.2.2. Diseño del sistema usando SOPC Builder ........................................................ 45. 2.2.3. Capacidad de Síntesis ....................................................................................... 45. 2.2.4. Editor de Asignaciones (Assigment Editor) ...................................................... 46. 2.2.5. Módulos ejecutables ......................................................................................... 46. 2.2.6. Simulación ........................................................................................................ 47. 2.2.7. Análisis de tiempo (Quartus II Timing Analysis) ............................................. 48. 2.2.8. Correción de Errores (On-Chip Debugging) .................................................... 48. 2.2.9. Verificación Formal .......................................................................................... 49. 2.2.10 2.3. Limitaciones del Software ............................................................................ 49. Conclusiones del capítulo ..................................................................................... 50. CAPÍTULO 3. 3.1. Propuesta y Evaluación de la Ingeniería Inversa. ..................................... 51. Ingeniería Inversa ................................................................................................. 51. 3.1.1. Metodología de Análisis ................................................................................... 54. 3.1.2. Definición y delimitación ................................................................................. 56. 3.1.3. Plan de Investigación ........................................................................................ 57.

(13) x 3.1.4 3.2. Aplicación del Plan de Investigación ................................................................ 58 Análisis de la Tarjeta 138 ..................................................................................... 60. 3.2.1. Señal de Video (TEVideo - épsilon del blanco) ............................................... 61. 3.2.2. Procesador de Cálculo ...................................................................................... 65. 3.3. Conclusiones del capítulo ..................................................................................... 69. CONCLUSIONES Y RECOMENDACIONES ................................................................... 70 Conclusiones ..................................................................................................................... 70 Recomendaciones ............................................................................................................. 70 REFERENCIAS BIBLIOGRÁFICAS ................................................................................. 72 ANEXOS .............................................................................................................................. 75 Anexo I. Ejemplos en AHDL ...................................................................................... 75. Anexo II. Implementación de Tablas de Verdad y Máquinas de Estado ...................... 77. Anexo III. Explicación de TEVSel ................................................................................. 77. Anexo IV. Determinación del Centro Energético de la señal ......................................... 79. Anexo V. Explicación del bloque int8_cont_chip......................................................... 82. Anexo VI. Explicación del bloque oan_haisin ............................................................... 87. Anexo VII Explicación del bloque oan_reg ................................................................... 94 Anexo VIII Memoria de Control ................................................................................... 100 Anexo IX. Componente ALU en oan_reg .................................................................... 101. Anexo X. Componente T09Yen oan_haisin................................................................ 105. Anexo XI. Contadores .................................................................................................. 105. Anexo XII Señal D_Sync ............................................................................................. 107 Anexo XIII Señales de Reloj ......................................................................................... 108 Anexo XIV Señal RMS (proyectil lanzado) .................................................................. 109.

(14) xi Anexo XV Encoders de Distancia ................................................................................ 110 Anexo XVI Máscaras de Video ..................................................................................... 112.

(15) INTRODUCCIÓN. 1. INTRODUCCIÓN. Es de vital importancia en la defensa de cualquier país la preservación del espacio aéreo. En la actualidad se cuenta con Sistemas de Vigilancia Aéreos en completa disposición combativa, sin embargo, la utilización de los mismos se encuentra limitada debido a que la tecnología con que están implementados es aun analógica. En los últimos años el país ha adquirido Estaciones de Vigilancia relativamente modernas con tecnología basada en una plataforma digital, dichas estaciones han demostrado en la práctica una apreciable mejoría en comparación con las que poseía el país, debido e estos resultados ha surgido la necesidad de realizar un proyecto de renovación tecnológica a la mayor parte del armamento con que cuenta el país, entre los sistemas más importantes a los que se les está aplicando la modernización se encuentra el Complejo Coheteril “Volga”. El sistema “Volga” está compuesto por 18 tarjetas funcionales, entre ellas hay. 5. implementadas con electrónica programada y solo se conoce su destinación, no así su funcionamiento. Las 13 tarjetas restantes se implementan con electrónica analógica y digital, conociéndose su esquema electrónico y su funcionamiento completamente. Las 5 tarjetas implementadas con electrónica digital manejan la mayor parte de los procesos lógicos en el complejo, son las encargadas de recibir, preparar y procesar la información obtenida a través de los medios físicos. La Tarjeta 138, está implementada totalmente con electrónica programada, la misma forma parte fundamental del Sistema de Vigilancia, actualmente se cuenta con dispositivos reales de la T-138, sin embargo, no se cuenta con la información apropiada que permita la reproducción de los mismos, por lo que se hace necesario un estudio riguroso de asimilación de tecnología, mediante ingeniería inversa, al hardware digital programado para conocer de qué forma es que se implementaron dichos dispositivos, generando así la.

(16) INTRODUCCIÓN. 2. posibilidad de emularlos tanto teórica como prácticamente. Se ha tratado de generar el mismo comportamiento práctico a partir de los códigos obtenidos y no ha resultado de la forma esperada, lo que indica que, una reproducción sin conocimiento, de la forma en que se obtuvo en un principio la configuración tanto individual por bloques como general sería un fracaso. Una. forma de. solución común para el problema planteado es. realizando nuevos. algoritmos a partir de la experiencia y el conocimiento que se tiene sobre el funcionamiento de la Estación dada, pero esto provocaría un rediseño total del sistema, desechando todo lo que está en disposición combativa, para sustituir completamente una tecnología de esta magnitud se necesitaría de una gran inversión de capital así como del trabajo de un personal calificado en la teoría de funcionamiento de la Estación dada y que además tenga suficiente preparación en los temas de la electrónica digital y en los temas de la electrónica digital programada. Un grupo con este personal se tomaría un tiempo entre 12 y 15 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, etc.; 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 concluir con las pruebas funcionales a la nueva estación que estaría surgiendo a partir de este proceso. Es necesario enfocar el problema desde una perspectiva diferente a como se venía realizando, por ello se hace indispensable un minucioso análisis mediante ingeniería inversa de las características del sistema, centrando la atención en la programación y arquitectura lógica por bloques funcionales, así como la documentación técnica, creando a partir de ello una fundamentación que permita una implementación similar de dichos sistemas lo más parecida posible puesto que existe personal capacitado en dicha estación para su operación. Es necesario utilizar el mismo diseño electrónico del sistema aprovechando la oportunidad de tener los códigos fuentes que están en los componentes programables de las tarjetas y conociendo además, las señales de entrada y salida presentes en sus conectores. Se debe centrar la investigación mediante un proceso de ingeniería.

(17) INTRODUCCIÓN. 3. inversa al hardware programado para conocer como se enlazan lógicamente todos los componentes para lograr el funcionamiento general de la tarjeta, e ir generando una estructura funcional del dispositivo analizado, garantizando a partir de ahí una sustitución de la programación sobre el mismo soporte original. Se utilizará toda la información recopilada para lograr la funcionalidad de la estación de vigilancia, logrando de esta forma una contribución importante a la industria no solo militar sino también de la electrónica programada en el país. Luego de conocer los problemas que motivan la investigación, surge como objetivo principal realizar una asimilación de tecnología, para explicar el funcionamiento del componente (FPGA EP2C70F896C8) de la tarjeta 138 de la estación de vigilancia dada. Los objetivos específicos necesarios para cumplir satisfactoriamente los propósitos investigativos son: 1. Contextualizar el funcionamiento de la tarjeta 138 dentro del sistema general de la estación de vigilancia. 2. Describir las especificaciones de funcionamiento de la tarjeta 138. 3. Analizar la estrategia de diseño para FPGAs con el software de diseño y simulación, Altera Quartus. 4. Conformar la estructura modular del software desarrollado en el FPGA EP2C70F896C8 de la tarjeta 138. 5. Describir los diferentes módulos del FPGA EP2C70F896C8 de la tarjeta 138. Para cumplir los objetivos específicos trazados es necesario dar respuesta a las siguientes interrogantes científicas: 1. ¿En qué contexto se desarrolla el funcionamiento de la tarjeta 138 dentro del sistema general de la estación de vigilancia? 2. ¿Cuáles son las especificaciones de funcionamiento de la tarjeta 138 que le permiten cumplir con las tareas asignadas dentro del sistema de vigilancia? 3. ¿Cómo se desarrollan aplicaciones para los FPGAs, utilizando el Altera Quartus? 4. ¿Cuál es la estructura del los módulos de SW con que cuenta el FPGA EP2C70F896C8 de la tarjeta 138 y qué funciones realizan?.

(18) INTRODUCCIÓN. 4. Con la realización de este proyecto se pretende contribuir al análisis general del dispositivo, así como conocer el funcionamiento del componente programable FPGA EP2C70F896C8 de la tarjeta de cálculo principal y facilitar de esta forma el estudio de sistemas similares. Describir su diseño lógico y funcional así como realizar una base esquemática que sirva de eje para generar alternativas viables para la sustitución de la tecnología actual. Con la ejecución de la investigación se dan soluciones a problemáticas actuales vinculadas con la necesidad de sustituir. un sistema. de gran complejidad y valor, cuya utilización es. fundamental en la defensa de nuestro país, además se lograría una base sólida para la futura implementación nacional de sistemas similares, lo que eliminaría la necesidad de importar dicha técnica. Permitiría la creación de un mecanismo para interpretar el funcionamiento de otros dispositivos similares de los cuales actualmente no se tiene información, lo que contribuiría al desarrollo interno de la industria de la electrónica programada en nuestro país. Para satisfacer los objetivos trazados con la investigación, se ha decidido realizar un informe que conste de tres capítulos, conclusiones y recomendaciones. Capitulo I. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. Este capítulo realiza una breve descripción de los dispositivos FPGAs, sus principales características, funcionamiento y aplicaciones, realizando un especial acercamiento a los FPGAs de Altera, además se definen los diferentes Lenguajes de Descripción de Hardware (HDL), profundizando en el lenguaje de programación, AHDL. CAPITULO II. Tarjeta 138. Software de diseño y simulación Altera Quartus II. Se exponen las principales características de la tarjeta 138, sus componentes, parámetros eléctricos, así como su estructura física y lógica. Se enuncian las principales prestaciones del software de diseño Altera Quartus, características, aplicaciones y herramientas de análisis y simulación..

(19) INTRODUCCIÓN. 5. CAPITULO III. Propuesta y Evaluación de la Ingeniería Inversa. En este capítulo se realizará la propuesta de Ingeniería Inversa del componente programable FPGA EP2C70F896C8 de la Tarjeta 138, además se explicarán los resultados obtenidos producto del análisis del sistema y se expondrán las conclusiones de la investigación..

(20) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 6. CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. En el capítulo se describen los dispositivos FPGAs, sus principales características, funcionamiento y aplicaciones, realizando un especial acercamiento a los FPGAs de Altera. Se definen los diferentes Lenguajes de Descripción de Hardware (HDL), enfatizando las principales características del lenguaje propietario de Altera, AHDL. 1.1. Los FPGAs. En el epígrafe se abordará acerca de las características generales de los dispositivos FPGAs, su evolución, principales características, funcionamiento, aplicaciones en la industria, así como sus precios y disponibilidad. 1.1.1. Evolución de los dispositivos FPGAs. Los dispositivos FPGA (del inglés Field ProgrammableGateArray) son el resultado de la convergencia de dos tecnologías diferentes, los Dispositivos Lógicos Programables (PLDs: ProgrammableLogicDevices) y los Circuitos Integrados de Aplicación Específica (ASIC: Application-SpecificIntegratedCircuit). La. historia. de. los. PLDs. comenzó. (ProgrammableRead-OnlyMemory). y se. con. los. primeros. les. añadió. dispositivos. versatilidad. con. los. PROM PAL. (ProgrammableArrayLogic) que permitieron un mayor número de entradas y la inclusión de registros. Los ASIC siempre han sido dispositivos muy potentes, pero su uso ha requerido tradicionalmente una considerable inversión tanto de tiempo como de dinero, los.

(21) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 7. intentos de reducir esta carga han provenido de la modularización de los elementos de los circuitos, como los ASIC basados en celdas, y de la estandarización de las máscaras, tal como Ferranti quien fue pionero con la ULA (UncommittedLogicArray). El paso final era combinar las dos estrategias con un mecanismo de interconexión que pudiese programarse utilizando fusibles, antifusibles o celdas RAM y celdas ROM, como los innovadores dispositivos Xilinx de mediados de los 80. Los circuitos resultantes son similares en capacidad y aplicaciones a los PLDs más grandes, aunque hay diferencias puntuales que delatan antepasados diferentes. Además de en computación reconfigurable, las FPGAs se utilizan en controladores, codificadores/decodificadores y en la realización de prototipos de circuitos VLSI y microprocesadores específicos. (Gutiérrez, 2004) 1.1.2 FPGA Un FPGA (del inglés Field ProgrammableGateArray) es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada 'in situ' mediante un lenguaje de descripción especializado. (Gutiérrez, 2004) La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional, hasta complejos sistemas en un chip. Los FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más lentos, tienen un mayor consumo de potencia y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, los FPGAs tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es también menor. La adopción de chips FPGA en la industria ha sido impulsada por el hecho de que los FPGAs combinan lo mejor de los ASICs y de los sistemas basados en procesadores. Estos dispositivos ofrecen velocidades temporizadas por hardware y fiabilidad, pero sin requerir altos volúmenes de recursos para compensar el gran gasto que genera un diseño personalizado de ASIC. A diferencia de los procesadores, los FPGAs llevan a cabo diferentes operaciones de manera paralela, por lo que éstas no necesitan competir por los mismos recursos. Cada tarea de procesos independientes se asigna a una sección dedicada.

(22) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 8. del chip, y puede ejecutarse de manera autónoma sin ser afectada por otros bloques de lógica. Como resultado, el rendimiento de una parte de la aplicación no se ve afectado cuando se agregan otros procesos. (Instruments, 2008). Figura 1.1. Diagrama representativo FPGA.. 1.1.3 Características de los FPGAs Los FPGAs se caracterizan por tener una jerarquía de interconexiones programables, la cual permite que los bloques lógicos de un FPGA puedan ser interconectados según la necesidad del diseñador del sistema. Estos bloques lógicos e interconexiones pueden ser programados después del proceso de manufactura por el usuario/diseñador, así que el FPGA puede desempeñar cualquier función lógica necesaria. Los. sistemas. basados. en FPGA’s. proporcionan un mejor desempeño que sus correspondientes implementaciones en software. Las aplicaciones que requieren de un gran número de operaciones simples son adecuadas para su implementación en FPGA’s, puesto que un elemento de procesamiento puede diseñarse para efectuar esta operación y varias instancias de éste pueden reproducirse para llevar a cabo procesamiento paralelo. (Gutiérrez, 2004) Una tendencia reciente ha sido combinar los bloques lógicos e interconexiones de los FPGA con microprocesadores y periféricos relacionados para formar un «Sistema programable en un chip». Otra alternativa es hacer uso de núcleos de procesadores implementados haciendo uso de la lógica del FPGA. Dichos núcleos incluyen los procesadores MicroBlaze y PicoBlaze de Xilinx, Nios y Nios II de Altera, y los procesadores de código abierto LatticeMicro32 y LatticeMicro8..

(23) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 9. 1.1.4 Programación En los FPGAs la programación no es realizada igual a. como se realiza en otros. dispositivos como DSP, CPLD o microcontroladores. El FPGA tiene celdas que se configuran con una función específica ya sea como memoria (FLIP-FLOP tipo D), como multiplexor o como una función lógica tipo AND, OR, XOR. La labor del programador es describir el hardware que tendrá la FPGA. Por consiguiente, la tarea principal es definir la función lógica que realizará cada uno de los CLB (Bloques Lógicos Configurables), seleccionar el modo de trabajo de cada IOB (Bloques de Entrada y Salida) e interconectarlos. (Güichal, 2005) El diseñador cuenta con la ayuda de entornos de desarrollo especializados en el diseño de sistemas a implementarse en un FPGA. Un diseño puede ser visto de forma esquemática, o haciendo uso de un lenguaje de programación especial, estos lenguajes de programación especiales son conocidos como HDL o Lenguajes de Descripción de Hardware (Hardware Description Language por sus siglas en. inglés). Los Lenguajes de Descripción de. Hardware más utilizados son: . VHDL: El lenguaje 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. Está, como ya se ha dicho, normalizado, o sea, existe un único modelo para el lenguaje (estándar IEEE 1076/93), 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. (Committee, 2002)..

(24) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL . 10. Verilog Es un lenguaje de descripción de hardware usado para modelar sistemas electrónicos. El lenguaje, algunas veces llamado Verilog HDL, soporta el diseño, prueba e implementación de circuitos analógicos y digitales a diferentes niveles de abstracción. Un diseño en Verilog consiste en una jerarquía de módulos, los módulos son definidos como conjuntos de puertos de entrada/salida y bidireccionales. Internamente un módulo contiene una lista de cables y registros. Las sentencias concurrentes y secuenciales definen el comportamiento del módulo, describiendo las relaciones entre los puertos, cables y registros. (Borensztejn, 2009). Figura 1.2. Descripción Verilog. . ABEL. El proceso de diseño de un módulo hardware sobre una FPGA se divide en tres fases: creación del modelo, síntesis e implementación. Al finalizar cada una de las fases puede comprobarse la validez del diseño mediante simulación, utilizándose distintos tipos de simulación en cada una de ellas:  Simulación funcional RTL para validar el modelo VHDL creado.  Simulación funcional post-síntesis a nivel de puertas para validar el modelo sintetizado.  Simulación temporal post-implementación, para validar la implementación del modelo usando la tecnología e implantación en una FPGA concreta..

(25) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 11. El diagrama siguiente muestra de forma esquemática el flujo de diseño de un módulo o circuito hardware dentro de una FPGA o CPLD genérico.. Figura 1.3. Flujo de diseño HW genérico. El banco de pruebas creado para validar el modelo es único, siendo utilizado en todos los tipos de simulación mencionados. Esto se debe a que el nombre de la entidad no cambia a lo largo del flujo de diseño, sino que se va transformando la arquitectura de funcionamiento algorítmico, en una arquitectura estructural dada por puertas básicas de la tecnología de destino. La simulación post-síntesis, pre-implementación, tiene en cuenta ciertas estimaciones para comprobar un funcionamiento erróneo. En diseños sencillos se opta normalmente por realizar la implementación y simular de forma temporal su comportamiento, dado que no se trabaja con estimaciones sino con la ubicación física real que tendrán las puertas y circuitos hardware usados en el diseño.(Bravo,2010) . Bloques Lógicos Programables. Los FPGA siempre tienen algún bloque lógico programable, el mismo permite implementar las diferentes funciones lógicas. Cada CLB contiene cuatro slice, y cada slice contiene dos tablas de entrada-salida o tablas de consultas (LUT, Look Up Table) y elementos almacenadores como flip-flops o latches, además contiene multiplexores adicionales que simplifican las funciones de lógica y aritmética. (Güichal, 2005).

(26) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 12. Cada LUTs es una RAM que funciona como un generador de funciones y es el principal recurso para implementar funciones lógicas. Estas tablas pueden implementar cualquier función lógica de cuatro entradas y una salida, así como también utilizarse como memorias distribuidas de 16 x 1 o como registros de rotación de 16 bit. Las salidas de las LUT pasan a los bloques de control, que contienen lógica para optimizar funciones aritméticas. (Xilinx, 2009) La base literal del CLB es un SRAM (RAM estática) que almacena el patrón de bits que define las funciones lógicas del CLB y los caminos ligados a ellos. Los patrones de bits SRAM son cargados de una forma variada de modos de configuración y como con cualquier RAM, puede ser recargado o escrito un número de veces ilimitado. De esa forma un diseño puede ser corregido o modificado a través de configuraciones programadas con ningún cambio en el hardware. Los datos de configuración pueden ser cargados desde un ordenador servidor o pueden ser transferidos desde una memoria PROM local de forma automática con el encendido del dispositivo. (Cuéllar, 2005). Figura 1.4. Diagrama Básico de un CLB.. . Bloques de Entrada/Salida. Entre los componentes principales de los FPGAs se encuentran los interfaces de entrada/salida (I/O), los mismos son los encargados de regular el flujo de datos entre la lógica interna de los dispositivos y los diferentes pines de entrada y salida. Las entradas/salidas del integrado se dividen en bancos que se pueden configurar para tener. una. interface. con. lógica. de diferentes estándares. eléctricos. de. manera. independiente. Los bancos se configuran aplicando diferentes tensiones de alimentación.

(27) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 13. a los pines denominados VccO y VREF. Al utilizar diferentes valores de VccO para los distintos bancos se podrá tener un sistema con interface a diferentes familias lógicas dentro del mismo FPGA. Las entradas de reloj están asociadas a diferentes bancos de entrada-salida, para permitir que haya diferentes dominios de reloj con interfaces eléctricas diferentes. (Güichal, 2005) 1.1.5 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.1.6 Tecnología de la memoria de programación Los FPGAs también se pueden diferenciar por utilizar diferentes tecnologías de memoria: . Volátiles: Basadas en RAM. Su programación se pierde al quitar la alimentación. Requieren una memoria externa no volátil para configurarlas al arrancar (antes o durante el reset).. . No Volátiles: Basadas en ROM. Hay de dos tipos, las reprogramables y las no reprogramables.. Las memorias ROM reprogramables están basadas en tecnología EPROM o flash, las mismas se pueden borrar y volver a reprogramar aunque con un límite de aproximadamente unos 10.000 ciclos. Las memorias no reprogramables basan su uso en fusibles o antifusibles, solo se pueden programar una vez, lo que las hace poco recomendables para trabajos en laboratorios..

(28) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 14. 1.1.7 Rendimiento Aprovechando el paralelismo del hardware, los FPGAs exceden la potencia de cómputo de los procesadores digitales de señales (DSPs) rompiendo el paradigma de ejecución secuencial y logrando más en cada ciclo de reloj. BDTI, una destacada firma analista que realiza evaluaciones de referencia, lanza evaluaciones mostrando cómo los FPGAs pueden entregar significativamente más potencia de procesamiento por dólar que una solución de DSP, en algunas aplicaciones (BDTI Benchmarking, 2006). La capacidad de controlar las entradas y salidas (I/O) a nivel de hardware ofrece tiempos de respuesta más veloces y funcionalidad especializada que coincide con los requerimientos de las aplicaciones. (Instruments, 2008) 1.1.8 Tiempo en llegar al mercado La tecnología FPGA ofrece flexibilidad y capacidades de rápido desarrollo de prototipos para enfrentar los retos de que un producto se libere tarde al mercado (Time To Market). Se puede probar una idea o un concepto y verificarlo en hardware sin tener que pasar por el largo proceso de fabricación por el que pasa un diseño personalizado de ASIC (Thompson, 2004). Posteriormente podría implementarse cambios y realizar iteraciones de un diseño FPGA en cuestión de horas en vez de semanas. También existe el hardware comercial listo para usarse (COTS) con diferentes tipos de entrada y salidas (I/O) ya conectados a un chip FPGA programable por el usuario. El aumento en disponibilidad de herramientas de software de alto nivel disminuye la curva de aprendizaje con niveles de abstracción. Estas herramientas frecuentemente incluyen importantes núcleos IP (del inglés Intelectual Property) que son funciones pre-construidas para control avanzado y procesamiento de señales. (Instruments, 2008) 1.1.9 Precio El precio de la ingeniería no recurrente de un diseño personalizado ASIC excede considerablemente al de las soluciones de hardware basadas en FPGA. La fuerte inversión inicial de los ASICs es fácilmente justificable para los fabricantes de equipos originales que realizan miles de chips por año, pero muchos usuarios finales necesitan la funcionalidad de.

(29) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 15. un hardware personalizado para decenas o cientos de sistemas en desarrollo. La misma naturaleza programable del silicio implica que no hay precio de fabricación a largo plazo de ejecución de ensamblado. Los requerimientos de un sistema van cambiando con el tiempo, y el precio de cambiar incrementalmente los diseños FPGA es insignificante al compararlo con el precio de implementar cambios en un ASIC antes de su lanzamiento. 1.1.10 Fiabilidad de los FPGAs Mientras que las herramientas de software ofrecen un entorno de programación, los circuitos de un FPGA son una implementación segura de la ejecución de un programa. Los sistemas basados en procesadores frecuentemente implican varios niveles de abstracción para auxiliar a programar las tareas y compartir los recursos entre procesos múltiples. El software a nivel, driver, se encarga de administrar los recursos de hardware y el sistema operativo administra la memoria y el ancho de banda del procesador. El núcleo de un procesador solo puede ejecutar una instrucción a la vez, y los sistemas basados en procesadores están siempre en riesgo de que sus tareas se obstruyan entre si. Los FPGAs, que no necesitan sistemas operativos, minimizan los retos de fiabilidad con ejecución paralela y hardware preciso dedicado a cada tarea. (Instruments, 2008) 1.1.11 Mantenimiento a largo plazo Como se señaló anteriormente, los chips FPGA son actualizables en campo y no requieren el tiempo y el precio que implica rediseñar un ASIC. Los protocolos de comunicación digital, por ejemplo, tienen especificaciones que podrían cambiar con el tiempo, y las interfaces basadas en ASICs podrían causar retos de mantenimiento y habilidad de actualización. Los chips FPGA, al ser reconfigurables, son capaces de mantenerse al tanto con modificaciones futuras que pudieran ser necesarias. Mientras el producto o sistema se va desarrollando, se pueden implementar mejoras funcionales sin la necesidad de invertir tiempo rediseñando el hardware o modificando el diseño de la tarjeta. (Instruments, 2008).

(30) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 1.2. 16. Características de los dispositivos FPGAs de Altera. Altera es uno de los pioneros de la lógica programable, siguiendo líderes notables anteriores como Signetics y MMI en la introducción de PLDs. Altera desarrolla algunas características que están orientadas hacia capacidad de sistemas en chips programables (SOPC). Algunos de los ejemplos más recientes incluyen memoria embebida, procesadores embebidos, y transceptores de alta velocidad. El éxito en lanzamientos de productos de 130nm y 90nm son buenos casos de estudio. Los procesadores soft-coreNios II y Nios de Altera y los dispositivos HardCopy II y HardCopy están extendiendo el alcance de Altera en el mercado, y coloca a esta empresa en el mundo de los procesadores embebidos y ASICs estructuradas respectivamente. Entre sus principales competidores están: Xilinx, Lattice Semiconductor, Actel, Quicklogicq y Atmel. (Altera, 2013) Altera ofrece también el software Quartus II, dirigido al diseño y simulación de circuitos lógicos. Aunque su software soporta extensivamente VHDL y Verilog como principales lenguajes, Altera es el desarrollador de lenguaje de descripción de hardware conocido como AHDL. Mientras los CPLDs y las FPGAs clásicas eran estrictamente dispositivos lógicos, con sus nuevos dispositivos los fabricantes de FPGAs se acercan más y más a aplicaciones de procesamiento digital de señales. Esta tendencia también la tiene el nivel de diseño de sistemas electrónicos. No es realmente nuevo, pero está ganando impulso, no solo en el marketing y en la producción de los últimos 10 años, sino también en el uso normal de la industria. Con la gran cantidad de puertas de los dispositivos y las arquitecturas de sistemas en un chip, así como las herramientas de síntesis de alto nivel combinadas con la reutilización, se puede implementar sistemas complejos en un único FPGA en lugar de utilizar una gran PCBs con varios chips y buses. Por lo tanto, compañías como Altera y Xilinx pueden llegar a competir más con compañías como Texas Instruments o AnalogDevices. 1.2.1 FPGAs de Altera Después del gran triunfo de la primera generación de dispositivos de la familia Cyclone®, Altera ® Cyclone II FPGAs extiende la densidad de rango de bajo costo de las FPGA hasta.

(31) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 17. 68,416 elementos de lógica (Les) y suministra hasta 622 pins de I/O utilizables así como 1.1 Mbits de memoria empotrada. Los FPGAs de Cyclone II son fabricados sobre obleas de 300 milímetros usando TSMC's 90-nm y un proceso de dieléctrico low-k para asegurar rápida disponibilidad y bajo costo. Minimizando el área de silicio, los dispositivos de Cyclone II pueden soportar sistemas digitales complicados sobre un solo chip con un costo que rivaliza con ASICs. A diferencia de otros distribuidores de FPGA quienes comprometen el consumo de energía y rendimiento con el bajo costo, la más reciente creación de FPGAs de bajo costo de Altera, ofrece un rendimiento del 60 % más alto y la mitad del consumo de energía compitiendo con las FPGAs 90 – nm. El bajo costo y las características óptimas del set de Cyclone II lo hace la solución ideal para una amplia selección en automovilismo, comunicaciones, procesamiento de video, pruebas y mediciones, así como otras soluciones de mercado. (Corporation, 2007) 1.2.2 Soluciones de Procesamiento Empotrado de bajo costo Los dispositivos de Cyclone II soportan el procesador empotrado Nios II para la implementación de soluciones de procesamiento empotrado, además puede ampliar el set de dispositivos periféricos, la capacidad de memoria y las entradas y salidas. Los procesadores empotrados Nios II, solos o múltiples, pueden ser designados dentro de un dispositivo de Cyclone II para proveer poder adicional de co-procesamiento o reemplazar procesadores empotrados existentes en el sistema. Usando Cyclone II y Nios II juntos se puede lograr bajo costo y alto rendimiento en soluciones de procesamiento empotradas, permitiendo de esta forma la prolongación del ciclo vital de los productos y mejorando el tiempo usual de mercado para soluciones estándar de productos. (Corporation, 2007) 1.2.3 Soluciones DSP de bajo costo Usando FPGAsCyclone II solamente o como co-procesador de DSP se pueden mejorar las razones entre precio y desempeño para aplicaciones de procesamiento digital de señales. Se pueden implementar sistemas de DSPde bajo costo y alto rendimiento con las siguientes características y soporte de diseño:.

(32) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 18.  Hasta 150 multiplicadores de 18 × 18.  Hasta 1.1 Mbit en un chip de memoria empotrada.  Interfaces de alta velocidad para memoria externa.  Núcleos de propiedad intelectual (IP) de DSP.  Generador de interfaz de DSP para ambiente de diseño de MathworksSimulink y Matlab.  Kit de desarrollo DSP, de tipo Cyclone II. Los dispositivos Cyclone II incluyen un importante set de características FPGAs. Optimizado para aplicaciones de bajo costo incluyendo densidad de memoria, multiplicador empotrado y opciones de empaquetamiento. Soportan un amplio rango de interfaces de memoria externa comunes y los protocolos de I/O requeridos para aplicaciones de bajo costo. Los núcleos de IP parametrizable de Altera pueden usar interfaces de Cyclone II así como protocolos de manera más rápida y fácil. (Corporation, 2007) 1.2.4 Características de los FPGAs Cyclone II La familia de dispositivos de Cyclone II brinda las siguientes características: .- Arquitectura de alta densidad con 4,608 a 68,416 LEs. . M4K bloques de memoria empotrada.. . Hasta 1.1 Mbits de RAM utilizable sin reducir la lógica disponible.. . 4,096 bits de memoria en cada bloque (4,608 bits por bloque incluyendo 512 bits de. paridad). . Puertos de configuración variable de ×1, ×2, ×4, ×8, ×9, ×16, ×18, ×32, y ×36.. . Operación doble de puerto (una lectura y una escritura, dos lecturas, o dos escrituras). para ×1, ×2, ×4, ×8, ×9, ×16 y ×18 modos. . Posee bytes disponibles para el enmascaramiento de los datos de entrada durante las. escrituras. . Operaciones hasta 260 MHz..

(33) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 19. .- Multiplicadores empotrados. . Hasta 150 multiplicadores de 18 × 18 bits pueden ser configurados como dos. multiplicadores independientes de 9 × 9 bits con un rendimiento de 250 MHz. . Registros opcionales de entrada y salida.. .-Soporteavanzado de E/S. . Soporte estándar de I/O diferenciales de alta velocidad, incluyendo LVDS, RSDS,. mini LVDS, LVPECL, HSTL diferencial y SSTL diferencial. . Terminales de E/S de 2.5-V y 1.8 -V, SSTL clase I y II, 1.8-V y 1.5-V HSTL clase I. y II, 3.3-V PCI y PCI-X 1.0, 3.3 -, 2.5 -, 1.8 -, y 1.5-V LVCMOS, y 3.3 -, 2.5 -, y 1.8-V LVTTL. . Especificaciones de compatibilidad de PCI-X 1.0 a 133 - MHz.. . Soportes de memoria externa de alta velocidad que incluyen DDR, DDR2, y. SDRAM, QDRII SRAM soportada en funciones de Altera IP MegaCore para facilidad de uso. . Tres registros dedicados por elemento de I/O (IOE): un registro de entrada, un. registro de salida, y un registro de salida habilitable. . Bus programable.. . Demoras programables para pines de IOE o arreglos lógicos.. . Agrupación de bancos de I/O para VCCIO único y/o ajustes de VREF.. . Soporte estándar MultiVolt ™ de E/S para interfaces de 1.5 -, 1.8 -, 2.5 -y 3.3 -.. . Soporte de operaciones hot-socketing.. . Tri - estado en pines de I/O antes y durante la configuración.. .- Administración de circuitos de reloj flexible. . Red jerárquica de reloj hasta 402.5 MHz de rendimiento.. . Cuatro PLLs por dispositivo proveen multiplicación y división de reloj, cambio de. fase, ciclo de servicio programable, salidas de reloj externas y permite además la administración del reloj por niveles del sistema..

(34) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. . 20. Tiene 16 líneas de reloj globales que manejan todo el dispositivo.. .- Configuración de dispositivos. . La configuración serial rápida permite tiempos de configuración menores de 100 ms.. . Las características de descompresión posibilitan el almacenamiento de archivos de. programación más pequeños y tiempos de configuración más rápidos. . Soporta configuraciones económicas a través de dispositivos de configuración. seriales. . Los dispositivos de configuración soportan voltajes múltiples (3.3, 2.5, o 1.8 V).. Tabla 1.1. Características de la familia de dispositivos Cyclone II.. 1.2.5 Descripción funcional Los dispositivos de Cyclone II contienen dos dimensiones de filas y columnas basado en una arquitectura que permite implementar lógica por encargo. Las filas y columnas están interconectadas a diferentes velocidades proveyendo señales de interconexión entre la matriz lógica de bloques (LABs), bloques de memoria empotrados y multiplicadores empotrados..

(35) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 21. Figura 1.5. Diagrama en Bloques del Dispositivo Cyclone II EP2C20.. El arreglo lógico consiste en LABs, con 16 elementos de lógica (LEs) en cada LAB. Un LE es una pequeña unidad lógica que provee una implementación eficiente de las funciones lógicas de usuario. Los LABs son agrupados en filas y columnas en todo el dispositivo. Los dispositivos de Cyclone II tiene un rango de densidad de 4,608 a 68,416 LEs. Los dispositivos de Cyclone II proveen una red de reloj global y hasta cuatro lazos de fase cerrada (PLLs). La red de reloj global consta de 16 líneas de reloj globales que se utilizan en todo el dispositivo. Puede suministrar relojes para todos los recursos dentro del dispositivo, como elementos de entrada y salida (IOEs), Les, multiplicadores empotrados y bloques de memoria empotrados. Los bloques de memoria M4K son de puertos duales (dual-port) con 4 Kbits de memoria más la paridad (4,608 bits). Estos bloques están dedicados para utilizarse como puertos duales o como puertos de memoria simples hasta 36 bits y 260 MHz. Estos bloques son organizados en columnas a lo largo del dispositivo entre ciertos LABs. Estos dispositivos brindan entre 119 a 1,152 Kbits de memoria empotrada. Cada bloque de multiplicador empotrado puede implementar hasta dos multiplicadores 9 × 9 bits, o un solo multiplicador de 18 × 18 bits hasta 250 MHz de rendimiento. Los multiplicadores empotrados son organizados en columnas a través del dispositivo..

(36) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 22. Figura 1.6. Arquitectura de los Bloques Multiplicadores Empotrados.. Cada pin de I/O de los dispositivos de Cyclone II es alimentado por uno IOE ubicado al final de las filas y columnas del LAB, alrededor de la periferia del dispositivo. Los pines de I/O soportan varias terminaciones y diferentes estándares de I/O, como los de 66 y 33 MHz, 64 y 32 bits PCI, PCI-X, así como el estándar LVDS I/O con una razón de datos máxima de 805 Mbps para las entradas y 640 Mbps para las salidas. Cada IOE contiene un buffer bidireccional de I/O y tres registros para las señales de entrada, salida y salida habilitable. (Corporation, 2007). Figure 1.7. Estructura de una IOE Cyclone II..

(37) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 23. 1.2.6 Elementos Lógicos La unidad más baja de la lógica en la arquitectura de Cyclone II, la LE, es compacta y suministra características avanzadas con eficiente utilización lógica. . Generador de función que puede implementar cualquier función de cuatro variables. (A four-input look-up table (LUT)). . Un registro programable.. . Una cadena de conexión de acarreo.. . Una conexión de cadena de registro.. . La habilidad para manejar interconexiones de cualquier clase: fila, columna, cadena. de registro e interconexiones de enlace directas. . Soporte para registro de empaquetamiento.. . Soporte para registro de realimentación.. Figura 1.8. Cyclone II LE.. El registro programable de cada LE puede ser configurado para operaciones de tipo D, T, JK, o SR. Cada registro tiene datos, reloj, reloj habilitable y borrado (clear) de entradas..

(38) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 24. Las señales que usan la red de reloj global, los pines de I/O de uso general, o cualquier lógica interna pueden cambiar el registro de reloj y borrar las señales de control. Cualquier pin de I/O de uso general o la lógica interna puede manejar la habilitación del reloj. Para funciones combinacionales, las salidas LUT evitan el registro y administran directamente las salidas LE. Cada LE tiene tres salidas para manejar el transporte local, las filas, y los recursos de direccionamiento de columna. El LUT o registro de salida puede administrar estas tres salidas de forma independiente. Dos de las salidas LE conducen las filas o columnas y dirigen las conexiones de direccionamiento de enlace y la otra maneja los recursos de interconexión locales, permitiendo que el LUT administre una salida mientras el registro dirige una salida diferente. Esta característica, el empaquetamiento de registro, mejora la utilidad del dispositivo porque el mismo puede usar el registro y el LUT para las funciones inconexas. Cuando se usa el empaquetamiento de registro, las señales de control de la carga síncrona del LAB no están disponible. Además de los tres productos de direccionamiento generales, los LEs dentro de un LAB tienen registros de salida en cadena. Los registros de salida en cadena permiten que los registros dentro del mismo LAB se dispongan juntos en cascada. También permiten que un LAB use LUTs para una sola función combinacional y los registros puedan ser usados para implementar cambios inconexos en los registros. Estos recursos aceleran las conexiones entre LABs mientras preservan los recursos de interconexión locales. (Corporation, 2007).

(39) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 25. Figura 1.9. Estructura de un LAB Cyclone II.. 1.2.7 Software Los dispositivos Cyclone II son soportados por el software de diseño Altera® Quartus® II, el cual provee herramientas para análisis y comprensión de diseños programables SOPC. Quartus II es una herramienta de software producida por Altera para el análisis y la síntesis de diseños realizados en HDL. Permite al desarrollador compilar sus diseños, realizar análisis temporales, examinar diagramas RTL y configurar el dispositivo de destino con el programador. (Corporation, 2007) 1.3. Lenguajes de Descripción de Hardware. Los lenguajes de descripción hardware (HDLs, Hardware Description Languages) vienen utilizándose, desde los años 70, en los ciclos de diseño de sistemas digitales asistidos por herramientas de CAD electrónico. Al principio surgieron una serie de lenguajes que no llegaron a alcanzar un éxito que permitiera su consolidación en el campo industrial o académico. En los años 80 aparecen los lenguajes Verilog y VHDL que, aprovechando la disponibilidad de herramientas de.

(40) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 26. hardware y software cada vez más potentes y asequibles y los adelantos en las tecnologías de. fabricación. de. circuitos. integrados,. logran. imponerse. como. herramientas. imprescindibles en el desarrollo de nuevos sistemas. En la actualidad ambos lenguajes están normalizados y comparten una posición hegemónica que está arrinconando –y terminará, probablemente, en poco tiempo eliminando del mercado – al resto de lenguajes que de un modo u otro todavía son soportados por algunas herramientas de CAD. Estos lenguajes son sintácticamente similares a los de programación de alto nivel –Verilog tiene una sintaxis similar al C y VHDL al ADA– y se diferencian de éstos en que su semántica está orientada al modelado del hardware, es decir son lenguajes de programación concurrentes. Su capacidad para permitir distintos enfoques en el modelado de los circuitos y su independencia de la tecnología y metodología de diseño permiten extender su uso a los distintos ciclos de diseño que puedan utilizarse. Por ello, para los profesionales relacionados de alguna manera con el diseño o mantenimiento de sistemas digitales resulta hoy en día imprescindible su conocimiento. (Güichal, 2005) 1.3.1 Lenguaje de Descripción de Hardware de Altera AHDL (siglas en inglés de "Altera Hardware Descriptio nLanguage", 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 (Complex Programmable Logic Devices o 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. Permite la descripción del hardware a través de su comportamiento (behavior), en lugar de hacerlo a través de un circuito. Usa 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 utiliza 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. Este 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).

(41) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 27. Es un lenguaje de alto nivel que permite describir las características de una red lógica. Orientado a la descripción de estructuras y el comportamiento del hardware. 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. 1.3.2 Ventajas y desventajas del lenguaje AHDL 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: Entre sus principales inconvenientes encontramos que 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. 1.3.3 Características del lenguaje . 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..

(42) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 28. 1.3.4 Estructura 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 pueden asignar valores constantes de vcc o gnd a 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. 1.3.5 Palabras Claves  . Expresiones booleanas NOT:!, NOT.

(43) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. . AND: &, AND. . OR: #, OR. . XOR: $, XOR. 29. Tabla 1.2. 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”. . Binnario: B”1110101011111010”.

(44) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 30. 1.3.6 Vectores Los vectores son múltiples bits tratados como una sola unidad. Los rangos del vector se indican a través de los índices, que van después del nombre del vector y entre corchetes. 1.3.7 Primitivas . Primitivas de entrada/salida: INPUT, OUTPUT, BIDIR.. . Primitivaslógicas: AND, NAND, OR, NOR, XNOR, XOR, NOT.. . Flip-flop y latchs: LATCH, DFF, DFFE, JKFF, JKFFE, SRFF, SRFFE, TFF, TFFE.. . Primitivas básicas: VCC y GND.. 1.3.8 Tablas de Verdad Se trata de un componente generado a partir de un patrón arbitrario de entradas-salidas. La primera línea declara la relación entrada(s)-salida(s) y las siguientes definen el patrón de comportamiento (los patrones de entrada pueden contener “indefinido” (x)). Son usadas para especificar lógica combinacional en general y tablas de transiciones en máquinas de estado. (Ver Anexo II) 1.3.9 Máquinas de Estados Las máquinas de estados son un modelo de comportamiento de un sistema con entradas y salidas, en donde las salidas dependen no sólo de las señales de entradas actuales sino también de las anteriores. Las máquinas de estados se definen como un conjunto de estados que sirve de intermediario en esta relación de entradas y salidas, haciendo que el historial de señales de entrada determine, para cada instante, un estado para la máquina, de forma tal que la salida depende únicamente del estado y las entradas actuales. Es posible clasificar las máquinas de estados en aceptoras o transductoras: Aceptoras (también llamadas reconocedoras o discriminadoras): Son aquellas en donde la salida es binaria (sí/no), depende únicamente del estado y existe un estado inicial. Puede decirse, entonces, que cuando la máquina produce una salida "positiva" (es decir, un "si"),.

(45) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 31. es porque ha "reconocido" o "aceptado" la secuencia de entrada. En las máquinas de estados aceptoras, los estados con salida "positiva" se denominan estados finales. Transductoras: Son las más generales, que convierten una secuencia de señales de entrada en una secuencia de salida, pudiendo ésta ser binaria o más compleja o depender de la entrada actual, además también puede prescindirse de un estado inicial. Hay dos modos de crear una máquina de estados: Usando una MACHINE WITH STATES o bien usando una MACHINE OF BITS. (Ver Anexo II). Figura 1.10. Representación de una Máquina Estados Finita.. 1.4. Conclusiones del capítulo. La tecnología FPGA está dominando el mercado actual, su utilización ha aumentado debido a que los dispositivos FPGAs ofrecen las mismas posibilidades que los diseños basados en sistemas con procesadores y con ASICs. El silicio reprogramable tiene la misma capacidad de ajustarse que un software que se ejecuta en un sistema basado en procesadores, pero no está limitado por el número de núcleos disponibles. Tienen la posibilidad de realizar operaciones en paralelo, lo que supone una ventaja respecto a los sistemas con procesadores, puesto que sus dispositivos no tienen que competir por los mismos recursos, además ofrecen altas velocidades y fiabilidad. La adopción de la tecnología FPGA continúa creciendo mientras que las herramientas de alto nivel evolucionan para ofrecer a los ingenieros e investigadores con diferentes niveles de experiencia los beneficios del silicio reprogramable..

(46) CAPÍTULO 1. Los FPGAs de Altera. Lenguaje de Descripción de Hardware AHDL. 32. La Corporación Altera ofrece una amplia gama de dispositivos FPGAs, con altas características de rendimiento, velocidades y posibilidades de diseño. Brinda el lenguaje de programación de hardware AHDL, para el trabajo con sus dispositivos, este se basa en una sintaxis similar al VHDL, lenguaje bien conocido por los programadores de hardware, lo que posibilita un aumento en la utilización de los chips FPGAs de Altera..

Figure

Figura 1.1. Diagrama representativo FPGA.
Figura 1.2. Descripción Verilog .
Figura 1.3.  Flujo de diseño HW genérico
Figura 1.4. Diagrama Básico de un CLB.
+7

Referencias

Documento similar

En este trabajo de diploma se identifica el funcionamiento de los sistemas de conversión y transmisión de la información de la estación de trabajo para objetos aéreos del

CONCLUSIONES En el presente trabajo se desarrolló la asimilación del funcionamiento del componente programable DSP TMS320C6713PYPA de la tarjeta T222, a partir del proceso de