Outline
Beyond ternary-simulation formulation? Cyclic definitions
From circuits to functions From hardware to software
When cyclic definitions behave combinationally
Validity of functional-level analysis From combinational to sequential –
sequential determinism
Circuit-level analysis
Advantage Simple (compared to what’s coming)
Weakness Analysis at low abstraction level (after circuit
netlists are derived) Not combinational! Now what? Combinationality depends on circuit structures
The schizophrenia problem in Esterel compilation
Escape the trap!
Is ternary-simulation formulation the only solution? What if cyclicities are to be broken What if synthesis targets are software
Functional-level analysis
Why ? Analysis at circuit level
Too conservative when cyclic definitions are to be broken when synthesis targets are software
At very low level needs to translate high-level descriptions into gate-level
representations yields inconsistent conclusions about combinationality
Analysis at functional level admits more general combinationality formulation avoids the translation from functional to gate level
representation yields consistent conclusions about combinationality
How ?
Different levels of abstraction
Distinctions between functional and circuit levels of abstraction Functional level
Valuations take no time (timing information is abstracted away)
Circuit level Gates and wires are associated with delay (in
particular, under the UIN delay model)
Cyclic definitions
Example D = {a := ¬x a c, b := ¬x (a ¬b) c, c
:= x b, y := ¬x (¬a a b) x (a ¬c ¬a c)}
Input: I = {x}, output: O = {y}, internal: {a, b, c}
Break cyclic definitions of D w.r.t. a minimal cutset C = {a, b}
Excitation functions:
a := ¬x a x b, b := ¬x (a ¬b) x b Observation function:
y := ¬x (¬a a b) x (a ¬b ¬a b)
a x
c
b y
State evolution graphs
Any SEG is defined for some input assignment Example (cont’d)
Excitation functions:
a := ¬x a x b,
b := ¬x (a ¬b) x b Observation function:
y := ¬x (¬a a b) x (a ¬b ¬a b)
00 01 10 11
x = 1
00 01 10 11
x = 0
Facts about SEGs
An SEG is defined for some fixed input assignment
Every state in an SEG has exactly one outgoing edge
Any state is either in a loop or on a path leading to a loop
Any two loops of an SEG are disjoint
Combinationality at functional level
Definition. [Combinationality] A set D of cyclic definitions w.r.t. some cutset C is combinational at the functional level if, for any input assignment, all states in loops of any SEG have the same output observation.
Example (cont’d)
I = {x}, O = {y}, C = {a, b}
a := ¬x a x b
b := ¬x (a ¬b) x b
y := ¬x (¬a a b) x (a ¬b ¬a b)
00 01 10 11
x = 1
00 01 10 11
x = 0
Combinationality test
Algorithm: combinationality test1. Compute states in loops of SEGs by a
greatest fixed-point computation (iterative image computation w/o the quantification of input variables)
2. Assert the states in loop of any SEG have one observation label (apply cprojection operation [Lin & Newton 91])
Compute states in loops
Let L denote the set of states in loops and T be the transition relation for SEGs
The greatest fixed-point computation corresponds to
1. Let L0(x,cs) := 1 (i.e. all states for any input)
2. Repeat
3. Li+1(x,cs) := [cs. Li(x,cs) T(x,cs,ns)] ns→cs
4. Until Li+1 = Li
5. Return L
Assert consistent observations
Let O(x,cs,o) be the observation relation and (x,o) [ cs. L(x,cs) O(x,cs,o) ].
The set of cyclic definitions is combinational iff (x,o) = cprojection((x,o),a), where a is an arbitrary minterm in the o-space
Cycle breaking
Algorithm: cycle breaking From combinationality test, rewrite definitions
of PO variables as functions of PI variables. Or, rewrite definitions of cutset variables as
functions of PI variables.
Combinationality at functional level
Theorem. The combinationality analysis is independent of the choice of minimal cutsets.
Combinationality at functional level
Theorem. [Generality] There exists a feasible combinational implementation of a set D of cyclic definitions if, and only if, D satisfies the combinationality test. The combinationality formulation is the most
general
Combinationality at functional level
Theorem. [Complexity] Combinationality analysis at the functional level is PSPACE-complete in the cutset size. Thus the applicability of the analysis strongly
depends on the cutset size Notice the freedom of choosing minimal cutsets
Validaty of combinationality analysis
Conditions of legitimacy Cyclicities are to be broken, or Synthesis targets are software
Cyclic definitions can be maintained Assume that execution follows the evolutions in
SEGs
Ternary simulation at functional level
If all valuations must stabilize For any input assignment, there exists a
set of signals valuating to either 0 or 1 such that all cyclic definitions are broken
Correspondingly, every SEG G has a single self-loop state to which all other states of G evolve
If only output signals must stabilize Partition input assignments into two sets:
one fully and the other partially determines output valuations w/o valuating internal signals
The first set imposes no restriction on SEGs The second set imposes the same restriction as
the previous case (all valuations must stabilize) Therefore, ternary simulation at functional level is
very restricted compared to the introduced analysis
Some extensions
Stable cyclic definitions Loops of length greater than one are unstable
Undesirable because of dynamic power dissipation (though valid for software synthesis)
Rewrite definitions to consist of only stable loops
Input-output determinism of state transition systems Extend combinationality analysis to systems
with state-holding elements (c.f. GMW analysis used in [Shiple 96])
Sequential determinism
For an FSM to behave deterministically in IO, it is allowed to have non-deterministic transition functions The cyclic definitions can be more flexible (in
observations induced by the transition functions)
CombinationalCyclic
Definitions
input output
Summaries
What we learned Combinationality formulation at functional level
Valid if cyclicities are to be broken, or synthesis targets are software
Combinationality analysis and the rewrite procedure to make cyclic definitions acyclic
Sequential determinism