La importancia de la abstracción en el diseño embebido

Compartir nota:

Los proveedores de chips programables y los creadores de herramientas de diseño deben elevar el nivel de abstracción del diseño al soportar estándares que permiten dicha abstracción, creando a su vez flujos de diseño de alto nivel. Estos y otros conceptos pertenecen a Giles Peckham, director de marketing de Xilinx. Le contamos más sobre el arte de “embeber”.

Giles Peckham fue el vocero de Xilinx encargado de anunciar los más importantes lanzamientos de la empresa en materia de herramientas de desarrollo de circuitos integrados basados en chips configurables o FPGAs (Field Programmable Gate Arrays). En una nota publicada por Elecronics Weekly News, el directivo se explaya sobre la importancia de lograr los mayores niveles posibles de abstracción al diseñar sistemas embebidos:

La abstracción básicamente elimina el detalle en favor de una descripción funcional, y ha sido necesaria y evidente en el diseño electrónico desde que la primera computadora digital (la ENIAC, de la Armada de EE.UU.) fue creada en 1946. Su desarrollo también marcó el surgimiento del primer lenguaje de programación, necesario para ejecutar instrucciones en orden para llevar a cabo acciones significativas.

Los mayores niveles de abstracción se vuelven aparentes a lo largo de la industria; el lenguaje de máquina puede describirse en código ensamblador, el cual a su vez puede escribirse en lenguaje C y puede especificarse en lenguaje natural humano, por ejemplo. Con cada nivel de abstracción se hace necesario desarrollar una capa de traducción; un método repetible y automatizado para transitar entre niveles altos y bajos de abstracción, hasta que, eventualmente, el concepto se transforma en términos que pueden ser ejecutados o implementados.

Dado que la abstracción está pensada para incrementar la productividad y la eficiencia al describir e implementar un concepto, es importante que los lenguajes que se usen en cada nivel de abstracción sean completos y más simples que los usados en cualquier nivel subordinado.

Es posible que las fases de traducción entre los niveles introduzcan errores de interpretación desde el concepto original, invocando características no previstas al describir el concepto en el mayor nivel de abstracción; puede mostrarse que un programa en C compilado puede ser menos eficiente que el mismo programa escrito en lenguaje ensamblador, por ejemplo, pero escribir en C ofrece mucha más productividad.

La situación anterior ilustra la negociación requerida al adoptar un mayor nivel de abstracción. El traslado desde el concepto a la ejecución sin errores de interpretación o pérdida de performance puede lograrse al mantener un camino directo a través de todos los niveles de abstracción, idealmente usando una única cadena de herramientas.

Al igual que el lenguaje C es usado universalmente para desarrollar software, los lenguajes de descripción de hardware tales como Verilog y VHDL proveen un alto nivel de abstracción cuando se desarrollan circuitos integrados. Los esfuerzos para elevar aún más el nivel de abstracción y eliminar la diferenciación entre hardware y software –al menos a un nivel muy alto– se continúan en la esperanza de que aceleren el diseño de los sistemas. Cada vez más, esos sistemas están pensados para residir en una única pieza de silicio: un System-on-Chip (SoC).

Desarrollar una cadena de herramientas que apunte al diseño de SoC y abarque tanto el desarrollo del hardware como del software a un elevado nivel de abstracción se vuelve imperativo para continuar satisfaciendo la demanda de mayor productividad y eficiencia en el diseño.

Abstracción basada en modelos

Los equipos de diseño están ya usando C y sus derivados, tales como SystemC, para describir funcionalidad a nivel sistema; en algunos casos, buscando acelerarlos al implementar algoritmos en el dominio del hardware. Sin embargo, la conversión de estos algoritmos a una implementación de hardware ha sido tradicionalmente un proceso manual, que involucra reescribir el código en RTL (lenguaje de tiempo real) y resulta en una extensa conversión y largos tiempos de verificación. Las nuevas herramientas de síntesis de alto nivel ofrecen una forma de automatizar los procesos y reducir significativamente los ciclos de verificación.

High Level Synthesis (HLS) permite que un concepto descripto en un lenguaje de alto nivel sea sintetizado hasta el nivel de compuertas en un chip mediante un proceso automatizado, cosa que representa un avance significativo en productividad. Esto es soportado por bibliotecas de algoritmos estándares de la industria, tales como OpenCV, los cuales ofrecen más de 2.500 algoritmos para sistemas embebidos. Xilinx ya ha sintetizado 30 de los más populares algoritmos en la biblioteca usando HLS en la suite de diseño Vivado de la compañía.

Xilinx también está trabajando para integrar y dar soporte a OpenCL, el lenguaje pensado para crear programas que funcionen sobre plataformas heterogéneas sin apuntar necesariamente a un núcleo o a una arquitectura específica. Tal nivel de abstracción también puede soportar la síntesis de algoritmos a un entramado de FPGAs para brindar una performance aún mayor.

Compartir nota:

Publicaciones Relacionadas

Scroll to Top