110 likes | 240 Views
FPGA Based SAT Solver. Saleem Sabbagh & Najeeb Darawshy Supervisors: Mony Orbach, Technion & Ilia Averbouch, IBM. Project Characterization. Started at: Winter 2012 Duration: Semester. What is sat. Boolean Satisfiability Problem
E N D
FPGA Based SAT Solver Saleem Sabbagh & Najeeb Darawshy Supervisors: Mony Orbach, Technion & Ilia Averbouch, IBM Project Characterization Started at: Winter 2012 Duration: Semester
What is sat • Boolean Satisfiability Problem • Given a Boolean propositional formula, does there exist assignment of values such that the formula becomes true? • e.g., given the formula f=(x1 ˅x2 ˅-x4) ˄ (x4) ˄ (x2 ˅ -x3) are there values of x1,x2,x3,x4 that produce f=‘1’
cnf • Conjunctive Normal Form • In Boolean Logic, a formula is in CNF if it presented as a conjunction of clauses. • e.g., DIMACS CNF format: c Example CNF format file c p cnf 4 3 1 3 -4 0 4 0 2 -3 0
Description • Hardware based SAT Solver • Implementing DIMACS cnf instances into FPGA
CNF to vhdl example Example.vhdl Example.cnf c Example CNF format filec p cnf 4 31 3 -4 04 02 -3 0 entity SAT is port( x1,x2,x3,x4: in std_logic; F: out std_logic ); end OR_ent; architecture SAT_arc of SAT is begin F <= (x1 or x3 or (not x4) and (x4) and (x2 or (not x3)); end SAT_arc;
Technology • LUT Logic Elements • LUT is a function generator that can implement any function of four variables. • Each clause will be implemented on one LUT therefor we 4000 clauses occupy 8000 LUTs (=LEs) • Random Generator (32 Bit output) • Seed * Constant + Constant • Each variable will receive a random bit, therefor 500 variables 64 x 16 = 1024 LUTs (=LEs)
Flow diagram Programmable File Circuit Description as VHDL CNF Instances Synthesis Conversion Device Programmer FPGA Running SAT Solver PC DE2 Analysis and Timing Report