Three input signals: A, B, C that are all low upon reset
Only one signal goes high at a time. Once a signal is high, it remains high until reset
Output the order in which the three signals arrived. You can encode this output however you prefer
Sort of a phase comparator, but with 3 inputs
Create a moore FSM with 10 states: idle, a,b,c,ab,ac, ba, bc, ca, cb. The terminating 6 states each correspond to one of the 6 possible outputs.
I feel this is overkill for something as simple. Does any one have a more elegant approach to tackle this problem? A smaller fsm maybe? Your suggestion could be completely orthogonal to mine as long as it is simpler.