Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
������������ ��� ������������ ���� ��
�������������������
�������� ���
� !�"#$!� �%"�&&%')(*+,-./+013245+076 -8*+ 89:-;909 5<*19=>?9+ *@
�A#�B%�&C#� B#D�E�FG'IHJ-(*+, -./+014KL+M <=N9?9 *@
�#D�!&&%O!�% �#!DP# �B�
�Q&�RC!D"�% �G�E'IHJ-(*+, -./+014KL+M <=N9?9 *@
����#% D!�%E%S D! ';9 :-*8-T -.U -5-13V9W/=(> L9 *:245+0 -8*+ 84:+H4 .+ *4=3X09 51@
�Q&�RY%F!E&�E')(*+, -./+014KZ-[89/05-<?4 *H1 *-=(\@
HJ9 *U/042-0 -.]9 *W-U W-.^ -*K4 .? .-,+4 </ 84 *0 .+ W<0+4 */040 J+/0 <04 .+9 59 *:04 _ *.+ 829/04 .9 *:` .+45a4+^K4 .0 J-:-, -54?3b-*04K0445/'? -0 .+ K19 *:,-./+ K1@
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hs
���� �������������
�����#��% �#!D
��G D�B�� #��!D" # �#!D�
�� �% ��� D�!"#DS
��!S #�"��!��!� # �#!D
��� BD!&!SG �%�� # DS
�� �#��% �#!D
��� �#DS
L?? -*:+�� �9M9 .:/9 *:.9 8-/
L?? -*:+�� `0 J-.:-/+^ */01 5-/
H4W-? .-/ -*0 -:4 *H J<./ :91 �� ���� �� ��
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h�
�� ��� ���������������������������� ��� �
��� ���� �
��!� �%&#�#DS# �#DS�#%S�% ��
��#S D%&�% D� # �#!D��%� B��� �!"�&
��#S D%&�% D� # �#!D��%� B�% D"� ��#�� ��
��G D�B�� #�!E� �E#�P
��R% ��&�P# �B�!D����� D�G� B% D"� B%F��!��� D#�% �#!D
��R% ��&�P# �B� B!#���� &% ��BP# �B�!��&� �#!D
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h�
������ �� �������� �������� ����� �
a+b+
c+
a-b-
c-
STG
a
c
b
input
output
input
TIMING DIAGRAM
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h�
���������������������
�� � �#������ ���� D�� #S D%&��% D� # �#!D�
�Q������ ���� D��%��%&��&% �#!D�O� �P�� D��% D� # �#!D�
�� D��!"���"OG�A!& D% � ���$ B� ��� !�� DO&� � ��
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h�
���� ��������������
a+b+
c+
a-b-
c-
PETRI NET
p3p4
p5p6
p7p8
p1p2
a+b+
c+
a-b-
c-
STG��#�% D#D�� �� �� ��"� ��#D� �
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h�
��������
A+A+
A-
A-A-
A+
x+
Two subsequent up-transitionswithout a down-transition in between
Two subsequent down-transitionswithout an up-transition in between
Parallel transitions of the same signal
INCONSISTENT
A+A-
Two up-transitions with a down-transition in between (and vice versa)
CONSISTENT
A+
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hu
������������
c+ fires
c+
= TOKEN
= PLACE
= TRANSITION
c+
p3p4
p5p6
c+ = enabledc+ has fired
c+
p3p4
p5p6
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h�
�� �������
CONCURRENCY
CHOICE
c+
a-b-
a-b-
a- concurrent with b-
choice made by environment
EITHER a- firesOR b- firesbut not both
EITHER a- fires before b-OR b- fires before a-OR a- and b- fire simultaneously
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz ht
������������� � � ����
��������������� �
��S!�� B#S BP B� D�S!�� B#S B
��S!��&!PP B� D�S!�� B#S B
P B#&�����
� DE#�!D�� D�"� �� � �#D��P B� D
�!%��&G����% D"���s
rweak
q +
q +
r+
1
12
2
s +
s -
s -
s +
1
2
r -1
2r -
q-
q
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hs�
��� ��� ���� ���� �
Petri Net
Signal Transition Graph
Reachability Graph
State Graph
Karnaugh Map
Logic equations
Translation
Token flow simulation
Encoding
Logic synthesis
directmethod
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hss
�������� ���������
�� � �#������ ���� D�� �% ��� �B��#��� # ��% DO�# D
�Q������ ���� D���% D� # �#!D� �!�!D�� �% �� �!% D!�B� �
�$% DO�"� �#E�"� �!��B�� ��#D� �OG� # ��&% �#DS �B� �!F� D�!P
��%� #�� ���� ���� D�% �#!D�!"!% D%&G� #�!D
��#�� �%GO�� R�!D� D�#%&#D�B�D� �O� �!� ��% D� # �#!D�
��# �#&% ��!��%��� ���� �������#&&����% D� # �#!D"#%S�% ���A�&&� ��
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hs�
���� ��� �� �����
�] -.0+ 8-/��8+ .8<+0/090 -/
� L.8/�0 .9 */+0+4 */
�H4U -*�4 [/+ b<590+4 *
�_9/1K4 .9 *9 51/+/
�;9 *W--�?4 *-*0+9 5a+b+
c+
p3p4
p1p2
a+b+
c+
p3p4
p1p2
a+b+
c+
p3p4
p1p2
a+b+
c+
p3p4
p1p2
Fire a+Fire b+
Fire a+ Fire b+
STATE {p1,p2}
STATE {p1,p3}
STATE {p3,p4}
STATE {p1,p4}
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hs�
�������
000
100010
a+b+
signal asignal b
signal a and b low
signal a high,signal b low
signal a low,signal b high
��E� �G� �% ��#�%�� #S D�"%�!"�
� B#��!"�#�"� �� � �#D�"OG� #S D%&�#D�B�������� �
��%��"!D�B#��!"��&!S #�%&���% �#!D��% DO�"� �#E�"
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hs�
���������
000
100010
110
a+b+
a+ b+
111
011101
001
a-b-
a- b-
c+
c-
STATE GRAPH
{p1,p2}
{p2,p3}{p1,p4}
{p3,p4}
a+b+
a+ b+
{p5,p6}
{p6,p7}{p5,p8}
{p7,p8}
a-b-
a- b-
c+
c-
REACHABILITY GRAPH
ENCODING
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hs�
������������ ������� �������
000
100010
110
a+b+
a+ b+
c+
00011110
0
1
abc
c
01 00 K-MAP
�� �% �������#�%�� #S D�"�O��%����� �%G�&!P#D�B#�� �% ��
�� �% �������#�%�� #S D�"�O��%����S!�� B#S B#D�B#�� �% ��
����#�� D%O&�"
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hs�
������
000
100010
110
a+b+
a+ b+
111
011101
001
a-b-
a- b-
c+
c-
STATE GRAPH
00011110
0
1
abc
c
0
11
1
1
0
0
0
K-MAP
LOGIC EQUATIONS
c = ab + ac + bc
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hsu
��� �� �� � � ��� ���� ����� ���� �
AB
Control
RiRo
Ai Ao
Data_inData_outData_inData_out
Ro+
Ao+Ai+
Ri-Ro- Ri+
Ao-Ai-
Ro+
Ao+Ai+ Ri+
Ri-Ro-
Ao-Ai-
Q"% �%� �!���� #DS� ���������A� DS���% D"�% � �#%&% D"�!��&� �� ������#��% �#!D�!� �B�� B%&��� B% D"� B%F���!D��!&
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hs�
��� �� �� ��� ��� ���� ����� ���� �
Ao
RoRi
Ai
Ao
RoRi
Ai
Ao-
Ri+Ro- Ri-
Ai-
Ao+
Ai+
Ro+
% � �#%&% D"�!��&� �� �P!�� B%��������#��% �#!D�!� �B����&&�
B% D"� B%F���!D��!&Q� !���� B%����� #E%&� D�!� �B��P!�� B%�� ����#��% �#!D
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz hst
��� �� �� ��� ���� �� � ���� �� ������ ��� ����
S+R+
Qp-Compl+
Compl-
R-
Q+
Qp+
Compl+
Q-
S-
S+R+
Compl-
S
R
Q’
Q
Completion
����# ��% �#!D% D"# ��&� �� D�% �#!D
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
�� �� �������
� B�%"E% D�%S��!����
�;4 *8<..-*814K/+^ *9 50 .9 */+0+4 */
�;4 *:+0+4 *9 5W-J9,+4 .W9/ -:4 */+^ *9 50 .9 */+0+4 */
� B�" #�%"E% D�%S��!����
�;4 *:+0+4 *9 5W-J9,+4 .W9/ -:4 */+^ *9 55-, -5/
� Z40+ b+ *^+ *K4 .b90+4 *=�</0 .-590+, -4 .:-.+ *^4K-, -*0/
�` a�01? -W-J9,+4 .+/ J9 .:04b4 :-5
��#�� �� D�� R�� D� #!D� B%E�O�� D� �!�!��"
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h� s
������������� �� ������� �����
R+S+
Q^0
Compl-
Qp^0
Compl-
Qp^1
R-
Q^1
S-
Compl+Compl+
Q^1=Q+ε
Q=0
Q=1
Q�� #S �� D�!�E%&�� �!� #S D%&�P# �B!�P# �B!� ���% D� # �#!D
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
������������������� ������������������ ���
=
a=0
a=1
εa+ a- a*x
a+b+
x=0 x=1
=a+b+
x
B�O� B%E#!�!� �B�� #S D%&�����!� �#DSO!!&�% DS�% �"� ��� �O� ����#��"#D�B���
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
�� ������� ��� ������ �����
��� �#E% �#!D!�&!S #����% �#!D�
��G D�B�� #��!D" # �#!D�� !�# ��&� �� D�%O#&# �G�
O!� D"�" D�����!D� #� �� D�G�$�$
��!O&� ��P# �B"�&%G��� R% ��&��$��&� �� D�
��B% �#�����"�#D"��� D"� D����� ����
��G D�B�� #��!D" # �#!D�� !������ �� #� �� D�G��!��� �% �#E# �G
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
��� � �� ����
� !� �����"#��� ���% D� &% �#!D�� �B!"
� !� ���% D"���G D�B�� #�O%��"!D��% D�� !� �% �#!D�
�%"" #DS� #S D%&��% ����� ��
��B#� B�!� �� �!�%F� � B#� �� �!�#%&#�%O!� ��!� ���
INITIAL STATE GRAPH
INITIAL STGFINAL STG
FINAL SG
IMPLEMENTATION
1
22
2
0
1
direct
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
������������ ������� �������
000
100010
110
a+b+
a+ b+
c+
00011110
0
1
abc
c
01 00 K-MAP
�� �% �������#�%�� #S D�"�O��%����� �%G�&!P#D�B#�� �% ��
�� �% �������#�%�� #S D�"�O��%����S!�� B#S B#D�B#�� �% ��
����#�� D%O&�"
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
������
000
100010
110
a+b+
a+ b+
111
011101
001
a-b-
a- b-
c+
c-
STATE GRAPH
00011110
0
1
abc
c
0
11
1
1
0
0
0
K-MAP
LOGIC EQUATIONS
c = ab + ac + bc
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h� u
��� ��� ������ �����
�Q��%�B%O#&# �GS�%� B�% DO�#D�D# ��
��#D% �G� D�!"#DS!�
%��%� B%O#&# �GS�%� B D!�%&P%G��!�� #O&�
�Q� �% ��S�%� B�% DB%E� �!D�#� ��� !�&!S#��� D��#!D�
��!S #��% DO� B% �% �"!��
� D!�����"�#D"��� D"� D�
$ B��F# DS�G D�B�� #��!D"# �#!D�#�D�����% �G
Petri Net
Signal Transition Graph
Reachability Graph
State Graph
Karnaugh Map
Logic equations
Translation
Token flow simulation
Encoding
Logic synthesis
directmethod
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
�����������
a+
a-
b+
b-
a+
a-
b+
b-
two iterations
�!� D"�" D������D# ����%�B%O#&# �GS�%� B
�!� D"�" D���!�� ��#�� ��#�"��#"%O&�
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h�t
����� ��������������������
A+A+
A-
A-A-
A+
x+
Two subsequent up-transitionswithout a down-transition in between
Two subsequent down-transitionswithout an up-transition in between
Parallel transitions of the same signal
INCONSISTENT
A+A-
Two up-transitions with a down-transition in between (and vice versa)
CONSISTENT
A+
�R% ��&��
b+a+ ...... a+
10*11?1a+b+a+
0*0 ab:
�!� D"�" D����$�Q���D# ��O# D% �G� �% ��S�%� B
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
���� �� ���������� �����
abc000
a+
abc000
a+c+
abc000
c+
abc000
a+c+
CSC-violationno CSC-violation
00011110
0
1
abc
c
0/1
00011110
0
1
abc
c
1
$�$��!D�#� ���P!� �% ��� B%E� �B��% ��O#D% �G�!"�% D""#�� �� D� �� ��!�� D%O&�"������������ #S D%&�
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h� s
���� ���������� ���������� ����
A+B+
A-
B-
STG
00
1001
11
01
A+B+
A+ B+
A-
B-
RACE
STATE GRAPH
A+B+
A-
B-
NEW STG
00
10
11
01
A+
B+
A-
B-
STATE GRAPH
NEW
ADD ARC
�!D���� #E%&� D���% D�� !� �% �#!D��!D�� ��� D�G#���"���"�
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
���� ������������ ��� �����
ADD SIGNAL
A+B+
A-
B-
STG
00
1001
11
01
A+B+
A+ B+
A-
B-
STATE GRAPH
A+B+
A-
B-
NEW STG
C+
C-
NEW STATE GRAPH
010
110
A+
C+
000
100
B+
B+
A+
001
101
C-
C-
A+
A-111
011
��� #E%&� D���% D�� !� �% �#!D�%&&!�#S#D%&��%���% ��� ���� �E�"
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
����� ��� ��� ��� �����
..
.
..
.
outputsinputs
�D����#��� # �� B!P�
�B��% ��&% DS�%S�%���
������ ���� ������ ��
;+ .8<+09 *:>H� J9,--�9 80510 J-/9b-� �/ -0� X *0 -.K9 8-+/? .-/ -., -:
����� ������ ��
Z- [+ *? <0/9 *:4 <0? <0/ 89 *W-9 ::-:049 8+ .8<+0� X *0 -.K9 8-+/ *40? .-/ -., -:
CircuitEnvir.
O
I
Envir.
new
Circuit
Oold
IoldOnew
I
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
��� �� �� ������� �� �
������� �� ���� ��� ���
�% DD!�O�� !&E�"P# �B!� �� B% DS#DS#D�� ��%�� � D���� ��������!� �#!D
�Q&&$�$��!D�#� ��% ����"��#O&�#���#��
��� �� � �#D#� �#�
�$!��� �% �#E�
��!�!��&� �� D�% �G #D�� ������ D���
aa i+j+
s1
s2s3
a+b+
s4
b+a+
s5
s1
s2
s3
a+
a-must be different signals
must be the same state
must benon-input
�!� D"�" D����$�Q�$�$���!S #��#��� # �
cdeefghijkklmnopq3rosttucopvjf hw hkxi kpvg kliw gi dw vhx g kecyz h��
������ �����������������������
b
aState Graph
Initial state: <a,b,c> = 000
0*0*0110*1*1*1001*
1*01
01*1
<a,b,c>:
10*0
0*10
Cc
a = c
b = cc = a b + c (a+b)
B� ��% ��D!"#�%O&�" ��% D� # �#!D����% D"��� #D�B�� �% ��S�%� B
$#��� # �#������������������
�������� ���� ����� �������������� ��� ���� �������� �
!""#$%&'(()*+,-.0/,1223 ,-4'# %5 %(6& (-4$ ()&5 $& !5 4%6 $ (" 78 %9:
������������ ���������
b
a
c
Initial state: <a,b,c> = 000
0*0*0
10*0*
0*10*
110*1*1*1001*
1*01
01*1
<a,b,c>:
a = c
b = cc = a + b
State GraphSI-conflicts
� ��� � ��� ����� �� ����� ��� ��
���� ����� ��� �� ����� ��� � � ������ ��
������ �������� �� ����� ��� �������� ����������
���� ��������� �� ������
������������ ��� !����" � ��� �����������
!""#$%&'(()*+,-.0/,1223 ,-4'# %5 %(6& (-4$ ()&5 $& !5 4%6 $ (" 78 %9 3
�������������� �������
cab
00
0
0
111
1
1
4 2
3
a
bc
!��� � ���� �� ��� � �������� ��
�������! ����� ���������� �������� ���� ��� ���� �� ����� �� ����� ��
!""#$%&'(()*+,-.0/,1223 ,-4'# %5 %(6& (-4$ ()&5 $& !5 4%6 $ (" 78 %9�
����������� � ���
0
1
4 2
3
a
Environment
delay1
delay2
b
cslow
�������� ���� � �� �� ��� ������ ������ �� �� � ������� �� ���� ��������� ���� � �� �� ��� ������ ������ ��� ��� ������ � � �� ���� �������!������� � �� �" �� ���� �
�� ������� �� � ��� �"�� ��������� ������ ���������������� ��
!""#$%&'(()*+,-.0/,1223 ,-4'# %5 %(6& (-4$ ()&5 $& !5 4%6 $ (" 78 %92
���������� �� � ��������������
b
ac
a
a
a
b
b
b
weakb
a
a
b
a
a
b
b cc
c
�� ������ ����! ������ ���
����"������ ������ �� ���� �������
���!����������� !� ���� � � �!�=� � ����� ��������=�" ����" ����
!""#$%&'(()*+,-.0/,1223 ,-4'# %5 %(6& (-4$ ()&5 $& !5 4%6 $ (" 78 %��
������������� ���� ������ ���� ���
���� ����� ������ �
��� �������� �
� ����� ������ �
� ��� ��� � ������������
!""#$%&'(()*+,-.0/,1223 ,-4'# %5 %(6& (-4$ ()&5 $& !5 4%6 $ (" 78 %� 1
����������
����� ���� ����� � ������� ���� � ��
�� � ���� ��� �� ������������������
�!���������� ��!�� ���� � ���!��� �� � ��� �� ��!������� � �� ��!� � ����!����� �
��������� ��� �� � � ��� ������ �� �
��� ������ � �� ��� �� ��� ���� ���<3,10><0,?>
tt+d
d
t+d
tt+d
inertial
dpure
t+d
!""#$%&'(()*+,-.0/,1223 ,-4'# %5 %(6& (-4$ ()&5 $& !5 4%6 $ (" 78 %��
�������������������
���� ���� ��������� �� ����� � ���� ����� �� ��� �� � ��
�� �� ��� �� ��
�� �� ��������� �� ������ ���
��� ��� ��� �� � ���� �������� � �� ���� ������ �� �� ��
�� � ���� ����������� ��� � ���� ���� �� �
� � ��� ������ ��� ���������� �� ������ ���
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() ��*
����������������� ������
a
b
c
d2
d1
d4
d3d5
AND-NOR
��"����������� ������ ���!� ��!����������� � �� ��� �
��"������������� ������ ���!� ��!������� ��� � �� ��� � � ������� �������� � !���" ������
�� ��� "���!������� �� ��� �� ������� ������ ��������� �� ���� � �����
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() ���
��� ������ ���� ����������� ������� ���� ����
����������� ������ ��� ������ ���� � �� ���� ��� �
���"� ������ �������� �� � ���� �� �� �������� !������ ������!����� ��������� �
���������������������� �� ������������ � �� ��� ����
� � ��� !� ��!���� ����� �� �� ��� �������� ���
��"�� ������� �� �� ����� �� ����� " �� � ��� � � �
���"� ������ �������� ������� !�� � ���� �� �� ����� ������ ���������� �!��� �
��� �� ��������� ����� �� ������������ � �� ��� ���� � � �� ���� ���� ���" ��!� ��!���� �
��� � ��� �!� �� �!� ��� ���� � �� �� �� �������� �
��� ������� ���������� ������ ��� � ����������� �� ��� ��������� ��� ����� �=� ���������� �� ����� � �
���� ���� �� "�����"�� �� ��� ��������� ������ �
SI = QDI
BD
DI
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() ��!
�� �� ��������������� �� �����
s0
s1s2
ab
s3s4 =
ba
s0
s1s2
ab
ba
Commutativity: Persistency:
!��� ���� �� �� ��������� ���������� ��� ������ ���
���������� �� ��������� ��� �� ��� � ���� ����� �� � ��� �����
����!�� ���� ����� �� � ��� ������� �� ���
!������ ��� ������ ����� ���"# !�� �� � �
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() ��$
�� ���� � ������������� �������
� � �� � ����� ������� � � ��� ��� ��� ����� �� �
!������ ���!��� � ���� ������� ���
��� �� ������ � ��� �� ������� ���
� �� �� �� �� �� ���� ����� � ���� �����
� ��� ���� �� ���� ����� � ���� ������
���� �� ������������ ������� ���� !
���� � ���������� �� ��
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() ��$
������� �������� ��������
� � �� �� ��� ��� �� � �� ��� �� ��
� !��� ���� � ����!���� ������ ��� �� �� � �� ����
�!�� ��� � ����� ���� �����
���� ��� � �� �
������� ��
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() ���
� ������������ ��������� �� � ��
ADD SIGNAL
A+B+
A-
B-
STG
00
1001
11
01
A+B+
A+ B+
A-
B-
STATE GRAPH
A+B+
A-
B-
NEW STG
C+
C-
NEW STATE GRAPH
010
110
A+
C+
000
100
B+
B+
A+
001
101
C-
C-
A+
A-111
011
�� � ��� ����� ��� �� ��� ������ � ���� �� ���� ��� �� �� ���
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() ��#
��������� �� � ��
S−ER(x)
ER(x)
abc
S−ER(x)
ER(x)
bc
ab
xxxx
SR(x)
transitions by xDelay exit
�� �� ��� �� ��� �� ������ � �� �� � ����� ��� � ���
���� ������� ��� ��� � ����� ���� ��
��� �� �� ���� �� ��� � ��� ��� ���� � � � �� �������� ���� ���� ��� ��� �
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() �!�
���� �� � ������ ���� ��������������� ���
S+S−
S1
S0
x−x+
S0
S1
���� �����!��������� �������� ������ �
���� ����� ���!��� ��" ��� ���� � ����� ������ ����
�� ���� ���� ������ ����� ������� �
��"������������� ���!�������� ��� "���" �� �����"��� �� ��������� �����
������������������� ����� �����
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() �! "
����� ����� ���
��� ������� ������ ���� A’:
s3
b
s1
a
s2
x
s2’
b
s4
b
s3b x
s3’
s1’
x
s1a
s2
x
s2’
b
s4
a
A’:
s3
b
s1
ar
s2
b
s4
A:
(b)
b
s4
s3
b
s1
a
s2
r
A:
(a)
��� ����� �� ���� �������
s4’
s3a
b
s4b
bs2’
as1’
xas1
s2
x
x
A’: A:
b
s1
r
a
s2b a
s4
s3
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() �! �
��������������� ��� ����� ���
s3s2
a
a b
b
s1
s4
s3
s4
a
b
b
s1
s2
as1
a b
s3
ab
s2
s4
s1
s2
a b
b
s3
s4
a
s1a b
s3
a
s2
b
s4
s1
s3s2
s4
a
a b
b
(e)(f) (d) (c) (b) (a)
�����������������! �"##$���%�� �& ��'� ��%� ���& �� �& %�'� ���() �!*
������������ �����������
aaa
raaa
r
a
a
r
aaa
r
excitation region non-cross enterexit
������� ��� �� �� ��������� ������� ������ ���� ��� � �� �� ����� �� ������� �� ��� �� ���� ������ ��� !
�� ��� ���� ���� � � "� ��� �������� ��� "�
����� �� ���� ����#$%�&�� �� �� ��� ��� ��� � ��'()�* #$%�&� ���� ��� �� ����+� ��� ���� ��
,�)� ����� ��� ���-�� �-� � ����
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3FG
����� ������������
���������������� ����������� �����������������
������ ���������������������������� ���� ����� �� ��
������������ ��� � � ��� ����������� ������� � ����� � ����� �
����� �� �� ��� � ��� ����� ��
���� �������� � �
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3FF
������������� �� ���� ���� ���
�������������
����� �
����� � ����� � ��� ����
��� ����� ���� � ��� �����
� ������� �� ���� � �
���� �� � �� ���
new
new
new
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3F�
������� �� ��������� �� ���� �
b
b
b
b
b
b
�����'� (��+�� �� ����� �
��� �� � ��#�% &��'#�% &% �-� �� )� ��� &
�������'#� () (� �����'� �� �
����� ��)�����'� ��� ��� � � ���+� ����� �
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3F @
������� �������������� �� �������� ���
a
p1p2p3
p4p5p6
a
x
a
xa
x
a
x
(a)(b)(c)(d)(e)
t1t2t3
t4t5t6
t1t2t3
t6
t4t5
a p4 p5
p1 p2� ������������� ����
��������������
� ������������ ����������
� ������������� �������
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3F�
����� ������������
bb b
����� �� ��� ����� �� ����� ���� � ��� ����� � � ���� ����� �� ����� ��� � �� �� ����� � � ���� �����
�� ����� ���
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3F?
�� �� ����������������������� �����������
(� ��� ��� �� � ��� (� ��� %& �� � ���� �� '( �� �� ���(� ���(� ��� � ������ ���� � ��� ��� �� � � ���� � ���� �� ������������������ ��������(� ��� !'"! ��� ������ #$%�&�'� (� �� �%# $%�&)�� �% �&� ��*
+ ��'(, ��� &+ ��'(, ��� '�#$ %�� � ������ ����&� ����������'�# $%�� � ��� ����& �, ����-�(� ���(, ��� � ��-� ���������� . *�(/� ��� ��� ����&� ���.� *�-�(� �(, ��� ��+ ��'(, ��� . . .. . . . . .
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3�0
��������������� ����������
b1
b1
b2b3
b4
b5
b
bb
b
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3�>
������� ����� ������ ��������� ����������
r3r4
r3 & r4
x+
y- x-
y+
y+ x+
y-x-
r1r2
00
11
1001
0110
r1 & r2
x+
y- x-
y+
y+ x+
y-x-
00
11
1001
0110
x+
x+
y- x-
y+
y+ x+
y-x-
00
11
1001
0110
b
b
01
11
U
y+
10
11
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3��
������� ����� ������ ��������� �������� ��
x+ y+100
110
111
y- x-
y-x-
011
010
101
001
000
x+y+
z+
z-
x+
y- x-
y+
y+ x+
y-x-
1001
0110
b
b
11
00
x+
y- x-
y+
y+ x+
y-x-
00
11
1001
0110
b
b
�� �� �� �� �������
�� �� ���� � �� �������� � ����� � �� ��� ��������� � � � ���
./001234566789:;<�=:>??@.:;A51 3B 36C4 6;A2 674B 24 /B A3C 2 60.DE 3�
����������� �
�� �� ��������� �� ����
����� �� ����������������� � ���������� ��� � ����� ����
���
��� ���������� ���������
��� � � �� �����
���� �������������������� � �� � � ����
������� ������������������� � �� �� ��� � �� �� ���� ��
��������� ��������
ER(x+)
a+b−c+d−
C
set
reset
ab
cd
x
� ����� �����
a+
b+
a−
b−
���������
���������
����� � �����
������� ������������������� � �� �� ��� � �� �� ���� ��
���������� ��������������� ������
a+
a−
b+
b−
00
1001
11
0110
1111
a+
a+
a+
b+
b+
b+
a−
a−
a−
b−
b−
b−
11111
a+
y+
y+b+
b+
x+
y−
x−
a−b−
y+
b+
a−00000
00010
01010
z+
z+
z+
a+
a+
a+
00001
00011
01011
11011
10001
10011
y+
b+
11110
z−
11100
11000
10000
10010
11010
01000
01001
11001
z+
a−
a−
b−
b−
b−
x+
z−
y−
x−b− a−
z+
a+
y+
b+
������� ������������������� � �� �� ��� � �� �� ���� ��
���������� ����������� ����������� ��
a0+
b0+c0+d0+e0+
b1+c1+d1+e1+
b0-c0-d0-e0-
a1-
b1-c1-d1-e1-
a0-
a1+
a0+
d0+c0+e0+b0+
d1+c1+e1+b1+
x3+ x2+ x1+x0+
a1-
b0- c0- d0-e0-
x0-x1-x2-x3-
b1- c1- d1-e1-
a0-
a1+
�!�������,! �� �����!� �������� �+�!,
������� ������ �! � � �)����� ��� �
������� ������������������� � �� �� ��� � �� �� ���� ��
� ������������ ������ ��������� ����� �� ����
wenin-
wsld+prnot-wsen-wen-
precharged+ wsldin+prnotin-req-
csc0-
prnot+
ack+
wsld-csc0+
wsldin-precharged-wenin+
wsen+ack-wen+
req+prnotin+
(a)
wenin-
wsld+prnot-wen-wsen-
precharged+ wsldin+prnotin-req-
csc0-
prnot+
ack+
wsld-precharged-csc0+
wsldin-wenin+
ack-wsen+wen+
req+prnotin+
(b)
�!���� �!� � �����!� ��� �� ��!, �,� �����!� �!&����
���!� � ���� �� �! ��+ ��� ���� �� ���!� �!&����
������� ������������������� � �� �� ��� � �� �� ���� ��
��������������� �������������
���� ����� ������� ��� �!� �-� +� �� ����� �+ ��� �
������ ����� ���� ��� �� �������� ������ ��
���� �����,,� �� ������� !� � �,�!�, �� �� !� �����
���! �� � � ���"��#�$&%'()%()%'(�
�*���� ���"�+�,- ��./����
������� ������������������� � �� �� ��� � �� �� ���� 0�
�� ������������������ ��
�� �������"� "��
���������� ���
�� ����� "� "���� �� ����� �"�� �" "� �
�� ����� "� "���� �� ������� � �� "� �
��� ��� " �� �������������" �� ��
������� ������������������� � �� �� ��� � �� �� ���� ��
��������� ��� �����
firing isacknowledged
Each gate
Padding
Delay
delaysUnboundedBounded
delays
Hazard-freecircuit
STG with CSC
removalHazards
������� ������������������� � �� �� ��� � �� �� ���� ��
������� ��� ���������� ��� ����� ���� �
����� $�������� �������� " �� ������������ "� ��"��
��� � "���� � $��������� � ��� ��" ���� �� � �� "����� ���* �
�! �"����� "�"��� "��
��� ��� ������$����� � ��� ��" ���� �� � �� "� �� ���#�
�� �$���������� ��� �����$��������� � � ����
��" �� ����"� "� � �� ��������� �"� ��"����#��������
� �� � �� � " � ���"�� �� ��� "���� "� � "���
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�+1
������� ������������ ��� �� ���������
����� ���� ����� ������ ��������� ������� ���� !� �
������ ���"�� # ��� �$�# � � � �
�% �# �#&�('))*+-,. ���! ��#� $� �/# "!0
��� � "� � ���� �$���!���� �1"� ��# � �� � /� � 2�� ��
�3 �!# �#&� '))*+,.4���� # #� $�#" $�0�� �� ��
� ��0�# $� � ��� $�0�# ���
�5 � � �#&�(6� "� ,.7� �" $�0�� �� �� 8� � � ���
�#� $�#� $� �/# "!0 ��9 $ �� ��# � �� �
�%�� �� *� $,.:���#� $�# /��#�#" $�0�� �� ��
�2� $ � ";$� ��# � �� ���!#� $�&� � ��$ �� �
�)�� �"##� �#&� *� $,.<�'))*+ ,.<��0�# �#�# " $�0�� �� �� /� �0�# ��#� $� � /# "!0 �� � "� �� $ ���!� " %��#� �#� �� �
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�+=
����� ��������� �� �������������� ��� ��
Complex gate2-AND, 2-OR gates
����� ,��������� �������
����� ������ ����� ������ ����������
�� ������� ������������ ���������
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�+�
���� ������ ��������������� �� ���� ����
ab
d
d-
b+
d+
y+
a-
y-
c+
d-
c-
d+
z-
b-
z+
c+
a+
c-
STG
abd
ba
z
cba
globalack.
d
c
bax
yy
z
xc
y
z
z
yack.local
dba
cba
x
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�+�
����� �� �������� � ���� �
STGSimple gate implementation
x = zy + zx
x
Complex gate
x
y
0->10
z
1->0->10->1
214
3
driving
supporting
0->14
zy
-z +x+y
+z-x
-y
�� ��� �� ��� ������ �� ������ ���� ���� ������ �� ��� ����� ��
�� ��������������� ���� ��� ���� �� �� �� �� �� �� ���� ���
��� �� ����� ���� �������� ��� ����� ��� ���
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�+�
���� � ����� �� �������
Latch
Reset function
Set function
Signal implementation
Ca
C-latch
R
S
S=0, R=1
S=1, R=0 a+a-
�� $���! �# �� �� �� $��� ��� "� �� *�+!�
��8� � �#� $�
����� � � �#� $�
Raed
bc
Sa
a
.
..
....
without input inverters
BASIC ARCHITECTURESRS flip-flop a+
a-
c~b
d~e
a~
a
Sa
Ra n a-
1
a+n
1
C
with input inverters
..
...a+
a-
a-
1
a+n
1
n
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�++
���� �������� �����
������� ����
� ������ ������������ � �������� ���� �� ����� �
0*0*1
10*1*0*11
000*
111* 10*0
01*0
1*10
region +zExcitation
Cube x(Sz = x)
region +zQuiescent
zyx
��2$� � �� �! �� ����0�� � $��� "� ����$��
���� �$ �! �� ������� ���������� ������$�� � $��
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�+�
����������� �������������
� �� �� ����� �������������� �
����� �����
���� �� ��� ������ ������ ��
���� �� �������� ����� ��� ���� �������� ��
������������� ��� �� �������� ��
SG states ER(a*)QR(a*)
C
�� ���� ������ �� �������� ��������� �������� ����� ��
� ��� ��� �� ��� ��� ������ �� ���������� ��� ��
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�+*
����������� �����������
'�� $�� �$����� 5)�
� "�$� � �""�!# � ��#
��� ������� ����
������ ��
ER
(d-)
(d+)
ER
0*10*0
110*0 0*110
00*00
1110*
1*111
01*11
0*01*1
101*1
1001*
0*001
cube ac
cube abcQR
1*000abcd
(d+)
a+
b+
c+
a-
b-
a+
d-
d+
c-
a-
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0���
����������������������� �������
x- d-
c+
b-
x+
d+a+
ER(d+)
b+abcd
00
01
11
10
001110
0
1
1
1
1
1
1
0
0
--
-
-
-
-
-
01������8�$� � �$�� � "� � $��
� 0��0�# $�� ���������8�(���8 ����*� ��� � �! ��! �#�
0��0�# $�� ���������8� �����* 5)� $� �$ �$� � �0�� "� �""�! ��! �# �
��� ��� ���� ���� �� ������ �
���������������������� ��!� ��"��#���!� � ��"� ��"!�#� �� $%�� �
���� ���������������
�� ������ ����� ���������� ��
����� ����� � ����� ���
������ $����# � ���##� / "�
�� �� ��� ������ ��� ��������
�� ��� ������������ ���� �� # � ��# $�� ��"� , $�� ����)�#0 ��
� ���� ������ �� ����� ���� ���� ������ �� �
b
ed
a
Ra
Sac
...
..
C
.
���������������������� ��!� ��"��#���!� � ��"� ��"!�#� �� $%���
��������� ���������� ����������� ��
ab
d
d-
b+
d+
y+
a-
y-
c+
d-
c-
d+
z-
b-
z+
c+
a+
c-
STG
abd
ba
z
cba
globalack.
d
c
bax
yy
z
xc
y
z
z
yack.local
dba
cba
x
���������������������� ��!� ��"��#���!� � ��"� ��"!�#� �� $%���
��������������������
Sequential
Combinational
..
.
...
.
.
....
...
...
...
...
.
.
.
..
.
Complex gate
C(a)
Complex gate
C(a)
C(b)
Complex gate
C(a)
.
.
..
..
C(b)
C(b)
Fx
RG
.
RG
F
PCx
..
F
RG
���������������������� ��!� ��"��#���!� � ��"� ��"!�#� �� $%���
���� ����������� �������
������������ �����������
���������� �����
� ��!�"#%$�&��!�"� ���' ���(
��)*� $�+, �-./. �!� �'�� �(��� �
�012*� $�+, �-./. �!� �'��( ���� �
cdC
cd
b
OR cabd
kernel
AND
cab
a
ab
C
C
d
C
���������������������� ��!� ��"��#���!� � ��"� ��"!�#� �� $%�34
������ �� ��������������� ������
��� �� � �� ����������
� ����������' ���(� ����� �' ���(
!�������� � ���� �������
" � ���# ����� �������$
�% !,'&/(��*��$"�-&��
)*�� -�� ��$�!-. -/� !$+
'-,�. !*,0/."/��!./�(
)*�� -�� ��%1�. !/��2. $�
'. !,'&/ -.3 !." -.�� !�/*�".+�*(F=0F=1
IB(F-)
IB(F+)
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 93L
������������� ���������������
e+
10111c-
F=aF=a
F=a
11010 11010
11010
d-
d+
c-
a+d+
a-
01000a+
10111
e+
c-
a-
01101
a,d - outputsb,c,e - inputs
e+ c-
a+a+
e+
c+
d+
b-
c-
a-
d-
01100
0110001101
00001
01000a+d+
1100001010 a+11100
d-
1110111110
11111e+
d+01010
d-1001110101
10001c-
c+
c+ d+
b-
a+
0110101100 e+
a+
c-
d+
d+
11111
d-
00001
d-10011
d+1100001010 a+
11100e+
1110111110
11111e+
10101
d+
d-1001110101
10001c-
c+
c+ d+
b-b-
a+
a-
e+
a+
c-
d+
d+
c-
d+
00001
01000a+
d-
11000
ER(x+)ER(x+)
11100e+
1110111110
ER(x+)
e+
10111c-
F=a
01000
b-
10001c-
c+
c+
a+11000
a-
0110101100 e+
01010 a+
d+
11100d+c+
c+
c-10001
00001
e+
ER(x+)=IB(F+)11101
10101
d+
11110
10011
11010
11111
d- c-10111
e+
abcde
abcde
abcde
IB closure
I/O closure
SIP closure
abcde
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 93 F
��������� ���������� ����
�"��$ �������
� ����"��$ ������
���� ���� ��� �
� %*3&.�. !/�� --,��*��. !*�,� !*� !$� 2��-.3 !.",
�2�� -!�/3&.�. !/�� -,��*��. !*�,� !*� !$��2
���'�(',��3�� --$�!*./. �!-(
���. $& !��"�*3�, �/���2&!$/. �!-$. !(�$�. !3�*
'� -/.+./. �!�2*� $�+, �-./. �!$�-/(m
F
> 1 lit.- badnb
1 lit.- OK
repl.- OK
kl
p
mn
q
kl
p
.
.
.
..
.
..
...
...
......
..
..
.
.
.
.
..
..
.
C’(a)
C(a)
C(b)
Complex gate
C(a)
Complex gate
Complex gate
C’(a)Complex gate
C(e)
.
C(d)
.
.
C(b)
C(d)
RG
.
..
..
F
RG
C(b)
x
C(b)
RG
Progress: safe substitution of F with x
Cost estimation
FG
R
F
.
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 933
���� �������������� ����
���������
���� ���� ���� ����� ��� ���� ��
� !"+,�. -& -�*2�� -.+,".�$./. �! ' !�& -� 2&"� �((+,0/(
1�2���* �+2��$���-. !3�'-,0/( '*�� !�* (+*. �. -���(
.
...
.
.
....
...
.
.... ..
.
.
.
.
.
.
.
.
.
.
.
.
.C(a)
F*P=0C(b)
Complex gate
Complex gate
C(b)
Complex gate
C(a)
Complex gate
QTQP
F
RG
RG
T
F
PCx
������� ��������� �
" �$ ����� ��
"�$�����" ��$����" �$
"��$�����" ��$����"�$
SIB(F)
+S
IB(P)
-=
=
1
0
IB(F)
ER(x+)
D
D
F=P=0
F=1P=1
ER(x-)
IB(P)
0
1
S : x=1
ER(x-)
S : x=0ER(x+)
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 93E
������������������ ������
c+
b+d+
a-
x+
a+
b-
b-
a+
x-
c-
d-a-
b+
c+
d+b+
map0+a-
x+
map2-
map1+
a+
map0-
b-
b-
x-
a+
d-map2+
c-
a-
map1-
b+
c
map2
map1
map0
x
a
x
c
xc
d
Cx
c
b
x
d
a
a
xc
xc
ax
b
cax
adx
x C
CC
C acd
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9E�
������������������ �������
pdo
csc1
csc1
breq
mrdc
csc0
C
C
C
C
C
C
pdocsc0 C
csc1 C
C
C
breq
bprnbreq
csc0
bprncsc0
pdopack
busyo
mrdc
csc1
C
xackbreq
busyocsc1
di
csc1
do
do
C
C
C
breqcsc1
pdo
di
do
breq
pack
breq
dido
csc0
dixack
mrdc
csc1di
Cbusyo
packpdo C csc0
di
busyopack
csc0
busyo
bprn
breq
bprn
mrdc
csc1
breq
busyo
mrdc
do
mrdc
csc1
xack
di
do
pdo
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9E D
��������� ����������������� ��� ������� �
� ����������D
c
y
d
a
Rsdc+yc
y = R (S+y)
Rs
dRs
Rs
y-
a+c-
d-
a-
c+
a+
y+c-
d+c+
a-
adcH
y
y
GR
cd
y
S
S
R
y
dc
aS
R
c
a
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9E�
��������� ����������������� ��� ������� �
� �����������
acdy00
00
01
01
11
11
10
10
acdy00
00
01
01
11
11
10
10
1--0
1--0
1--0
R=cd+c’y’; S=a
1--0
1--0
1--0
1--0
0 -> 0: RS=1-,-00 -> 1: RS=011 -> 0: RS=1-1 -> 1: RS=0-
000
0
0000
1
11 1 1
11 -
y = acd’ + y (c’+d’)
01
0-0-0-0-
0-0- 1---
R=cd; S=acd’
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9E�
������ ��� ��������������� ���������� ��������
���������� �������� ���� �������� ����� � ������ �!��""�!� ����� ����
#!$% �&�' �����������( ��� ��)
*!$% �&�' �( ��� ��)( ��� ��)��( ��� ��)��( ��� ��)
#!$% �&�' ���������( ��� ��)��
*!$% �&�' �( ��� ��)( ��� ��)( ��� ��)��( ��� ��)��
+ ���� � ������������
��"�+� !/,- �. �.��-'. ��.�( �"./$�,- ���0/-
2"./$�,- ��1�/�-0123./� ,- �. �.�
)-"./$�,- �/'��-(� )3./� ,- �. ��.�
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9E2
��� ������������ ��
Technology mapping
Decomposed circuit
Gatelibrary
Gatenetlist
�����������������
�� � ��� ������� ���
�� ���� �����
������ � �����
���������
���������
�����������
������� ����� ����� �� � !�
!#� ������������������
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9E!
������ ����������������� ���
GateDAG GateDAG
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9EL
��� ����������� �������������� ���
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9E F
��� ��� ���������������� �� ���� ���
I1
I3
O1
O2
I2
�� � � ����
����������
�� �����
������� �� ������ ������ �� �����# �� ���� �
� �� �� ��� � ������� �
4566789:;<<=>?@AB'C@DEEF4@AG;7 9H 9<I: <AG8 <=:H 8: 5H G9I 8 <64JK 9E�
��� ��� ������� �� ��������� ���
���� � ���� � ���
������ ����� ���
������ ������� ���
x+
z+x-
y+
z-
y-
������� � ��� ��� ����� � � ���� � �����������
�������� ������������ �����
2� ����� � ����� ��-�� ��������������������
�5 !"#$%&&'()*+,.-*/001�*+2 %!#3 #&4$&+2"& '$3"$ 532 #4"& �56#00
���� �� ����������
x+
z+x-
y+
z-
y-
��������� ��� �����
��� ������ �� ���
��� �������� �� ���
S
R
Q
y
zx
����
����
����
�� � ������������������ � ���� �����������������
�5 !"#$%&&'()*+,.-*/001�*+2 %!#3 #&4$&+2"& '$3"$ 532 #4"& �56#/��
�������� ������ �������
����� ��������� �������� ��� �����������������
���� ���� ������� ������� �����
� �� ������ � � ���������
y
z
x
��� � �� ���
��� ��������� �� ������� �������� � � �� ��������� ���
����� �������� ������������� ������ ��
���� �������������� ������ ��
�5 !"#$%&&'()*+,.-*/001�*+2 %!#3 #&4$&+2"& '$3"$ 532 #4"& �56#/� /
���������������������� ��� �� �
� ��������� � ��� ���� �� ��� � �� ����
������������������ ������������� ������� ������� �� �
� ��������� �� �� ��� ����� ��� ��� � �� �� ����
�������� ������������� �������� ����� ��� ���� ����! ��"
��� �# ��� ������� ������� �� �
$��� ���� �������� ������ ��� ������ ���%&�� ����� ���� �� �(' ��� �� ������ ������)�***
�5 !"#$%&&'()*+,.-*/001�*+2 %!#3 #&4$&+2"& '$3"$ 532 #4"& �56#/�+
����������� �������� ���
� ��� �� ������ ��� ����� � ��� �� ����� ���� �
������� ���������� ����� ������ ��� �������������� �
�� ���� ����������� �� �������������� �� �� �� �
� �� � ������� �� '�� ���� ������ ��� �������%&����
� �� ���� �������� ��� ��� �� ��
�������� ���� ������� )�
�������������� ���� ��� ����� )�
� ��� ����� ����� ����� ������� �������� � ��
�5 !"#$%&&'()*+,.-*/001�*+2 %!#3 #&4$&+2"& '$3"$ 532 #4"& �56#/��
�������������� ��������� ���� ���
����� ��������
������������ ��� �� �
��������� ��������� ��
��� �� � � �����
�!�" �� �"$#� ����%� ������
��������� ���� � ����� ��
���� �� � �
&5''()*+,--./0123�415667&128,( *9 *-:+ -28) -.+9 )+ 59 8*: ) -'&;< *5�=
�������� ���
� ��� )���� ���� �� �� �� ��������������
�� ����� ��� �� � ��� �� ��� ����� ��� ������������ )� ���
���� ��������� )�� ���� �� �� ������ �� ��
���� �������� �� ���� � ��� �� ��� ����� ��� ���
� ����� �� �� �� �� �� �
���� )���� ���� �� �� �� �� ��������� �������
�� ����� ��� ��� ��� ���� ��� )� ���
�� ������ '����� �� ���� ���� �� �� ������ �� ��
��������� � ����� �� �� ��� ��� � ������ ����� �� �
� ����� �� �� �� �� ��� ������ �� ��
&5''()*+,--./0123�415667&128,( *9 *-:+ -28) -.+9 )+ 59 8*: ) -'&;< *5��
�������� ��������������
Specification (STG)
Circuit
Specification (STG)
?
Circuit
Design iscorrect
Synthesis
No
Yes
No No
Yes implementabilityChecking
engineering
Reverse
Circuit analysis(hazards ...)
�� ������ �� ���������� ������� '���� ������ �'��� ��� �
&5''()*+,--./0123�415667&128,( *9 *-:+ -28) -.+9 )+ 59 8*: ) -'&;< *5��
�������� ���� �������� ����� ����
����� �� �� ������ �� ��
���� ������������� �������� �� %�� ��� �� �� �� ��� ������� �� �� �" �� #�� �� � ��� �
�� � �����������������"���� ���� ������� ��� �� ��
��� � � �� � �� �� �������� �� � ��������� ���� �
� ���� �� ��� �� �� �� ����� �� ��
��� ��� �����
��� ����� �������� ����� �"
����� �� � ��������� ����� �"��� � ��� �� ������������� ��
� ������� ���
&5''()*+,--./0123�415667&128,( *9 *-:+ -28) -.+9 )+ 59 8*: ) -'&;< *5�7
� ������� ����������������
���������� �� � �� �� ��
� �� '���������%&�� � ������ �������������
� � ������� � ���� ������ ���� ) �
� ������ � '��� ������
�������� � ���� ���� �� ��
������������� �� ��������� �� ���
� � ���� �� ������ ��
��� � ���� �� �� �� ������ � ����
��� ���� ������ ���� ����� �� ���
&5''()*+,--./0123�415667&128,( *9 *-:+ -28) -.+9 )+ 59 8*: ) -'&;< *5��
�������� �� ���
a
b
cdB
A
states
a
a
a
b
b
bc
c
c
csomething might
something might
nothing newinertial states
happen with gate A
happen with gate B
a b
������ ��� ����� �"�� �� ���� �� �� � � ��� �� �
��� ������� �� ���� ����� � � �� ������ � �� ������ �� ����� �
������ �����" �� �"#� ��� �� ��� ��� � ��� ������ �� ��� ����
&5''()*+,--./0123�415667&128,( *9 *-:+ -28) -.+9 )+ 59 8*: ) -'&;< *5�6
������ �� ���������� ����������������
������ ��� )�� � �������� �� ����� ��
�������������� ������������ �p1
p3 p2
01
p1
p2p2
p3p3
10
11
11
00
0 0
p1 p2 p3 p1 p2 p3
p1 p2 p3
��� ��� ���� � � � ����� ����� �� ������������ ����
�� � � �� ���� � �� ���� �� � � ��
& ''()*+,--./0123�415667&128,( *9 *-:+ -28) -.+9 )+ 9 8*: ) -'&;< *55�
���������� �������������
����� ��� ��� �� � � �� ������� ���� � � � ����� ��
�� �������� ������ ������ ����
a+b+
p1
a-b-
p2p3
� ������
�� ������ ���
�������������� ���� �� ������� ����� ���� �� ��
������������������ � ��� �� ��� ������� ����� �� ��� �� ��
& ''()*+,--./0123�415667&128,( *9 *-:+ -28) -.+9 )+ 9 8*: ) -'&;< *555
����������������������� ��������
������������ �� � ���������� ����������� ��������
a+b+
p1
a-b-
p2p3p1 p2 p3 a b p1 p2 p3 a b
p1 p2 p3 a b
���� �� ������ ��� ��� ��� � ������� ��!���
"�� � �� ���������#$� ���� #$%'&(
��� �)��*�(� � ��� )� � �*� �� ��� ��+��� �� �,� �-
. //01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 B A2C 1 5/.DE 2>>F
�������� ������ ����� �����
����������� �� �������� ��������������� � �
�������� �������� �� �!
�#"$%�& �'(�)-*++�#"$%�& �'(�)-* �'� �'�,�� ����()-�-������
�.� ,,�,���*�-�������,� ,��/���! � ����-0������-!
�#"$%�& �-(�) '*++�#"$%�& �-(�) '*
����-�1+ ��/����/� �/����*� �� �'
c!
b? a?
b
a
c C
circuit = mirror of the spec
. //01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 B A2C 1 5/.DE 2>>2
���������������������������������
q0q1’q1q2’
q3q0’ q2q3’
a
b c
a
b Failure
q0q1
q3 q2
q0’q1’
q3’ q2’
Failure b!
a!
a!
c?c?
c? c?b!
b?
a?
a?b? c!
a?,b?
Fork (spec’s mirror):C-elementFork || C-element:
��� ,��-��*� ,��,��� �-����+� ����������� �
��� �,�-��� �-� ,�,�� �*� ��� ��*���/��-�� �-��� ��,��*
��� -�-*�)-�*���*��� , ������-����/� �/����*�-����
. //01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 B A2C 1 5/.DE 2>>
� ��������� ������ �������
State graph for OR:
Failure bb
ac
ca
b
a
c
q1q2’
q2q3’q3q0’
b
q4q1’
q7q0’q6q3’
cq0q1’a
q5q2’
q0q1
Failure
q2q3
q4 q5
q7q6
a
bb
a
c ccc
b
a
b
b
(d)
a
a,b
a
OR || Fork:
q0’q1’
q3’ q2’
cc
c cb
a
b
a
Failure
b
a
c
Fork:
��+��� ��-���� ��/����/����������,�*� �� �
��� ��,�-��� ��-,��*� ���� ��- � �����,��+��� ���)�� �,�,� �,- �-���-����+� ���������
1�/�� ,�)��*-����+� ���������� ����-�-
�� ,� �����/��-�������-��� ��,��*-�-� ���� ���
. //01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 B A2C 1 5/.DE 2>>
���� ����������������� ����� ��� ����� ����� ���� �
VIVO
ENVIRONMENT (Petri net)
CIRCUIT
a+
b+
d+
c+a-
c-
b-
d-
b
a
c
d
0
0
0
0
0
b
a
c
d
a+
b+
d+
c+a-
c-
b-
d-
0
0
0
0
1
.�//01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 �B A2C 1 5/.DE 2>>�
���� ���������������� �����
b
a
c
db
a
c
d
0
0
0
0
0
1
1
1
1
1
a-
d+
a+
b+
c-
c+
b-d-
a-
d+
a+
b+
c-
c+
b-d-
�� ����� ���� ,�� ,�� �-� ����� ���� ,� �-����
���� ���� �*�� ,��� ���-� ���� �*���,� ,��/���
�� ��� � ���� ,� ����,��-�,�/� ��������� ��,�-� �
��/�,� ���,� ,��,��-����
.�//01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 �B A2C 1 5/.DE 2>>@
������������ ��� ����� ����� ���� ����������
a+
b+
d+
c+a-
c-
b-
d-
e
b
a
c
d
e
a-
d+
a+
b+
c-
c+
b-d- b
a
c
d
a-
d+
a+
b+
c-
c+
b-d-
c
b
a
d
CorrectCorrect Incorrect
1�,,� ��--�-��� ,���,����� ,�� ��� �*�� � �,��� ��� �� ,��)�*� ���,� ,� �/���
.�//01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 �B A2C 1 5/.DE 2>>�
����������������
���,,�������
� ��������� ����� �� ,��
�����,)�,���� - �,�-���
p3
d
f
e
c ab
p6
p1p2
p5 p4
p2’’’
p2’ p1’
p3’p4’p5’
p6’p6’’
p2’’ p1’’p1’’’
b’
. . . . . .
a’c’
d’e’
f’’ f’
Forward conflict
.�//01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 �B A2C 1 5/.DE 2>>?
��� ����� ��������� �������
������� ����� �� �������� ���� ������ ��� �� �
����� ��� ������� �� ��� �������� � ����������
��� �������� � ��� ����� ���� �� ���� ���� ������ � �� ��!#" ��$%� &#�'(
�)��*�� �+ � ��� �� ��� �� �������� ���� �� ���� ��� � ���� �� �� ��� � ���� �������!-,.!%� ( /�0�/21� (
�����3����� ���� �� �4� ������� �� ��������� ����
������5 �� �� � ! �� ( �����5 �� �� � ! ��� (� �� ��6�5 �5 � �� �� ��� �! �� (7��6�5 �5 � �� �� ��� �! ��� (�8����� 9��� :!-; ���<��� ����� �� �� �� ��� �(
p1’
p3’p4’
b’ a’
d’c’
p2’
. . . p6’ p5’
.�//01234556789:;=<9>[email protected]:A40 2B 25C3 5:A1 563B 13 �B A2C 1 5/.DE 2>F=
������� ���
p2’’’
p2’ p1’
p3’p4’p5’
p2’’ p1’’p1’’’
b’
. . . . . .
a’c’
d’e’
f’f’’
p6’p6’’
Unfolding
p2’’’
p2’ p1’
p3’p4’p5’
p2’’ p1’’p1’’’
b’
. . . . . .
a’c’
f’f’’
p6’p6’’
e’ d’
�� ������ ��� � � �� ������ ������ ��
�� ���� � ������ �� ���� ��� � ������� !��� ����� ��� � ������ ������ �� ���� ������ ����� ������ � ���(
� ���� ��� ��������� �� �� �������� � �� � ��� ������� ��� ���
� ���� ���� �� ��� ���<��� ���� ������� ��� �� ��
������� ��� ��� ������� �� �� ���������� 6��4 ����!���(� ��� �����
������������� !"#%$!&''(�!")���* ��+� �")� ���*�� �* )�+� ���,-�&. &
��������������� �� �� ��������� ��
�������������� �������
����������������� �� ����
�!��"����� ����#� ���! ��
$&%'��( '%�)�'* ��+,9%'��( �+'*�%-'-�.
...... b+ a+a+
...d-
...
... b+
a+
a-
p1
p2
a+b+
a-
(00)
p2’
01(p2’) 10
(p2’’)
00(p1’’)
p1’
a’+
a’-
b’+
/00123/456789:767;<:;
�=- ) +)=** � +)�?>@ '* -�)=� '* )'%� �) +)=** � +)�
�A �, +'� -�* +'-�B+>@ '* -�)=� '* )'%�BC@* � )�D� +)�
E �* B@ �* '%%�, +�� +-* � D=)�%-B@* � )� D� +)�)F � )��+,
�G����������� !"#%$!&''(�!")���* ��+� �")� ���*�� G* )�+� ���,-�&..
�����������������
�'+( ��( �*,� + ��SYSTEMUSER
VHDLSIMULATION
TESTBENCHVHDL
ASSERTIONVHDL
BEHAVIORALVHDL
GATE-LEVELVHDL
STG
RESULTSASSERTION VIOLATIONS
OR
OR
�G����������� !"#%$!&''(�!")���* ��+� �")� ���*�� G* )�+� ���,-�&.�
������������
BEHAVIORALVHDL ORGATE-LEVELVHDL
ASSERTION VHDL
TESTBENCH
inputsoutputs
state signals
Error messages
�G����������� !"#%$!&''(�!")���* ��+� �")� ���*�� G* )�+� ���,-�&.�
�������
s+
p1p2
p3p3
�/;�;<�7 <;9�;9�<:76 :��� �8<7
�� <8;99��99� <�:7��� �8<7
����� $�$��.��6 ��� �8<��89:; �6 :7 �;9�<:�
����� $�$��.��6 ��� �8<����9 <7:9;89:;�6 :�;9�<:�
�G����� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � G/ .�0 � "��12 �+34
����������
s+
p1p2
p3p3
BLOCK (places(1) = ’1’ AND places(2) = ’1’)BEGIN places(1) <= GUARDED ’0’; places(2) <= GUARDED ’0’; places(3) <= GUARDED ’1’; places(4) <= GUARDED ’1’; s <= GUARDED ’1’;END;
�� <�;�:76 ;69:�9776���89:8� <:;�6 ;��:�9;� <;�:76 ;69:
����9 8�� <;�:76 ;69 :
�49�<:�9��9 �<� <�6 :76 �<;� <��9 8�
�G����� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � G/ .�0 � "��12 �+3
�� ������������
BLOCK (places(1) = ’1’ AND pcond = ’0’)BEGIN places(1) <= GUARDED ’0’; s1 <= GUARDED ’1’; pcond <= GUARDED ’1’;END;
BLOCK (places(1) = ’1’ AND pcond = ’1’)BEGIN places(1) <= GUARDED ’0’; s2 <= GUARDED ’1’; pcond <= GUARDED ’0’;END;
s2+
p1
s1+
pcond controls conditional execution
enables a different transition for each "pass"
�G����� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � G/ .�0 � "��12 �+3-
��������
������9 8�7 �<�9776���89:8� <:;�
�� :�����<79��;69:�� :8;69 :67:<<�<��
�/45679:��89<8;6 �:9;�9;�:76 ;69:79 �;� <7 �� <76��:���< <:��� <��;;� <7 �� <;6� <�
��77 <;69 :6 :;� <<79��;69:�� :8;69:;� �;;� <<�<:9;�9 76���; �:<9�7 �776��:� <:;7;9;� <7 �� <76��:���
�G����� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � G/ .�0 � "��12 �+3�
�����������
ASSERT (s’STABLE = TRUE OR places(1) = ’1’ OR ....)s+
p1
�56 <76 :�9��9�;
�� <<�
��6 8�76��:���
��6 8�;�� <9�69� �;69:�
�� <����6 :�86 8�6 ;��<:6 9:� <:;
�G����� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � G/ .�0 � "��12 �+3,
���������
�4<7;� <:8��� <� �69��� ���9��6 : <7 <�/45$6 :��;7�:�
9�;��;77�6 ;8� <�.�
��7 <9�7 �� <� 9 8<�� <�7;� <9:<� <:<�;6 :�� <� �69������
$ :9;�6 ;;<:���<76��:<.
��77�� <7;� �;;� <<:6 9 :� <:;67;� <��7;<7;�9776�� <�
�9;89���� <; <$ �6 �< <6� 8�;69:.���;� �:�<97�9� :�;�67 � ���
�G����� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � G/ .�0 � "��12 �+��
�����������
���� �;�9� <�:9���9�;�7� :8� 9 :9�7;<7;6 :��
�� �� <9�����;7�:�����9� <:<<�;9;<7;�<� ������;7�9 � �<� ����� :7 <:7� ;� <�8� 8�� ;7
���9���;� �;��<� ������;; <�;� :�
�� ����������������� �� ��� �����
��� ������ �������� ���� ��� ���� ��
�� � ������ ������������ ������� ��
�G����� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � G/ .�0 � "��12 �+� +
��� ���� ������� ������������
� ������� ��������� �� � �����
������������� ������� ������ ���� �� ��� ��� ���� ������ ��������� �������� �
��� � �� �������� ������ ����� �������� � ��
���� ����� ����������� ����������� �����
����� ��� ������ �� ��� ��� � ���� ���� ��������������
������� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � �/ .�0 � "��12 �+�3
��� ���� ������� �����������
��������� ����� ������ � ������������� �������������� � �� ���� ���������� �!"��#����� ���$$$%� � �� &� ��'()*()� � ��� �� �� &�� �������� �������� �� �� ����� �����������
�+ ��� ������ ��� � �� � �� � ���������������,� -�� �%
�+ ��� ������ ���� �� ��� � ���������������.����� /%
�0�� �� �� ����� ��1 ��� �� ������� �����,� ����� ��� �%
�������� ���02� ��� ������� ����� � ���3��� �%
�4������� �� ���� ����+ �� ��� �������5�6��78 �%
�+� �� ������ � �� ���� ����7����� � ���3��7�8/�8 �%
������� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � �/ .�0 � "��12 �+99
������������ �� � �������
FIFO latch
C
C
Isochronic fork
weak
Dynamic C-elementQuasi-Static C-element
Untestable stuck-at and breaks
������ ������ ������� ����� ����� ���� ������ �� ����
���� �������������� ������������ ����� �������� ������ �� ����
������� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � �/ .�0 � "��12 �+9�
���������������� ��� ���� ������
+ro-u-ro -ri +ri
r1
l1
D-element
Technology mappings-a-0
s-a-0lo
liu
u
ri
ro
u
liro
Delay fault : d(inv) > d(+u)
Signal Graph
+li+u+lo-li-lo
��%��� � �7�� � "� ������� ���� ����� -� 6� � ��8�%�� ������"
���%��������� ��� ���� ���� ������� ���� -�� ��
������� !""#$%&'(*)&+,,-�&'.!� �/ �"0 "'.� "# / � �/ .�0 � "��12 �+94
��������� ��������� ����������
������� ����� ������������ ���� �
�� ���� �� �� ������������������� ����������� ��� ��
���� ��� ���������� ������������������
�� ��������� ��� ��������������������
ScanClkScanIn
R
SQ
ScanOut
������� ������������������ �������������� �
�� ������������ ��� �� ���������������
�� ����������������� ���� ��� ������������������
�����
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�)91
������� �����
���� �������������� ����� �� �
���������� ����� ����� ������������ ������(�� �
�� ���� ����� � ����������������
�� ���� ���������������� ���� �����������������������
������������������������������� �������
1
0
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�)9+
������� �����
���� ��������� ���� ����� ������� �������������������� � ��� ����
���������� ������������� �� ����� ���������� ����������
��������� ���� ����� ��� ���� ����� ������������
�� �������� �� ��
������� ������������ ������������� �� ����� ���������� ��
��� ���������� ��� �������������� ���� ����� ��� �
���
1
10
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�)9�
����������� �� ���� ������ ���� ����� ���� �����
� �� �� ������
2
2
1
1L-
L+
Ro+
Ao+ Ri-
Ai+
L-
D+
Ro-
Ao-
L+
Ri+
Ai-
D-
D
Ai
L
Ri
test1test2
. ����.������ �, � ,� -����88 3�� ��#������ � � �� 6� � �� � ��� ��� ��� �� -�� ����� �������� �� ���� � � ���� �� -� � ���� � �� ���
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�)9*
���� �� ����� ����� �����
D
AiRi
L’
L’’
D
Ai
L
Ri
test1test2
������������� ��������� ���
� ������������������ �������� ��
�� �������� ��������� ��������
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�)��
����� ����� ��� �� ������� ����� ������
S
R
Q
Q’
Q
Q
Q
Q’
Q’
S
S
R
R
Da
b
c
x
y
z
z’
Combinational
Logic
������ � � ������� ���� �������� � �� ��� ����� ���� ��� ������������� ������ ���� � ��� ������ �� � �������������� �������� � ����� ���� �
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�) )
�� ����������� ������ �������������
����� �� � � ����������� ������ �� ��� ������
������������� � � ��� ���� ��� � � �� �
������ ���� ���� � �� ��� �� � � �� � �� ��� ���� ���� ���� ����� ����� �
!"�#$%�&'
�() ������ � ������
*+�� ����������� ������������������ ������,������� ��-.%!/�$.�
021.&%.
3*(��������� ���������� �', ������� ��-.%!/���"�
�� ��� �� ��� �45�6( �� ��� �� � � ���������� ������������� � �� �7 � ����������� �� �� � ��� ���� ��� ��� �� � � �� � �� �
��������� !"#$%&('$)**+�$%,���-� .� %,� !�-���- ,�.� ��/0�) 8
�������� �������� �������������
x
Ao
Ro
x
Ai
Ri
12
3
5
6
71
1
101
0
14
8
M
M
m4
m8
������������������ ��� � �������� ��
������ ���������������������� ������������ ���
�!!"#$%&''()*+,-�.+/001 +,2&" $3 $'4% ',2# '(%3 #% �3 2$4 # '! 56 $/ 7
�����������������������
��������������������� �� �� ������� � ������ ������
�� ����� ��! ���!��! ��� "�#$%���� �! ���� � �� �� �� ��
����! ��
�& �������! �����! � �' ��������! ����! �� ����� ������� ��� �(
�� �!����( ����!! )���!���*
�&����!��!� �+ (, �! ����! �������
�& ����! -���!��!! �!.�������.� ��� ��� ��� ����! �! ��� � �����/� ���0 ��! 12
�!!"#$%&''()*+,-�.+/001 +,2&" $3 $'4% ',2# '(%3 #% �3 2$4 # '! 56 $/
���������������������
1
4
M
m420
8M
m8Ao
sa0x
Ri0
0
1 Ai
Ro1
1
1
1
0
0
0
1
1
0
0
13
6
7
M12
m129
10
11
1
1
�!!"#$%&''()*+,-�.+/001 +,2&" $3 $'4% ',2# '(%3 #% �3 2$4 # '! 56 $/ �
������ �� ������� ���
����&����&����� ��� ��������! ����/�! � ���� ����!� �!��! !��!
����� !��! �� ��� ���! � ��� ��� �
���� ������� ����.! � ������
��������� � � �������� �������������! � ��� ���� ��! � �
� ���� ���������� ��� �� ���� �!� ��� � ������ �!
�!!"#$%&''()*+,-�.+/001 +,2&" $3 $'4% ',2# '(%3 #% �3 2$4 # '! 56 $/ �
�����������������������
Controlable inputs
Observable outputs
Circuit
+! ��!���� ����� � ��!��! �
� ���������!��!!� ��
���!! �� ���!�!�����/�
�)��� ��� �!��! �
��������
����!� ������� ����� � ��&+������������� �
�+�� ���! �� ���� � �!*,,������!�! �.(�!!��!����
������
�� !��������!��!!� ����������� ����� �
� ����!�! � �� ���� ��� ��� ��
�!!"#$%&''()*+,-�.+/001 +,2&" $3 $'4% ',2# '(%3 #% �3 2$4 # '! 56 $/ 1
���� ������������������������������
10100101
0101001101010000
A
Bb
ac
d
1101
abcd
1000
1010
1011
1001
Input pattern: b-
d-
c+d+
c-
A
B
a
b
c
d
e
y
ABabcdey
01100101
Input pattern: A- B+
b+ a- e+ d-a- b+ d- y-
Non-confluenceOscillation
�!!"#$%&''()*+,-�.+/001 +,2&" $3 $'4% ',2# '(%3 #% �3 2$4 # '! 56 $/�
����������������������������
s3
s3
A+ C-
s2
A+ B+
D+A- B-
s1s2
A+ B+
s4
A- B-
s1
s4
Non-confluence
Oscillation
Confluence
�!!"#$%&''()*+,-�.+/001 +,2&" $3 $'4% ',2# '(%3 #% �3 2$4 # '! 56 $/�0
������������ ������������
������ ��/� ���
� �����! � �� �� /� ���
������������� �! ����/� ���
���/� ��� �� ����! � �
�� �� ����� � �� /� �������� ��
�!!"#$%&''()*+,-�.+/001 +,2&" $3 $'4% ',2# '(%3 #% �3 2$4 # '! 56 $/��
��� ����
0
0 1
1a
b1 -> 0
0 -> 1
1 -> 0
0 -> 1
1 -> 0 -> 1
slow
2
1
transition cube
�������������
� ��������
��������������� �� ���� � �� ������������ ����������
����������!���� �� � � "����������#�"�
�$������ ��� ���������"���� %���������� � ���&'()*+,(,-&�������
.0/���� �1
�2 � �� � ������ �.43����56" ��57 %��!1
8�99:;<=>??@ABCDEFCGHHI8CDJ>:<K <?L= ?DJ; ?@=K;= �K J<L; ?98MN<G� G
������������������� �
510
10
205
5
�� ���� �������� ��� ��
�� ������
������� ��� ��
� ������
�/�� �������� ����������� ����� �
8�99:;<=>??@ABCDEFCGHHI8CDJ>:<K <?L= ?DJ; ?@=K;= �K J<L; ?98MN<G��
�� ���������������
0
1
0
11
0
1
0
Dynamic hazards
00
111
0
Static hazards
����(���* � �,+ �
���� ��� � � �� ���� � ������"���� ��� �� ���� � � � � "�� �� ���� � ������"����
���+)- ���'� �
� ������ � ��� ����"��� %�� "��������!� �
���"� �� ��� ����"��� %�� �������!�
��- �,& � ) ��) ���,(,+�- �,���� �(����,(�
�" ��� � � � �������� �� �� �� ����� �� ��
��- �,�* ( �+ ,(�(��* � �,+ � �������"�� �� ���� � ������������ ��� �����"������ ��
8�99:;<=>??@ABCDEFCGHHI8CDJ>:<K <?L= ?DJ; ?@=K;= �K J<L; ?98MN<G��
������������������������������
... Combinational
circuitMemory
clock
� ��� � ���� ��� �� ��� ��� ���� �� ����� �
� �!���� ����"�� � ������������� ���� ����� �
!�� ���"#��$ ����� �# ��� ���������
8�99:;<=>??@ABCDEFCGHHI8CDJ>:<K <?L= ?DJ; ?@=K;= �K J<L; ?98MN<G� �
���� ��� �������������
������ ���������������������� ������ �������� �$ �� ����� ����
���� �� �������� � ���� ���� ������ ����� ���
������ �� ����� �������$ ��$��� �$ ��
� ����� ������� ���� ���������� �� �� ���� �� ����� �� � ������������� ��"��� ��� ��� �����$ ��
���$ �������
��� ��������� � ��� ��� ������ �������� �$ ������� ���
��� �� ����� �������$ ��$��� �$ ������ ��� �������
�� � ��
8�99:;<=>??@ABCDEFCGHHI8CDJ>:<K <?L= ?DJ; ?@=K;= �K J<L; ?98MN<G��
���� �����������
����� �� �������� � ���
� ���� ������ ����� ���
������� �� ���������$ ��$��� �$ ��1
1 0
0
ab
transition cube
� ���� �����$��� ������� ��� �������
����� ������� �������������� �� ��� ��� ��� � ��
���� ��� ��� �����$ ��"����$ ���������� � �� �������
8�99:;<=>??@ABCDEFCGHHI8CDJ>:<K <?L= ?DJ; ?@=K;= �K J<L; ?98MN<G��
������������������������ ����
cab
c0110
1100
c abc
0110
1100ac
b11
f = ac’ + cb’f = ac’ + cb’+ab’
1
3
24
ac
b11
1
ab
1
11
2
1
��� ���� ����$� #�������� ��� ������������$���
��� �� �$ ����� � �� ����� ������� �� ����
������ � �� ������ �� � �� ���� � ������ ����� �����
��������� ������ ���� �������� ���� ��� � ��
� �������� ���� ����#���� ������ ������ ��������
��� �� �$ ����� ���� ��������#�� � � ���������� ��� �
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'�)
������������ �����������
abcd00011110
10
11
01
001
1
0 0
11
0 0 11
1
0 0 01
1
transition cube
Non-monotonous change
��� � ���������� $�����$������� ���� ��� �� ��������
��� � ����� ��� �� ���
������ �������$������ ����� � � ���� �� ��� � ���� �
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'��
��������������������� ����� ����
abcd00011110
10
11
01
0010 0
11
0 01
1
0 0 01
1
0
0
abcd00011110
10
11
01
0010 0
11
0 01
1
0 0 01
1
0
0
a
b
c
d
01
1
01
1
10
0
10
101010
a
b
c
d
slow1010
01
1
01
1
10
010
0
10
10
very slow
���������� ������������� �� ���������� �����
����� ��� �������� ��� ����������������� ��
��� ������� ������ ��� �� ��� ��������� ��� �������
� !�� ���" �� ��� �"� � ���������� ��������������� ��#�
��� ����������������� ����� �������������� ��"�� ��
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'$(
����������������������������������������
�� �� ��� ��$��
�� !��"��� ��������
������������� �
������" ��"������� �������
�# ����� ���� ���� �
��� �����"�� ��
. . .
. . .
. . . f
. . . f
. . .
S
RRSf
Q
Q’
f’
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'�
����������� �������
������� ��� ��� � ��� ��� � �# �������� �� �
... Combinational
circuit
clock
D
C
D
C
... Combinational
circuit
clock
Latch
Latch
c1
c2
� � ��� ����� ��� � ������� �� ����� � �� ���
���$���� � $$����� ��� �� �
�# ����� ����� ������ $� � ����
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'� '
�����������������
������� ��� �� � � ��� �� � � �� ��� ��������
������� �������� ���� ������ ���� ���������� ����� ��������� ��� ����� � � ����� ����� ��� ���� ����� �� ���� � �� ���
�� ���� ���� �� � �
� ��������������� � ���� �� ������ �� ���� ��
�� ������ �� ������� ������ ��� �� �
�� ������ �� ��� ������������� �
�� ��� ���� ����� �� � ��� �� ����� �
�� �� ����� ���� �� �� � ��!��" �
�� ���� �� ������ �� ������ ��� ��
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'�#
���������������� �
0010
011000
010
001
10
10
10 10
10
transient states
s1s2
abb
011000
10 00
Encoding
��!�� ������������ �� ����� ��
�����!����!����!��
���� ��� �� ���� ���� � ��� ���� � ��� ����������� �
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'��
������������ �
10bb
s3s4
010110
011
10 00
s1s2
abb
000
0010
011
010
001
10
10
10
10
10
110
000
10
Encoding
�����!����!��
� ������ �� � �� ���� ���� � ��� ���� � �� ������������ ���
� ������ ���� �� ���� ���� �� ��
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'��
���� �� ��������� ��
0010
011
001
10
10
10
10
000
10
10
010
10
110100
���� ��� �����
���� ������� ��� ��������� � �������� �" ��
� ������ �������� ��� ������ �� �� ���������
� ����� ����������
� ��� ����� ��� ��� ����
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'�$
���� ������� �� ��������� ��
������� � ������� ��� �"������������" ��
����� ��� �������� ������������ �
��� �� ����� ��� ����������� ����� ����
���"����� ����� ���� ��
������ �������� �� � �� ��� ��������" ���������"�
����� ��� ���������������� ��"��� ��
��� �� �������� ���������� ����� ����
���"����� ����� �� ��� ���� ��� ������ ���� ��00
10
10
s1s2
s3
11
1100
000110
101 011
0
10
01
1
1
0
Encoding
00
11
00
00
1010
11 01
00
11
01
��� ��� ������ ���� ����� ������������ �����
������������ !"#$&%"'(()�"#*�� �+ ��,� �#*� ���+ �� �+ *�, � ���-. �'��
������������� ���������������
1
00
11
0/01/0
1/0
0/0
0/0 1/1 1/1
0/0
transition1
transition3
transition2
01
10D
D
very slow
xy1
y1’
y2
z
4
6
7
910
11
8
57
3
8 2
9
����� �� �� � �� ������� �������� ��
���� ���� �������� �� � � ����� � �� � �����
���� ���� ������ ��� � ����� ���� � �� � ��
���� ��������������������� ����� ���� � � �� ������ ��������
�����������������������
Next state
logicState
Input net
delay_feedback
delay_next
delay1
delay2
������������� �������� ����
���������������������������� !"#$��������% !!&'()*
+,,-�.�/ �0�,���-0- �-���� �. 0 �� �. /-�-��,
���� ��������������������� ����� ���� � � �� ������ ������12
������������
1
4 2
3
a
bc n1
n2
n3n4
Environment
slow
0
010
010
01
010
010
���������
�� ���'������� �� ����� ��)����� �� ��� ��� � ��� �
���� �� �� �� ���� �
�� ����� ��� ���� ������������ ���� ���� �� �� ������ �� ����� ��� �
�!�� ��������������������� ����� ���� � � �� !����� ������1�
����������� ���� ���������
��/� ��-��, �-����� �"�
� 0�, ����� 0� ��-��-��� �-�
�� �. 0�, � 0 . �,�� 0� .0-��������� � 0�,� . /� 0� ��-����� ��-��-�� �-�,
�+�� � � � ��.,�� . �.,�� �-0-������� ��� 0� /� � �� �-� ��.. 0�,. �,� � 0�,� . /� 0� ��-����� ��-��-�� �-�,
� /. � �. //�0�,� ��,0-�� 0-,, -0-��. - �-0/-�
�!�� ��������������������� ����� ���� � � �� !����� ��������
�����������������������������
10
205
5
205
20
� �. 0 �� � �-��,��-� �. -/�0�,
�!�� ��������������������� ����� ���� � � �� !����� ��������
�����������������������������
0
0 1
1
0
0 1
1
ab
1
b
b
a
a
ab
1
slow
fast1
2
slow
fast1
2
� �. 0��. 0�� �,. 0 �.,�
� �. 0 �� � �-��,��� . -� �. -/�0�, � -�-0�
�!�� ��������������������� ����� ���� � � �� !����� ��������
�������� ����������������������������
0
0 1
1a
b
slow
b.t b.f011110 00
00
01
11
10
c.t
0*
1
1
*
*
*
***
0
0 0
00
0
a.t a.fc.t
c.f
a.fb.t
b.fa.t
2
1a
b
����� ����� ���� �������� ��
����� �� ����� ��� �� ��� ��� ���� � ������ ������� ��� ���� ����������� �� �����
�� �� ��� �� ��������� ��� �� ������ �� �� �� ������ �� � ���� ����� �� ������� �� �� � ���� �
������ �� ��� ��������� �� ������ ������ �� ����� ��� ������� ������ ����� �� ��� �� � ������ � �� �������� ��� ��� ��� ������ ��� ���� ���� � � � ( !&"#$% #&"� ( !&
'!(()*+,-../01234�526778'239-)+:+.;,.39*. /,:*,!: 9+;*. ('<=+68>
������������������������� �
��,,��/�0��0�-.� � �,� �� -�� 0,-��-�.�� 0� .,
-�-� ���� -�.�� �-�
�., � / 0-� �� -�� 0. /-���� �-
���0�, ��-� -�-�,, ��. 0�,. �� ���� ��
��0.��0�-, ��-� -�-�, �������������� ��,� , �-� ��������
!"#"$%"&'(%")*+, -. � /��� �0� � ����1��1 �0�� � ��� �-� ��2�� ����� ���� 0
3$(4 (*"5$"*+"&'(%")*+, ��.�1 . 6 .� ���������� 6 2.�.��-���� ��
'7(()*+,-../01234�526778'239-)+:+.;,.39*. /,:*,7: 9+;*. ('<=+688
����������� ����� ���� �����
0
1
0
0
1
0
1
11
time
1
0 1
SwitchingDisabling
Enabling
Stable
Enabled (0*)
Stable
Output changesInput changes
�� 0�����-.- � �.-.2�� �-.2 � �� 2�� ����� ���� �0���1���0-
��..-�� 0��� 62.��1 .� 0���1���0- �� 0�1� -.2�� �-.2
'7(()*+,-../01234�526778'239-)+:+.;,.39*. /,:*,7: 9+;*. ('<=+68�
�������� ��� ����������� ��������������
0010
011
001
10
10
10
10
000
10
10
010
10
010110
y2 must change
y2 must stay unchanged
Conflict�������� �������������������� �
�� � �������������� ���
�&���&� �&�!"�#�� � �&� %$
&�&& &�&� ������
'7(()*+,-../01234�526778'239-)+:+.;,.39*. /,:*,7: 9+;*. ('<=+68'
����� ��������������
0010
10
10
10
10
10
10
10
11010101
0110
0010
0100
0000� ���� ��� � � ��������� �� �� �����
������ � ������ �� ��
���� ����� � � �� ��� � ����� ���� ���� �� ������� ���
'7(()*+,-../01234�526778'239-)+:+.;,.39*. /,:*,7: 9+;*. ('<=+688
�������������� �������� �����������
��� �� ����
���� .-�66 0�� 1� ��0�������0� � .��2�
��0 ���-.��� �. ���.�� 1��. ���� .��2���� ��������22�
'7(()*+,-../01234�526778'239-)+:+.;,.39*. /,:*,7: 9+;*. ('<=+68�
�� ������ ������������� �����
��� ������ ����� .��.����26 0� . . �
� � �00.��6 0� . . ������ ���������6 ����-���6 �� ��
���- � � 1���.2 �
�.����� �0.�� .-���0� .�1 .� 0� ���--���� ���-.��.6
1 .����.��
� �� .�.0�2� �. 1 ��� �. �0� �� ��.�6�� �1��� �- .2�� �� .� � �� �. ��62.�.�������
��������66 0�� 1 . � 0�-� ��� �0�2.�� .-����0����������-
�� �����-�0. �.-- . ��6� � �������� .0� .���.0� .2�
�7�������������� "!�#$$%���&���'��(���&�� ��'��7' &�(�� ��)*�#%$
��������
������������� ������������������������ ����
���� .��.� ����
�&��&��. 1��1� �&�&��. 2���
��������� �����2��� 1��1�� ������� �����2��� 2���
� 0�� 0���.����� ��1� ��� .1��1� .�� 0.�&��. 1��1��1 .
� 0 �� ���22��� �����2����. 1��1�� .�� 0.�&��22��2�������
��- �������
�7�������������� "!�#$$%���&���'��(���&�� ��'��7' &�(�� ��)*�#��
� ������ ������ ���� ����� ��� ����
3��� $'$"
�� �������� ��������� ���� ���������� �����$'%�*4 (')$�5+�
��� ���
�� ��� ��� ��� ��� ���
�������� � ���� ���
�������� � �
��� ������ ��� �� �� ��� ������ �� ������ ��� �� ���
����� !" �� �������� !����� ����
�# ����!" �� � ���� ����!����� ����
� ����� �� � !" �� !$ � � ������ ��� #�� ���� �
�7�������������� "!�#$$%���&���'��(���&�� ��'��7' &�(�� ��)*�#� #
�� ������ ������������
������������������� �� � � �
��� ���� ���� �������� �� �������������������� ����� ��� ����
����������� �� ������ ����� ���
�� ��
� ���
����� ��� ��� �� �� ���
���������������� "!�#$$%���&���'��(���&�� ��'���' &�(�� ��)*�#��
�����������
li
lori
ff
ro
xx
����� ������� �������� ����������� ��� �������� ���
������ ���� � ������ �������
����� ���
� ���
���������������� "!�#$$%���&���'��(���&�� ��'���' &�(�� ��)*�#��
��
s1
s2
s3
xC/o
xC/o
y1y2
00
10
11
xC+xC/o
C+xC/o
xC/o
xC/o
���������������� "!�#$$%���&���'��(���&�� ��'���' &�(�� ��)*�#��
�����
��������������� � ��������� �� ���� �
��� ���� �� �������� ��� ����� ������� ���� �� ���� ��
����������� �� ������ �� �� ���� �� ��������� ���
������������ ������ �� ����� ������� �������� �� ���� ��
����� ���� �������� ��� �����������������
���������������� "!�#$$%���&���'��(���&�� ��'���' &�(�� ��)*�#��
���������
�� � ��� �� ���� �����
����� ��� �� ���� �����
����������� ���� ���
s1
s2
s3
s4
a+/y+
c+/y- c-/y+
b+/x+y-
a-b-/x-
���������������� "!�#$$%���&���'��(���&�� ��'���' &�(�� ��)*�#��
������������������������
����� ���� �������� ��� ����������������
���� ��� ��������� � ����� ������ �������
���� �� �� � ����� �� ��������� ������� ������ ���
���� �� ������ ��� ����������� ��� ����� ��� � �
���������������� "!�#$$%���&���'��(���&�� ��'���' &�(�� ��)*�#�%
������� ������� ����
��� �� �� ������ �� ��� ��������������������� ���� � �� �
� ����� �� �� ��������� ��� � ��� �� ���� ����� ������� ��
���� ���� ��� �� ��
������ ��� �� ��� ��� � ������ ��� ������� � ��� �������� �� ������ �������� �
����������� ����� ����� ����� �����������
����� ��� �� ������� � �
����������������������� ���!� ��"��#���!� � ��"� ��"!�#� ���$%����
�����������������
<D-> AL+ / SL-
R+ D* / SL+
AL- D* / SL+
<D+> AL+ / SL- A+R- D- AL- / A-
012
3
������ �� ������ �� � ���������� ���� �� �� � �� �� �� ���� �������� ���� ���!"�#$! �� �%%%%"
eps2
R- AL-D-SL- A+
A-eps1
eps0
D+
R+
SL-
SL+
AL+ SL+
AL-
����������������������� ���!� ��"��#���!� � ��"� ��"!�#� ���$%����
����������������������������
������� �������� ��� �� ������ ���������� �
����� �� ��������� �� ���� ���������������������� � ��
� �� ����� �� �������������� ����� �� �������� �� ���� �������� ��
����� ����
����� ��� ���� ���� ��� � �� ����� ����� ������ �������� ��
�������������� ������ �� �� � ����� �� ������
�� � ��� �� �� ��������� ��� ��� ������
���� ������ ����� ���������� ����� � ������ �
����������������������� ���!� ��"��#���!� � ��"� ��"!�#� ���$%����
�� ������� ����� �������������� �� �
0
2 1
0
2 1
0
2 1
A+B+/X+A+/Y+
0
2 1
A+B*/X+B+/Y+ A+B+/X+A+C+/Y+<D+>A+/<D->A+/
Y+ X+
CORRECTINCORRECT
���������� ����� ������ ���������� ������������
�� � ����� ���� ������
����������������������� ���!� ��"��#���!� � ��"� ��"!�#� ���$%��� �
��������������������
0
A+C+/Y-A-/X+Y+
23
1
C-/X-
B+C*/X+{01x.11}
{010.11}
0ABC.XY=000.01
A+C+/Y-A-C*/X+Y+
23
1
C-/X-
B+C*/X+{01x.11}
{01x.11}
SATISFIED NOT SATISFIED
��������� �������� ���� ���������� ���������� ��� � � �������
��� ���� ������� ������������������ �����������
����������������������� ���!� ��"��#���!� � ��"� ��"!�#� ���$%����
��������������������������������
���������� �� ���� ���� ��� �����
��� ��� ������������ ����
���� ��� �����
��� ��� ����������� ����
���� ��� �����
������ �������� ��� ����
� ��� ���������������
� ����������� ����� �
����������������������
��������� �� ������ ��
input
Combinational
Logic
Ph1
Ph2
Ph3
state
output
���������������������� ���!� ��"��#���!� � ��"� �"!�#� ���$%����
�� �������������������������������
���� ������ �� �� ������������������������
�� ��� ������ �� �� ���������������������
���� ��������������������� ���������������� �������
���������������������� ���!� ��"��#���!� � ��"� �"!�#� ���$%����
��������������� ��� ���
������ � ������ ������� ��� �� ��� � �� � ��� ����� � ��������� �� ����� ���� �� �#�� � ��� �� ��� ��� �� ���� � #�� �� ���� � �� ���� � � ��� � �� ����� � ��#�� ������� ����� ��
������ � ����# �� ��!� ��� � �� � ��� #��# �� ��� � �� ��� ��� �� ���� ����� ����� ����� � � ��� � �� ��
�� �# �� ��� � �� �����%�# ����� � ��� � �% ��#�� �� ��� �� �#�� ����� ��� ���� ��� ���� �� ��� � �������� � � �� �� �� ����� � ����� � %�%� �
����� ���� !�"��$#����� %'&&(�)�* +�), ��-&./ &.0��1'2/3� .&
������ � ����� � ����� ���� � � �#� ����� ��#��� � �� ��
���������������������� ���!� ��"��#���!� � ��"� �"!�#� ���$%����
������������� ������
���������� ����������� ������������ �������������
������ ����������������������� ������������������
����
������������������������ �������������� �����������
�� ��������������������������������������
���� ������
�������������������� ���������������������������
������������
���������������������� ���!� ��"��#���!� � ��"� �"!�#� ���$%����
����������������������� ������ �������
abcd00011110
10
11
01
0010 0
11
0 01
1
0 0 01
1
0
0
abcd00011110
10
11
01
0010 0
11
0 01
1
0 0 01
1
0
0
abc
0110
1100
abc
0110
1100
f = ac’ + cb’+ab’ f = ac’ + cb’
��� �� �� �� �� �� ��� ��������� ��� � ���� ��� ���������� ���� � ���� �� ��� ��������� ���� �
�$� ��� ��� ���� ����� ��� �� �� ��� ��������� ���
�#�� ���� ����� � �� � �� ��� ��#�� ��� �� �� �� ���� � ��� � � ���� ��� �����#�� �� ���� �����
���� � ��� ��� ! ��� � �� ��� � ��� ��� ��� ����� � � �� ��
���������������������� ���!� ��"��#���!� � ��"� �"!�#� ���$%���
��� ����������������������������
01
10
0
0
0 0
1
1
11
b<a<c<q
q
b
aa
c
10
01
01
a+b+
x+
x+b+
b+a+
x
10
0
00
0 0
1
1 1
11
a<c<b<qa
b
b
c
q
c qb
a
00
01
x
no hazards
qc00
a
b
x
hazards
a+b*/x+
abcq.x=0000.0
�� !���#��#��%��� ��������� �#������ ����� ���
� ���� ��� �� ����� � � ��������� ��� �� � �� �� �� ��� �� ��#�� � $$������ ��������� ���%
���� � ��� ��� ! ��� � �� ��� � ��� ��� ��� ����� � � �� ��
��� ����������������������� �� ���� ��� ���� � � ��� ��$% ���
� ����������� ��������
� ���������������������������������������������
���� ��������� ������
� ��������� ������������������������������
� ������������������� ��������������������������
��������������
� ��������������������������������������������������
��� ����������������������� �� ���� ��� ���� � � ��� ���� ����
��� ����� ����� �����������
100.10
110.10
111.01
111.11
110.11 101.11
110.00 100.10
000.10
000.00
010.10
110.10
110.11110.00
110.01
110.01 100.11
010.00 100.00
100.01
abc.xy
y+
b+
x+
a+
c+
x-
c-x+y-
a-b-
x-
state0
state1
state2
state3
CSC-conflict
a+b*/x+y+
b+c+/x-
c-/x+y-
a-b-/x-
0
1
2
3
������������� ��� � ����� ��� �������� ����� ���� �� � ���� ����� ������ �� ��� �����
���� ����������������������� �� ���� ��� ���� � �� ��� ���� ����
������� ���� ����
� ��� ���� ������� ������������� � ��� ��� ��� ��
����� ��� ����� � ����� �� ����� ������ �� �� �
� ����� ��� �� ������� ��� �� ���� �� ��� ���� �� ������� �� ������� ���� ������ ���� ���� �� ��� � �� ��� ��� ��� ������� ���
����� ��� ��� � ���� �� ��������� �� ���������� �������� ���� ��������� �� ���
���� ����������������������� �� ���� ��� ���� � �� ��� ���� ��� �
��� ������ ��� �� ���
xab
state0
00011110
011110
0
1
2
0
ab.x=01.1
a+b-/x-
b+/x+
xab
state1
00011110
011
0 1
xab
00011110
011110
0 1
merged in one layer -> hazards
cube required for state1incorrectly intersectstransition cube for state0(the start point is not covered)
���� ����������������������� �� ���� ��� ���� � �� ��� ���� ����