La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Julio Cadena Gabriel Mollocana

Presentaciones similares


Presentación del tema: "Julio Cadena Gabriel Mollocana"— Transcripción de la presentación:

1 Julio Cadena Gabriel Mollocana
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. Julio Cadena Gabriel Mollocana La tendencia de la tecnología actual está basada en dispositivos electrónicos que posean más funciones, un mayor rendimiento, consuman menos potencia, tengan un menor tamaño y menor precio. Además, que estos sistemas estén disponibles lo antes posible en el mercado de consumidores. Estas características motivaron a la industria electrónica a crear una nueva metodología en el diseño de circuitos integrados, de esta manera aparecen los System on Chip (SoC). Este proyecto de grado propone el proceso empleado para obtener el primer System on Chip (SoC) diseñado, desarrollado, y emulado en la Escuela Politécnica del Ejército (ESPE) y en el Ecuador. Dando un paso fundamental para el diseño de chips, facilitando e incentivando futuras investigaciones que permitan contribuir con el desarrollo tecnológico y económico del país. A la vez que brinda la posibilidad de abrir un nuevo modelo de negocios en este campo.

2 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEMS-ON-CHIP, EMPLEANDO TECNOLOGIA XILINX EDK ESTADO DEL ARTE XILINX SPARTAN-6 FPGA EMBEDDED KIT APLICACIÓN DISEÑO DE LA RESULTADOS OBTENIDOS CONCLUSIONES Y RECOMENDACIONES

3 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEMS-ON-CHIP, EMPLEANDO TECNOLOGIA XILINX EDK ESTADO DEL ARTE XILINX SPARTAN-6 FPGA EMBEDDED KIT APLICACIÓN DISEÑO DE LA RESULTADOS OBTENIDOS CONCLUSIONES Y RECOMENDACIONES

4 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS El estado del arte o nivel más avanzado de la tecnología en el campo de diseño de chips, se ha logrado mediante la implementación de sistemas embebidos basados en Systems on Chip (SoC) sobre FPGA. Lo que actualmente buscan los diseñadores de dispositivos electrónicos es integrar un mayor número de elementos en un simple chip, siempre y cuando no se incremente el tamaño del mismo, disminuya el tiempo de salida del producto al mercado (time-to-market) y aumente el tiempo del producto en el mercado (time-in-market). EL ESTADO DEL ARTE ABARCA LOS SIGUIENTES TEMAS (MENCIONAR CADA UNO DE ELLOS)

5 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

6 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
ESTADO DEL ARTE SYSTEM ON CHIP SISTEMA EMBEBIDO BASADO EN FPGA REUTILIZACIÓN E INTEGRACIÓN DE COMPONENTES DISMINUCIÓN EN EL TIEMPO DE DISEÑO TIME TO MARKET – TIME IN MARKET Definición de un System on Chip Circuito Integrado complejo, que integra la mayoría de elementos funcionales de un producto final completo, dentro de un simple chip (MENCIONAR LOS COMPONENTES DE LA FIGURA INDICANDO QUE SON BLOQUES DE PROPIEDAD INTELECTUAL O IP CORES  CLICK EN SIGUIENTE) System on chip es una definición que ha tomado mucho énfasis en países que basan su economía y desarrollo en la fabricación de productos de alta tecnología. Estos sistemas son diseñados sobre Field Programmable Gate Arrays (FPGA), ya que han facilitado el desarrollo de nuevos productos gracias a su reprogramabilidad en el momento mismo del diseño y reutilización de componentes o IP Cores. (ESTE CONCEPTO PARA LOS DOS PRIMEROS ITEMS DEL GRAFICO DE LA IZQUIERDA) LEER DISMINUCION EN EL TIEMPO DE DISEÑO GRACIAS A LA REUTILIZACIÓN DE IP CORES LO QUE AYUDA A MEJORAR EL TTM Y EL TIM, EL TTM ES EL TIEMPO QUE SE DEMORA EN SALIR UN PRODUCTO AL MERCADO, Y EL TIM ES LA PERMANENCIA QUE TIENE DICHO PRODUCTO EN EL MERCADO. Los FPGAs permitirán que en un futuro cercano el Ecuador se convierta en desarrollador y exportador de tecnología.

7 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

8 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
ESTADO DEL ARTE IP CORES TIPO SOFT CORE FIRM CORE HARD CORE NIVEL DE ABSTRACCION RTL, gate level Gate level, layout Layout DESCRIPCION VHDL, Verilog Netlist Descripción de transistores PORTABILIDAD A todas las tecnologías Limitada a tecnologías probadas Optimizada a una tecnología especifica FLEXIBILIDAD Alta Limitada Muy poca PREVISIBILIDAD Baja Buena Alta y definida por la tecnología Los IP Cores (Intellectual Property Cores) o Núcleos de Propiedad Intelectual son bloques con funciones preestablecidas, previamente probadas y verificadas por empresas desarrolladoras, para que posteriormente puedan ser integrados en sistemas SoC. Tradicionalmente, diferentes componentes eran colocados e interconectados sobre una tarjeta (PCB) con la finalidad de cumplir una función específica (Figura.1 COMPONENTES REALES). Con la utilización de IP Cores, los chips individuales que conformaban los componentes en hardware fueron reemplazados por componentes virtuales, que cumplen las mismas funciones (Figura. 2 COMPONENTES VIRTUALES). Esto brinda la ventaja de agrupar los componentes dentro de un mismo chip y disminuir notablemente el tamaño y consumo de potencia de los productos ofrecidos. TIPOS DE IP CORES Existen 3 tipos de IP Cores: Soft Cores, Hard Cores, y Soft Cores. El resumen de la tabla mostrada en esta diapositiva es los Soft Cores, son IPs que pueden ser modificados y además son portables para ser colocados en cualquier otro sistema, los Hard Cores, son IPs que no se los puede modificar, ni tampoco permiten su portabilidad a otros sistemas, ya que sus componentes vienen predefinidos en el FPGA, y los Firm Cores, son una mezcla de los dos anteriores, ya que si bien es cierto se los puede modificar en cierta manera, no pueden ser portados a otros sistemas ya que vienen definidos en el FPGA por cada fabricante. RTL (Register Transfer Level).- Descripción de operaciones y transferencias entre registros de hardware. Gate Level.- Descripción de operación a través de compuertas lógicas. Layout.- Descripción de operación a través de transistores.

9 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

