Emulation State-Transition Diagrams

Some initial state-transition diagrams for some IP blocks. Very much rough sketches/brainstorms and not finalized ideas.

100Gb Ethernet MAC

@startuml EmulatorStateTransitionDiagramMAC

NO_LINK : MAC is not receiving any packets.
LINK : MAC is receiving and processing packets.
DEGRADED : MAC is receiving packets with errored bits.
FAULT : A critical fault condition has occurred.

[*] --> NO_LINK : Power on

NO_LINK --> LINK : Packets received
LINK --> DEGRADED : Errored packets received
DEGRADED --> LINK : Received packets no longer errored
LINK --> NO_LINK : Packet flow stopped
DEGRADED --> NO_LINK : Packet flow stopped

DEGRADED --> FAULT : Critical fault
note top of FAULT 
  Does MAC need a distinct FAULT state,
  or is DEGRADED sufficient?
end note

FAULT --> [*]

@enduml

Wideband Input Buffer

@startuml EmulatorStateTransitionDiagramWIB

RESET : WIB has been powered on and not yet configured.
state " " as active {
  CONFIGURING : WIB is being configured.
  READY : WIB has been configured and is ready to be enabled.
  ENABLING : WIB is being enabled.
  ENABLED : WIB is enabled and processing and outputting data.
  FAULT : A critical fault condition has occurred.
}

[*] --> RESET : Power on
active -up-> RESET : Power cycle
RESET --> CONFIGURING : Configure

CONFIGURING --> READY : Done configuring

READY --> ENABLING : Enable
READY -right-> FAULT : Critical fault

ENABLING --> ENABLED : Done enabling
ENABLING -right-> FAULT : Critical fault

ENABLED --> READY : Disable
ENABLED -right-> FAULT : Critical fault

FAULT --> [*]

@enduml

Very Coarse Channelizer

@startuml EmulatorStateTransitionDiagramVcc20

RESET : VCC has been powered on and not yet configured.
state " " as active {
  CONFIGURING : VCC is being configured.
  READY : VCC has been configured and is ready to be enabled.
  ENABLING : VCC is being enabled.
  ENABLED : VCC is enabled and processing and outputting data.
  FAULT : A critical fault condition has occurred.
}

[*] --> RESET : Power on
active -up-> RESET : Power cycle
RESET --> CONFIGURING : Configure

CONFIGURING --> READY : Done configuring

READY --> ENABLING : Enable
READY -right-> FAULT : Critical fault

ENABLING --> ENABLED : Done enabling
ENABLING -right-> FAULT : Critical fault

ENABLED --> READY : Disable
ENABLED -right-> FAULT : Critical fault

FAULT --> [*]

@enduml