Download presentation
Presentation is loading. Please wait.
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.