Program Slicing for System Level Designs in SpecC

K. Tanabe, S. Sasaki, and M. Fujita (Japan)


program analysis, program slicing, system level design,SpecC, system dependence graph, concurrency


Program slicing is a technique by which related portions of the programs are extracted based on user-specified cri teria and has been used for analyzing programs, support ing debugging tools, reusing portions of the programs, and others. In this paper, we present techniques to establish a program slicing method targeting system level design lan guages for hardware/software codesigns, such as system LSI (or System-on-Chip, SoC) design processes. More specifically we give program slicing methods for system level design and specification languages based on C pro gramming language, such as SpecC and SystemC. Their base semantics are the same as C programming language but have been extended in order to deal with "system level designs", that is, they can seamlessly describe both soft ware and hardware within the languages. The most impor tant extensions are: introduction of concurrent processes, channel based communications among them, synchroniza tion of concurrent executions, and introduction of structural hierarchy as well as functional hierarchy. Based on the pro gram slicing tools for C/C++ programming languages, we give how those extensions can be processed and also how the program slicing tools can be built. Though the pro posed techniques can be applied to almost all system level design and specification languages such as, SpecC, Sys temC, and others, we pick up SpecC as a representative for them and give detailed algorithms for slicing SpecC de scriptions. SpecC language is a system level description language based on ANSI-C language. In order to realize program slicing for SpecC, we reflect SpecC proper syn taxes such as par, channel, notify, and wait onto a depen dence graphs used in the program slicing of ANSI-C lan guage. By using those graphs, program slicing of SpecC language is realized based on the program slicing method used in ANSI-C language with a little extension.

Important Links:

Go Back