Professional Documents
Culture Documents
Timing Analysis of Cyclic Combinational Circuits
Timing Analysis of Cyclic Combinational Circuits
...
...
...
Marrella splendens Cyclic circuit
inputs outputs
x1 a f1 ( x1 , , xm )
x2 a f 2 ( x1 , , xm )
combinational
logic
a f n ( x1 , , xm )
xm
c
y AND
z OR
x AND
z
y XOR
s
XOR
Cyclic Combinational Circuits
Circuit is cyclic yet combinational;
computes functions f1 and f2 with 6 gates.
x AND
a OR
( x f1 )))
f1 b( a x (d c ))
b AND
c AND
f2 d c ( x b (aa) x f2 ))
d OR
Timing Analysis
Predicated on a topological ordering.
x l1 = 1 l4 = 3
c
y g1 l3 = 2
z g4
x l2 = 1
g3
z l5 = 2
y g2 s
g5
level: li max l j + 1
j fanin( g i )
Timing Analysis
Predicated on a topological ordering.
1x0 l1 = 1 l4 = 3
11
c12
1y0 g1 1z0 l3 = 2
g4
l2 = 1 02
1x0 g3
1z0 l5 = 2
01
arrival times 1y0 g2 s12
g5
level: li (assume j + 1 bound of 1 time unit for each gate)
max aldelay
j fanin( g i )
Cyclic Combinational Circuits
No topological ordering.
x AND How can we perform timing analysis?
a OR
f1 b( a x (d c ))
b AND
x OR
c AND
f2 d c ( x b a )
d OR
Cyclic Combinational Circuits
14 No topological ordering.
1x0 AND How can we perform timing analysis?
15
a00 OR
1f16 b( a x (d c ))
1b0 AND
1x0 11
OR
12
1c0 AND
1f23 d c ( x b a )
d00 OR
Prior Work
inputs outputs
acyclic
cyclic
circuit
minimum-cut
feedback set
Unravelling cyclic circuits this way is a difficult task.
Our Approach
Perform event propagation, directly on a cyclic circuit.
10
00
cyclic 16
inputs 10 outputs
circuit 13
10
00
Our Approach
Perform event propagation, directly on a cyclic circuit.
Compute events symbolically, with BDDs.
[x]0
[a]0
cyclic f1=[b(a+x(c+d))]6
[b]0
circuit f2=[d+c(x+ba))]6
[c]0
[d]0
Circuit Model
Perform static analysis in the “floating-mode”. At the outset:
• all wires are assumed to have unknown/undefined values ( ).
• the primary inputs assume definite values in {0, 1}.
0
0
AND 1
a “controlling” input 1
1
AND 1
full set of
“non-controlling” inputs AND
unknown/undefined
output
Circuit Model
Perform static analysis in the “floating-mode”. At the outset:
• all wires are assumed to have unknown/undefined values ( ).
• the primary inputs assume definite values in {0, 1}.
1 AND
OR
AND
02
13 03
06 AND
12
13 17
16 AND
Implicitly:
C ( v ) t
arrival time
Initialization
internal signals:
[C ( 0 ) ]0 0
(1)
[C ]0 0
primary inputs:
[C ( 0 ) ]0 x
x (1)
[C ]0 x
Propagation
Ci(v )
Cj(w)
Ck(1v1 )
Ck(2v2) Cj(w)
Ck(3v3)
Cj(w)
[C (j w) ] t:t td
Example C1( 0) 0x d c
(1)
time 6
1
2
3
4
5 C1 0xxd( d c )
AND
C2( 0) 0a x( x d c )
x g1 OR (1)
C2 0a xxd(d c)
a g2 AND C3( 0) 0b a (xx d c )
(1)
C3 0b(aa x (dd) c ))
b g3
OR
C4( 0) 0x (ba b )
(1)
C4 0x b a
x g4 AND
C5( 0) 0c x b(b a )
(1)
C5 0c(xx b a )
c g5 OR
• The delay bounds on the arrival times for the output gates
give a bound on the circuit delay.
Multi-Terminal BDDs f2
1
d
0
11 c
For finer-grained timing information,
preserve a history of the changes.
02 x
f2 d c ( x b a )
13 b
Reference: Bahar et al., “Timing Analysis
using ADDs"
04 a
15 06
Synthesis
N1
N4 N6
Analysis algorithm is used to
validate and rank potential
solutions. N5 N7
N9 N8