The overall idea is that we want to compare two circuits inexactly. In otherwords how similar are two given circuits in terms of both structure and function. The high level goal is that this comparison will allow an automated system to suggest existing circuits for a hardware designer to reuse in attempt to increase design productivity. There are many papers out there that look into exact matching of circuits and extracting high level functionality from a netlist. However, very few want to look at inexact matching.

A circuit inherently is represented as a structured data. In otherwords, the most common representation of a circuit is a graphical one with the components as vertices and nets and edges. However, comparing graphs is a difficult problem let alone the similarity of two graphs. Furthermore, the problem becomes harder as the size of the circuit increases. A lot of learning and similarity algorithms deals with vectors and multi dimensional data structures such as graphs pose a problem.

The idea that is currently pursued follows the approach of Molecular similarity matching. In molecular similairty matching, a fingerprint of each molecule is found. The fingerprint is a bitvector where each bit indicates if a substructure exists in the molecule. Then using Tanimoto's Coefficient, the similarity of the two molecule is determined.

Therefore, using the same approach, we want to construct a suitable fingerprint for a circuit that will allow for efficient and fast circuit comparison.

- Kaiwen's blog
- Log in to post comments