1 / 25

Detecting State Coding Conflicts in STGs Using SAT

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

brigit
Télécharger la présentation

Detecting State Coding Conflicts in STGs Using SAT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Detecting State CodingConflicts 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. 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

  5. 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

  6. 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

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

  8. 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

  9. 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

  10. Translation Into a SAT Problem Conf(conf ')  Conf(conf '')  Code(conf ',…, val)  Code(conf '',…, val)  Out(conf ',…, out')  Out(conf '',…, out'')  out' out''

  11. Configuration constraint Conf(conf ')  Conf(conf '') Code(conf ',…, val)  Code(conf '',…, val)  Out(conf ',…, out')  Out(conf '',…, out'')  out' out''

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

  13. 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

  14. 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

  15. Encoding constraint Conf(conf ')  Conf(conf '')  Code(conf ',…, val)  Code(conf '',…, val)  Out(conf ',…, out')  Out(conf '',…, out'')  out' out''

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

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

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

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

  20. Translation Into a SAT Problem Conf(conf ')  Conf(conf '')  Code(conf ',…, val)  Code(conf '',…, val)  Out(conf ',…, out')  Out(conf '',…, out'')  out' out''

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

  25. Thank you! Any questions?

More Related