Memory Representation and Hardware Synthesis of C Code with Pointers and Complex Data Structures

ism. communication and data-type. For reactivity. SVSTEMC [21) from Synopsys. CoWare and Frontier Design supports a mixed synchronous and asynchronous approach implemented as a C++ library. Other extensions include ECL [5) from Cadence based on C and Esterel. HANDLE-C [17) and BACH-C [3) originally based on CX:CAM. SPECC [18) based on SPECCHART and CYNLIB [16). In order to map functionality to hardware. a synthesizableCIC++ subset is usually defined. We can distinguish two approaches. The first app-oach consists of translating a subset of C into HDL (Verilog or VHDL) which will eventually be synthesized using today's synthesis tools. Examples of such approach include the early BACH-C compiler [3] from Sharp. OCAPI [8) from IMEC as well as other commercial tools. The second approach consists of using CIC++ directly. as an input to behavioral synthesis. In particular. this approach has been chosen by Synopsys with SCENIC [2) and by NBC with CYBER [13).

[1]  Luciano Lavagno,et al.  ECL: a specification environment for system-level design , 1999, DAC '99.

[2]  Giovanni De Micheli,et al.  Resolution of dynamic memory allocation and pointers for the behavioral synthesis form C , 2000, DATE '00.

[3]  Patrick Schaumont,et al.  A programming environment for the design of complex high speed ASICs , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[4]  Chantal Ykman-Couvreur,et al.  Memory management for embedded network applications , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[5]  Giovanni De Micheli,et al.  High Level Synthesis of ASlCs un - der Timing and Synchronization Constraints , 1992 .

[6]  Francky Catthoor,et al.  Custom Memory Management Methodology , 1998, Springer US.

[7]  Koichi Nishida,et al.  Hardware synthesis with the Bach system , 1999, ISCAS'99. Proceedings of the 1999 IEEE International Symposium on Circuits and Systems VLSI (Cat. No.99CH36349).

[8]  Alexandru Nicolau,et al.  Memory Issues in Embedded Systems-on-Chip: Optimizations and Exploration , 1998 .

[9]  Giovanni De Micheli,et al.  Encoding of Pointers for Hardware Synthesis , 1998 .

[10]  G. De Micheli,et al.  Resolution of dynamic memory allocation and pointers for the behavioral synthesis from C , 2000, Proceedings Design, Automation and Test in Europe Conference and Exhibition 2000 (Cat. No. PR00537).

[11]  Giovanni De Micheli,et al.  SpC: synthesis of pointers in C: application of pointer analysis to the behavioral synthesis from C , 1998, ICCAD.

[12]  Stan Y. Liao,et al.  Hardware synthesis from C/C++ , 1999, DATE '99.

[13]  Monica S. Lam,et al.  Efficient context-sensitive pointer analysis for C programs , 1995, PLDI '95.

[14]  C.E. Stroud,et al.  Behavioral model synthesis with Cones , 1988, IEEE Design & Test of Computers.