The re-engineering of digital circuits is an increasingly important problem in design automation. The effective redesign of a digital system requires an exceptionally detailed description. Unfortunately, the original specifications of a design are often outdated or simply unavailable, so it may be necessary to recover the design directly from a hardware component.

Recovering this level of design can be an extremely complicated task, and determining the roles of system components is the very first step in the process. This paper presents an algorithm based on the semantic matching approach that can help to identify the functional roles of a system component. It also discusses the software implementation of the algorithm and compares its results to those of other techniques.