Software

Evaluación de programas de cálculo en ingeniería como herramienta de desarrollo para Codiseño Hardware / Software Guillermo G. Gastaldi guillegastaldi

2 downloads 202 Views 108KB Size

Recommend Stories


software libre distinto de software gratis
Software libre y educaci´on ´ M. Gonz´alez Barahona Jesus [email protected] [email protected] Madrid, 22 de enero de 2004 Jornadas sobre Educaci´

Software libre, software propietario y Mac OS X
Software libre, software propietario y Mac OS X Enrique Soriano Salvador 10 de junio de 2003 Resumen Mac OS X es el nuevo sistema operativo de Apple,

Story Transcript

Evaluación de programas de cálculo en ingeniería como herramienta de desarrollo para Codiseño Hardware / Software Guillermo G. Gastaldi [email protected]

José A. Rapallini [email protected]

Héctor O. Pascual [email protected]

Codiseño HW / SW - CeTAD(*) Departamento de Electrotecnia Facultad de Ingeniería Universidad Nacional de La Plata (*)Director Ing. Antonio A. Quijano Resumen – Para su utilización como herramienta de trabajo con metodología de Codiseño Hardware Software, en el presente artículo se realiza una evaluación del programa Matlab y su entorno de trabajo, muy utilizado en calculo y programación en distintas disciplinas científicas y en particular en la electrónica. En una primera parte se estudian las características generales, herramientas y conceptos mas importantes en la utilización de Codiseño HW/SW, obteniendo los criterios para la evaluación correspondiente. En la segunda parte, se realiza un estudio del programa citado, su entorno de trabajo Simulink y herramientas de uso (toolboxes), describiendo finalmente las posibilidades de su utilización. Keywords: Codiseño Hardware / Software, Sistemas embebidos I. Introducción El diseño tradicional de sistemas heterogéneos se basa en la aplicación múltiple de procesos de desarrollo para cada uno de los diferentes módulos constitutivos. A través de estos procedimientos el diseñador refina las especificaciones y funcionalidad de los mismos, y evalúa el perfil del diseño, migrando eventualmente, partes hardware a software y / o viceversa para obtener un mejor desempeño. La definición de la arquitectura, o solución al sistema, y la determinación del tipo de implementación de cada módulo son criterio del diseñador, principalmente con base en la experiencia previa y la disponibilidad de recursos que faciliten el empleo de las diferentes alternativas de implementación deseables. Gran parte de los sistemas digitales que se desarrollan en la actualidad tienen componentes de tipo hardware (HW) y elementos software (SW), donde estos últimos corresponden a una serie de programas o instrucciones operando sobre una determinada plataforma hardware programada. Si el desarrollo de estos sistemas se aborda de forma tal que, durante el proceso de diseño, se acople el hardware a las partes software y viceversa, teniendo un mayor control global durante el proceso, se tendrá mayor garantía de lograr un diseño optimo. Las tendencias actuales de diseño explotan las técnicas

utilizadas en las metodologías tradicionales, aprovechando y generando nuevas contribuciones en las áreas de interrelación de herramientas, formas de descripción de diseños a alto nivel que pueden ser independientes del tipo de implementación, modos de simulación y verificación de sistemas mixtos, y particionamiento de sistemas heterogéneos, entre otras. II. SISTEMAS EMBEBIDOS Antes de comenzar con el desarrollo de las diferentes etapas de la metodología de Codiseño HW / SW es interesante analizar algunos conceptos relacionados con el diseño de sistemas digitales complejos como los sistemas embebidos Existen dos clases diferentes de sistemas: los de propósito general y los de propósito especial. Los primeros comprenden a las tradicionales computadoras que van desde las estaciones de trabajo a las computadoras personales de mano. Todas estas, pueden ser programadas por un usuario para ser utilizadas en diferentes aplicaciones y han sido diseñadas para aplicaciones generales, lo cual generó que determinadas tareas que deben ser ejecutadas con restricciones (como por ejemplo tiempo de ejecución) no puedan realizarse eficientemente. Surgen desde ese entonces los sistemas dedicados (de propósito especial). Estos, se diseñan para cumplir una tarea específica fija. La mayoría es configurado una sola vez y luego funciona independientemente. El usuario tiene un acceso limitado a programar estos últimos sistemas. Entre los sistemas de propósito especial existen los sistemas embebidos, los cuales pueden ser caracterizados con los siguientes rasgos: 1. 2. 3. 4. 5.

