New structure

AfoHT
Sep 22, 2021, 12:36 PM
HI2GV6DLNHD6NM7RKJE3ZHQEYZ7XKLBAFW2J6TOGSXGIH36KA6TQC

Dependencies

  • [2] 65T24LBY Add link between WithClock and AsyncEdgeDetect
  • [3] DAFBHG6P Update to put emphasis on asynch
  • [4] SFAUXNNS Add NMILevelDetect and change NMI to purple
  • [5] PJBD4JUU Run automatic format
  • [6] LXYMWMIK Add current state of EIC graph
  • [7] WEEZXA4L Rework links
  • [8] 44ZTZPHJ Change from blue to green, add NMI modes
  • [9] 4WIIORMS Rework structure, add filtering and debouncing

Change contents

  • edit in eic-states.dot at line 19
    [4.475]
    [4.475]
    sync_new_sync_nmi [color=purple];
    sync_new_async_nmi [color=purple];
  • edit in eic-states.dot at line 26
    [4.655]
    [4.655]
    async_new_async_nmi [color=purple];
  • edit in eic-states.dot at line 30
    [4.729]
    [4.0]
    subgraph cluster_normal {
    label = "Normal = On";
    Normal
    }
    subgraph cluster_asynconly {
    label = "AsyncOnly = On";
    AsyncOnly
    }
  • replacement in eic-states.dot at line 39
    [4.41][4.41:109]()
    label = "Filtering = On";
    Filtering
    [4.41]
    [4.109]
    label = "Filtered = On";
    Filtered
  • replacement in eic-states.dot at line 43
    [4.163][4.163:206](),[4.206][4.0:28]()
    label = "Debouncing = On";
    Debouncing;
    [4.163]
    [4.281]
    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;
    [3.365]
    [4.368]
    Debounced -> SyncEdgeDetect;
    Debounced -> AsyncEdgeDetect;
    Filtered -> SyncEdgeDetect;
    Filtered -> AsyncEdgeDetect;
  • edit in eic-states.dot at line 64
    [4.748][3.461:609]()
    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;
    [3.662]
    [4.652]
    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;
    [4.670]
    [4.1161]
    Filtered -> LevelDetect;
    Filtered -> LevelDetect;
  • replacement in eic-states.dot at line 73
    [4.1177][4.1177:1209]()
    subgraph cluster2 {
    [4.1177]
    [4.1209]
    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;
    [4.1511]
    [4.1724]
    WithClock -> Filtered;
    WithClock -> Debounced;
    WithClock -> Normal;
    WithClock -> AsyncOnly;
    Normal -> SyncEdgeDetect;
    AsyncOnly -> AsyncEdgeDetect;
    Normal -> LevelDetect;
    AsyncOnly -> LevelDetect;
  • replacement in eic-states.dot at line 89
    [4.1738][4.1738:1769]()
    subgraph cluster3{
    [4.1738]
    [4.109]
    subgraph cluster_withoutclock {
  • edit in eic-states.dot at line 98
    [3.1339][3.1339:1392]()
    WithoutClock -> NMILevelDetectAsync;
  • edit in eic-states.dot at line 99
    [3.1442]
    [4.2127]
    }
    }
    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
    [4.2141]
    [4.2141]
    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
    [4.2275]
    [3.1443]
    token -> sync_new_sync_nmi;
    token -> sync_new_async_nmi;
    token -> async_new_async_nmi;
  • edit in eic-states.dot at line 163
    [3.1484]
    [4.2320]
    async_new_async_nmi -> WithoutClockNmi;
  • edit in eic-states.dot at line 166
    [3.1525]
    [4.2400]
    sync_new_sync_nmi -> WithClockNmi;
    sync_new_async_nmi -> WithoutClockNmi;