New structure
Dependencies
- [2]
65T24LBYAdd link between WithClock and AsyncEdgeDetect - [3]
DAFBHG6PUpdate to put emphasis on asynch - [4]
SFAUXNNSAdd NMILevelDetect and change NMI to purple - [5]
PJBD4JUURun automatic format - [6]
LXYMWMIKAdd current state of EIC graph - [7]
WEEZXA4LRework links - [8]
44ZTZPHJChange from blue to green, add NMI modes - [9]
4WIIORMSRework structure, add filtering and debouncing
Change contents
- edit in eic-states.dot at line 19
sync_new_sync_nmi [color=purple];sync_new_async_nmi [color=purple]; - edit in eic-states.dot at line 26
async_new_async_nmi [color=purple]; - edit in eic-states.dot at line 30
subgraph cluster_normal {label = "Normal = On";Normal}subgraph cluster_asynconly {label = "AsyncOnly = On";AsyncOnly} - replacement in eic-states.dot at line 39
label = "Filtering = On";Filteringlabel = "Filtered = On";Filtered - replacement in eic-states.dot at line 43
label = "Debouncing = On";Debouncing;label = "Debounced = On";Debounced; - replacement in eic-states.dot at line 57[3.365]→[4.76:122](∅→∅),[4.76]→[4.76:122](∅→∅),[4.122]→[3.366:413](∅→∅),[3.413]→[4.608:653](∅→∅),[4.608]→[4.608:653](∅→∅),[4.653]→[3.414:460](∅→∅)
Debouncing -> SyncEdgeDetect;Debouncing -> AsyncEdgeDetect;Filtering -> SyncEdgeDetect;Filtering -> AsyncEdgeDetect;Debounced -> SyncEdgeDetect;Debounced -> AsyncEdgeDetect;Filtered -> SyncEdgeDetect;Filtered -> AsyncEdgeDetect; - edit in eic-states.dot at line 64
subgraph cluster_leveldetect {label = "Asynch = False";SyncLevelDetect;} - replacement in eic-states.dot at line 65[3.662]→[3.662:777](∅→∅),[3.777]→[4.829:976](∅→∅),[4.829]→[4.829:976](∅→∅),[4.976]→[4.431:503](∅→∅),[4.431]→[4.431:503](∅→∅),[4.503]→[4.0:60](∅→∅),[4.60]→[4.503:652](∅→∅),[4.503]→[4.503:652](∅→∅)
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]; - replacement in eic-states.dot at line 68[4.670]→[4.670:778](∅→∅),[4.778]→[3.778:1132](∅→∅),[4.97]→[4.778:826](∅→∅),[3.1132]→[4.778:826](∅→∅),[4.778]→[4.778:826](∅→∅)
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; - replacement in eic-states.dot at line 73
subgraph cluster2 {subgraph cluster_withclock { - replacement in eic-states.dot at line 80[4.1511]→[4.1511:1551](∅→∅),[4.1551]→[4.123:164](∅→∅),[4.164]→[4.1551:1596](∅→∅),[4.1064]→[4.1551:1596](∅→∅),[4.1551]→[4.1551:1596](∅→∅),[4.1596]→[2.0:46](∅→∅),[2.46]→[4.827:873](∅→∅),[4.1596]→[4.827:873](∅→∅),[4.873]→[4.1065:1112](∅→∅),[4.1112]→[3.1133:1178](∅→∅),[4.873]→[4.1596:1683](∅→∅),[4.1112]→[4.1596:1683](∅→∅),[3.1178]→[4.1596:1683](∅→∅),[4.1596]→[4.1596:1683](∅→∅)
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; - replacement in eic-states.dot at line 89
subgraph cluster3{subgraph cluster_withoutclock { - edit in eic-states.dot at line 98
WithoutClock -> NMILevelDetectAsync; - edit in eic-states.dot at line 99
}}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];} - edit in eic-states.dot at line 124
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;}}} - edit in eic-states.dot at line 159
token -> sync_new_sync_nmi;token -> sync_new_async_nmi;token -> async_new_async_nmi; - edit in eic-states.dot at line 163
async_new_async_nmi -> WithoutClockNmi; - edit in eic-states.dot at line 166
sync_new_sync_nmi -> WithClockNmi;sync_new_async_nmi -> WithoutClockNmi;