6. 7.

son usualmente embebidos en otros productos, funcionan por cuenta propia, son infrecuentemente reprogramados. Su funcionalidad es mayormente fija, funcionan frecuentemente de modo reactivo, respondiendo a estímulos (entradas) externos, son implementados por numerosos procesos concurrentes requiriendo una comunicación entre procesadores, tienen severos requerimientos de tiempo, por ej. restricciones de tiempo real, son utilizados en forma intensiva respecto a las

8. 9.

entradas – salidas (E-S), son extremadamente sensibles respecto a criterios de costo, potencia, y performance, tiene fuertes restricciones de fiabilidad y exactitud.

A su vez los sistemas embebidos pueden ser clasificados según su función en: sistemas dominados flujo de control (controladores embebidos) y sistemas dominados por flujo de datos (sistemas de procesamiento de datos embebido). Los controladores embebidos están dedicados a funciones de control y reaccionan a eventos externos. Responden a estímulos del exterior cambiando su estado interno y produciendo resultados de salida. Normalmente, soportan un conjunto de modos y ajustes y sus restricciones de tiempo real suelen ser del orden de los milisegundos. Por lo tanto su desempeño requerido varía desde bajo a moderado. Por esta razón, microcontroladores o incluso procesadores de propósito general (8086, 6800, etc.) son frecuentemente suficiente para implementar un controlador embebido. Los sistemas embebidos dominados por flujo de datos se dedican a comunicaciones y procesamiento de datos. Por lo tanto son frecuentemente llamados sistemas transformacionales. Estos sistemas suelen ejecutar (a tiempo real) una función especial en una ventana de tiempo predefinida. Requieren un desempeño mucho mayor que los controladores embebidos. Por lo tanto microcontroladores no son suficiente y microprocesadores mucho mas potentes (muy frecuentemente DSPs o ASIPs) y ASICs son requeridos. A continuación se presenta una tabla con las principales diferencias entre los sistemas embebidos dominados por flujo de control y por flujo de datos.

Dominados por flujo de control Reaccionan a eventos externos cambiando su estado y su salida

No se sabe cuando arriban el / los datos (reacción rápida) Tiempo de arribo suele ser mas importante que el valor en sí Se enfatiza en: relación eventorespuesta, tiempo de respuesta, prioridad e/ eventos y procesos

suelen definir diferentes niveles de abstracción, relacionados con el desarrollo de sistemas digitales: 1- Nivel sistema. 2- Nivel algorítmico. 3- Nivel de transferencia de registros (RT) . 4- Nivel lógico. 5- Nivel de circuitos. 6- Nivel físico. El nivel de abstracción va decreciendo a medida que se baja en la lista, estando el ultimo (nivel físico) muy relacionado con la implementación. La filosofía del codiseño es la de comenzar en la etapa de especificación a un nivel de abstracción sistema, evitando así favorecer algunas de las implementaciones posibles. Existen también diferentes puntos de vista, o dominios de descripción del diseño, los cuales determinarán la forma en la cual se describen los componentes del mismo. Se diferencian tres de ellos: 1- Dominio de comportamiento: define el comportamiento de un diseño sin información acerca de la implementación. 2- Dominio estructural: describe al sistema como un conjunto de componentes funcionales interconectados. Representa la conectividad mas no la funcionalidad 3- Dominio físico: describe las características físicas de una arquitectura objetivo con la cual el sistema debería ser implementado. Una representación de los conceptos de dominio de descripción y nivel de abstracción se ha dado en [1], llamado grafico Y, que a continuación se reproduce:

Dominados por flujo de datos Sistemas de tiempo real ejecutando una función especial dentro de una ventana de tiempo predefinida. Los datos arriban en flujos regulares Los valores de los datos son importantes Se enfatiza en: dependencia funcional entre E / S, eficiencia memoria tiempo, todos los procesos y eventos son iguales

Tabla 1. En los sistemas embebidos un tópico muy mencionado es la abstracción. Esta puede ser definida en relación con el diseño de sistema como el acto de sacar o retirar las propiedades físicas que surgen de la implementación, para poder acercarse al dominio del problema a solucionar. Se

Figura 1. En este grafico cada circulo representa un nivel de abstracción, mientras que cada eje hace lo propio con los dominios de descripción. Cuanto mas lejos del centro mas abstracta será la descripción, mientras que en dicho centro se tendría a la implementación en sí. Se muestra además diferentes acciones o pasajes entre los niveles y dominios. Estas son tareas del diseño identificadas como pasos de

síntesis, refinamiento y optimización: 1. 2.

3.

Los pasos de síntesis representan transiciones desde el dominio de comportamiento al estructural. Los pasos de refinamiento refinan una especificación abstracta en una mas detallada (menor nivel de abstracción). Los pasos de optimización maximizan la calidad de un diseño, por ejemplo minimizando los costos, mientras se mantiene en el mismo dominio.

A mayor grado o nivel de abstracción la cantidad de información de diseño que se tiene sobre el sistema es menor. En cambio los distintos dominios no determinan mayor o menor información sino solo la forma en la cual es dada. Por ejemplo, se puede describir un sistema digital mediante compuertas lógicas (dominio estructural) o mediante ecuaciones booleanas (dominio de comportamiento), estando ambas descripciones a un nivel de abstracción lógicos y conteniendo ambas la misma cantidad de información. Otro de los conceptos importantes es la jerarquía, que se refiere a ver a un sistema como un conjunto de partes, que a su vez están formadas por otras subpartes. Además, en el diseño de sistemas digitales se utilizan, desde hace unas cuantas décadas, herramientas de diseño asistido por computadora (CAD, Computer Aided Design). Estas se han trabajado siempre a niveles de abstracción bastante bajos (nivel RTL, nivel de circuitos) ocupándose del desarrollo de chips simples. El proceso de diseño es frecuentemente visto como una secuencia de pasos que transforma un conjunto de especificaciones descriptas informalmente en una especificación mas detallada que puede ser usada para fabricar el sistema. Todos los pasos intermedios están caracterizados por una transformación desde un nivel mas abstracto a uno mas detallado.

utiliza un único lenguaje para la especificación del sistema completo incluyendo ambas partes, o heterogénea, donde se utilizan lenguajes diferentes para los módulos hardware y para los componentes software. La arquitectura objetivo puede ser monoprocesador, es decir el sistema tiene un procesador principal, que actúa como controlador, y un conjunto de componentes hardware; o multiprocesador, que es una arquitectura distribuida compuesta de un conjunto de procesadores ejecutando instrucciones en paralelo. El esquema de codiseño está relacionado con el nivel de desarrollo en donde se aplica estrategias de codiseño: 1-Diseño de ASIPs: en este tipo de sistemas se puede desarrollar un procesador de aplicación específica optimizado, diseñando el hardware en el cual se ejecutan las instrucciones, y los programas para la aplicación. 2-Diseño a nivel sistemas: en este nivel, un algoritmo, que especifica el funcionamiento de un sistema, puede particionarse entre hardware específico y software corriendo en componentes programables. El hardware incluirá componentes discretos, ASICs, DSPs, microcontroladores, entre otros, e incluso placas de adquisición como un subsistema del sistema. 3-Diseño de sistemas distribuidos: a este nivel, el codiseño consiste en mapear un sistema con cierta funcionalidad, a diferentes procesadores interconectados. Metodología de codiseño: En [3] se propone el siguiente proceso general de codiseño:

III. HERRAMIENTAS DE CODISEÑO Y FASES DE SU METODOLOGIA Una definición formal de codiseño HW / SW se da en [2] “... es el proceso de diseño de un sistema que combina las perspectivas hardware y software desde los estados primarios, para aprovechar la flexibilidad del diseño y la localización eficiente de las funciones.” En el marco del codiseño HW / SW, la concepción de los sistemas hardware y de los sistema software es una sola, completamente diferente a la del proceso del diseño tradicional, donde generalmente se desarrolla el hardware y posteriormente se adapta el software a ese diseño, lo cual en muchas oportunidades resulta ineficiente. En la literatura se pueden encontrar diferentes aproximaciones al problema de codiseño HW / SW. Los principales puntos donde se concuerda son tres conceptos fundamentales: especificación, arquitectura objetivo y esquema de codiseño. La especificación puede ser homogénea donde se

El proceso puede ser dividido en dos partes que a su vez constan de distintas fases. La primera es la etapa de descripción independiente de la implementación. Al final de esta etapa se habrá escogido una arquitectura y se habrán asignado las tareas a los diferentes recursos de la misma. Esta etapa corresponde al arquitecto del sistema. Es crítica en cuanto al desempeño y funcionalidad futura

?? Planteamiento: corresponde a los deseos del usuario, ubicación de una necesidad o planteamiento de un problema. ?? Especificaciones, restricciones: se extrae un conjunto de especificaciones que determinan la operación funcional, entradas, salidas e interfase del sistema con el medio de operación. Además se complementa con restricciones que limitan las posibilidades de diseño. Este tipo de restricciones corresponde a variables físicas y de operación real del sistema, tales como: velocidad, consumo de potencia, tiempos de diseño, costo, etc. ?? Descripción: corresponde a la realización del modelo del problema, empleando técnicas de descripción o entrada de diseño sobre las herramientas disponibles, haciendo en lo posible una descripción independiente de la implementación. ?? Simulación funcional: con herramientas que soporten los modelos y descripciones de la etapa anterior, se realiza una verificación funcional, hasta obtener un modelo 100% acorde con los requerimientos. ?? Partición: con el modelo en mano se procede a la selección de una arquitectura y a la asignación óptima de tareas hacia cada uno de los recursos. Es la fase de diseño mas problemática. En esta fase se seleccionan tecnologías y elementos microprocesadores a utilizar. ?? Síntesis: consistirá en adaptar y transformar la descripción o modelo en las tecnologías seleccionadas. Para mantener un control global del sistema se deberá tener en cuenta la implementación de otros módulos con los que cada módulo interactúa en el sistema, además de generar los elementos necesarios para la interfase entre módulos. ?? Simulación: se valida la transformación realizada, comprobando que se ajuste a las especificaciones y restricciones iniciales. ?? Implementación: adaptación de las descripciones en dispositivos configurables y / o fabricación de los circuitos integrados necesarios. En software consiste en la programación de las tareas sobre los recursos de memoria de los elementos microprocesadores de la arquitectura. ?? Verificación: corresponde a una integración real de los módulos hardware y de los módulos software para validar su operación y generar un prototipo. Al momento de llevar a la practica las técnicas de codiseño aplicadas al desarrollo de sistemas digitales, se hace necesario contar con herramientas unificadas que soporten todas las actividades que involucra este proceso. Son varios los grupos de investigación abocados al

área del codiseño HW / SW, que han desarrollado herramientas que soportan diferentes aspectos o fases de la metodología. Algunos de ellos se muestran en la tabla 2, que a continuación se reproduce. Aproximaciones al codiseño Modelado de sistemas Síntesis de procesadores Implementación heterogénea

del mismo, pues involucra dos tareas de suma importancia: la extracción completa de especificaciones y restricciones y la selección de la arquitectura de soporte. En la segunda parte del proceso se tienen las fases de adaptación de las descripciones sobre los recursos disponibles. Las fases del proceso completo son:

ASIC simple Arquitectura mono-procesador

ASICs múltiples

Arquitectura multi-procesador

Ptolemy Simulink Castle Cosyma Lycos Mickey Tosca Vulcan Chinook Cool Cosmos CoWare Polis SpecSyn

Tabla 2. En esta tabla se realiza una primera clasificación según el tópico principal de investigación: modelado de sistemas o implementación heterogénea. Para el primer caso los esfuerzos de los grupos de investigación recaen en generar una descripción compacta y consistente de sistemas heterogéneos como suelen ser los embebidos, mientras que los grupos dedicados a la implementación heterogénea se abocan al estudio del particionamiento HW / SW y la cosíntesis. Las herramientas que se encargan de la implementación heterogénea se clasifican a su vez por la complejidad de la arquitectura objetivo. Si bien la técnica del codiseño HW / SW tiende a no favorecer una arquitectura en particular a la hora del diseño, la practica común es la de acotar el espectro de posibles implementaciones debido a que tener en cuenta todas las posibles arquitecturas destino sería no fiable desde el punto de vista económico tanto como desde el tiempo de diseño consumido. Las distintas aproximaciones al codiseño pueden ser comparadas en función de su poder de especificación y el poder de implementación. En particular el poder de especificación clasifica a las diferentes herramientas concerniente a: - estilo de modelado: homogéneo o heterogéneo, - posibilidad de validación: simulación o verificación, - dominio de aplicación: flujo de control, flujo de datos o ambos. IV. CARACTERÍSTICAS DEL AMBIENTE DE TRABAJO A UTILIZAR [6] Simulink: Es un paquete de Software, complemento de MATLAB que permite modelar, simular y analizar sistemas dinámicos, esto es sistemas cuyas salidas y estados internos cambien con el tiempo. Es un entorno grafico,

donde se crea un modelo en bloques del sistema, utilizando librerías de bloques estándar y un editor que permite interconectar los mismos. El modelo representa gráficamente las relaciones matemáticas dependientes del tiempo a través de las entradas, estados y salidas del sistema. Con el agregado de paquetes adicionales, se puede generar código C para diferentes plataformas o código ADA, a partir del modelo del sistema en Simulink, y simular a tiempo real el sistema. Simulink permite implementar modelos en tiempo continuo, en tiempo discreto, mixto (discreto y continuo), maquinas de estado finito (con jerarquía y concurrencia) y flowcharts. Los modelos tienen una arquitectura jerárquica, lo cual permite agrupar distintas partes del mismo en sub-bloques que cumplirán funciones específicas, tendiendo así una estructuración y organización del modelo. Después de definido el modelo, este puede ser simulado, utilizando diferentes métodos de integración. Los bloques del modelo en Simulink funcionan de modo concurrente en forma conceptual. se considera que el tiempo de respuesta de cada bloque es cero, es decir que no producen retardo (a menos se use un bloque de retardo de manera explicita) entre la señal de entrada y la de salida del mismo. Como se hace notar en la tabla 2 de la sección anterior, el MATLAB, junto con Simulink es una herramienta cuyo enfoque y utilidad, desde el punto de vista del codiseño HW / SW , reside en el modelado y especificación del sistema, aunque a través de módulos como el Motorola DSP Developer’s Kit (utilizando herramientas como, “Matlab MEX-files” y “S-functions” para Simulink), transforma el sistema desarrollado o parte del mismo en código para DSP comerciales, que permite acercarse a la implementación del sistema . Real Time Workshop: El Real Time Workshop (RTW de aquí en más) es el encargado de producir código directamente desde los modelos desarrollados en Simulink y automáticamente construye programas que pueden ser corridos en una variedad de entornos. Además permite utilizar al Simulink para analizar los datos de salida del ejecutable. Con Real-Time Workshop , se puede generar código C para sistemas de tiempo discreto, de tiempo continuo o híbridos. Con el producto Real Time Workshop Ada Coder se puede generar código Ada. Conceptos y definiciones básicas sobre RTW: Antes de analizar el proceso de construcción del código ejecutable vale la pena dar algunas definiciones útiles. Target: es el entorno (de software o hardware) en el cual su código se ejecutará. El proceso de especificar dicho entorno se llamará targeting.