10 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
ESTADO DEL ARTE ARQUITECTURA SoCs Esta arquitectura integra varios componentes heterogéneos en el mismo chip. La arquitectura dentro del chip utiliza un Sistema Distribuido con una topología tipo BUS ya que todos sus componentes comparten la misma. . línea de comunicación Una arquitectura SoC es un conjunto organizado de elementos capaces de compartir información entre ellos. Esta arquitectura debe permitir a los fabricantes de IP Cores integrar sus diseños a un sistema, garantizando su funcionamiento y la comunicación con otros IP Cores. (luego leer lo que esta en el texto de la derecha) (DECIR) Las actuales arquitecturas SoC, se basan principalmente en estándares como AMBA de ARM, CoreConnect de IBM, y el tradicional bus maestro-esclavo AMBA como dos arquitecturas de bus segmentadas, una de alta velocidad utilizada para el sistema y la otra para periféricos de propósito general, conectadas mediante un bridge. CoreConnect utilizado por Xilinx, implementa un Processor Local Bus (PLB) para conectar el CPU a los periféricos, y un Local Memory Bus (LMB) para conectarlo a las memorias del sistema. Leer tercer párrafo y mencionar: La ventaja de utilizar esta arquitectura es que si falla un elemento no genera el fallo de todo el sistema. Además una buena comunicación es la clave para una arquitectura eficiente.

11 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

12 PROCESO DE DISEÑO DE SoCs
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. ESTADO DEL ARTE PROCESO DE DISEÑO DE SoCs DISMINUIR TIEMPO DE DISEÑO. MEJORAR LA ESPERANZA DE VIDA DE UN PRODUCTO. INTEGRAR GRANDES DISEÑOS EN UN SOLO CHIP. DESARROLLAR PARALELAMENTE HARDWARE Y SOFTWARE. (DECIR) Un proceso óptimo de diseño de un SoC debe cumplir los siguientes requerimientos del mercado: (Leer vinietas) (LUEGO REFIRIENDOSE AL GRAFICO EXPONER LO SIGUIENTE) El proceso de diseño de un system on chip, comienza por las especificaciones de diseño que va a tener tanto la parte de hardware como la de software, de aquí se hace una partición. Por un lado la parte de hardware es diseñada sobre una plataforma la misma que brinda la facilidad de integrar diferentes IP Cores (ya sean los ofrecidos por la plataforma o los creados por el usuario) en una arquitectura con el fin de obtener la plataforma de hardware. Por otro lado el software utiliza la plataforma de hardware creada para realizar una aplicación sobre un Sistema Operativo empleando los IP cores añadidos al sistema. En ambos casos se simula para depurar las plataforma de HW y SW, para de esta manera ayudados de una plataforma Emulación basada en FPGA comenzar a realizar pruebas y verificaciones del sistema con el fin de obtener un prototipo que haya cumplido con las especificaciones esperadas y de esta manera comenzar con la fabricación en serie de este SoC. Cumplir especificaciones de diseño Diseñar la plataforma de hardware y software Obtener un Modelo Intermedio en base a las especificaciones Emular el Modelo Intermedio Implementar en serie el SoC, previo a la realización de pruebas en un prototipo

13 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

14 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
ESTADO DEL ARTE CO-DISEÑO DE HW Y SW Flujo de Diseño Tradicional Flujo del Codiseño sinergismo(|explotar la capacidad que tienen los dos compuestos HW/SW de potenciar las acciones del diseño) Cumplimiento de los objetivos del sistema mediante la explotación del sinergismo de hardware y software a través de su diseño concurrente. Flujo de Diseño Tradicional  como Microcontrolador Hw grupo de diseño independiente y Sw lo diseña otro grupo (ESTO PARA TENER ALGO MAS PARA DECIR En el flujo o proceso de diseño convencional, se planteaban las especificaciones del diseño para un chip y grupos independientes de expertos los diseñaban sin que necesariamente haya una cooperación entre ellos. Por ejemplo, en un microcontrolador, una empresa especializada diseña, construye, y vende el hardware, mientras que para darle una funcionalidad es necesario comprar dicho hardware y desarrollar un software para que este chip cumpla con las especificaciones. Sin embargo, este software ya no lo realiza la misma empresa que fabricó el chip, sino lo diseña el grupo de personas que van a emplear el chip. Es decir se diseña de manera independiente hardware y software.) Flujo de Codiseño  el mismo grupo diseña tanto Hw como de Sw aprovechando las funcionalidades y mejores características de ambos grupos con el único fin de lograr una OPTIMIZACION del diseño Sin embargo en los SoCs se plantea un nuevo término, el cual es el Co - Diseño de Hardware y Software, en el cual a partir de las especificaciones de diseño, el chip es diseñado por el mismo grupo de expertos en cooperación. Comúnmente el hardware y el software para un sistema embebido se desarrollan en paralelo. Constantes realimentaciones en el diseño entre los dos equipos de diseño deben ocurrir en este modelo de desarrollo. El resultado es que cada parte pueden tomar ventaja de lo que el otro puede hacer. El componente de software puede aprovechar las características especiales de hardware para obtener un mayor rendimiento. El componente de hardware puede simplificar el diseño de módulo, si la funcionalidad se puede lograr en el software que reduce la complejidad y el costo de hardware en general) En el Co–diseño, el hardware y el software de un sistema embebido se desarrollan en paralelo, realizando constantes realimentaciones entre los equipos de diseño. El resultado es que cada parte puede tomar ventaja de lo que la otra puede hacer. Modelo Funcional  Especificaciones del Sistema en base al dispositivo que se espera obtener Moldeamiento de la Arquitectura  La arquitectura es definida generalmente por la plataforma que se este empleando. Partición y Análisis  Se asigna las funciones del sistema que va a tener o que se va a desarrollar sobre el HW, y que funciones se van a desarrollar sobre SW. Para poder pasar a la siguiente fase que es: Implementación de HW  Se realiza el diseño de la plataforma de HW, creando o añadiendo e integrando IP Cores, para luego finalizar con la síntesis del codigo VHDL de la plataforma de HW resultante. (La syntesis es un proceso donde una VHDL se compila y se asignan a una tecnología de aplicación, como una FPGA o ASIC) Implementación de SW  En esta fase se realiza la programación de la aplicación de software, empleando los drivers y librerias para manejar los IP Cores integrados en hardware. Se finaliza con la compilación del programa en lenguaje C o C++, y su almacenamiento en el nucleo del procesador. Integración del Sistema  se procede emular el sistema en una tarjeta que permite realizar un prototipo del sistema a desarrollarse. En HW se crea o agrega IP core y se realiza la sintesis En SW se crea un programa en C y se compila Diseñado por grupos Independientes de expertos Diseñado por el mismo grupo de expertos en cooperación OPTIMIZACIÓN

15 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

