1 / 24

Derivation of Monotonic Covers for Standard C Implementation Using STG Unfoldings

Explore the implementation of standard C code using STG unfoldings for asynchronous circuits, focusing on low power consumption, average-case performance, and electromagnetic emission considerations. Learn about monotonic covers, strict Set/Reset functions, and entrance constraints for correct C synthesis.

zaidam
Download Presentation

Derivation of Monotonic Covers for Standard C Implementation Using STG Unfoldings

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. Derivation of Monotonic Covers for Standard C Implementation Using STG Unfoldings Victor Khomenko

  2. Asynchronous Circuits Asynchronous circuits – no clocks: • Low power consumption • Average-case rather than worst-case performance • Low electro-magnetic emission • Modularity – no problems with the clock skew • Hard to synthesize

  3. 1000 b+ a+ + 0100 0000 b ¯ abd С c d c+ c- b+ – b- b b b b 1100 0110 0010 d+ a- d- c+ 1110 1111 1101 b ¯ abcd ¯ a a a d b c ¯ abcbd c С c d d CG, gC and stdC architectures

  4. 1000 b+ a+ 0100 0000 c+ c- b+ b- 1100 0110 0010 d+ a- d- c+ 1110 1111 1101 Example: Deriving Equations ¯ ¯ ¯

  5. b ¯ abd d 1000 b+ a+ 0100 0000 b b c+ c- b+ b- 1100 0110 0010 d+ a- d- c+ a 1111 1101 1110 С c Monotonic cover condition The cover must be entered only via the states enabling the output Violation

  6. 1000 b+ a+ 0100 0000 b ¯ abd d c+ c- b+ b- b b b b 1100 0110 0010 d+ a- d- c+ 1110 1111 1101 b ¯ abcd ¯ a a d С С c c Violation of MC condition Correct implementation

  7. 1000 b+ a+ 0100 0000 c+ c- b+ b- 1100 0110 0010 d+ a- d- c+ 1111 1101 1110 Strict Set/Reset functions • Guarantee a correct stdC implementation • Bad for synthesis (few don’t cares) • Can be used for overapproximating the support

  8. 1000 b+ a+ 0100 0000 c+ c- b+ b- 1100 0110 0010 d+ a- d- c+ 1111 1101 1110 Entrance constraints  MC condition: The cover must be entered only via the states enabling the output  Setc(0110)Setc(1110) Setc(1110)Setc(1111)

  9. Example: Deriving Equations ¯ ¯ ¯ ¯ ¯

  10. State Graphs vs. Unfoldings Unfoldings: • Alleviate state space explosion • Visual • Proven efficient for model checking • Complicated theory • Relatively few algorithms State Graphs: • Relatively easy theory • Many algorithms • Not visual • State space explosion

  11. Synthesis using unfoldings Outline of the algorithm for stdC synthesis: for each output signal z compute minimal supports of sSetz/sResetz for each ‘promising’ support X compute the projection of the set of reachable encodings onto X sorting them according to the corresponding value of non-strictSetz/Resetz derive the entrance constraints apply constrained Boolean minimization to the obtained ON- and OFF-sets choose the best implementation of z

  12. CSC properties The sCSCz+ /sCSCz- property: sSetz/sResetz is a well-defined Boolean function of projection of the encoding of the current state on set of signals X; i.e., X is a support X X

  13. CSC conflicts States M’ and M’’ are in sCSCz+ /sCSCz- conflict if • Codex(M’)=Codex(M’’) for all xX and • F(M’)  F(M’’) where F=sSetz/sResetz F can be expressed as a Boolean function with support X iff there are no conflicts of the corresponding type X X

  14. 1000 b+ a+ 0100 0000 sCSCc+ conflict, but ok for gC {a,b,d} c+ c- b+ b- 1100 0110 0010 d+ a- d- c+ 1 1 1 1 1 1 1111 1101 1110 Example

  15. abcd Code(C’) 1 1 0 1 Code(C’’) 1 1 1 1 X={a,b,d}, Code (C’)=Code (C’’) X X Example: sCSCz+ conflict in prefix X a+ d+ c+ a- b+ d- C’ C’’ a+ d+ c+ a- b+ d- Outc+(C’)=1Outc+(C’’)=0 sCSCc+ conflict! Nxtc(C’)=1=Nxtc(C’’) ok for gC

  16. Computing non-supports • Using unfoldings, it is possible to construct a Boolean formula CSCF(X,…)such that CSCF(X,…)[Y/X]is satisfiable iff Yis not a support of F=sSetz/sResetz • The projection of the set of satisfying assignments of CSCz(X,…)onto X is the set of all non-supports of F (it is sufficient to compute the maximal elements of this projection) Need to know how to compute projections!

  17. max Proj{a,b,c} a b c 0 1 1 1 0 1 min Proj{a,b,c} a b c 0 1 0 1 0 0 Example: projections a  b =(a  b)(a  b)(c  d  e) a b c d e 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 Proj{a,b,c} a b c 0 1 0 0 1 1 1 0 0 1 0 1

  18. a  b (abc) (abc) (abc) (abc) 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 =(ab)(ab)(cde) 1 0 1 0 0 Computing projections Proj{a,b,c} a b c d e UNSAT • Incremental SAT

  19. Computing supports • The set of maximal non-supports is known • The set of supports: { Y | YX, for all maximal non-supports X } • The problem can be reduced to computing the compliment of a unate Boolean function • For example, let {{a,b,c},{a,b,d},{a,c,d},{b,c,d}} be the set of maximal non-supports • The corresponding characteristic function is ¬a + ¬b + ¬c + ¬d • Its complement is abcd, so the set of minimal supports is {{a,b,c,d}}

  20. Computing entrance constraints • Given a support X, construct a Boolean formula ECF(X,…)such that ECF(X,…)[Y/X]is satisfiable iff there is a reachable state from which it is possible to illegally enter the cover with the encoding projection Y • Use Incremental SAT to compute the set of entrance constraints (on each step, a clause ruling out all the satisfying assignments which would result in the computed entrance constraint is added)

  21. Computing the set/reset covers • Compute the projection of the set of reachable encodings onto the given support Xpartitioning them according to the corresponding value of Setz/Resetz • Apply conditional (binate) Boolean minimization to this projection and the entrance constraints

  22. Optimizations • Triggers belong to every support – significantly improves the efficiency • Further optimizations are possible for certain net subclasses, e.g. unique-choice nets

  23. Experimental Results • Unfoldings of STGs are almost always small in practice and thus well-suited for synthesis • Huge memory savings • Dramatic speedups • Every valid speed-independent solution can be obtained using this method, so no loss of quality • We can trade off quality for speed (e.g. consider only minimal supports): in our experiments, the solutions are the same as Petrify’s (up to Boolean minimization) • Multiple implementations produced

  24. Thank you! Any questions?

More Related