Scala-Based Domain-Specific Language for Creating Accelerator-Based SoCs

Nowadays, thanks to technology miniaturization and industrial standards, it is possible to create System-on-Chip (SoC) architectures featuring a combination of many components, like processor cores and specialized hardware accelerators. However, designing an SoC to accelerate an embedded application is particularly complex. After decomposing this application into tasks and assigning each of them to a processing element, the designer must create the required hardware components and integrate them into the final system. Currently, this process is not well supported by commercial tool flows and has to be manually performed. This is time consuming and error prone. This paper proposes a Domain-Specific Language (DSL) based on Scala to specify the architecture of accelerator-based SoCs. We leverage this DSL to coordinate commercial High-Level Synthesis (HLS) tools in order to create the corresponding accelerators with proper standard interfaces for system-level integration.

[1]  Fabrizio Ferrandi,et al.  Bambu: A modular framework for the high level synthesis of memory-intensive applications , 2013, 2013 23rd International Conference on Field programmable Logic and Applications.

[2]  Antonino Tumeo,et al.  Mapping and scheduling of parallel C applications with Ant Colony Optimization onto heterogeneous reconfigurable MPSoCs , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[3]  Milind Girkar,et al.  The hierarchical task graph as a universal intermediate representation , 2007, International Journal of Parallel Programming.

[4]  Andy D. Pimentel,et al.  Design space pruning through hybrid analysis in system-level design space exploration , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[5]  Marco D. Santambrogio,et al.  SMASH: A heuristic methodology for designing partially reconfigurable MPSoCs , 2013, 2013 International Symposium on Rapid System Prototyping (RSP).

[6]  R. Schaller,et al.  Moore's law: past, present and future , 1997 .

[7]  George A. Constantinides,et al.  High-level synthesis of dynamic data structures: A case study using Vivado HLS , 2013, 2013 International Conference on Field-Programmable Technology (FPT).

[8]  Pier Luca Lanzi,et al.  Ant Colony Heuristic for Mapping and Scheduling Tasks and Communications on Heterogeneous Embedded Systems , 2010, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  Jürgen Becker,et al.  Heterogeneous and runtime parameterizable Star-Wheels Network-on-Chip , 2011, 2011 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation.

[10]  Andy D. Pimentel,et al.  System-Level Design Space Exploration of Dynamic Reconfigurable Architectures , 2008, SAMOS.

[11]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[12]  Mark Horowitz,et al.  1.1 Computing's energy problem (and what we can do about it) , 2014, 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC).

[13]  Louise H. Crockett,et al.  The Zynq Book: Embedded Processing with the Arm Cortex-A9 on the Xilinx Zynq-7000 All Programmable Soc , 2014 .

[14]  Karthikeyan Sankaralingam,et al.  Dark Silicon and the End of Multicore Scaling , 2012, IEEE Micro.

[15]  Jürgen Becker,et al.  Runtime adaptive multi-processor system-on-chip: RAMPSoC , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

[16]  Jason Cong,et al.  High-Level Synthesis for FPGAs: From Prototyping to Deployment , 2011, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[17]  Alexandru Turjan,et al.  System design using Khan process networks: the Compaan/Laura approach , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[18]  Ed F. Deprettere,et al.  Daedalus: Toward composable multimedia MP-SoC design , 2008, 2008 45th ACM/IEEE Design Automation Conference.