Steps to Design an Asynchronous Circuit
1. Receive Specifications
- Clearly define what the circuit is intended to do.
2. Develop a Primitive State Diagram
- Define desired output sequences for given input sequences.
- Notes:
(a) Consider inputs as sequences of events.
(b) Avoid redundant states in the diagram.
(c) Do not include cycles or state assignments at this stage.
3. Create a Primitive State Table
- Translate the state diagram into a table to define input changes and stable states.
- Notes:
(a) Use this as the foundation for an excitation map.
(b) Assign one stable state per row with input changes along the top.
4. Merge the Primitive State Table
- Identify and combine states that can share the same stable state.
- Notes:
(a) Use input sequences to group states into a single stable row.
(b) Consider whether outputs are mixed or non-mixed.
5. Assign State Codes
- Assign binary codes to stable states.
- Notes:
(a) Ensure unit-distance transitions between states.
(b) Understand the implications of Y(t) = y(t + delta t).
6. Transform the Merged Table into the Excitation Map
- Replace state names with their binary codes in the table.
- Notes:
(a) Use unit-distance transitions to create the excitation map.
(b) Prescribe cycles where necessary.
7. Derive Excitation Variable Expressions
- Read the excitation map to generate logic expressions.
- Notes:
(a) Plot individual maps for each feedback variable to avoid confusion.
(b) Remove hazards by overlapping adjacent groupings.
8. Create an Output Decoder Map
- Specify output conditions based on input and feedback states.
- Notes:
(a) Ensure outputs remain consistent across transitions to prevent glitches.
(b) Map stable states and transitions appropriately.
9. Draw Circuit Schematics
- Use the excitation and output maps to design the circuit.
- Ensure proper documentation of the design.
10. Perform Independent Analysis
- Verify the circuit against specifications.
- Notes:
(a) Check setup and hold times.
(b) Analyze behavior under varying input conditions.