16 METODOLOGÍAS DE DISEÑO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. ESTADO DEL ARTE METODOLOGÍAS DE DISEÑO En resumen, en la metodología TDD no existe reutilización, y sus principales inconvenientes son las limitaciones del tiempo de diseño y de la tecnología de fabricación, que en esos momentos alcanzaba pocos micrones (PRIMER GRAFICO). Por otro lado en la metodología BBD, se comienza a utilizar bloques de funciones lógicas preestablecidas (IP Cores), los equipos de diseño estaban orientados a los ASIC, y el interés se enfocaba en los FPGA (SEGUNDO GRAFICO). Esto fue el inicio del concepto PBD. DEFINICIÓN DE PLATAFORMA (ULTIMO GRAFICO) "una gestión integrada, y conjunto de características comunes, en el que un conjunto de productos o familia de productos se pueden construir”. Como se puede observar en el ultimo grafico, se emplea la misma plataforma para diseñar varios dispositivos de similares características, por ejemplo (mencionando en el grafico): una camara fotografica casera, una cámara fotográfica profesional, o una videograbadora, es decir un mismo chip sirve para hacer muchos sistemas de diseño.

17 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

18 ESTADO DEL ARTE Definición General:
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. ESTADO DEL ARTE SISTEMAS EMBEBIDOS Están dedicados a tareas específicas Tienen restricciones de tiempo real Concurrencia de procesos Bajo Consumo de energía Bajo Precio Bajo Peso Pequeñas Dimensiones Generalmente emplean un (RTOS) Definición General: Es un sistema computacional con un alto grado integración de Hardware (HW) y Software (SW), que son diseñados para desempeñar una función específica. (Primero Leer el concepto) Luego decir: En general los sistemas embebidos basados en SoCs están diseñados para hacer alguna tarea específica, en lugar de ser un computador de propósito general para múltiples tareas Los Sistemas Embebidos (descripción de figura) pueden encontrarse en:  Electrónica de consumo: Cámaras digitales, celulares, reproductores mp3. En el hogar: Televisores, microondas, sistemas de cine en casa. En el trabajo: Copiadoras, sistemas de seguridad, switches, routers. Equipos médicos: Marcapasos, desfibriladores, electrocardiógrafos. Aeronáutica y aeroespacial: Satélites, sistemas de guía, vehículos espaciales. Industria: Robots industriales, osciloscopios, multímetros, etc. (Leer Caracteristicas)

19 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

20 SISTEMAS EMBEBIDOS EN TIEMPO REAL
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. ESTADO DEL ARTE SISTEMAS EMBEBIDOS EN TIEMPO REAL Sistemas que responden a eventos externos de una manera oportuna, es decir el tiempo de respuesta está garantizado (LEER EL CONCEPTO DE LA IZQUIERDA) (SEÑALANDO EL GRAFICO DECIR:) Los acontecimientos externos pueden tener características sincrónica o asincrónica Limitaciones de tiempo en respuesta a los acontecimientos externos incluye reconocer cuando ocurre un evento, realizar la transformación requerida como resultado del evento, y hacer salir los resultados necesarios dentro de un límite temporal determinado Una buena manera de entender la relación entre los sistemas en tiempo real y sistemas embebidos es verlos como dos círculos que se entrecruzan, como se puede observar en la figura de abajo, que no todos los sistemas embebidos presentan comportamientos en tiempo real, ni son todos los sistemas embebidos en tiempo real. Sin embargo, los dos sistemas no son mutuamente excluyentes, y la zona en que se superponen crea la combinación de los sistemas conocidos como sistemas embebidos de tiempo real

21 SISTEMAS EMBEBIDOS EN TIEMPO REAL
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. ESTADO DEL ARTE SISTEMAS EMBEBIDOS EN TIEMPO REAL Sistemas Soft de Tiempo Real Sistemas Hard de Tiempo Real Los sistemas se clasifican en dos tipos de acuerdo al grado de tolerancia al incumplimiento de plazos: Muchos sistemas cumplen con limitaciones de tiempo y plazos bien determinados en la ejecución de tareas y obtención de resultados. Los sistemas se clasifican en dos tipos de acuerdo al grado de tolerancia al incumplimiento de plazos: Sistema Hard de Tiempo Real debe cumplir sus plazos con un grado casi nulo de tolerancia, si se desea cambiar el rumbo de la trayectoria de un misil y el tiempo de respuesta del sistema no es determinista, los posibles retardos no deseados causarían daños y pérdidas incalculables, al impactar el misil en lugares no previstos Un Sistema Soft de Tiempo Real debe cumplir sus plazos con un grado aceptable de tolerancia, Los reproductores de DVD son Sistemas Soft de Tiempo Real. Esto se debe a que, decodifican audio y video mientras responden a los comandos de los usuarios en tiempo real. Sin embargo, si el usuario envía una serie de comandos muy rápido y causa que el decodificador pierda información, el retardo no ocasiona más que una visible distorsión momentánea.

22 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
Estado del Arte SoC(System on Chip) IP Cores Arquitectura SoCs Proceso de Diseño Co-Diseño de HW y SW Metodologías de Diseño Sistemas Embebidos Sistemas Embebidos en Tiempo Real RTOS

23 SISTEMAS OPERATIVO EN TIEMPO REAL
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. ESTADO DEL ARTE SISTEMAS OPERATIVO EN TIEMPO REAL Definición: es un programa que realiza la ejecución de programas en forma oportuna, administra los recursos del sistema, y proporciona una base coherente para el desarrollo de código de aplicación. Peta Linux Tornado/VxWorks Lynx OSE QNX RT-Linux ThreadX (LEER DEFINICIÓN DE LA PARTE DERECHA) – LUEGO MENCIONAR: KERNEL La parte principal de un RTOS, es el kernel o núcleo del Sistema Operativo. Este proporciona la lógica básica, la programación, y los algoritmos para la gestión de los recursos del sistema LUEGO decir: Entre los RTOS Comerciales mas comunes tenemos: (Listar los que aparecen en la figura)

24 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEMS-ON-CHIP, EMPLEANDO TECNOLOGIA XILINX EDK ESTADO DEL ARTE XILINX SPARTAN-6 FPGA EMBEDDED KIT APLICACIÓN DISEÑO DE LA RESULTADOS OBTENIDOS CONCLUSIONES Y RECOMENDACIONES

25 XILINX SPARTAN-6 FPGA EMBEDDED KIT
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. XILINX SPARTAN-6 FPGA EMBEDDED KIT Plataforma de Hardware Plataforma de Software XPS SDK Microblaze Processor Subsystem

