Inicio Software Aceleración de la verificación de IP de algoritmos en sistemas inalámbricos y...

Aceleración de la verificación de IP de algoritmos en sistemas inalámbricos y de procesamiento de vídeo

La verificación de sistemas que hacen un uso intensivo de algoritmos
es un proceso largo y costoso. Los estudios demuestran que la mayoría
de los defectos de los sistemas embebidos se introducen en la etapa de especificaciones, pero no se detectan hasta bien avanzado el proceso
de desarrollo. Estos defectos son la principal causa de los retrasos en los proyectos y suponen una parte importante de los costes de ingeniería.

 

Pero esto no tiene por qué ser así. Muchos diseñadores de sistemas con gran cantidad de algoritmos ya disponen de las herramientas necesarias para controlar la verificación. Los ingenieros pueden servirse de estas mismas herramientas para crear modelos de sistemas que les ayuden a localizar y corregir los problemas en una fase más temprana del proceso de desarrollo.
De esta forma, no solo se reduce el tiempo dedicado a la verificación, sino que también se incrementa el rendimiento de los diseños. En este artículo se explican tres enfoques prácticos de la verificación temprana que hacen posible esto.

 

En primer lugar, analizaremos por qué el proceso actual de verificación de IP de algoritmos es ineficiente y proclive a errores. Las IP de algoritmos pueden diferenciar sistemas con funciones de comunicación, audio, vídeo, imágenes
y navegación. Al contrario que los componentes listos para usar, las IP de algoritmos son el “toque secreto” de una empresa, son específicas de las aplicaciones de manera inherente y precisan de un enfoque distinto en la verificación.

 

En un flujo de trabajo típico, los diseños comienzan con los desarrolladores
de algoritmos, que trasladan el diseño a los equipos de hardware y software mediante documentos de especificaciones

Cada equipo suele desarrollar sus propios procedimientos de prueba a fin de determinar si la implementación es correcta desde un punto de vista funcional. Estos procedimientos de prueba a menudo se crean para cada caso concreto
y se basan en la interpretación de las especificaciones por parte del ingeniero. Esto supone un problema, ya que en muchos casos los ingenieros de hardware y software no cuentan con las herramientas ni los conocimientos sobre el dominio de aplicación necesarios para interpretar e implementar correctamente las especificaciones. Y viceversa: es posible que los desarrolladores de algoritmos no dispongan de las herramientas ni la experiencia necesarias para garantizar que han identificado todos los requisitos precisos en el “mundo real”. Con frecuencia descubren en una fase tardía del proceso de desarrollo que los algoritmos no funcionan como se esperaba en el entorno de ejecución.

 

El uso de herramientas y flujos de trabajo diferentes para los componentes de software y hardware digitales y analógicos/RF agrava esta ineficiencia, ya que impide la verificación del comportamiento del sistema en diferentes dominios. Esto puede provocar interacciones inesperadas entre el hardware y el software. Como resultado, la verificación del sistema no se produce hasta el final del flujo de trabajo, en la fase de integración del sistema, cuando los cambios de diseño son más difíciles y más caros de realizar.

 

Dado que la mayoría de los errores se introducen en la etapa de especificación, las herramientas convencionales de hardware, software y ESL no pueden resolver estos problemas, ya que dan por hecho que los requisitos se han capturado de forma adecuada y precisa en la especificación. Es necesario hacer frente al problema de la verificación al principio del proceso y a través de la conexión del modelado de algoritmos y comportamientos con los flujos de trabajo subsiguientes.

Verificación temprana gracias al diseño basado en modelos

El diseño basado en modelos ofrece un enfoque mejor. Proporciona una serie de herramientas para el diseño de algoritmos, la simulación y creación de prototipos de sistemas y el análisis riguroso. Mediante estas herramientas, los algoritmos

y las pruebas se diseñan como parte de un modelo de sistema de comportamiento. Este modelo de sistema sirve como base de una especificación ejecutable que todos los equipos de diseño pueden utilizar como referencia de diseño y test bench. Este enfoque ofrece a todos los equipos de diseño (incluidos los de desarrollo de algoritmos, arquitectura de sistemas y diversos componentes) una visión inequívoca y compartida de los requisitos de diseño

El uso del diseño basado en modelos para verificar el comportamiento de sistemas y componentes tiene varias ventajas:

  • Los problemas de diseño e integración se pueden descubrir pronto gracias a la simulación, cuando aún son fáciles de corregir.
  • Es posible desarrollar pruebas a la vez que el diseño para garantizar que la especificación ejecutable satisfaga los requisitos.
  • La reutilización de modelos a modo de test benches para la implementación de componentes elimina la creación manual de pruebas
    y reduce los errores de interpretación.
  • Los diseñadores pueden evaluar con rapidez los análisis de compromiso, las interacciones de los componentes y las métricas a nivel del sistema.

 

