What is CGRASP ? CGRASP is a circuit structure-aware version of the satisfiability tool GRASP created at the ALGOS group of INESC-ID. It is intended to be used in solving satisfiability problems derived from combinational logic circuits (ATPG, CEC, CDC, etc).

Where can I get CGRASP ? You can get the source code from below.

What is the input format of CGRASP ? CGRASP accepts as input file an extended version of the ISCAS'85 format. This version contains the same netlist as in the ISCAS'85 format plus the support for ITE (if-then-else) gates and clause information.  Each clause is added as a comment and can only be understood by CGRASP. The following example file illustrate a possible input file.

# Example file

# I/O ports

# combinational circuit
x = NAND (a, b)
y = ITE (a, b, x)
z = OR (y, x)

# clauses
#@ z -y a

In the previous example file, we specify a problem in which we have a combinational circuit with primary inputs a, b, and c and a primary output z, containing three gates: a NAND gate, an ITE (if-the-else) gate and an OR gate. Besides the circuit we add a CNF clause (z+y'+a). For this example, CGRASP will try to find one set of assignments for the variables in order to satisfy the clause and to obtain consistent assignments to the nodes values.

Source code & Binaries

Source code: cgrasp.tar.gz
Binaries: cgrasp-linux-rh5.2.gz[Linux RedHat 5.2], cgrasp-linux-rh6.2.gz[Linux RedHat 6.2], cgrasp-solaris5.gz[Solaris 5], cgrasp-solaris7.gz [Solaris 7]


[LGS - Fri Oct  8 18:20:33 WEST 1999] CGRASP basic version
[LGS - Wed Oct 13 19:48:26 WEST 1999] temporarily removed sources & binaries
[LGS - Mon Oct 18 21:28:40 WEST 1999] new corrected version added
[LGS - Thu Jul 6 18:21:53 WEST 2000] added support for larger files

Any comments regarding this page or CGRASP can be sent to "lgs(at)".