26 XILINX SPARTAN-6 FPGA EMBEDDED KIT PLATAFORMA DE HARDWARE
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. XILINX SPARTAN-6 FPGA EMBEDDED KIT PLATAFORMA DE HARDWARE FPGA SPARTAN 6 CONECTOR FMC-LPC MEMORIA DDR3 PUERTO SERIAL POWER ON / OFF PUERTO USB JTAG POWER 12V DIP SWITCHES X 4 ENTRADA DE RESET RJ45 MENCIONAR CADA ELEMENTO PULSANDO LA TECLA SIGUIENTE PARA CADA UNO DE ELLOS Y LUEGO DECIR: LAS Consideraciones de los relojes del Sistema Este sistema funciona a una frecuencia de referencia de 200 MHz El procesador MicroBlaze y el bus de sistema funcionan a 100 MHz La memoria DDR3 funciona a Mhz DECIR: CABE ACOTAR QUE LA ENTRADA DE RESET ES ACTIVADA EN ALTO Reinicio de estructuras de bus. Reinicio de periféricos 16 ciclos de reloj después. Reinicio del CPU 16 ciclos de reloj después del reinicio de periféricos. VIDEO DVI/VGA LEDS X 4 PUSH BUTTONS X 4 BUS PCI SOCKET PARA RELOJ EXTERNO

27 XILINX SPARTAN-6 FPGA EMBEDDED KIT
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. XILINX SPARTAN-6 FPGA EMBEDDED KIT Selección de IP Cores desde el IP catalog Puertos Archivos de Acceso a los proyectos Interfaces de Buses Direcciones Expansión de conexiones y buses asosiados de los IPs Desarrollo de las aplicaciones de Software ISE Design Suite Embedded Edition 12.1 Esta plataforma está constituida por el ISE Design Suite Embedded Edition Este software proporciona herramientas para el diseño embebido y una serie de IP Cores adaptados a las necesidades comunes de los desarrolladores. Una de las herramientas principales de ISE Desing Suite Embedded Edition es el Embedded Development Kit (EDK). EDK El Embedded Development Kit (EDK) de Xilinx es un ambiente integrado para el diseño de sistemas embebidos. Este conjunto preconfigurado incluye Xilinx Platform Studio (XPS), para el diseño de hardware, y Software Development Kit (SDK) para el diseño de software. Así como, toda la documentación e la mayoría de IP Cores que se podrían necesitar en el diseño de SoCs con procesadores PowerPC y/o MicroBlaze. CUANDO SE ACABE EDK PULSAR SIGUIENTE Y COMENZAR HABLAR DEL XPS XPS Al utilizar XPS se puede crear sistemas embebidos procesados altamente personalizables, e integrar estos diseños dentro de un FPGA. XPS está compuesto de una vista grafica de diseño y varios asistentes que guían a los usuarios a través de los pasos necesarios para crear sistemas basados en procesador. (comenzar a mencionar en el grafico) La ventana principal del XPS está dividida en estas tres áreas: Área de Información del Proyecto (Project Information Area) a) Ventana Project b) Ventana Application c) Ventana IP Catalog Área de desarrollo de proyecto d) Panel de Conexiones (Conectivity Panel) e) Expansión de conexiones y buses asociados a los IPs (View Buttons) f) Filtros de Panel (Filters Panel) Área de Depuración del Proyecto g) Ventana de Consola h) Ventana de Advertencias (Warnings) i) Ventana de Errores La plataforma de Hardware debe tener al menos un procesador (Microblaze 32 bits RISC) arquitectura Harvard (donde la memoria de datos es separada de la de instrucciones mediante el bus LMB(local memory bus)), para conectar los periféricos al procesador se emplea el PLB(Processor Local Bus) y los Ip cores perifericos que entre los mas destacados para este proyecto se encuentran: ADC, DAC, GPIO, UART, BUS SPLIT, FLIP FLOP, Controlador de interrupciones y timer counter Panel de Conexiones en System Assembly View Ventana de Consola Vista del Diagrama de Bloques del Sistema

28 XILINX SPARTAN-6 FPGA EMBEDDED KIT PLATAFORMA DE SOFTWARE – SDK
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. XILINX SPARTAN-6 FPGA EMBEDDED KIT PLATAFORMA DE SOFTWARE – SDK Aplicación en C Plataforma de Hardware Ventana de Interacción y Programación Board Support Package SDK SDK le provee de un ambiente para crear plataformas de software, ya que trabaja con los diseños de hardware creados en el XPS. SDK es un ambiente de desarrollo recomendado para los proyectos de aplicaciones de software orientado a los procesadores embebidos de Xilinx: PowerPC y MicroBlaze. En la figura se muestra la ventana principal del SDK donde tenemos la Ventana Explorador de Proyectos que muestra los elementos que componen el SDK Workspace (y de ahí seguir mencionando cada elemento que se despliega) Ventana Explorador de Proyectos Ventana de Consola

29 XILINX SPARTAN-6 FPGA EMBEDDED KIT
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. XILINX SPARTAN-6 FPGA EMBEDDED KIT Plataforma de Hardware Plataforma de Software XPS SDK Microblaze Processor Subsystem

30 XILINX SPARTAN-6 FPGA EMBEDDED KIT MICROBLAZE PROCESSOR SUBSYSTEM
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. XILINX SPARTAN-6 FPGA EMBEDDED KIT MICROBLAZE PROCESSOR SUBSYSTEM MicroBlaze Processor Subsystem: Es una plataforma, que expone varias características de la tarjeta SP605, se basa en un procesador MicroBlaze con varios periféricos que permiten realizar aplicaciones embebidas. Incluido en este diseño de referencia se encuentra: Una aplicación de software stand-alone para testear la tarjeta SP605 Y una imagen para ejecutar una aplicación de software webserver sobre el RTOS Petalinux. El SP605 MicroBlaze Processor Subsystem puede ser tratado así mismo como un componente SoC, ya que posee los siguientes bloques de elementos: (primer click) El bloque del procesador conformado principalmente por el procesador MicroBlaze, una memoria RAM(8K) interna, 1 dual timer/counter, y un controlador de interrupciones Buses (segundo click) Memorias on Chip como: Flash/SDRAM, SysACE, SPI, IIC EEPROM, MPMC, RAM (32K) (tercer click) Y las Interfaces con los Dispositivos periféricos como: GPIO, UART, TEMAC

31 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEMS-ON-CHIP, EMPLEANDO TECNOLOGIA XILINX EDK ESTADO DEL ARTE XILINX SPARTAN-6 FPGA EMBEDDED KIT APLICACIÓN DISEÑO DE LA RESULTADOS OBTENIDOS CONCLUSIONES Y RECOMENDACIONES

32 DISEÑO DE LA APLICACIÓN CAPA HARDWARE CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. DISEÑO DE LA APLICACIÓN CAPA HARDWARE CAPA SISTEMA OPERATIVO CAPA APLICACIÓN El diseño ha sido dispuesto para una mejor comprención como capas del SoC, por lo que tenemos: Capa de Hardware Capa de Sistema Operativo Capa de Aplicación

