Developers can save significant amounts of time by not having to redesign circuits that already exist. The IP discovery tool uses different matching techniques to try and find matches between digital circuits with an emphasis on design reuse. It helps broaden the community of hardware developers as designers contribute and learn as a whole. Furthermore the tool can be extended to a wide variety of applications. Finding similar circuits and then providing multiple implementations of the circuit can provide optimization suggestions. One design may be more efficient for a particular function and the user can choose the one more suited for their application. Similar to code-complete for software, by finding similar circuits, the tool can automatically complete a given module. This can reduce overall design time as well. In addition, the tool can be applied to reverse engineering where given a circuit, the function and properties of the circuit can then be determined. One component of the invention relates to circuit "matching." Given two circuits, we are able to determine some distance metric that will be able to indicate how similar the two circuits are. The idea is then extended to a database of circuits where we try and find all possible matches between the reference circuit and those in the database. The circuits will be modeled as graphs in order to utilize many of the graph tools and algorithms that already exist.