Synthesis of SIC fundamental-mode asynchronous circuits

Motivation

Flow table

The given flow table may be traced as follows:

Along the earlier lines of minimisation of incompletely specified FSMs, the merger graph and the resulting reduced m/cs for two state mergings are shown below

Reduction of flow tables

State assignment

Consider the following flow graph

G s0 s0 s0->s0 01 s3 s3 s0->s3 00 s2 s2 s0->s2 11 s1 s1 s0->s1 10 s3->s0 01 s3->s3 00/10 s3->s2 11 s2->s3 00/10 s2->s2 01/11 s1->s0 01 s1->s3 00/11 s1->s1 10

For this flow table the behaviour of the states is as follows:

s0:
It's stable for 01 input, all incoming transitions are on 01
s1:
It's stable for 10 input, only incoming transition is on 10
s2:
It's stable for 01 and 11 input, only incoming transition is on 11
s3:
It's stable for 00 and 10 input, incoming transitions are on 00, 10 and 11
It's unstable for 11 input, for which it has an outgoing transition to s2
To realise this m/c, it is necessary to assign Boolean values to the states (called state encoding) and the behaviour of the m/c with that state assignment needs to be analysed

State assignment: s0↦00, s1↦01, s2↦11 and s3↦10;

G s0 s0 (00) s0->s0 01 s1 s1 (01) s0->s1 10 s0->s1 11 s2 s2 (11) s0->s2 11 s3 s3 (10) s0->s3 00 s0->s3 11 s1->s0 01 s1->s0 00 s1->s0 11 s1->s1 10 s1->s2 00 s1->s2 11 s1->s3 00,11 s2->s2 01,11 s2->s3 00,10 s3->s0 01 s3->s2 11 s3->s3 00,10
s2 (encoded as 11):
On getting 00 or 10, makes transition to s3 (10) with only one bit change, so no problem
s3 (encoded as 10):
On getting 11, makes transition to s2 (11) with only one bit change, so no problem
On getting 01, makes transition to s0 (00) with only one bit change, so no problem
s0 (encoded as 00):
On getting 00, makes transition to s3 (10) with only one bit change, so no problem
s1 (encoded as 01):
On getting 00, makes transition to s3 (10) with two bit changes, so further investigation is needed
  • if 01→00, then transition is to s0, thereafter, no problem as on 00 state changes to s3 (10) with only one bit change
  • if 01→11, then transition is to s2, thereafter, no problem as on 00 state changes to s3 (10) with only one bit change
On getting 11, makes transition to s3 (10) with two bit changes, so further investigation is needed
  • if 01→11, then transition is to s2, which is stable for 11, so will not move to s3
  • however, s3 is only an unstable state of 11 and has a transition of s2, so no problem
  • if 01→00, then transition is to s0, which on 11 has transition to s2 (11) but with two bit changes, so more investigation is needed
s0 (encoded as 00):
On getting 11, makes transition to s2 (11) with two bit changes, so further investigation is needed
  • if 00→10, then transition is to s3
  • however, s3 is only an unstable state of 11 and has a transition of s2, so no problem
  • if 00→01, there may be a transition back to s0 (00), creating a cycle for oscillation

The modified flow graph is shown below

G s0 s0 (00) s0->s0 01 s1 s1 (01) s0->s1 10 s3 s3 (10) s0->s3 00 s0->s3 11 s1->s0 01 s1->s0 00 s1->s0 11 s1->s1 10 s2 s2 (11) s1->s2 00 s1->s2 11 s1->s3 00,11 s2->s2 01,11 s2->s3 00,10 s3->s0 01 s3->s2 11 s3->s3 00,10

Races and cycles

Race:
When a transition AB involves multiple bit changes, the actual transition may occur AA'A''→...
Since multiple bit changes are involved multiple such sequences are possible
Such a situation is called a race
Noncritical race:
When all race paths are finite and terminate in the same desirable state (B for AB, via intermediate states), the race is noncritical
Critical race:
When all race paths are finite by terminate in distinct states
Cycle:
Unique transition sequence AA'A''→...→ through intermediate unstable states
Undesirable cycle:
Cycle AA'A''→...→ that doesn't terminate on B, for the transition AB
Valid state assignment:
A state encoding that does not lead to critical races or undesirable cycles

Exercises