33 DISEÑO DE LA APLICACIÓN CAPA HARDWARE CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. DISEÑO DE LA APLICACIÓN CAPA HARDWARE CAPA SISTEMA OPERATIVO CAPA APLICACIÓN

34 DISEÑO DE LA APLICACIÓN
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. DISEÑO DE LA APLICACIÓN CAPA HARDWARE El sistema creado se puede observar en una vista de bloques en donde: bloque 1 Este bloque corresponde a la plataforma de emulación SP605. EL FPGA Spartan 6 de esta plataforma será configurado con el bitstream de hardware generado en XPS y el código de software creado en SDK. El hardware implementará un microprocesador Microblaze con arquitectura CoreConnect para el procesamiento de la información y toma de decisiones, y una serie de IP Cores que cumplan con las siguientes funciones: Adquisición de datos del sensor de temperatura. Manejo de actuadores de calefacción (Foco) y de enfriamiento (Ventilador). Interfaz de usuario RS232. Controlador de memoria externa DDR3. Reloj del sistema. Soporte para RTOS. Generación de periodo de muestreo. Controlador de interrupciones. Depuración del sistema. Bloque 2 Este bloque corresponde a la tarjeta de acondicionamiento de E/S, que contendrá los circuitos necesarios para trabajar con la planta de temperatura y la tarjeta SP605. Los circuitos externos que se necesitarán son: Dos etapas de potencia para los actuadores. Acondicionamiento para el sensor de la planta. Hardware externo necesario para trabajar con los IP Cores del SoC. Bloque 3 Este bloque corresponde a la Planta en sí, la misma que se encuentra detallada en el anexo A8. Esta planta tiene un rango de control de temperatura entre 40 y 65 grados centígrados, y su consumo es de 1.35 A (1.25A foco+ 0.1A ventilador). Bloque 4 Este bloque contiene una terminal RS232 que sirva como interfaz de usuario, y permita el ingreso de comandos y la visualización de resultados. Se puede utilizar la consola del SDK o la hiperterminal de Windows para este propósito.

35 DISEÑO DE LA APLICACIÓN
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. DISEÑO DE LA APLICACIÓN CAPA HARDWARE El lazo de control del sistema completo contiene: (Enumerar) Controlador Actuador 1 Calefactor Actuador 2 Enfriador Planta Y la realimentación la hace el sensor de temperatura

36 DISEÑO DE LA APLICACIÓN CAPA HARDWARE CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. DISEÑO DE LA APLICACIÓN CAPA HARDWARE CAPA SISTEMA OPERATIVO CAPA APLICACIÓN

37 DISEÑO DE LA APLICACIÓN CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. DISEÑO DE LA APLICACIÓN CAPA SISTEMA OPERATIVO XILKERNEL HILOS SEMAFOROS INTERRUPCIONES CAPA SISTEMA OPERATIVO El BSP de esta capa contendrá los drivers y librerías para el manejo de las funciones de hardware, y el RTOS Xilkernel para el trabajo con hilos, semáforos e interrupciones (señalando el grafico).

38 DISEÑO DE LA APLICACIÓN CAPA HARDWARE CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. DISEÑO DE LA APLICACIÓN CAPA HARDWARE CAPA SISTEMA OPERATIVO CAPA APLICACIÓN

39 DISEÑO DE LA APLICACIÓN
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. DISEÑO DE LA APLICACIÓN CAPA APLICACIÓN CAPA APLICACIÓN La aplicación de software de esta capa realizará las siguientes funciones: (Enumerar según van apareciendo)  Esta capa es programada en la herramienta SDK y utilizará las APIs del BSP creado en la capa de sistema operativo. Shell CLI: código de programa que permite al usuario interactuar con el kernel. CLI (Command Line Interface): Shell que recibe instrucciones a través de comandos de texto.

40 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEMS-ON-CHIP, EMPLEANDO TECNOLOGIA XILINX EDK ESTADO DEL ARTE XILINX SPARTAN-6 FPGA EMBEDDED KIT APLICACIÓN DISEÑO DE LA RESULTADOS OBTENIDOS CONCLUSIONES Y RECOMENDACIONES

41 CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. RESULTADOS OBTENIDOS CAPA HARDWARE CAPA SISTEMA OPERATIVO CAPA APLICACIÓN Si se desea ver el procedimiento de diseño mas detallado pulsar en los hipervinculos, de lo contrario de un click en cualquier lugar de la pantalla o dé siguiente con la flecha del teclado dirección derecha. Si en caso desea ver la explicación rápida presione las fleclas de color azul a la derecha de cada tema

42 CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. RESULTADOS OBTENIDOS CAPA HARDWARE CAPA SISTEMA OPERATIVO CAPA APLICACIÓN

43 RESULTADOS OBTENIDOS CAPA HARDWARE
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. RESULTADOS OBTENIDOS CAPA HARDWARE LO OBTENIDO EN DIAGRAMA DE BLOQUES, LEER LOS IP CORES Y LUEGO APARECER LA VISTA RTL Y MENCIONAR LOS MISMOS IPCORES (pero en esta vista), Además, cabe destacar que la plataforma de hardware se complementa con el mapa de asignación de memoria y el archivo UCF el cual describe la asignación fisica de los pines del FPGA

44 CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. RESULTADOS OBTENIDOS CAPA HARDWARE CAPA SISTEMA OPERATIVO CAPA APLICACIÓN

45 CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. RESULTADOS OBTENIDOS CAPA SISTEMA OPERATIVO Primero comenzar hablando sobre la creación del SDK workspace y luego sobre la importación del archivo system.xml de la plataforma de hardware, luego HABLAR SOBRE LOS DRIVERS Y LIBRERIAS DEL BSP XILKERNEL Conceptos que sirven: DRIVERS Un  controlador de dispositivo, llamado normalmente driver, es un programa informático que permite al sistema operativo interactuar con un periférico, LIBRERIAS librería es un conjunto de subprogramas utilizados para desarrollar software. Las librerías contienen código y datos, que proporcionan servicios a programas independientes, como los drivers por ejemplo, es decir, pasan a formar parte de éstos.

46 CAPA SISTEMA OPERATIVO
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. RESULTADOS OBTENIDOS CAPA HARDWARE CAPA SISTEMA OPERATIVO CAPA APLICACIÓN

