Detecting State Coding Conflicts in STGs Using SAT Victor Khomenko, Maciej Koutny, and Alex Yakovlev University of Newcastle upon Tyne
2 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
3 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
4 Example: VME Bus Controller lds-d-ldtack-ldtack+ dsr-dtack+d+ dtack-dsr+lds+ Device VME Bus Controller lds ldtack d Data Transceiver Bus dsr dsw dtack
5 Example: CSC Conflict dtack-dsr+ dtack-dsr+ dtack-dsr ldtack lds lds+ ldtack+ d+ dtack+dsr- d M’’M’
6 Example: enforcing CSC dtack-dsr+ dtack-dsr+ dtack-dsr ldtack lds lds+ ldtack+ d+ dtack+dsr- d csc+ csc M’’M’
7 State Graphs: Relatively easy theory Many efficient algorithms Not visual State space explosion problem State Graphs vs. Unfoldings
8 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 State Graphs vs. Unfoldings
9 Translation Into a SAT Problem lds- d- ldtack- ldtack+ dsr- dtack+ d+ dtack- dsr+lds+ dsr+ e1e1 e2e2 e3e3 e4e4 e5e5 e6e6 e7e7 e9e9 e 11 e 12 e 10 e8e8 conf’= Code(conf’)=10110 conf’’= Code(conf’’)=10110 Configuration constraint: conf’ and conf’’ are configurations Encoding constraint: Code(conf’) = Code(conf’’) Separating constraint: Out(conf’) Out(conf’’)
10 Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out'' Translation Into a SAT Problem
11 Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out'' Configuration constraint
12 Configuration constraint causality e no conflicts e
13 The efficiency of the BCP rule 1 dtack- d- dsr+ ldtack+ dsr- dtack+ d+ lds- dsr+ lds+ ldtack- dtack+ dsw+ d+ dsw- lds+ ldtack+ d- dsw+ d+ lds+
14 The efficiency of the BCP rule dtack- d- dsr+ ldtack+ dsr- dtack+ d+ lds- dsr+ lds+ ldtack- dtack+ dsw+ d+ dsw- lds+ ldtack+ d- dsw+ d+ lds+ 0
15 Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out'' Encoding constraint
16 Tracing the value of a signal a+b+c+a-c-a+ a=0 a=1
17 Computing the signals’ values e 1 b
18 Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out'' Separating constraint
19 Computing the enabled outputs e 0 0 0
20 Conf(conf ') Conf(conf '') Code(conf ',…, val) Code(conf '',…, val) Out(conf ',…, out') Out(conf '',…, out'') out' out'' Translation Into a SAT Problem
21 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
22 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
23 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
24 What about a full design cycle based on PN unfoldings? Future Work
25 Thank you! Any questions?