Asynchronous Arbiter Latch Array for Metastability-Resistant FSMs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Asynchronous circuits face complexity and metastability issues when handling concurrent events across multiple communication channels, particularly in finite state machines, due to the need for complex arbitration circuits that manage simultaneous requests without a global clock signal.
Innovation Solution
An arbiter is designed to process multiple asynchronous data signals with associated request and acknowledge signals, using a latch array and logic circuitry to monitor requests, delay the global request signal, and selectively activate acknowledge signals, thereby allowing simultaneous processing of multiple input channels while avoiding metastability effects.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If mutex elements are used to handle simultaneous events in multiple channels, then arbitration capability is provided, but metastability effects occur when two events occur simultaneously or almost simultaneously
Solution Approach 1:
The arbitration function is divided into multiple independent latch elements, each handling a separate communication channel. Each latch independently captures events from its channel without interfering with others, eliminating the metastability problem that occurs when multiple channels are merged into a single arbitration point. The segmented architecture allows simultaneous event capture across channels while maintaining signal integrity.
Solution Approach 2:
Latch elements serve as intermediary components between the parallel communication channels and the arbitration logic. These latches buffer and stabilize the event signals before they reach the arbitration stage, preventing direct conflict between simultaneous events. The intermediary latches convert asynchronous simultaneous events into synchronized, stable signals that can be safely arbitrated.
2Productivity
If complex arbitration circuits are used to handle concurrent events in finite state machines, then event processing capability is improved, but circuit complexity increases significantly
Solution Approach 1:
Multiple communication channels are merged into a single bus interface that connects to the finite state machine. The latch array consolidates events from multiple channels into unified data and validity vectors, allowing the FSM to process concurrent events through a single, simplified interface rather than requiring separate arbitration logic for each channel combination.
Solution Approach 2:
The latch array serves multiple functions simultaneously: it acts as an event buffer, a validity detector, a data register, and an arbitration element. This multi-functional design eliminates the need for separate dedicated circuits for each arbitration task, reducing overall circuit complexity while maintaining the ability to handle concurrent events efficiently.
3Ease of operation
If a global clock signal is used to synchronize circuit components, then timing coordination is simplified, but power consumption increases and robustness decreases
Solution Approach 1:
The global clock signal is extracted and removed from the asynchronous circuit architecture. Instead of relying on a centralized clock distribution network, the circuit uses local handshake protocols between components. The latch array and arbitration logic operate asynchronously, triggering events based on local signal transitions rather than global clock edges, thereby eliminating clock-related power consumption and improving robustness.
Solution Approach 2:
Each circuit component performs its own synchronization and timing management through local handshake signals without requiring external clock control. The latch elements automatically capture events when their enable conditions are met, and the arbitration logic self-regulates based on the timing of incoming signals. This self-synchronizing behavior eliminates the need for power-hungry global clock distribution while maintaining coordinated operation.
Data Source
AI summary
An arbiter can be used for processing a plurality of asynchronous data signals. Each data signal is associated with a request signal and a respective acknowledge signal. The arbiter includes a latch array with an input coupled to receive the data signals and request signals and an output coupled to provide a data vector and a validity vector. The data vector includes values depending on the data signals and the validity vector includes values depending on the request signals when the latch array is in a transparent state. Logic circuitry is configured to trigger the latch array when any of the request signals becomes active, to activate a global request signal a delay time after the latch has been triggered, and to selectively activate the acknowledge signals for a channel or channels for which an active request signal has been latched.