47 RESULTADOS OBTENIDOS CAPA APLICACIÓN
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. RESULTADOS OBTENIDOS CAPA APLICACIÓN SETUP: Plataforma de hardware inicializada correctamente. Iniciando Xilkernel... SHELL: Xilkernel inicializado SHELL: Inicializando reloj... RELOJ: Registrado gestor de interrupciones para el timer del reloj. RELOJ: Configurando timer del reloj para generar interrupciones cada segundo .. RELOJ: Interrupción de reloj habilitada ... shell> Y DE AHÍ DEMOSTRACIÓN DE LA APLICACIÓN EN VIVO, una vez que se acabe la demostración dar click para mostrar las graficas de seguimiento de la señal.

48 DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK.
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEMS-ON-CHIP, EMPLEANDO TECNOLOGIA XILINX EDK ESTADO DEL ARTE XILINX SPARTAN-6 FPGA EMBEDDED KIT APLICACIÓN DISEÑO DE LA RESULTADOS OBTENIDOS CONCLUSIONES Y RECOMENDACIONES

49 Ventaja SoC Vs Microcontroladores Ventaja SoC Vs PLC
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. CONCLUSIONES Y RECOMENDACIONES CONCLUSIONES Ventaja SoC Vs Microcontroladores Prolongación Ventaja SoC Vs PLC Implementación de Sistemas Escalables y Flexibes Disminución en el tiempo de diseño Permiten personalizar la Capa de Hardware Permiten personalizar la capa de hardware Usan RTOS diseñados para múltiples plataformas Facilitan el desarrollo de la capa de aplicación a traves de C/C++ Brindan flexibilidad y escalabilidad Optimización en cada Capa Utilización de Herramientas de diseño de Xilinx Proporcionan la capacidad de modificar la capa de sistema operativo Antes de comenzar con la presentación de las conclusiones y recomendaciones, cabe recordar que el objetivo principal de este proyecto de grado fue crear un System on Chip (SoC) orientado a una aplicación de automatización y control, mediante el co-diseño de hardware y software, empleando herramientas de Xilinx. Este objetivo fue cumplido a cabalidad al implementar sobre la tarjeta de desarrollo SP605, un SoC que incluye un Sistema Operativo en Tiempo Real (RTOS) para un sistema de control de temperatura. Este proyecto se prolongó más de lo esperado debido a la inexperiencia y falta de conocimiento previo, en el diseño de SoCs ya que es la primera vez que se trabaja con este tipo de tecnología en el Departamento de Eléctrica y Electrónica (DEEE) de la ESPE. Sin embargo ya superada la etapa de familiarización con los conceptos de co-diseño se podrá implementar varias aplicaciones basadas en SoCs en periodos de tiempo cortos. Se concluye que el sistema de control diseñado es fácilmente escalable para el desarrollo de nuevas aplicaciones de control, debido a la versatilidad que ofrece diseñar sobre Field Programmable Gate Array (FPGA). A esto se suma la flexibilidad de la arquitectura CoreConnect de IBM y del RTOS Xilkernel. Es decir que, usando como base el proyecto contenido en este trabajo se puede iniciar el diseño de sistemas de control más complejos. Se determinó que el factor clave en la disminución del tiempo de diseño de hardware de un sistema, es la reutilización de IP Cores y plataformas. Esto permite diseñar hardware que incluya desde bloques sencillos como GPIOs hasta bloques complejos como microprocesadores, cuyo diseño desde cero implicaría años de trabajo y gran cantidad de conocimiento. Además, en comparación al flujo de diseño convencional sobre hardware no reconfigurable, se demostró que el concepto de co-diseño y el uso FPGAs permiten al diseñador intervenir en la implementación de cada capa de un sistema embebido (hardware, sistema operativo, y aplicación). Esta característica permite realizar optimizaciones en cualquier capa y en cualquier momento del diseño, de forma económicamente fiable. Otra conclusión a la que se llegó a través de la experiencia adquirida, es que el involucrarse en el diseño e implementación de la capa de hardware y de sistema operativo permite una mayor comprensión de los conceptos de arquitecturas procesadas. Puesto que durante el proceso de co-diseño se personalizó y configuró elementos como: arquitectura de hardware, drivers, mapa de memoria, capacidad de almacenamiento dinámico y pila, RTOS, Shell CLI, etc. Por otro lado, se concluye que las herramientas de diseño con altas prestaciones, como las de Xilinx, constituyen un factor clave en la rápida implementación de SoCs. La ayuda que brindan al generar automáticamente la arquitectura de hardware, el mapa de direcciones, la asignación de pines, el Board Support Package (BSP) y los test de memorias y periféricos, disminuye enormemente la complejidad de un diseño. En base a la experiencia obtenida en el diseño de sistemas microprocesados basados en SoCs y basados en microcontroladores, se concluyen las siguientes ventajas a favor de los SoCs: Permiten personalizar la capa de hardware de un sistema a una sola aplicación sin desperdiciar recursos. Brindan gran flexibilidad y escalabilidad de hardware. Ofrecen mayor capacidad de memoria, velocidad de procesamiento y cantidad de entradas y salidas. Usan RTOS diseñados para ejecutarse en múltiples plataformas. Mientras que los usados en microcontroladores soportan únicamente determinados dispositivos. Soportan RTOS de mayor funcionalidad y capacidad. Facilitan el desarrollo de aplicaciones complejas en menor tiempo. Así mismo, en comparación a los sistemas basados en PLC se concluyen las siguientes ventajas a favor de los SoCs: Proporcionan la capacidad de modificar la capa de sistema operativo. A diferencia de los PLCs, donde a pesar de ser la responsable de la ejecución de rutinas de gran importancia, no puede ser modificada por el usuario. Facilitan el desarrollo de la capa de aplicación a través de lenguajes de programación de alto nivel como C o C++. Por último, se concluye que el presente proyecto fue el primer paso del DEEE en la incursión hacia un nuevo modelo de negocios, que se basa en el desarrollo y exportación de tecnología SoC. Dentro de este ámbito se encuentran empresas desarrolladoras de IP Cores, arquitecturas y plataformas de hardware, RTOS, y soluciones basadas en FPGA. Durante el desarrollo de este proyecto se presentaron varios problemas, relacionados con los drivers de los IP Cores, y la limitada experiencia en la depuración de errores durante el desarrollo de un SoC. A fin de evitar posibles complicaciones y disminuir el tiempo de diseño se recomienda considerar los siguientes aspectos. (Leer ventajas y mencionar desventaja la falta de experiencia en diseño de chips desde cero) Facilitan el desarrollo de aplicaciones complejas en menor tiempo Ofrecen mayor memoria, velocidad, y cantidad de E/S

