The context of this research is the design of large circuits, assembling IP's and blocks coming from various design teams, each with their own clock. As an example, circuits for games or set top box applications easily include in excess of 25 blocks. To guarantee low power consumption, the clock of a block is set at the lowest frequency compatible with the block needed execution time. Thus, all the clocks have their own speed, and there is no guarantee that clock cycles are multiple of a basic master clock, nor that two clocks are phased.Each block constitutes a clock domain, and any two clock domains are considered mutually asynchronous: the design is globally asynchronous locally synchronous (GALS). Clock domain crossing (CDC) is the transmission of information between two clock domains. A synchronizing module (called synchronizer hereafter) is needed to connect a source signal, output of a flip-flop in a transmitter domain, to the input of a destination flip-flop in a receiver domain, because the sampling by the receiver clock may happen before the input signal has reached its correct stable value. It is therefore essential to guarantee the correctness of the communication protocol and the synchronization between the modules [4].One technique consists in implementing monitors in the design, which perform online checking and correction during the circuit operation [10,11]. The drawback