EIController with states

AfoHT
Sep 22, 2021, 3:42 PM
CWGCT2WZL3JFZJJQLXCS7IVDDLJN556K74DN3QXEJ6MFIKT7MCQAC

Dependencies

  • [2] BJXEBVRC EIController overhaul
  • [3] WEEZXA4L Rework links
  • [4] 4WIIORMS Rework structure, add filtering and debouncing
  • [5] LXYMWMIK Add current state of EIC graph
  • [6] DAFBHG6P Update to put emphasis on asynch
  • [7] HI2GV6DL New structure
  • [8] 44ZTZPHJ Change from blue to green, add NMI modes

Change contents

  • replacement in eic-states.dot at line 15
    [2.40][2.40:76]()
    label = "EIController";
    [2.40]
    [3.372]
    label = "Enabled<EIController, Counter>";
    subgraph cluster_eicontroller {
    label = "Enabled<EIController, N>";
  • replacement in eic-states.dot at line 19
    [3.373][2.77:201]()
    subgraph cluster_sync {
    label = "Async and Sync";
    subgraph cluster_sync_inner {
    [3.373]
    [2.201]
    subgraph cluster_sync {
    label = "Async and Sync";
    subgraph cluster_sync_inner {
  • replacement in eic-states.dot at line 23
    [2.202][2.202:437]()
    label = "EIController<WithClock>";
    sync_new_sync;
    sync_new_async;
    sync_new_sync_nmi [color=purple];
    sync_new_async_nmi [color=purple];
    [2.202]
    [2.437]
    label = "EIController<WithClock>";
    sync_new_sync;
    sync_new_async;
    sync_new_sync_nmi [color=purple];
    sync_new_async_nmi [color=purple];
    }
    eic_new;
  • replacement in eic-states.dot at line 31
    [2.455][2.455:830]()
    eic_new;
    }
    subgraph cluster_async {
    label = "Async only";
    subgraph cluster_async_inner {
    label = "EIController<WithoutClock>";
    node [shape=box,style=filled,color=green];
    async_new_async;
    async_new_async_nmi [color=purple];
    [2.455]
    [2.830]
    subgraph cluster_async {
    label = "Async only";
    subgraph cluster_async_inner {
    label = "EIController<WithoutClock>";
    node [shape=box,style=filled,color=green];
    async_new_async;
    async_new_async_nmi [color=purple];
    }
    eic_new_only_async;
  • replacement in eic-states.dot at line 41
    [2.848][2.848:884]()
    eic_new_only_async;
    [2.848]
    [2.884]
    subgraph cluster_eicontroller {
    label = "Enabled<EIController, U0>";
    swrst -> swrst;
    }
  • replacement in eic-states.dot at line 69
    [3.98][3.98:144]()
    label = "Asynch = False";
    [3.98]
    [3.144]
    label = "Async = False";
  • replacement in eic-states.dot at line 73
    [3.251][3.251:296]()
    label = "Asynch = True";
    [3.251]
    [3.296]
    label = "Async = True";
  • edit in eic-states.dot at line 77
    [3.563][3.563:609]()
    Debounced -> AsyncEdgeDetect;
  • edit in eic-states.dot at line 78
    [3.653][3.653:698]()
    Filtered -> AsyncEdgeDetect;
  • edit in eic-states.dot at line 81
    [3.748]
    [3.609]
    subgraph cluster_leveldetect {
    label = "Async = False";
    LevelDetect;
    }
  • replacement in eic-states.dot at line 86
    [3.662][3.699:798]()
    label = "Asynch = True, False";
    LevelDetect [color=green];
    [3.662]
    [3.652]
    label = "Async = True";
    AsyncLevelDetect [color=green];
  • edit in eic-states.dot at line 90
    [3.840][3.840:881]()
    Filtered -> LevelDetect;
  • replacement in eic-states.dot at line 107
    [3.1207][3.1207:1249]()
    AsyncOnly -> LevelDetect;
    [3.1207]
    [3.1724]
    AsyncOnly -> AsyncLevelDetect;
  • replacement in eic-states.dot at line 153
    [3.2460][3.2460:2611]()
    NMIEdgeDetect [color=purple];
    WithClockNmi -> NMIEdgeDetect;
    NMIFiltered -> NMIEdgeDetect;
    [3.2460]
    [3.2611]
    subgraph cluster_NMISense_edgedetect {
    label = "Async = False";
    NMIEdgeDetect;
    WithClockNmi -> NMIEdgeDetect;
    NMIFiltered -> NMIEdgeDetect;
    }
  • edit in eic-states.dot at line 162
    [3.2737]
    [3.2737]
    subgraph cluster_NMISense_leveldetect_async {
    label = "Async = True";
    NMILevelDetectAsync;
    WithoutClockNmi -> NMILevelDetectAsync;
    WithClockNmi -> NMILevelDetectAsync;
    }
  • replacement in eic-states.dot at line 169
    [3.2797][3.2797:2958]()
    label = "Asynch = False";
    NMILevelDetect [color=purple];
    WithClockNmi -> NMILevelDetect;
    [3.2797]
    [3.2958]
    label = "Async = False";
    NMILevelDetect;
  • edit in eic-states.dot at line 173
    [3.3035][3.3035:3293]()
    subgraph cluster_NMISense_edgedetect_async {
    label = "Asynch = True";
    NMIEdgeDetectAsync [color=purple];
    WithoutClockNmi -> NMIEdgeDetectAsync;
    }