• DocumentCode
    1447590
  • Title

    Resolution, optimization, and encoding of pointer variables for the behavioral synthesis from C

  • Author

    Séméria, Luc ; De Micheli, Giovanni

  • Author_Institution
    Comput. Syst. Lab., Stanford Univ., CA, USA
  • Volume
    20
  • Issue
    2
  • fYear
    2001
  • fDate
    2/1/2001 12:00:00 AM
  • Firstpage
    213
  • Lastpage
    233
  • Abstract
    As designers may model mixed hardware-software systems using a subset of C or C++, we present SpC, a solution to synthesize and optimize hardware C models with pointers. In hardware, a pointer is not only the address of data in memory, but it may also reference data mapped to registers, ports, or wires. Pointer analysis is used to find the set of locations each pointer may reference in a program at compile time. In this paper, we address the problem of synthesizing and optimizing pointers to multiple variables or array elements. The value of the pointers are encoded and branching statements are used to dynamically access data referenced by pointers. A heuristic is used to efficiently encode the values of the pointers. Compiler techniques are also used to reduce storage before loads and stores. An implementation using the SUIF framework (Wilson et al., 1994; SUIF Compiler Framework) is presented, followed by some case studies and experimental results
  • Keywords
    C language; hardware-software codesign; program compilers; SUIF framework; SpC; array elements; behavioral synthesis; branching statements; compiler framework; hardware C models; mixed hardware-software systems; multiple variables; optimization; pointer variables; Casting; Computer languages; Design optimization; Encoding; Hardware design languages; Libraries; Modeling; Registers; System performance; Wires;
  • 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/43.908442
  • Filename
    908442