Red de conocimiento informático - Conocimiento informático - Diseño colaborativo y diseño tradicional de sistemas embebidos

Diseño colaborativo y diseño tradicional de sistemas embebidos

1. Comparación entre diseño colaborativo y métodos de diseño tradicionales

Los sistemas integrados se componen de varios módulos funcionales, que se pueden dividir en módulos de software y módulos de hardware según su naturaleza. En las últimas décadas, los métodos de diseño de sistemas han cambiado significativamente, incluidos los métodos de diseño de arriba hacia abajo y los métodos de diseño modular. Generalmente, el método de diseño se basa en módulos de hardware, denominados colectivamente método de diseño tradicional.

Este enfoque de diseño separa el hardware y el software en dos partes independientes. A lo largo del proceso de diseño, ¿qué se utiliza normalmente? "Principio de prioridad del hardware", es decir, bajo la condición de estimar aproximadamente los requisitos de la tarea de software, primero se realiza el diseño del hardware y luego se realiza el diseño del software en esta plataforma de diseño de hardware. La arquitectura del software y el mecanismo de implementación durante el proceso de diseño del hardware. Existe un cierto grado de ceguera en el diseño del hardware. Debido a las limitaciones del espacio de diseño, la optimización del sistema solo puede mejorar el rendimiento del hardware/software, y es imposible. para optimizar completamente el sistema y dificultar el uso completo de los recursos de software y hardware y adaptarse a los resultados del diseño final Tareas de diseño de sistemas modernos, complejos y a gran escala

Codiseño de software y hardware de sistemas integrados. es diseñar el diseño de software y el diseño de hardware en su conjunto para encontrar la mejor combinación de software y hardware para que el sistema funcione de manera eficiente.

Una de las ventajas más importantes del codiseño de software y hardware es que durante. El proceso de diseño, el diseño de hardware y software interactúan, y esta interacción ocurre en todas las etapas y niveles del proceso de diseño.

p>

El proceso de diseño refleja completamente la colaboración del software y el hardware al asignar. Las funciones de software y hardware se consideran los recursos de software y hardware existentes. Durante el proceso de evaluación de diseño y simulación de las funciones de software y hardware, el software y el hardware se apoyan entre sí desde el principio. etapa de diseño y desarrollo, para detectar y resolver problemas lo antes posible, y evitar (al menos reducir) modificaciones repetidas del sistema en las últimas etapas de diseño y desarrollo y una serie de problemas causados ​​por él. aprovechar el potencial del sistema, reducir el tamaño del producto, reducir el costo del sistema y mejorar el rendimiento general del sistema

2. /p>

Generalmente, el proceso de diseño del sistema de codiseño de software y hardware se puede dividir en cuatro etapas: descripción del sistema, diseño del sistema, verificación de simulación e implementación integral.

La descripción del sistema utiliza uno o. Más lenguajes de descripción a nivel de sistema para describir los requisitos. El proceso de describir exhaustivamente las funciones y el rendimiento del sistema integrado diseñado y establecer el modelo de software y hardware del sistema puede ser realizado manualmente por diseñadores que utilizan lenguajes informales. lenguajes naturales, o se puede hacer manualmente usando herramientas EDA, es fácil dar lugar a una descripción inexacta del sistema y el modelo del sistema debe modificarse en el proceso posterior, lo que complica el diseño del sistema. Las excelentes herramientas EDA pueden superar estas deficiencias.

Para los sistemas integrados, el diseño del sistema se puede dividir en dos etapas: asignación de funciones de software y hardware y mapeo del sistema. La asignación de funciones de software y hardware es para determinar qué funciones del sistema se implementan mediante módulos de hardware. Las funciones del sistema se implementan mediante módulos de software. El hardware generalmente proporciona un mejor rendimiento, mientras que el software es más fácil de desarrollar y modificar. El costo también es relativamente bajo debido a la capacidad de configuración y programación de los módulos de hardware, así como al hardware y al firmware de algunos software. funciones, algunas funciones pueden ser implementadas tanto por software como por hardware. Además, los límites entre software y hardware no son muy obvios al determinar las funciones de software y hardware, no solo debemos considerar los recursos disponibles en el mercado. Considere muchos factores, como el costo del sistema y el tiempo de desarrollo. Por lo tanto, la división funcional del software y el hardware es un proceso complejo y arduo y es el vínculo más importante en todo el proceso de la tarea.