50 CONCLUSIONES Y RECOMENDACIONES
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. CONCLUSIONES Y RECOMENDACIONES RECOMENDACIONES Trabajos Futuros Estudiar Estado del Arte Tomar en cuenta posibles cambios al eliminar IP Cores Emplear Chip Scope Pro Aplicaciones mas complejas que incluyan Xilkernel IP Cores creados por el usuario Estudio de Comunicaciones: Bus CAN, Ethernet, USB, PCI Se recomienda tomar muy en cuenta el archivo linker script de un proyecto de software. Ya que en este se especifica la memoria en la que se colocará las secciones de código, datos, pila y almacenamiento dinámico de una aplicación. Si la memoria escogida es insuficiente para almacenar una de estas secciones, el error cometido no es detectado por el compilador y se presenta deteniendo la ejecución de una aplicación sin razón aparente. Además, se recomienda tener cuidado en la configuración de los parámetros de Xilkernel, en especial aquellos que limitan la cantidad de recursos de trabajo, como por ejemplo: ptheard_stack_size, max_sem_waitq, max_sem, num_msgqs, max_tmrs, max_readyq, max_pthreads, etc. Así, se recomienda aumentar el valor del parámetro ptheard_stack_size (por defecto 1000) en caso de implementar hilos de gran tamaño que ejecuten interrupciones. Un error en esta configuración no es detectado por el compilador y detiene la ejecución de una aplicación. Cabe mencionar que a pesar de que se implementó un SoC que ejecuta Xilkernel, no se ha terminado de explotar todas las capacidades de este RTOS. Por esta razón se recomienda el desarrollo de aplicaciones más complejas que incluyan Xilkernel, y que logren demostrar todas las funcionalidades de este RTOS. Por otro lado, si bien las herramientas de Xilinx demostraron facilitar y agilizar el diseño de SoCs, se recomienda el estudio de otras opciones para el diseño de chips utilizando software, IP Cores y arquitecturas gratuitas. Para esto se recomienda revisar la pagina web Para finalizar, se presentan una lista de líneas de trabajo en el campo de diseño de SoCs que se recomiendan abordar. Utilizando como base el presente proyecto. Estas son: Bus CAN con IP Core XPS_CAN_Controller. Protocolos Ethernet Industriales con IP Core XPS Ethernet Lite MAC. Networking con IP Core XPS LL TEMAC. Comunicación USB con IP Cores XPS USB Host Controller y XPS USB2 Peripheral. Bus PCI con IP Core PCIPLBv46 RC/EP Bridge for PCI Express. Sistema con dos procesadores utilizando IP Cores XPS Mailbox y XPS Mutex. Sistema que incluya IP Cores creados por el usuario, lo que incluye la creación de drivers. Depuración de hardware con ChipScope Pro Profundizar en el uso de Xilkernel Estudio de otros RTOS como Petalinux. Implementar técnicas de control adaptativo, difuso, o por redes neuronales en un SoC. Desarrollar control y monitoreo de procesos con HMI sobre un SoC. Estudio de la arquitectura AMBA de ARM. Estudiar Hoja de datos de cada IP Core Configurar adecuadamente el archivo linker scrip Estudio de otro RTOS ej: Petalinux Sistemas con dos procesadores

51 FIN GRACIAS POR SU ATENCIÓN

52 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE HARDWARE 1 PERSONALIZACIÓN DEL MICROBLAZE PROCESSOR SUBSYSTEM 2 RESULTADO EN DIAGRAMA DE BLOQUES (VISTA RTL) 3 ASIGNACIÓN DE PINES DEL FPGA SPARTAN 6 EN EL ARCHIVO UCF LEER LO QUE SE VA A TRATAR EN EL PROCEDIMIENTO DE LA IMPLEMENTACIÓN DEL CODISEÑO 4 GENERACIÓN Y EXPORTACIÓN DEL BITSTREAM DE LA PLATAFORMA DE HARDWARE

53 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE HARDWARE 1 PERSONALIZACIÓN DEL MICROBLAZE PROCESSOR SUBSYSTEM MENCIONAR EN CADA GRAFICO LOS IP CORES QUE CONSTAN Y LOS QUE SE VA A HACER. EJ: LOS IP QUE SE VAN A ELIMINAR, LOS QUE SE ELIMINARON, Y LOS QUE SE VAN A MODIFICAR Y AÑADIR PARA LA APLICACIÓN DE CONTROL

54 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE HARDWARE 1 PERSONALIZACIÓN DEL MICROBLAZE PROCESSOR SUBSYSTEM 2 RESULTADO EN DIAGRAMA DE BLOQUES (VISTA RTL) 3 ASIGNACIÓN DE PINES DEL FPGA SPARTAN 6 EN EL ARCHIVO UCF EL RESULTADO DE LA ACCION ANTERIOR LO TENEMOS EN ESTA VISTA QUE ES EL DIAGRAMA DE BLOQUES QUE PROPORCIONA EL XPS EN EL CUAL SE PUEDE OBSERVAR LOS MISMO IP QUE CONFORMAN LA APLICACIÓN DE CONTROL 4 GENERACIÓN Y EXPORTACIÓN DEL BITSTREAM DE LA PLATAFORMA DE HARDWARE

55 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE HARDWARE 1 PERSONALIZACIÓN DEL MICROBLAZE PROCESSOR SUBSYSTEM NET DAC_out_pin LOC = E21 | IOSTANDAR = LVCMOS25; 2 RESULTADO EN DIAGRAMA DE BLOQUES (VISTA RTL) DAC_out_pin, es el nombre de la conexión externa. E21, es el pin físico del FPGA. 3 ASIGNACIÓN DE PINES DEL FPGA SPARTAN 6 EN EL ARCHIVO UCF LVCMOS25, es el estándar de E/S y depende del banco donde se encuentra el pin físico del FPGA EL SIGUIENTE ES UN EJEMPLO DE LAS LINEAS DE CODIGO QUE CONFORMAN LA ASIGNACIÓN DE PINES EN EL ARCHIVO UCF 4 GENERACIÓN Y EXPORTACIÓN DEL BITSTREAM DE LA PLATAFORMA DE HARDWARE

56 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE HARDWARE 1 PERSONALIZACIÓN DEL MICROBLAZE PROCESSOR SUBSYSTEM 2 RESULTADO EN DIAGRAMA DE BLOQUES (VISTA RTL) 3 ASIGNACIÓN DE PINES DEL FPGA SPARTAN 6 EN EL ARCHIVO UCF SE DIRIGE A HARDWARE  GENERATE BITSTREAM, ESTE PROCESO SIRVE PARA GENERAR LA SYNTESIS DEL SISTEMA QUE CONTIENE EL DISEÑO DE HARDWARE QUE SERA DESCARGADO AL FPGA, DEMORA ENTRE 20 Y 30 MIN. LUEGO PARA EXPORTAR EL DISEÑO AL SDK SE DEBE DIRIGIR A PROJECT  EXPORT HARDWARE DESIGN TO SDK, APARECERA UNA VENTANA COMO LA DE LA FIGURA DERECHA EN DONDE SE DEBE SELECCIONAR INLCUDE BITSTREAM AND BMM FILE, ESTE ULTIMO CONTIENE LA ASIGNACIÓN DE MEMORIA QUE SERA ASIGNADO AL MICROBLAZE 4 GENERACIÓN Y EXPORTACIÓN DEL BITSTREAM DE LA PLATAFORMA DE HARDWARE

