[en] After two decades of existence, High Level Synthesis (HLS) has still not crossed the chasm of technology adoption. However, a boom of computationally expensive technologies, such as computer vision or machine learning, is putting pressure on hardware designers to improve the productivity. To achieve this, it is necessary to raise the abstraction level, and manufacturers like Xilinx are releasing new tools oriented to this goal. Xilinx's new embedded system design tool SDSoC allows the design of hardware coprocessors for the ARM cores found in Zynq and Zynq UltraScale+ SoC families, generating hybrid CPU – FPGA embedded systems for algorithm acceleration. SDSoC goes a step further than Vivado HLS, offering a design workflow similar to the one of software development that allows the generation of these systems from software descriptions. Besides, the growing market of video-enabled drones is having to rely on old-school analog systems for video based remote operation, since the latency of digital video codecs do not allow high-speed piloting. Among many other implications, this means a huge waste of bandwidth. This Graduation Project will try to evaluate the potential of SDSoC for the design of hardware accelerators from C/C++ specifications, specifically for the implementation of video processing applications. The feasibility of implementing an image compression system with a latency low enough to surpass the frame rate of PAL/NTSC technologies and its implications will be studied. This will be explored through the synthesis of a design based on the novel lossy compression algorithm LHE (Logarithmical Hop Encoding), which promises reduced computational cost by not operating on the frequency domain. Starting from an inefficient implementation of the LHE algorithm in Python, a translation to C language will be performed. After multiple optimizations, several refactorizations will be applied to the code towards achieving via SDSoC a synthesizable, implementable and accelerated system. This design has been done for the Zynq XC7Z010 based platform ZynqBerry.

[es] Tras dos décadas de existencia, la síntesis de alto nivel (HLS) sigue sin cruzar la brecha de la adopción tecnológica. Sin embargo, un boom de tecnologías computacionalmente costosas, como la visión artificial o el aprendizaje automático, está haciendo presión para que el proceso de desarrollo de hardware se acelere. Para esto, es necesario elevar el nivel de abstracción, y fabricantes como Xilinx están lanzando nuevas herramientas con este objetivo. La nueva herramienta de diseño de sistemas empotrados SDSoC de Xilinx permite crear coprocesadores hardware para los procesadores ARM presentes en las familias de dispositivos Zynq y Zynq UltraScale+, generando sistemas empotrados híbridos CPU- FPGA para la aceleración de algoritmos. SDSoC va un paso más allá de Vivado HLS, ofreciendo un flujo de diseño similar al desarrollo de software que permite la generación de este tipo de sistemas a partir de descripciones de software Por otro lado, el creciente mercado de drones se está viendo obligado a hacer uso de tecnologías de vídeo analógico para la conducción remota basada en vídeo, debido a que la latencia de los codificadores de vídeo digitales imposibilita la conducción a altas velocidades. En este Trabajo de Fin de Grado se evalúa el potencial de la herramienta SDSoC para el diseño de aceleradores hardware a partir de especificaciones C/C++. Concretamente se analizará su uso para la implementación de aplicaciones de procesamiento de vídeo. Se estudiará la posibilidad de implementar un sistema de compresión de imagen con una latencia lo suficientemente baja como para poder superar la frecuencia de refresco de los sistemas PAL/NTSC. Para ello se tratará de sintetizar un diseño basado en un nuevo algoritmo de compresión con pérdidas, LHE (Logarithmical Hop Encoding), que ofrece un costo computacional reducido al no operar en el dominio de la frecuencia. Partiendo de una implementación ineficiente del algoritmo LHE en Python, se ha realizado una traducción a lenguaje C, una serie de optimizaciones, y finalmente una serie de transformaciones hasta lograr con SDSoC un diseño sintetizable, implementable y acelerado. El diseño se ha realizado para la plataforma ZynqBerry, basada en un Zynq XC7Z010.