Clock Synchronization through Handshaking
暂无分享,去创建一个
We present a method for synchronizing pausible clocks in GALS (Globally Asynchronous, Locally Synchronous) systems, which --in contrast to most conventional GALS schemes-is not based on including in each ring oscillator a standard element for pausing the clock (such as for instance an arbiter). Instead, we propose a scheme in which each synchronous module has both an incoming and an outgoing clock signal, which have been obtained by opening the module’s ring oscillator. Since these clock signals behave as handshake signals, handshake circuits can be used to synchronize the clocks. The simplest form of clock synchronization is by means of a C-element leading to a direct synchronization with a small and predictable timing overhead. Since the synchronization is symmetric, it supports bidirectional communication. Arbiters are only needed when they are unavoidable, for example for sharing resources between independent clock domains. We demonstrate the technique in the context of processors and memories and show its advantages in the following cases: the processor does not access the memory every clock cycle, the processor does not wait for the completion of a write access, the processor accesses several memories, several processors share a memory and several processors share several memories. All the designs have been simulated and proved functionally correct.