250 likes | 400 Views
Detecting State Coding Conflicts in STGs Using SAT. Victor Khomenko , Maciej Koutny , and Alex Yakovlev University of Newcastle upon Tyne. Talk Outline. Introduction Asynchronous circuits Complete state coding (CSC) State graphs vs. net unfoldings
E N D
Detecting State CodingConflicts in STGs Using SAT Victor Khomenko, Maciej Koutny, and Alex Yakovlev University of Newcastle upon Tyne
Talk Outline • Introduction • Asynchronous circuits • Complete state coding (CSC) • State graphs vs. net unfoldings • Translating a CSC problem into a SAT one • Analysis of the method • Experimental results • Future work
Asynchronous Circuits Asynchronous circuits – no clocks: • Low power consumption • Average-case rather than worst-case performance • Low electro-magnetic emission • No problems with the clock skew • Hard to synthesize • The theory is not sufficiently developed • Limited tool support
Data Transceiver Device Bus d lds dsr VME Bus Controller dsw ldtack dtack dtack- dsr+ lds+ d- lds- ldtack- ldtack+ dsr- dtack+ d+ Example: VME Bus Controller
10000 dtack- dsr+ 01000 00000 lds+ ldtack- ldtack- ldtack- dtack- dsr+ 10100 01010 00010 10010 ldtack+ lds- lds- lds- dtack- dsr+ 10110 01110 10110 M’’ M’ 00110 d+ d- dsr- dtack+ 01111 11111 10111 Example: CSC Conflict
M’’ M’ Example: enforcing CSC dtack- dsr+ csc+ 010000 100000 000000 100001 lds+ ldtack- ldtack- ldtack- dtack- dsr+ 010100 101001 000100 100100 ldtack+ lds- lds- lds- dtack- dsr+ 101101 011100 101100 001100 d+ d- dsr- dtack+ csc- 011111 111111 101111 011110
State Graphs vs. Unfoldings State Graphs: • Relatively easy theory • Many efficient algorithms • Not visual • State space explosion problem
State Graphs vs. Unfoldings Unfoldings: • Alleviate the state space explosion problem • More visual than state graphs • Proven efficient for model checking • Quite complicated theory • Not sufficiently investigated • Relatively few algorithms
e8 e10 dtack- dsr+ e1 e2 e3 e4 e5 e6 e7 e12 lds+ dsr+ lds+ ldtack+ dtack+ d+ dsr- d- e9 e11 lds- ldtack- Translation Into a SAT Problem • Configuration constraint: conf’ and conf’’ are configurations • Encoding constraint: Code(conf’) = Code(conf’’) • Separating constraint: Out(conf’) Out(conf’’) conf’’=111111110100 conf’=111000000000 Code(conf’’)=10110 Code(conf’)=10110
Translation Into a SAT Problem Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out''
Configuration constraint Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out''
1 1 1 e 1 causality 0 1 e 0 no conflicts Configuration constraint
ldtack- lds+ lds- ldtack+ dtack+ dsr+ lds+ dsr- d+ d- dsr+ dtack- dsw+ lds+ d+ ldtack+ dtack+ dtack+ dsw+ dsw- lds+ d+ d- The efficiency of the BCP rule 1
ldtack- lds+ lds- ldtack+ dtack+ dsr+ lds+ dsr- d+ d- dsr+ dtack- dsw+ lds+ d+ ldtack+ dtack+ dtack+ dsw+ dsw- lds+ d+ d- The efficiency of the BCP rule 0
Encoding constraint Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out''
a+ b+ c+ a- c- a+ a=0 a=1 Tracing the value of a signal
0 0 1 e b 0 Computing the signals’ values
Separating constraint Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out''
1 0 1 0 e 1 0 Computing the enabled outputs
Translation Into a SAT Problem Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out''
Analysis of the Method • A lot of clauses of length 2 – good for BCP • The method can be generalized to other coding properties, e.g. USC and normalcy • The method can be generalized to nets with dummy transitions • Further optimization is possible for certain net subclasses, e.g. unique-choice nets
Experimental Results • Unfoldings of STGs are almost always small in practice and thus well-suited for synthesis • Huge memory savings • Dramatic speedups: • A few intractable examples easily solved • Several orders of magnitude speedups for many other examples • The hardest example we tested took less than 3 minutes
A philosophical remark The combination unfolding & solver seems to be quite powerful: unfolding reduces a PSPACE-complete problem down to an NP-complete one, which can efficiently be tackled by a solver
Future Work What about a full design cycle based on PN unfoldings?
Thank you! Any questions?