Controlling a complete hardware synthesis toolchain with LARA aspects

  • Authors:
  • João M. P. Cardoso;Tiago Carvalho;José G. F. Coutinho;Ricardo Nobre;Razvan Nane;Pedro C. Diniz;Zlatko Petrov;Wayne Luk;Koen Bertels

  • Affiliations:
  • Departamento de Engenharia Informática, Faculdade de Engenharia (FEUP), Universidade do Porto, Rua Dr. Roberto Frias, s/n 4200-465 Porto, Portugal INESC-TEC, Porto, Portugal;Departamento de Engenharia Informática, Faculdade de Engenharia (FEUP), Universidade do Porto, Rua Dr. Roberto Frias, s/n 4200-465 Porto, Portugal INESC-TEC, Porto, Portugal;Department of Computing, Imperial College London, 180 Queen's Gate, London SW7 2BZ, United Kingdom;Departamento de Engenharia Informática, Faculdade de Engenharia (FEUP), Universidade do Porto, Rua Dr. Roberto Frias, s/n 4200-465 Porto, Portugal INESC-TEC, Porto, Portugal;Computer Engineering Laboratory, Delft University of Technology, Mekelweg 4, 2628CD Delft, The Netherlands;INESC-ID, Rua Alves Redol, 9, 1000-029 Lisboa, Portugal;Honeywell International s.r.o, Turanka 100, 627 00 Brno, Czech Republic;Department of Computing, Imperial College London, 180 Queen's Gate, London SW7 2BZ, United Kingdom;Computer Engineering Laboratory, Delft University of Technology, Mekelweg 4, 2628CD Delft, The Netherlands

  • Venue:
  • Microprocessors & Microsystems
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

The synthesis and mapping of applications to configurable embedded systems is a notoriously complex process. Design-flows typically include tools that have a wide range of parameters which interact in very unpredictable ways, thus creating a large and complex design space. When exploring this space, designers must manage the interfaces between different tools and apply, often manually, a sequence of tool-specific transformations making design exploration extremely cumbersome and error-prone. This paper describes the use of techniques inspired by aspect-oriented technology and scripting languages for defining and exploring hardware compilation strategies. In particular, our approach allows developers to control all stages of a hardware/software compilation and synthesis toolchain: from code transformations and compiler optimizations to placement and routing for tuning the performance of application kernels. Our approach takes advantage of an integrated framework which provides a transparent and unified view over toolchains, their data output and the control of their execution. We illustrate the use of our approach when designing application-specific hardware architectures generated by a toolchain composed of high-level source-code transformation and synthesis tools. The results show the impact of various strategies when targeting custom hardware and expose the complexities in devising these strategies, hence highlighting the productivity benefits of this approach.