Presentation is loading. Please wait.

Presentation is loading. Please wait.

Derivation of Monotonic Covers for Standard C Implementation Using STG Unfoldings Victor Khomenko.

Similar presentations


Presentation on theme: "Derivation of Monotonic Covers for Standard C Implementation Using STG Unfoldings Victor Khomenko."— Presentation transcript:

1 Derivation of Monotonic Covers for Standard C Implementation Using STG Unfoldings Victor Khomenko

2 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 3 CG, gC and stdC architectures b+a+ b- d-c+ 0100 c+c-b+ 0000 1000 a- d+ 0110 0010 1100 1110 1111 1101 a b c d ab  cb  d ¯ c d a b d ab  d ¯ c С b b + – b b c С a b d abc  d ¯ ¯

4 4 Example: Deriving Equations CodeNxt c Set c Reset c 0100 0000 1000 0110 0010 1100 1110 1111 1101 100100111100100111 100-00--1100-00--1 0--01-0000--01-000 Eqn ab  cb  dab  d b ¯ ¯ ¯ b+a+ b- d-c+ 0100 c+c-b+ 0000 1000 a- d+ 0110 0010 1100 1110 1111 1101

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

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

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

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

9 9 Example: Deriving Equations Code abcd Set c Reset c 0100 0000 1000 0110 0010 1100 1110 1111 1101 100-00--1100-00--1 0--01-0000--01-000 Cover ab  d b Entrance Constraints Set c (0110)  Set c (1110) Set c (1110)  Set c (1111)  Monotonic cover abc  d b ¯ ¯ ¯ ¯ ¯

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

11 11 Synthesis using unfoldings Outline of the algorithm for stdC synthesis: for each output signal z compute minimal supports of sSet z /sReset z 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-strict Set z /Reset z derive the entrance constraints apply constrained Boolean minimization to the obtained ON- and OFF-sets choose the best implementation of z

12 12 CSC properties The sCSC z+ /sCSC z- property: sSet z /sReset z 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 13 CSC conflicts States M’ and M’’ are in sCSC z+ /sCSC z- conflict if  Code x (M’)=Code x (M’’) for all x  X and  F(M’)  F(M’’) where F=sSet z /sReset z F can be expressed as a Boolean function with support X iff there are no conflicts of the corresponding type X X

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

15 15 Example: sCSC z+ conflict in prefix c+a- d- a+d+ X b+ C’C’’ c+a- d- a+d+ b+ Out c+ (C’)=1  Out c+ (C’’)=0 abcd Code(C’)1101 Code(C’’) 1111 X={a,b,d}, Code (C’)=Code (C’’) X X sCSC c+ conflict! Nxt c (C’)=1=Nxt c (C’’) ok for gC

16 16 Computing non-supports Using unfoldings, it is possible to construct a Boolean formula CSC F (X,…) such that CSC F (X,…)[Y/X] is satisfiable iff Y is not a support of F=sSet z /sReset z The projection of the set of satisfying assignments of CSC z (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 17 Example: projections  =(a  b)(  a   b)(c  d  e) abcde 01001 01010 01011 01100 01101 01110 01111 10001 10010 10011 10100 10101 10110 10111 a  b Proj {a,b,c}  abc 010 011 100 101 max Proj {a,b,c}  abc 011 101 min Proj {a,b,c}  abc 010 100

18 18 Computing projections 0100101001 Proj {a,b,c}  abcde 0110001100 1000110001 1010010100 UNSAT (a  b  c) a  b  =(a  b)(a  b)(c  d  e) Incremental SAT

19 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 20 Computing entrance constraints Given a support X, construct a Boolean formula EC F (X,…) such that EC F (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 21 Computing the set/reset covers Compute the projection of the set of reachable encodings onto the given support X partitioning them according to the corresponding value of Set z /Reset z Apply conditional (binate) Boolean minimization to this projection and the entrance constraints

22 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 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 24 Thank you! Any questions?


Download ppt "Derivation of Monotonic Covers for Standard C Implementation Using STG Unfoldings Victor Khomenko."

Similar presentations


Ads by Google