Title :
AHIR: A Hardware Intermediate Representation for Hardware Generation from High-level Programs
Author :
Sahasrabuddhe, Sameer D. ; Raja, Hakim ; Arya, Kavi ; Desai, Madhav P.
Author_Institution :
IIT, Bombay
Abstract :
We present AHIR, an intermediate representation (IR), that acts as a transition layer between software compilation and hardware synthesis. Such a transition layer is intended to take advantage of optimisations available in the software compiler flow, and also to provide freedom to the low-level synthesiser, to explore options for application-specific implementations. Two operations become possible - reuse of computational resources across different modules in the design, and generation of an application-specific memory subsystem for faster data accesses. AHIR presents a decoupled view of the program, in terms of control flow, dataflow and memory accesses. Each module in AHIR is a triplet consisting of a control-path, datapath and a symbolic association between the two. Memory is represented only by load-store operators, while the memory subsystem is separately designed by the implementor. In the program-to-hardware flow, a module in AHIR corresponds to a function in C. A complete program is a call-graph of functions, which is translated to a set of modules. The call-graph is restricted to be a DAG; recursion is not allowed. The representation is generated by a back-end in the software compiler, which runs after all source-level optimisations have been performed by relevant passes
Keywords :
application specific integrated circuits; hardware-software codesign; logic design; program compilers; AHIR; application-specific implementations; application-specific memory subsystem; call-graph; control flow; dataflow access; hardware generation; hardware intermediate representation; hardware synthesis; high-level programs; load-store operators; low-level synthesizer; memory access; program-to-hardware flow; software compilation; software compiler flow; source-level optimisations; transition layer; Computer languages; Digital signal processing; Field programmable gate arrays; Flow graphs; Hardware; Microprocessors; Optimizing compilers; Programming profession; Timing; Very large scale integration;
Conference_Titel :
VLSI Design, 2007. Held jointly with 6th International Conference on Embedded Systems., 20th International Conference on
Conference_Location :
Bangalore
Print_ISBN :
0-7695-2762-0
DOI :
10.1109/VLSID.2007.28