ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
SPL: a language and compiler for DSP algorithms
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
The MOLEN Polymorphic Processor
IEEE Transactions on Computers
Practical fpga programming in c
Practical fpga programming in c
A scalable auto-tuning framework for compiler optimization
IPDPS '09 Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing
Compiling for reconfigurable computing: A survey
ACM Computing Surveys (CSUR)
Designing Modular Hardware Accelerators in C with ROCCC 2.0
FCCM '10 Proceedings of the 2010 18th IEEE Annual International Symposium on Field-Programmable Custom Computing Machines
MULTICUBE: Multi-objective Design Space Exploration of Multi-core Architectures
ISVLSI '10 Proceedings of the 2010 IEEE Annual Symposium on VLSI
LARA: an aspect-oriented programming language for embedded systems
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Specifying Compiler Strategies for FPGA-based Systems
FCCM '12 Proceedings of the 2012 IEEE 20th International Symposium on Field-Programmable Custom Computing Machines
Reconfigurable Design Automation by High-Level Exploration
ASAP '12 Proceedings of the 2012 IEEE 23rd International Conference on Application-Specific Systems, Architectures and Processors
Controlling Hardware Synthesis with Aspects
DSD '12 Proceedings of the 2012 15th Euromicro Conference on Digital System Design
Hi-index | 0.00 |
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.