150 likes | 273 Views
FPGA Based SAT Solver. Saleem Sabbagh & Najeeb Darawshy Supervisors: Mony Orbach, Technion & Ilia Averbouch, IBM. Final presentation. Started at: Winter 2012 Duration: Semester. outline. What is SAT Reminder - description and goals Flow diagram Circuit diagram
E N D
FPGA Based SAT Solver Saleem Sabbagh & Najeeb Darawshy Supervisors: Mony Orbach, Technion & Ilia Averbouch, IBM Final presentation Started at: Winter 2012 Duration: Semester
outline • What is SAT • Reminder - description and goals • Flow diagram • Circuit diagram • Example simulation results • Live Presentation • Runtimes • Compilation times • Notes & Conclusions • What’s Next
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 ˅ x3˅ -x4) ˄ (x4) ˄ (x2 ˅ -x3) are there values of x1,x2,x3,x4 that produce f=‘1’
Reminder – description and goals • Description: • Hardware based SAT Solver • Goals: • Implementing SAT instances into FPGA • Measuring build and run times for benchmark examples • Enabling further development of fast hardware based SAT Solver
Flow diagram Programmable File Circuit Description as VHDL CNF Instances Synthesis Conversion Device Programmer FPGA Running SAT Solver PC DE2 Analysis and Timing Report
circuit diagram F clk en sOUT timeOUT
circuit diagram - LFSR • LFSR Random Generator (Generic width up to 168 bits)
circuit diagram - Smartshift • A right shift register with Parallel Load, Shift Enable, Parallel and Serial output • While SAT still unsatisfiable F=0, NOT(F)=1 therefor: LOAD=1 D is loaded into register; SE=0 Shift not enabled. • When found satisfying input F=1, NOT(F)=0 therefor: LOAD=0 Stop Loading Parallel input; SE=1 Start shifting; MSB Satisfying input.
Example simulation results • For SAT instance of 20 variables and 91 clauses • Satisfying input: 00101011011101000000
Runtime *Clock frequency is 50M [Hz]
Compilation times *Clock frequency is 50M [Hz]
Compilation times - Analysis • Compilation time is comprised of two main stages, Analysis & Synthesis and Place & Route. We found the problem to be associated directly to the peak interconnect usage during Place & Route stage.
Notes • Tried several solutions for 1000-variables SAT with 4250 clauses in order to decrease compilation time: • Low Priority Optimization during Compliation – Did not help. • Better Altera board, Altera Stratix V – 85% cut in compilation time. • In order to better sample our variables spectrum, We have used two applications: • Java based Random SAT generator with 4.25:1 ratio (Clauses:Variables) which was used for compilation time analysis. • Cpp based satisfyable/unsatisfyable SAT generator used in official sat competitions which was used for runtimes analysis.
Whats next • Two approaches • Improving runtimes by designing smart sat solver instead of inefficient LFSR random generator • Improving compilation times by: • Understanding Altera compilation algorithms to enable faster SAT-specific fpga ready files. • Smart use of memory on FPGA to implement SAT.
Thank you! • Questions?