Hardware description languages (HDLs) are used today to describe circuits at all levels. In large HDL programs, there is a
need for source code reduction techniques to address a myriad of problems in formal verification, design, simulation, and
testing. Program slicing is a static program analysis technique that allows an analyst to automatically extract portions of
programs relevant to the aspects being analyzed. We extend program slicing to HDLs, thus allowing for automatic program reduction
to allow the user to focus on relevant code portions. We have implemented a VHDL slicing tool composed of a general inter-procedural
slicer and a front-end that captures VHDL execution semantics. This paper provides an overview of program slicing, a discussion
of how to slice VHDL programs, a description of the resulting tool, and a brief overview of some applications and experimental
results.
This research is supported in part by the Semiconductor Research Corporation (SRC) (Contract 97-DJ-294), the National Science
Foundation (NSF) (Grants CCR- 9505472, CCR-9625667, CCR-9619219), the Defense Advanced Research Projects Agency (DARPA) (Contract
DABT63-96-C-0071), the United States-Israel Binational Science Foundation (Grant 96-00337), IBM, and the University of Wisconsin
(Vilas Associate Award). Any opinions, findings and conclusions or recommendations expressed in this material are those of
the authors and do not necessarily reflect the views of the supporting agencies.