Title: Combinational and Sequential Flexibility in Logic Networks
1Combinational and Sequential Flexibility in Logic
Networks
290N The Unknown Component Problem Lecture 3
2Overview
- Logic networks
- Flexibility
- Complete vs. compatible flexibility
- Combinational case
- Satisfiability dont-cares
- Observability dont-cares
- External dont-cares
- Complete combinational flexibility
- Computational procedures
- Implementation
- Sequential case
- Input dont-care sequences
- Output dont-care sequences
- External specification
- Complete sequential flexibility
3Logic Network
- Logic network is a direct acyclic graph
Primary outputs (POs)
Internal nodes
Primary inputs (PIs)
4Fanin/Fanout of a Node
- Node has only one output.
- Node can have any number of inputs (fanins) and
can be an input to any number of nodes (fanouts)
FO1
FO2
FO3
Fanouts
N
Node
FI2
FI3
FI1
Fanins
5Transitive Fanin/Fanout of a Node
Transitive fanout (TFO)
Node
Transitive fanin (TFI)
6Flexibility at a Node
External specification
Logic Network
- A flexibility at a node is a relation between the
nodes inputs and outputs, such that any
well-defined sub-relation used at the node leads
to a logic network that conforms to the external
specification.
7Complete vs Compatible Flexibility
- Definition. The complete flexibility (CF) is the
maximum flexibility possible at a node, assuming
that other nodes are fixed. - Definition. A compatible flexibility (CF) is a
flexibility at a node, assuming that other nodes
can change, to some extent. - Typically, compatible flexibilities are assigned
to all of the nodes in one pass over the network.
Then, each node is minimized independently. - On the other hand, complete flexibility at a
node, once computed, should be used before moving
on to other nodes.
8Flexibility of Nodes in the Network
- Internal flexibility (dont-cares)
- Satisfiability dont-cares
- Some input combinations that never occur at a
node - Observability dont-cares
- Under some input combinations, the value produced
at the output of the node does not matter - External flexibility (dont-cares)
- Some input combinations never occur (unused
codes, unreachable states) - Complete flexibility (dont-cares)
- The sum of the three above
9Satisfiability Dont-Cares
- (x,y)(1,0) is a dont-care for node F
10Observability Dont-Cares
- (a,c)(1,1) is a dont-care for node F
z1
z2
F
a
b
c
11Global and Local Flexiblity
Local Space
Global Space
12Computing CF - global step
Original network Rspec( X, Z ) (can be also
given as an external specification)
Perturbed network R( X, yi, Z )
13Computing CF - local step
14Computing CF - local step
The same computation applies for multiple-output
nodes, i.e. where
15Sequential Flexibility for FSM
Mo
- Output dont-care sequences of Mx exist because
Mo does not distinguish some string - observability dont-cares
Mx
- Input dont-care sequences of Mx exist because Mi
does not produce some strings - satisfiability dont-cares
Mi
16FSM Networks
- Problem Given a network of finite state
machines, compute the Complete Sequential
Flexibility at a node
17Problem Formulation
Specification S (i,o) Context F
(i,v,u,o) Unknown X (u,v)
Problem Given S and F, find the Most General
Solution (MGS) of
Solution
18Definitions
- Most General Solution (MSG) is the automaton
solution of the language equation F ? X ? S, such
that any other automaton solution is contained in
it. - Complete Sequential Flexibility (CSF) is the
maximum set of FSM behaviors (represented by a
pseudo-non-deterministic FSM), such that
implementing any sub-behavior of CSF, and
replacing the sub-network by the implemented
part, does not violate the specification of the
total network.
- CSF is maximum sub-behavior of MGS, which is
prefix-closed and u-progressive - for unknown to be an FSM, it must be progressive
in its inputs
19Algorithm to Compute
Algorithm CompleteSequentialFlexibility Input
FSM F, FSM (or automaton) S Output pseudo-non-
deterministic FSM X begin 01 X Complete ( S,
non-accepting ) 02 X Complement ( X ) 03 X
Support (X, (i,v,u,o)) lift 03 X Product
( F, X ) 04 X Support ( X, (u,v) ) -
restrict 05 X Determinize Complement( X
) 06 X PrefixCloseuProgressive( X,
u ) return X end