Host: es el sistema donde se ejecuta MATLAB, Simulink y el Real Time WorkShop. Es allí donde se crea el código que luego será cargado en el target. Target Language Compiler (TLC): es un compilador utilizado por RTW para trasladar el modelo del sistema en Simulink a un código intermedio. Modo externo: permite que dos sistemas separados, el host y el target, se comuniquen. El host (donde reside Simulink) transmite mensajes al target requiriendo que acepte cambio de parámetros y solicitando una actualización en datos de señal. El target responde ejecutando el requerimiento. La comunicación de modo externo utiliza la arquitectura cliente / servidor, en la cual el Simulink es el cliente y el target es el servidor. El modo externo permite: - Modificar o ajustar parámetros de los bloques en tiempo real. Esto permite realizar variaciones sin necesidad de recompilar el modelo. - Observar y / o guardar los datos de señales que provienen de la ejecución del programa en el tarjeta. El modo externo funciona estableciendo un canal de comunicación entre el Simulink y el código generado . Este canal es implementado por una capa de transporte a bajo nivel que maneja la transmisión de mensajes. Tanto el Simulink como el código generado son independientes de esta capa. La capa de transporte y el código que realiza la interfase directamente con dicha capa esta aislado en módulo separados que formatean, transmiten y reciben los mensajes y paquetes de datos. Real Time Windows Target: Real Time Windows Target es un entorno que genera código de tiempo real, utilizando una PC con sistema operativo Windows 95/98 o NT como target y host al mismo tiempo. Es en esencia es un complemento del Real Time Workshop, con lo cual, los principios básicos de funcionamiento, así como la interfase de usuario es la misma que RTW. Un aspecto distinto lo conforma el kernel de tiempo real que interrumpe a Windows y toma el control del sistema mientras se ejecuta el modelo desarrollado.

Kernel Real Time : El kernel de tiempo real funciona interceptando las interrupciones del reloj de la PC, antes que Windows las llegue a recibir, permitiendo de este modo una ejecución a tiempo real del modelo. Para alcanzar un muestreo preciso, el kernel reprograma el reloj de la CPU a una mayor frecuencia. A causa que el reloj es también la fuente primaria de tiempo para Windows, el kernel también envía una interrupción de tiempo al sistema operativo a la frecuencia original.