Estas posibilidades de verificación temprana solventan la mayor fuente de retrasos en los productos, ya que permiten a los ingenieros descubrir y corregir los defectos en la etapa de especificación. Las investigaciones independientes han demostrado que con esto se puede reducir el tiempo y el coste de desarrollo de los productos a la mitad, además de permitir que se consigan mejores diseños de productos.

 

Verificación automatizada y reutilización de test benches

Empezar a usar el diseño basado en modelos resulta sorprendentemente fácil. Como primer paso, los diseñadores de algoritmos y los equipos de implementación pueden colaborar para automatizar los procedimientos de prueba existentes con las herramientas que ya utilizan. Desde la perspectiva
de los diseñadores de algoritmos, esta automatización tiene más que ver con un cambio en la forma de pensar que con una modificación de la carga de trabajo, ya que ellos ya desarrollan test benches a fin de comprobar su propio trabajo.
En el flujo de diseño tradicional, estos test benches no salen del grupo de diseño de algoritmos. Con el diseño basado en modelos, este trabajo se puede reutilizar en lugar de perderse con el traspaso al equipo de implementación.

 

La reutilización se consigue mediante las interfaces de automatización de las herramientas de modelado de algoritmos y sistemas, que permiten la cosimulación mediante simuladores de hardware y placas de desarrollo ampliamente utilizados. Esta cosimulación sustituye las técnicas de comparación manuales y basadas en scripts que, de otro modo, serían necesarias para verificar que el código C, HDL y las implementaciones de circuitos analógicos cumplen las métricas a nivel del sistema. La reutilización de test benches reduce significativamente las tareas de verificación y permite a todos los equipos utilizar de forma más eficiente las herramientas y los flujos de trabajo existentes.

El uso del diseño basado en modelos para verificar el comportamiento de sistemas y componentes tiene varias ventajas:

  • Los problemas de diseño e integración se pueden descubrir pronto gracias a la simulación, cuando aún son fáciles de corregir.
  • Es posible desarrollar pruebas a la vez que el diseño para garantizar que la especificación ejecutable satisfaga los requisitos.
  • La reutilización de modelos a modo de test benches para la implementación de componentes elimina la creación manual de pruebas
    y reduce los errores de interpretación.
  • Los diseñadores pueden evaluar con rapidez los análisis de compromiso, las interacciones de los componentes y las métricas a nivel del sistema.

 

Estas posibilidades de verificación temprana solventan la mayor fuente de retrasos en los productos, ya que permiten a los ingenieros descubrir y corregir los defectos en la etapa de especificación. Las investigaciones independientes han demostrado que con esto se puede reducir el tiempo y el coste de desarrollo de los productos a la mitad, además de permitir que se consigan mejores diseños de productos.

 

Verificación automatizada y reutilización de test benches

Empezar a usar el diseño basado en modelos resulta sorprendentemente fácil. Como primer paso, los diseñadores de algoritmos y los equipos de implementación pueden colaborar para automatizar los procedimientos de prueba existentes con las herramientas que ya utilizan. Desde la perspectiva
de los diseñadores de algoritmos, esta automatización tiene más que ver con un cambio en la forma de pensar que con una modificación de la carga de trabajo, ya que ellos ya desarrollan test benches a fin de comprobar su propio trabajo.
En el flujo de diseño tradicional, estos test benches no salen del grupo de diseño de algoritmos. Con el diseño basado en modelos, este trabajo se puede reutilizar en lugar de perderse con el traspaso al equipo de implementación.

 

La reutilización se consigue mediante las interfaces de automatización de las herramientas de modelado de algoritmos y sistemas, que permiten la cosimulación mediante simuladores de hardware y placas de desarrollo ampliamente utilizados. Esta cosimulación sustituye las técnicas de comparación manuales y basadas en scripts que, de otro modo, serían necesarias para verificar que el código C, HDL y las implementaciones de circuitos analógicos cumplen las métricas a nivel del sistema. La reutilización de test benches reduce significativamente las tareas de verificación y permite a todos los equipos utilizar de forma más eficiente las herramientas y los flujos de trabajo existentes.

Quizás sea incluso más importante la capacidad de crear mejores diseños de productos y evolucionar los existentes, ya que los modelos de sistemas sólidos facilitan la creación de diseños derivados o su rápida adaptación a nuevos requisitos.

 

Las empresas que adoptan técnicas de verificación temprana descubren que la comunicación y la colaboración mejoran entre los distintos equipos multidisciplinares distribuidos. Los equipos de menor tamaño también obtienen un ahorro significativo en tiempo y coste, aunque solamente adopten un aspecto.

 

Empresas de comunicaciones, electrónica y semiconductores de primer orden han utilizado todas estas técnicas de verificación temprana para conseguir ventajas competitivas reduciendo los costes de las pruebas y la verificación al tiempo que refuerzan su capacidad para desarrollar productos nuevos e innovadores y ponerlos a la venta a mayor velocidad.