HI2GV6DLNHD6NM7RKJE3ZHQEYZ7XKLBAFW2J6TOGSXGIH36KA6TQC
65T24LBYMONUHBZRVPUD77HUY4XEU52ACQRJ2TTDOB3T2HR3SEGQC
DAFBHG6P6VAUTCNTASDEKOT5HBPNKBNNUYBCOXYTNWF7AUZQJZNAC
LXYMWMIKQQB72UHTH36WZ6UC4RMFVGDVYQPRQK4SHQBRODJITNVQC
4WIIORMS2ZAXS4MQWVL7KJOHPTSL6I6HPMZSRTHS4BORZK3YJEXQC
WEEZXA4LOPHXM4TPZL4LF2GNEPZI43GGHGQXAOO3WNQIPKKMXVDQC
44ZTZPHJ2VJR2E3NYTQ676L35BADTOKULSHJC75OQE7REL65GKEQC
SFAUXNNSRFQHRYJR2ZGQJLPYRAEXS3QFBE3WKHICI5SVG4CC3D6QC
PJBD4JUU4HRT2576BK32L5TR36XQ77DIGPKHPKP7OH6HJ64NZ7KQC
Debouncing -> SyncEdgeDetect;
Debouncing -> AsyncEdgeDetect;
Filtering -> SyncEdgeDetect;
Filtering -> AsyncEdgeDetect;
Debounced -> SyncEdgeDetect;
Debounced -> AsyncEdgeDetect;
Filtered -> SyncEdgeDetect;
Filtered -> AsyncEdgeDetect;
label = "Asynch = True";
AsyncLevelDetect [color=green];
}
Filtering -> AsyncLevelDetect;
Filtering -> SyncLevelDetect;
}
subgraph cluster_NMISense {
label = "NMISense = None, Rise, Fall, Both, High, Low";
node [shape=box,style=filled,color=purple];
subgraph cluster_NMISense_edgedetect {
label = "NMISense = Rise, Fall, Both";
NMIEdgeDetect;
label = "Asynch = True, False";
LevelDetect [color=green];
subgraph cluster_NMISense_leveldetect {
label = "NMISense = High, Low";
subgraph cluster_NMISense_leveldetect {
label = "Asynch = False";
NMILevelDetect;
}
subgraph cluster_NMISense_leveldetect_async {
label = "Asynch = True";
NMILevelDetectAsync;
}
}
NMIFiltering;
Filtered -> LevelDetect;
Filtered -> LevelDetect;
WithClock -> Filtering;
WithClock -> Debouncing;
WithClock -> SyncEdgeDetect;
WithClock -> AsyncEdgeDetect;
WithClock -> SyncLevelDetect;
WithClock -> AsyncLevelDetect;
WithClock -> NMILevelDetect;
WithClock -> NMIEdgeDetect;
WithClock -> NMIFiltering;
WithClock -> Filtered;
WithClock -> Debounced;
WithClock -> Normal;
WithClock -> AsyncOnly;
Normal -> SyncEdgeDetect;
AsyncOnly -> AsyncEdgeDetect;
Normal -> LevelDetect;
AsyncOnly -> LevelDetect;
}
}
subgraph cluster_nmiextint {
label = "NmiExtInt";
subgraph cluster_withclock_nmi {
style=filled;
label = "WithClock";
WithClockNmi [color=red];
subgraph withclock {
node [style=filled,color=gray];
}
WithClockNmi -> NMIFiltered;
}
subgraph cluster_withoutclock_nmi {
node [shape=box,style=filled,color=green];
style=filled;
label = "WithoutClock";
WithoutClockNmi;
subgraph withoutclock {
node [style=filled,color=gray];
}
subgraph cluster_filtering {
label = "Filtering = On";
NMIFiltered [color=purple];
}
subgraph cluster_NMISense {
label = "NMISense = None, Rise, Fall, Both, High, Low";
node [shape=box,style=filled,color=purple];
subgraph cluster_NMISense_edgedetect {
label = "NMISense = Rise, Fall, Both";
NMIEdgeDetect [color=purple];
WithClockNmi -> NMIEdgeDetect;
NMIFiltered -> NMIEdgeDetect;
}
subgraph cluster_NMISense_leveldetect {
label = "NMISense = High, Low";
subgraph cluster_NMISense_leveldetect {
label = "Asynch = False";
NMILevelDetect [color=purple];
WithClockNmi -> NMILevelDetect;
NMIFiltered -> NMILevelDetect;
}
subgraph cluster_NMISense_edgedetect_async {
label = "Asynch = True";
NMIEdgeDetectAsync [color=purple];
WithoutClockNmi -> NMIEdgeDetectAsync;
}
}
}