Claims
- 1. A synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain, wherein said first clock domain is operable with a first clock signal and said second clock domain is operable with a second clock signal, said first and second clock signals having a ratio of N first clock cycles to (N-1) second clock cycles, comprising:
a first circuit portion for transferring (N-1) data bits across said clock boundary on a first data path disposed in said second clock domain, wherein said data bits are generated in said first clock domain clocked with said first clock signal having N clock cycles; and a second circuit portion for transferring a remaining extra data bit across said clock boundary on a second data path disposed in said second clock domain.
- 2. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 1, wherein said first circuit portion comprises:
a first TRANSMIT multiplex-register (MUXREG) block disposed in said first clock domain, said first MUXREG block operating to transmit a portion of said (N-1) data bits in a serial fashion responsive to a first fast clock control signal that is registered using said first clock signal; a second TRANSMIT MUXREG block in said first clock domain for transmitting remaining portion of said (N-1) data bits in a serial fashion responsive to a second fast clock control signal that is registered using said first clock signal; and a first RECEIVE MUXREG block disposed in said second clock domain for receiving said (N-1) data bits from said first and second TRANSMIT MUXREG blocks in a serial fashion responsive to a first slow clock control signal that is registered using said second clock signal, wherein said (N-1) data bits are clocked out from said first RECEIVE MUXREG on said first data path using said second clock signal.
- 3. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 2, wherein said second circuit portion comprises:
a third TRANSMIT MUXREG block disposed in said first clock domain for transmitting said remaining extra data bit responsive to a third fast clock control signal that is registered using said first clock signal; and a second RECEIVE MUXREG block disposed in said second clock domain for receiving said remaining extra data bit from said third TRANSMIT MUXREG block in a serial fashion responsive to a second slow clock control signal that is registered using said second clock signal, wherein said remaining extra data bit is clocked out from said second RECEIVE MUXREG on said second data path using said second clock signal.
- 4. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 3, wherein occurrence of said remaining extra data bit is based on skew between said first and second clock signals.
- 5. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 3, wherein said first, second and third fast clock control signals are generated by a first synchronizer controller portion.
- 6. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 5, wherein said first and second slow clock control signals are generated by a second synchronizer controller portion.
- 7. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 6, wherein said first and second synchronizer controller portions are integrated into a single controller circuit.
- 8. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 6, wherein each of said first, second and third TRANSMIT MUXREG blocks comprises a 2:1 multiplexer coupled to a flip-flop.
- 9. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 8, wherein a first input of said 2:1 multiplexer is coupled to an incoming data path carrying said data bits in said first clock domain and a second input of said 2:1 multiplexer is coupled to said flip-flop's output via a feedback loop.
- 10. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 9, wherein said first input of said 2:1 multiplexer is selected when a fast clock control signal associated therewith is driven HIGH.
- 11. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 9, wherein said 2:1 multiplexer is controlled by one of said first, second and third fast clock control signals.
- 12. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 9, wherein said flip-flop's output from each of said first and second TRANSMIT MUXREG blocks is provided to said first RECEIVE MUXREG block and said flip-flop's output from said third TRANSMIT MUXREG block is provided to said second RECEIVE MUXREG block.
- 13. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 12, wherein each of said first and second RECEIVE MUXREG blocks includes a 2:1 multiplexer coupled to a flip-flop that is clocked with said second clock signal.
- 14. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 13, wherein said 2:1 multiplexer of said first and second RECEIVE MUXREG blocks is controlled by one of said first and second slow clock control signals.
- 15. The synchronizer circuit for effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 13, wherein output from said flip-flop of said first RECEIVE MUXREG block is provided to said first data path and output from said flip-flop of said second RECEIVE MUXREG block is provided to said second data path.
- 16. A method of effectuating data transfer across a clock boundary between a first clock domain and a second clock domain, wherein said first clock domain is operable with a first clock signal and said second clock domain is operable with a second clock signal, said first and second clock signals having a ratio of N first clock cycles to (N-1) second clock cycles, comprising:
based on which clock cycle of said first clock signal has an extra data bit, transferring (N-1) out of N data bits across said clock boundary on a first data path of a synchronizer output, wherein said data bits are generated in said first clock domain clocked with said first clock signal having N clock cycles; and transferring said extra data bit across said clock boundary on a second data path of said synchronizer output, wherein said first and second data paths are disposed in said second clock domain.
- 17. The method of effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 16, wherein occurrence of said extra data bit is based on skew between said first and second clock signals.
- 18. The method of effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 16, wherein a first portion of said (N-1) data bits are transferred serially via a first TRANSMIT multiplex-register (MUXREG) block coupled to a first RECEIVE MUXREG block disposed in said second clock domain.
- 19. The method of effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 18, wherein a second portion of said (N-1) data bits are transferred serially via a second TRANSMIT multiplex-register (MUXREG) block coupled to said first RECEIVE MUXREG block disposed in said second clock domain.
- 20. The method of effectuating data transfer across a clock boundary between a first clock domain and a second clock domain as set forth in claim 19, wherein said extra data bit is transferred serially via a third TRANSMIT multiplex-register (MUXREG) block coupled to a second RECEIVE MUXREG block disposed in said second clock domain.
- 21. A computer system including circuitry for effectuating data transfer at full bandwidth across a clock boundary between a first clock domain (“fast clock domain”) and a second clock domain (“slow clock domain”) using a ratioed synchronizer, wherein said first clock domain is operable with a first clock signal and said second clock domain is operable with a second clock signal, said first and second clock signals having a ratio of N first clock cycles to (N-1) second clock cycles, comprising:
means for transferring, based on which clock cycle of said first clock signal has an extra data bit, (N-1) data bits out of N data bits across said clock boundary on a first data path of said synchronizer's output, wherein said data bits are generated in said first clock domain clocked with said first clock signal having N clock cycles; and means for transferring said extra data bit across said clock boundary on a second data path of said synchronizer's output, wherein said first and second data paths are disposed in said second clock domain.
- 22. The computer system as set forth in claim 21, wherein said means for transferring said (N-1) data bits comprises:
a first TRANSMIT multiplex-register (MUXREG) block disposed in said first clock domain, said first MUXREG block operating to transmit a portion of said (N-1) data bits in a serial fashion responsive to a first fast clock control signal that is registered using said first clock signal; a second TRANSMIT MUXREG block in said first clock domain for transmitting remaining portion of said (N-1) data bits in a serial fashion responsive to a second fast clock control signal that is registered using said first clock signal; and a first RECEIVE MUXREG block disposed in said second clock domain for receiving said (N-1) data bits from said first and second TRANSMIT MUXREG blocks in a serial fashion responsive to a first slow clock control signal that is registered using said second clock signal, wherein said (N-1) data bits are clocked out from said first RECEIVE MUXREG block on said first data path using said second clock signal.
- 23. The computer system as set forth in claim 22, wherein said means for transferring said extra data bit comprises:
a third TRANSMIT MUXREG block disposed in said first clock domain for transmitting said remaining extra data bit responsive to a third fast clock control signal that is registered using said first clock signal; and a second RECEIVE MUXREG block disposed in said second clock domain for receiving said remaining extra data bit from said third TRANSMIT MUXREG block in a serial fashion responsive to a second slow clock control signal that is registered using said second clock signal, wherein said remaining extra data bit is clocked out from said second RECEIVE MUXREG block on said second data path using said second clock signal.
- 24. The computer system as set forth in claim 23, wherein occurrence of said remaining extra data bit is based on skew between said first and second clock signals.
- 25. The computer system as set forth in claim 23, wherein said first, second and third fast clock control signals are generated by a first synchronizer controller portion.
- 26. The computer system as set forth in claim 25, wherein said first and second slow clock control signals are generated by a second synchronizer controller portion.
- 27. The computer system as set forth in claim 26, wherein said first and second synchronizer controller portions are integrated into a single controller circuit.
- 28. The computer system as set forth in claim 26, wherein each of said first, second and third TRANSMIT MUXREG blocks comprises a 2:1 multiplexer coupled to a flip-flop.
- 29. The computer system as set forth in claim 28, wherein a first input of said 2:1 multiplexer is coupled to an incoming data path carrying said data bits in said first clock domain and a second input of said 2:1 multiplexer is coupled to said flip-flop's output via feedback loop.
- 30. The computer system as set forth in claim 29, wherein said first input of said 2:1 multiplexer is selected when a fast clock control signal associated therewith is driven HIGH.
- 31. The computer system as set forth in claim 29, wherein said 2:1 multiplexer is controlled by one of said first, second and third fast clock control signals.
- 32. The computer system as set forth in claim 29, wherein said flip-flop's output from each of said first and second TRANSMIT MUXREG blocks is provided to said first RECEIVE MUXREG block and said flip-flop's output from said third TRANSMIT MUXREG block is provided to said second RECEIVE MUXREG block.
- 33. The computer system as set forth in claim 32, wherein each of said first and second RECEIVE MUXREG blocks includes a 2:1 multiplexer coupled to a flip-flop that is clocked with said second clock signal.
- 34. The computer system as set forth in claim 33, said 2:1 multiplexer of said first and second RECEIVE MUXREG blocks is controlled by one of said first and second slow clock control signals.
- 35. The computer system as set forth in claim 33, wherein output from said flip-flop of said first RECEIVE MUXREG block is provided to said first data path and output from said flip-flop of said second RECEIVE MUXREG block is provided to said second data path.
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application discloses subject matter related to the subject matter disclosed in the following commonly owned co-pending patent application(s): (i) “System And Method For Transferring Data From A Higher Frequency Clock Domain To A Lower Frequency Clock Domain,” filed Aug. 23, 2001, Ser. No. 09/938,206, in the name(s) of: Rajakrishnan Radjassamy.