El mapeo del sistema se basa en la descripción del sistema y la división de las tareas de software y hardware, seleccionando los métodos de implementación específicos de los módulos de software y hardware del sistema y sus interfaces, e integrándolos para determinar en última instancia la arquitectura del sistema. Específicamente, este proceso consiste en determinar qué módulos de hardware (como chips totalmente personalizados, MCU, DSP, FPGA, memorias, componentes de interfaz de E/S, etc.) y módulos de software (sistemas operativos integrados, controladores, módulos funcionales, etc.) Y los métodos de comunicación entre los módulos de software y hardware (como buses, * * * * memoria compartida, canales de datos, etc.) se utilizarán en el sistema, así como los métodos de implementación específicos de estos módulos.

La verificación de simulación es el proceso de comprobar la exactitud del diseño del sistema. Evalúa la exactitud de los resultados del diseño para evitar modificaciones repetidas si se descubren problemas durante la implementación del sistema.

Durante el proceso de simulación y verificación del sistema, el entorno de trabajo simulado es muy diferente del uso real, y los métodos y efectos de interacción entre el software y el hardware también son diferentes, lo que dificulta garantizar la confiabilidad del sistema en el entorno real. Por tanto, la eficacia de la simulación del sistema es limitada.

La integración de software y hardware es el producto específico de los sistemas de software y hardware. Una vez verificados los resultados del diseño mediante simulación, el sistema se puede producir de acuerdo con los requisitos del diseño del sistema, es decir, el hardware y el software se diseñan de acuerdo con los requisitos del trabajo anterior para que puedan funcionar en coordinación después del. Una vez completada la producción, se pueden realizar experimentos in situ.

3. Introducción al diseño colaborativo. . Herramientas EDA

Las herramientas EDA representativas para el codiseño de software y hardware incluyen CORSAIR, COOL y POLIS. Todos estos sistemas comienzan con la descripción del comportamiento del sistema a nivel de sistema, pasan por la estimación de costos, la división de software y hardware, la síntesis y simulación colaborativa de software y hardware, y finalmente alcanzan prototipos rápidos a nivel de placa (excepto CO ()L). Las placas prototipo generalmente incluyen una MCU y un ASIC o FPGA. La parte de software se ejecuta en un microprocesador o microcontrolador y la parte de hardware se implementa en un ASIC o FPGA.

En la fase de descripción del sistema de Corsair, SDL y PMSC trabajaron juntos para modelar el sistema. SDL es un lenguaje de descripción de sistemas orientado a objetos basado en la semántica de máquinas de estados finitos. CORSAIR lo utiliza para describir las funciones de comportamiento del sistema. El PMSC describe los requisitos de rendimiento del sistema. Coolpad utiliza VHDL como lenguaje de descripción del sistema. En POLIS, los diseñadores utilizan un lenguaje de alto nivel con semántica extendida de máquina de estados finitos (como un subconjunto completo de VHDL) para describir el sistema. Los modelos computacionales de estos sistemas se limitan esencialmente a máquinas de estados finitos extendidas. Actualmente, en el diseño del sistema se utiliza UlMI. Como lenguaje de modelado de sistemas, es una dirección de desarrollo prometedora.

En términos de división de software y hardware, POLIS debe implementarse manualmente, mientras que las otras dos herramientas pueden dividirlo automáticamente. La arquitectura de destino de Corsair es multiprocesador y multi-FPGA, Coolpad es multiprocesador y POUS es de un solo procesador.

La fase de cosíntesis de estos sistemas tiene como finalidad generar el lenguaje de descripción hardware del hardware y el código C del software y realizar una cosimulación sobre los mismos.