ACM Home Page
Please provide us with feedback. Feedback
A code refinement methodology for performance-improved synthesis from C
Full text PdfPdf (219 KB)
Source International Conference on Computer Aided Design archive
Proceedings of the 2006 IEEE/ACM international conference on Computer-aided design table of contents
San Jose, California
SESSION: Specification and architecture challenges in high-level synthesis table of contents
Pages: 716 - 723  
Year of Publication: 2006
ISBN ~ ISSN:1092-3152 , 1-59593-389-1
Authors
Greg Stitt  University of California, Riverside
Frank Vahid  Also with the Center for Embedded Computer Systems, UC Irvine
Walid Najjar  University of California, Riverside
Sponsors
IEEE-CS : Computer Society
IEEE-CAS : Circuits & Systems
SIGDA: ACM Special Interest Group on Design Automation
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 37,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1233501.1233649
What is a DOI?

ABSTRACT

Although many recent advances have been made in hardware synthesis techniques from software programming languages such as C, the performance of synthesized hardware commonly suffers due to the use of C constructs and coding practices that are not appropriate for hardware. Most previous approaches to addressing this problem require drastic changes to coding practice. We present an approach that instead requires only minimal changes but yields significant speedups. In this approach, a software developer initially writes C code as they normally would, and then applies simple refinement guidelines to only the performance-critical code regions, which are the regions most likely to be synthesized to hardware. Alternatively, if a designer is aware of performance-critical parts of the application, the guidelines could be followed during development. In this study, we analyze dozens of embedded benchmarks to determine the most common C coding practices that limit hardware performance, and introduce coding guidelines to make the code more amenable to synthesis. Those guidelines typically require minimal coding effort, generally consisting of less than ten lines of code for each guideline. The guidelines typically represent modifications that require designer knowledge, making the guidelines difficult or impossible for synthesis tools to automate. We apply these guidelines to six benchmarks, resulting in average speedups of 3.5x compared to synthesis from the original code with a negligible software size and performance overhead.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
CatapultC. http://www.mentor.com/products/c-based_design/
 
3
Coding guidelines for datapath synthesis. www.synopsys.com/products/designware/dwtb/articles/coding_guidelines/coding_guidelines.html
 
4
 
5
6
7
 
8
 
9
 
10
11
 
12
 
13
OXFORD Hardware Compilation Group, The Handel language, Technical Report, Oxford University, 1997.
14
 
15
Séméria, L. and De Micheli, G. SpC: synthesis of pointers in C. In proceedings of the international conference on computer-aided design (ICCAD), 1998, 8--12.
 
16
17


Collaborative Colleagues:
Greg Stitt: colleagues
Frank Vahid: colleagues
Walid Najjar: colleagues