Abstract

Methods that approximately analyze the design and try to detect as many design bugs as possible are needed in cases where it is impossible to apply model-checking-type state-based analysis methods to such design descriptions. This chapter discusses static analysis of high-level design descriptions in C/C++-based languages. The extensions over C/C++ languages for hardware descriptions and the static analysis method for them are also discussed. The chapter begins by targeting C/C++-based design languages for hardware/software co-designs, such as SpecC and SystemC. Static-checking methods used in software analysis fields are reviewed, starting with program slicing and the system dependence graph (SDG) that is used as the basic representation of the program descriptions to be checked. SDG's extensions for hardware/software (HW/SW) co-designs are introduced and are then expanded so that concurrent processes and their communications can be processed, which is essential for hardware/software co-designs. Program slicing is a software analysis technique that generates SDGs by which dependences among program statements can be identified. Here HW/SW co-design methodology based on the static and partially dynamic dependence analysis with SDG is looked at. With this method, the readers can start with any combination of C, C++, and SpecC descriptions so that flexible functional specifications of the HW/SW systems can be described.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call