Planificador: La interrupción de tiempo, comanda un simple planificador que corre el ejecutable. El número de tareas a ejecutar es igual al número de períodos de muestreo en el modelo con modo multitasking. Con modo single-tasking, existe solo una tarea. El máximo numero de tareas es 32 y las tareas mas rápidas (correspondiendo a las de menor tiempo de muestreo) tienen mayor prioridad que las mas lentas. Esto quiere decir que una tarea mas rápida puede interrumpir a una mas lenta. Comunicación con el hardware: El kernel se realiza la interfase y se comunica con el hardware de entrada-salida (E / S) usando los drivers de entrada-salida, y corrobora la correcta instalación de la placa de E / S. Si la placa ha sido bien instalada, los drivers le permitirán correr su aplicación de tiempo real. Modo externo Simulink: La comunicación entre Simulink y la aplicación a tiempo real se realiza por medio del módulo de interfase de modo externo del Simulink. Este modulo conversa directamente con el kernel, y es usado para comenzar con la aplicación a tiempo real, para cambiar parámetros del modelo, y para recibir los datos del scope. En cada intervalo de muestreo de la aplicación a tiempo real, el Simulink guarda los datos contiguos en memoria hasta llenar el buffer de datos. Una vez que el buffer de datos es llenado, Simulink suspende la captura de datos mientras el dato es transferido atrás a MATLAB a través del modo externo de Simulink. La aplicación a tiempo real, sin embargo continua corriendo. La transferencia de datos es menos crítica que mantener la actualización determinística al intervalo de tiempo seleccionado. Por lo tanto la transferencia de datos tendrá una prioridad menor en el tiempo de CPU remanente después que los cálculos computacionales del modelo han sido realizados, mientras se espera por otra interrupción que dispare la próxima actualización del modelo. Los datos almacenados dentro de un buffer son contiguos. Cuando un buffer de datos ha sido transferido a Simulink, es inmediatamente graficado en un bloque Scope, o puede ser guardado en un archivo .mat usando la característica de archivado de datos del modo externo de Simulink. Con el archivado de datos, cada buffer de datos puede ser guardado en un archivo propio. Aunque los datos dentro de un buffer son contiguos, el tiempo requerido para transferir datos atrás hacia Simulink fuerza una pausa para la recolección de datos hasta que el buffer entero haya sido transferido y puede resultar en una perdida de puntos de muestra entre buffers de datos contiguos. Con RTWin es posible validar el modelo del sistema, realizando una simulación a tiempo real. De este modo con Simulink, RTW y RTWin se pueden realizar las primeras fases de la metodología de codiseño, obteniendo una especificación en C o ADA, de un modelo del sistema corroborado por una simulación a tiempo real, llegando así hasta la etapa de particionamiento, la cual no podrá ser realizada de forma automática, puesto que MATLAB y Simulink no brindan aún soporte para ella.

Aprovechando la característica de programación de MATLAB, existe la posibilidad de programar algoritmos de particionamiento, que operen sobre la especificación que surge de la utilización de RTW, y así poder realizar la partición de forma automática. Estos algoritmos de particionamiento, no operan directamente sobre la especificación, sino sobre un formato intermedio sobre el cual se calculan costos de SW y HW, entre los cuales se puede encontrar área de HW, tiempo de ejecución o cantidad de memoria disponible. De este modo es necesario también generar alguna tarea que sea capaz de medir costos asociados con la implementación de cada bloque en SW y la implementación en HW. V. CONCLUSIONES El Codiseño HW / SW permite optimizar un diseño particionando el sistema en componentes hardware y algoritmos software, considerando determinados factores de calidad. A diferencia del diseño tradicional, se parte de una especificación y se diseña de forma independiente a la arquitectura y posterior implementación del sistema. Sin embargo, surgen comúnmente limitaciones debido a indisponibilidad de herramientas adecuadas para el desarrollo de las distintas etapas del Codiseño y a la factibilidad de realizar determinadas implementaciones por razones económicas. Llegado el caso en muchas ocasiones debe realizarse el particionamiento en forma manual. Dentro de este contexto se ha encontrado en MATLAB, junto con Simulink y Real Time Windows Target, a una herramienta muy útil para la etapa de diseño y especificación del sistema y potencialmente utilizable en otras. VI. REFERENCIAS [1] D Gajski y R.H.Kuhn, “New VLSI Tools”, IEEE Computer, pp.11-14,1987 . [2] W. Franke y M.Purvis, “Hardware/Software Codesign: A perspective.”, Proceedings of the 13th Conference on Software Engineering, Mayo 1991, AustinTexas (USA). [3] “Sistemas Digitales. Elementos para un diseño a alto nivel.”, CYTED, 1999 [4] R. Niemann, “Hardware/Software Co-Design for Data Flow Dominated Embedded Systems”, Kuwler Academic,1998. [5] G. G. Gastaldi, J. A. Rapallini, H. O. Pascual, “Codiseño hardware / software para la implementación de un sistema de medida de impedancia”, IX Jornadas de Jóvenes Investigadores de la A.U.G.M., MI-05,Univ. De Rosario, Argentina, 2001. [6] Informe Técnico CeTAD -CoHS03/00, “Real Time Workshop 4. Real Time Windows Target 2”. Departamento de Electrotecnia, Fac. de Ingeniería, UNLP, 2000.

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.