DocumentCode
871388
Title
Using global code motions to improve the quality of results for high-level synthesis
Author
Gupta, Sumit ; Savoiu, Nick ; Dutt, Nikil ; Gupta, Rajesh ; Nicolau, Alex
Author_Institution
Center for Embedded Comput. Syst., Univ. of California, Irvine, CA, USA
Volume
23
Issue
2
fYear
2004
Firstpage
302
Lastpage
312
Abstract
The quality of synthesis results for most high-level synthesis approaches is strongly affected by the choice of control flow (through conditions and loops) in the input description. This leads to a need for high-level and compiler transformations that overcome the effects of programming style on the quality of generated circuits. To address this issue, we have developed a set of speculative code-motion transformations that enable movement of operations through, beyond, and into conditionals with the objective of maximizing performance. We have implemented these code transformations, along with supporting code-motion techniques and variable renaming techniques, in a high-level synthesis research framework called Spark. Spark takes a behavioral description in ANSI-C as input and generates synthesizable register-transfer level VHDL. We present results for experiments on designs derived from three real-life multimedia and image processing applications, namely, the MPEG-1 and -2 and GNU image manipulation program applications. We find that the speculative-code motions lead to reductions between 36% and 59% in the number of states in the finite-state machine (controller complexity) and the cycles on the longest path (performance) compared with the case when only nonspeculative code motions are employed. Also, logic synthesis results show fairly constant critical path lengths (clock period) and a marginal increase in area.
Keywords
circuit optimisation; codes; embedded systems; hardware description languages; high level synthesis; image coding; parallelising compilers; ANSI-C; GNU; MPEG; Spark; circuit quality; clock period; code transformations; compiler transformation; control flow; controller complexity; critical path lengths; embedded systems; finite-state machine; global code motions; high-level synthesis; high-level transformation; image manipulation; image processing; input description; logic synthesis; longest path; parallelizing compilers; performance maximization; programmable circuits; real-life multimedia; register-transfer level VHDL; speculative-code motions; synthesis quality; variable renaming; Circuit synthesis; Control system synthesis; Hardware design languages; High level synthesis; Image processing; Logic; Motion control; Process design; Program processors; Sparks;
fLanguage
English
Journal_Title
Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on
Publisher
ieee
ISSN
0278-0070
Type
jour
DOI
10.1109/TCAD.2003.822105
Filename
1262466
Link To Document