57 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE SOFTWARE 1 CREACIÓN DE UN WORKSPACE EN SDK 2 IMPORTACIÓN DE LA PLATAFORMA DE HARDWARE 3 CREACIÓN Y CONFIGURACIÓN DEL BSP 4 CREACIÓN DEL PROYECTO DE SOFTWARE

58 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE SOFTWARE 1 CREACIÓN DE UN WORKSPACE EN SDK 2 IMPORTACIÓN DE LA PLATAFORMA DE HARDWARE 3 CREACIÓN Y CONFIGURACIÓN DEL BSP Un workspace es un directorio en el sistema de archivos, que utiliza SDK con la finalidad de mantener la información sobre el diseño de hardware, los archivos de software, y los registros [47]. En general, un workspace maneja los directorios que contienen la plataforma de hardware, el BSP, y la plataforma de software. Para crear un nuevo workspace: Inicie el SDK. En Windows, seleccione Inicio  Todos los Programas  Xilinx ISE Design Suite 12.1  EDK  Xilinx Software Development Kit. En Linux, ingrese el comando xsdk en el símbolo del sistema. Cuando aparezca Workspace Launcher, especifique el SDK Workspace como SP605_Embedded_Kit/Tutorial_Sandbox/SW/ SDK_Workspace. Click en OK en el Workspace Launcher, ver en la Figura Cuando el SDK aparezca, una ventana de bienvenida, se desplegará, cierre está ventana después de navegar a través de la información mostrada 4 CREACIÓN DEL PROYECTO DE SOFTWARE

59 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE SOFTWARE 1 CREACIÓN DE UN WORKSPACE EN SDK 2 IMPORTACIÓN DE LA PLATAFORMA DE HARDWARE 3 CREACIÓN Y CONFIGURACIÓN DEL BSP A fin de importar al SDK la plataforma de hardware creada en el XPS, se debe: Seleccionar en el SDK, File  New  Xilinx Hardware Platform Specification. Se desplegará una ventana igual a la de la Figura. 4.17, en donde se podrá importar el archivo system.xml antes generado. Seguido a esto, se debe llenar los siguientes campos: Project Name: nombre_plataforma_hw Este nombre especifica la plataforma de hardware que se va a utilizar durante todo el proyecto. Project Location: Seleccionar Use defaul location con el propósito de guardar la plataforma de hardware en el workspace creado. Target Hardware Specification: Dar click en Browse y buscar el archivo system.xml, que contiene las especificaciones de la plataforma de hardware. 4 CREACIÓN DEL PROYECTO DE SOFTWARE

60 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE SOFTWARE 1 CREACIÓN DE UN WORKSPACE EN SDK 2 IMPORTACIÓN DE LA PLATAFORMA DE HARDWARE 3 CREACIÓN Y CONFIGURACIÓN DEL BSP Para crear un nuevo BSP, dirigirse a File  New  Xilinx Board Support Package, y llenar los datos que requiere la ventana del BSP de la siguiente manera: Project name: nombre_bsp Project location: Asegúrese que el checkbox Use default location esté seleccionado Hardware platform: nombre_plataforma_hw CPU: microblaze_0 Board Support Package OS: Standalone o Xilkernel Se puede crear varios BSP, ya sea standalone o xilkernel, con el fin de poder crear varias aplicaciones de software sobre una misma plataforma de hardware. Cuando se genera el BSP, se crea el archivo system.mss (Figura. 4.18), el cual contiene la descripción de los drivers y librerías de los IP Cores añadidos en el XPS. La configuración básica del BSP se muestra en la Figura Esta configuración consiste en escoger dispositivo stdin y stdout. Este dispositivo se encargará de la comunicación entre la tarjeta SP605 y la PC. Cabe recalcar que para este ejemplo se escogió como sistema operativo del Board Support Package el conjunto de librerías standalone. 4 CREACIÓN DEL PROYECTO DE SOFTWARE

61 IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW
DISEÑO DE HARDWARE Y SOFTWARE DE SYSTEM-ON-CHIP EMPLEANDO TECNOLOGIA XILINX EDK. IMPLEMENTACION DEL CO-DISEÑO DE HW Y SW DISEÑO DE SOFTWARE 1 CREACIÓN DE UN WORKSPACE EN SDK 2 IMPORTACIÓN DE LA PLATAFORMA DE HARDWARE 3 CREACIÓN Y CONFIGURACIÓN DEL BSP Leer las plantillas de proyectos con los que se cuenta y hablar brevemente de cada uno Luego decir que se debe verificar a que sistema operativo va estar asociada la aplición ya que puede haber varios BSP. Una vez creada la aplicación dar click derecho sobre la aplicación del proyecto seleccionar NEW  Source FILE, y se generará el archivo C principal o main.c en el cual sobre el cual se podra comenzar a trabajar Cabe mencionar que en la carpeta src se encuentra el linker script del proyecto de software. Este archivo es requerido para asignar las secciones de código, datos, pila y almacenamiento dinámico a una memoria específica. Esto es muy importante para la correcta ejecución de una aplicación de software de tamaño mediano o grande. Una vez que se tiene lista la aplicación en C se puede proceder a la programación del FPGA ya que se cuenta con la plataforma de hardware y software completa para ello se dirige a Xilinx Tools  Program FPGA , se debe verificar que los archivos system.bit y system.bmm, y luego dar click en Program (en la siguiente figura): para correr la aplicación e interactuar con la consola debe elegir un modo de ejecución se ha elegido debug, para ello dé click derecho sobre empty application  Debug as  debug configuration En la ventana que aparece seleccione el botón New, para crear una configuración del tipo seleccionado. En este caso se puede observar es de tipo Xilinx C/C++ ELF. Por último, dirigirse a la pestaña STDIO Connection, habilitar con un check Connect STDIO to Console, y configurar el puerto de comunicación serial, según se lo ha realizado con el cable usb-serial en la PC, luego pulsar Debug. 4 CREACIÓN DEL PROYECTO DE SOFTWARE


Descargar ppt "Julio Cadena Gabriel Mollocana"

Presentaciones similares


Anuncios Google