Presentation is loading. Please wait.

Presentation is loading. Please wait.

Detecting State Coding Conflicts in STGs Using SAT Victor Khomenko, Maciej Koutny, and Alex Yakovlev University of Newcastle upon Tyne.

Similar presentations


Presentation on theme: "Detecting State Coding Conflicts in STGs Using SAT Victor Khomenko, Maciej Koutny, and Alex Yakovlev University of Newcastle upon Tyne."— Presentation transcript:

1 Detecting State Coding Conflicts in STGs Using SAT Victor Khomenko, Maciej Koutny, and Alex Yakovlev University of Newcastle upon Tyne

2 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 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 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 5 Example: CSC Conflict dtack-dsr+ dtack-dsr+ dtack-dsr+ 01000 ldtack- 00000 10000 lds- 01010 00010 10010 lds+ ldtack+ d+ dtack+dsr- d- 01110 00110 10110 011111111110111 10110 10100 M’’M’

6 6 Example: enforcing CSC dtack-dsr+ dtack-dsr+ dtack-dsr+ 010000 ldtack- 000000 100000 lds- 010100 000100 100100 lds+ ldtack+ d+ dtack+dsr- d- 011100 001100 101100 011111111111101111 101101 101001 011110 csc+ csc- 100001 M’’M’

7 7 State Graphs: Relatively easy theory Many efficient algorithms  Not visual  State space explosion problem State Graphs vs. Unfoldings

8 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 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’=111000000000 Code(conf’)=10110 conf’’=111111110100 Code(conf’’)=10110 Configuration constraint: conf’ and conf’’ are configurations Encoding constraint: Code(conf’) = Code(conf’’) Separating constraint: Out(conf’)  Out(conf’’)

10 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 11 Conf(conf ')  Conf(conf '')  Code(conf ',…, val)  Code(conf '',…, val)  Out(conf ',…, out')  Out(conf '',…, out'')  out'  out'' Configuration constraint

12 12 Configuration constraint 1 1 1 1 causality e 0 1 0 no conflicts e

13 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 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 15 Conf(conf ')  Conf(conf '')  Code(conf ',…, val)  Code(conf '',…, val)  Out(conf ',…, out')  Out(conf '',…, out'')  out'  out'' Encoding constraint

16 16 Tracing the value of a signal a+b+c+a-c-a+ a=0 a=1

17 17 Computing the signals’ values 0 0 0 e 1 b

18 18 Conf(conf ')  Conf(conf '')  Code(conf ',…, val)  Code(conf '',…, val)  Out(conf ',…, out')  Out(conf '',…, out'')  out'  out'' Separating constraint

19 19 Computing the enabled outputs 1 1 1 e 0 0 0

20 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 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 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 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 24 What about a full design cycle based on PN unfoldings? Future Work

25 25 Thank you! Any questions?


Download ppt "Detecting State Coding Conflicts in STGs Using SAT Victor Khomenko, Maciej Koutny, and Alex Yakovlev University of Newcastle upon Tyne."

Similar presentations


Ads by Google