To SAT or Not to SAT: Scalable Exploration of Functional Dependency

  • Authors:
  • Jie-Hong Roland Jiang;Chih-Chun Lee;Alan Mishchenko;Chung-Yang (Ric) Huang

  • Affiliations:
  • National Taiwan University, Taipei;National Taiwan University, Taipei;University of California at Berkeley, Berkeley;National Taiwan University, Taipei

  • Venue:
  • IEEE Transactions on Computers
  • Year:
  • 2010

Quantified Score

Hi-index 14.98

Visualization

Abstract

Functional dependency is concerned with rewriting a Boolean function f as a function h over a set of base functions {g_1, \ldots, g_n}, i.e., f = h(g_1, \ldots, g_n). It plays an important role in many aspects of electronic design automation (EDA). Prior approaches to the exploration of functional dependency are based on binary decision diagrams (BDDs), which may not be easily scalable to large designs. This paper formulates both single-output and multiple-output functional dependencies as satisfiability (SAT) solving and exploits extensively the capability of a modern SAT solver. Thereby, functional dependency can be detected effectively through incremental SAT solving, and the dependency function h, if it exists, is obtained through Craig interpolation. The proposed method enables 1) scalable detection of functional dependency, 2) fast enumeration of dependency function under a large set of candidate base functions, and 3) potential application to large-scale logic synthesis and formal verification. Experimental results show that the proposed method is far superior to prior work and scales well in dealing with the largest ISCAS and ITC benchmark circuits with up to 200K gates.