Asynchronous wrapper for heterogeneous systems
D.S. Bormann, Peter Y. K. Cheung
Abstract
D.S. Bormann, Peter Y. K. Cheung
Abstract
We propose a new method for creating globally asynchronous locally synchronous (GALS) circuits. Each locally synchronous module is surrounded by an "asynchronous wrapper" which provides an asynchronous interface to an otherwise synchronous circuit. Every locally synchronous (LS) region operates independently, minimising problems of clock skew and enabling regions to run at different clock speeds if desired. Metastability can never cause the system to fail because an asynchronous handshake "stretches" or "pauses" the local clock until data has stabilised. When new data is not available for processing, the local clock stretches, automatically preventing the LS block from consuming power. Once new data does arrive, the block responds directly in phase with the handshake without wasted synchronisation time. The LS modules can be designed using typical synchronous techniques. However, since the external interface to each LS block uses asynchronous handshaking, we can now freely mix synchronous and asynchronous circuits.
OpenAlex reports 101 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
We propose a new method for creating globally asynchronous locally synchronous (GALS) circuits. Each locally synchronous module is surrounded by an "asynchronous wrapper" which provides an asynchronous interface to an otherwise synchronous circuit. Every locally synchronous (LS) region operates independently, minimising problems of clock skew and enabling regions to run at different clock speeds if desired. Metastability can never cause the system to fail because an asynchronous handshake "stretches" or "pauses" the local clock until data has stabilised. When new data is not available for processing, the local clock stretches, automatically preventing the LS block from consuming power. Once new data does arrive, the block responds directly in phase with the handshake without wasted synchronisation time. The LS modules can be designed using typical synchronous techniques. However, since the external interface to each LS block uses asynchronous handshaking, we can now freely mix synchronous and asynchronous circuits.
Key concepts: Asynchronous communication, Handshake, Handshaking, Synchronizer, Computer science, Synchronous circuit, Asynchronous system, Block (permutation group theory)