Clock Domain Crossing (CDC)λ λμ§νΈ νλ‘ μ€κ³μμ μλ‘ λ€λ₯Έ ν΄λ‘ μ£Όνμλ₯Ό κ°μ§ λ κ°μ ν΄λ‘ λλ©μΈ κ°μ λ°μ΄ν° μ μ‘μ μλ―Έν©λλ€. μ΄ κ°λ μ VLSI μμ€ν μμ νμμ μ΄λ©°, λ€μν ν΄λ‘ λλ©μΈ κ°μ λ°μ΄ν° μΌκ΄μ±μ μ μ§νλ λ° μ€μν μν μ ν©λλ€. CDCλ νΉν μ¬λ¬ ν΄λ‘ λλ©μΈμ΄ μ‘΄μ¬νλ 볡μ‘ν μμ€ν μμ λ°μνλ νμ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νλ λ° νμν©λλ€.
CDCμ μ€μμ±μ λ€μκ³Ό κ°μ λͺ κ°μ§ μμλ‘ μμ½λ μ μμ΅λλ€. 첫째, λ€μν ν΄λ‘ μ£Όνμλ₯Ό κ°μ§ νλ‘ κ΅¬μ± μμ κ°μ λ°μ΄ν° μ μ‘μ΄ μ΄λ£¨μ΄μ§ λ λ°μν μ μλ λ°μ΄ν° μμ€μ΄λ μ€λ₯λ₯Ό λ°©μ§νλ λ° νμμ μ λλ€. λμ§Έ, CDCλ μμ€ν μ μ±λ₯μ μ΅μ ννλ λ° κΈ°μ¬νμ¬, ν΄λ‘ λλ©μΈ κ°μ μνΈμμ©μ΄ μννκ² μ΄λ£¨μ΄μ§λλ‘ ν©λλ€. μ μ§Έ, CDCλ μ λ’°μ±κ³Ό μμ μ±μ λμ΄λ λ° κΈ°μ¬νμ¬, μμ€ν μ μ 체μ μΈ μ λ’°μ±μ ν₯μμν΅λλ€.
CDCλ₯Ό μ΄ν΄νκΈ° μν΄μλ λͺ κ°μ§ κΈ°μ μ νΉμ§μ κ³ λ €ν΄μΌ ν©λλ€. 첫째, CDCλ ν΄λ‘ λλ©μΈ κ°μ λ°μ΄ν° μ μ‘ μ λ°μν μ μλ λ©νμ€ν μ΄λΈ μνλ₯Ό λ°©μ§νκΈ° μν΄ μ€κ³λ λ€μν λ°©λ²λ‘ μ ν¬ν¨ν©λλ€. λμ§Έ, CDCμ ꡬνμλ FIFO(First-In-First-Out) ν, λμΌ ν¬νΈ RAM, κ·Έλ¦¬κ³ λκΈ°ν ν립νλ‘κ³Ό κ°μ λ€μν κΈ°μ μ΄ μ¬μ©λ©λλ€. μ΄λ¬ν κΈ°μ λ€μ λ°μ΄ν°μ μ νν μ μ‘μ 보μ₯νκ³ , ν΄λ‘ λλ©μΈ κ°μ νμ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νλ λ° λμμ μ€λλ€.
Clock Domain Crossing (CDC)μ μ£Όμ κ΅¬μ± μμμ μλ μ리λ λ°μ΄ν° μ μ‘μ μ λ’°μ±μ 보μ₯νκΈ° μν΄ λ§€μ° μ€μν©λλ€. CDCμ κΈ°λ³Έ κ΅¬μ± μμλ λ€μκ³Ό κ°μ΅λλ€: ν΄λ‘ λλ©μΈ, λ°μ΄ν° κ²½λ‘, λκΈ°ν λ©μ»€λμ¦ λ° μ€λ₯ κ°μ§ μμ€ν .
첫째, ν΄λ‘ λλ©μΈμ μλ‘ λ€λ₯Έ ν΄λ‘ μ£Όνμλ₯Ό κ°μ§ νλ‘μ μ§ν©μ μλ―Έν©λλ€. κ° ν΄λ‘ λλ©μΈμ λ 립μ μΌλ‘ μλνλ©°, λ°μ΄ν° μ μ‘μ μν΄μλ λ€λ₯Έ λλ©μΈκ³Όμ μνΈμμ©μ΄ νμν©λλ€. λμ§Έ, λ°μ΄ν° κ²½λ‘λ ν΄λ‘ λλ©μΈ κ°μ μ μ‘λλ λ°μ΄ν°μ νλ¦μ λνλ λλ€. μ΄ κ²½λ‘λ λ°μ΄ν°κ° ν λλ©μΈμμ λ€λ₯Έ λλ©μΈμΌλ‘ μ΄λνλ λμ λ°μν μ μλ νμ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ μ€νκ² μ€κ³λμ΄μΌ ν©λλ€.
μ μ§Έ, λκΈ°ν λ©μ»€λμ¦μ λ°μ΄ν° μ μ‘ μ λ°μν μ μλ λ©νμ€ν μ΄λΈ μνλ₯Ό λ°©μ§νλ λ° μ¬μ©λ©λλ€. μΌλ°μ μΌλ‘ μ¬μ©λλ λκΈ°ν λ©μ»€λμ¦μ λ κ°μ ν립νλ‘μ μ¬μ©νλ λ°©λ²μΌλ‘, 첫 λ²μ§Έ ν립νλ‘μ λ°μ΄ν°λ₯Ό μμ νκ³ , λ λ²μ§Έ ν립νλ‘μ μμ λ μΆλ ₯μ μ 곡νμ¬ λ©νμ€ν μ΄λΈ μνλ₯Ό λ°©μ§ν©λλ€. μ΄λ¬ν λκΈ°ν λ©μ»€λμ¦μ ν΄λ‘ λλ©μΈ κ°μ λ°μ΄ν° μ μ‘μμ λ°μν μ μλ μ μ¬μ μΈ μ€λ₯λ₯Ό μ΅μνν©λλ€.
λ·μ§Έ, μ€λ₯ κ°μ§ μμ€ν μ λ°μ΄ν° μ μ‘ μ€ λ°μν μ μλ μ€λ₯λ₯Ό κ°μ§νκ³ , μ΄λ₯Ό μ²λ¦¬νλ λ° μ¬μ©λ©λλ€. μ€λ₯ κ°μ§ μμ€ν μ μΌλ°μ μΌλ‘ CRC(Cyclic Redundancy Check)μ κ°μ λ°©λ²μ μ¬μ©νμ¬ μ μ‘λ λ°μ΄ν°μ 무결μ±μ νμΈν©λλ€. μ΄λ¬ν μμ€ν μ λ°μ΄ν° μ μ‘μ μ λ’°μ±μ λμ΄κ³ , μμ€ν μ μμ μ±μ 보μ₯νλ λ° μ€μν μν μ ν©λλ€.
μ΄λ¬ν κ΅¬μ± μμλ€μ μνΈ μμ©νλ©°, CDCμ ꡬν λ°©λ²λ‘ μ λ°λΌ λ€μν ννλ‘ μ‘°ν©λ μ μμ΅λλ€. μλ₯Ό λ€μ΄, FIFO νλ₯Ό μ¬μ©ν CDC ꡬνμμλ λ°μ΄ν°κ° ν ν΄λ‘ λλ©μΈμμ FIFO νμ μ μ₯λκ³ , λ€λ₯Έ ν΄λ‘ λλ©μΈμμ μ΄λ₯Ό μ½μ΄μ€λ λ°©μμΌλ‘ λ°μ΄ν° μ μ‘μ΄ μ΄λ£¨μ΄μ§λλ€. μ΄λ FIFO νλ λ°μ΄ν°μ μμλ₯Ό 보μ₯νκ³ , ν΄λ‘ λλ©μΈ κ°μ νμ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νλ λ° λμμ μ€λλ€.
Clock Domain Crossing (CDC)μ κ΄λ ¨λ κΈ°μ λ€μ λ€μνλ©°, κ° κΈ°μ μ νΉμ ν μꡬ μ¬νκ³Ό μν©μ λ§κ² μ¬μ©λ©λλ€. CDCμ λΉκ΅ν μ μλ μ£Όμ κΈ°μ λ‘λ Asynchronous FIFO, Dual-Clock RAM, Synchronizer λ±μ΄ μμ΅λλ€.
첫째, Asynchronous FIFOλ μλ‘ λ€λ₯Έ ν΄λ‘ λλ©μΈ κ°μ λ°μ΄ν° μ μ‘μ μ¬μ©λ©λλ€. Asynchronous FIFOλ μ λ ₯ ν΄λ‘ λλ©μΈμμ λ°μ΄ν°λ₯Ό μμ νκ³ , μΆλ ₯ ν΄λ‘ λλ©μΈμμ μ΄λ₯Ό μ μ‘ν©λλ€. μ΄ λ°©μμ λ°μ΄ν°μ μμλ₯Ό 보μ₯νκ³ , ν΄λ‘ λλ©μΈ κ°μ νμ΄λ° λ¬Έμ λ₯Ό μ΅μννλ λ° ν¨κ³Όμ μ λλ€. κ·Έλ¬λ Asynchronous FIFOλ μ€κ³κ° 볡μ‘ν μ μμΌλ©°, μΆκ°μ μΈ νλμ¨μ΄ μμμ΄ νμν μ μμ΅λλ€.
λμ§Έ, Dual-Clock RAMμ μλ‘ λ€λ₯Έ ν΄λ‘ λλ©μΈμμ λ°μ΄ν°λ₯Ό μ½κ³ μΈ μ μλ λ©λͺ¨λ¦¬ ꡬ쑰μ λλ€. μ΄ κΈ°μ μ λ κ°μ ν΄λ‘ λλ©μΈμμ λ 립μ μΌλ‘ μλν μ μλλ‘ μ€κ³λμ΄, λ°μ΄ν° μ μ‘μ μ μ°μ±μ μ 곡ν©λλ€. κ·Έλ¬λ Dual-Clock RAMμ λ©λͺ¨λ¦¬ μ κ·Όμ 볡μ‘μ±μ μ¦κ°μν¬ μ μμΌλ©°, νμ΄λ° λΆμμ΄ νμν©λλ€.
μ μ§Έ, Synchronizerλ ν΄λ‘ λλ©μΈ κ°μ λ°μ΄ν° μ μ‘μμ λ©νμ€ν μ΄λΈ μνλ₯Ό λ°©μ§νκΈ° μν΄ μ¬μ©λ©λλ€. Synchronizerλ μΌλ°μ μΌλ‘ λ κ°μ ν립νλ‘μ μ¬μ©νμ¬ μμ λ μΆλ ₯μ μ 곡νλ©°, λ°μ΄ν° μ μ‘μ μ λ’°μ±μ λμ΄λ λ° κΈ°μ¬ν©λλ€. κ·Έλ¬λ Synchronizerμ μ€κ³λ ν΄λ‘ μ£Όνμμ λ°λΌ λ¬λΌμ§ μ μμΌλ©°, νΉμ μν©μμλ μΆκ°μ μΈ μ€λ₯ κ°μ§ λ©μ»€λμ¦μ΄ νμν μ μμ΅λλ€.
μ΄λ¬ν κΈ°μ λ€μ κ°κΈ° λ€λ₯Έ μ₯μ κ³Ό λ¨μ μ κ°μ§κ³ μμΌλ©°, νΉμ μ ν리μΌμ΄μ μ λ°λΌ μ μ ν κΈ°μ μ μ ννλ κ²μ΄ μ€μν©λλ€. μλ₯Ό λ€μ΄, κ³ μ λ°μ΄ν° μ μ‘μ΄ νμν κ²½μ° Asynchronous FIFOκ° μ ν©ν μ μμ§λ§, λ©λͺ¨λ¦¬ μ κ·Όμ΄ μ€μν κ²½μ° Dual-Clock RAMμ΄ λ μ 리ν μ μμ΅λλ€. λ°λΌμ CDCμ μ€κ³μλ κ° κΈ°μ μ νΉμ±μ μ΄ν΄νκ³ , μν©μ λ§λ μ΅μ μ μ루μ μ μ νν΄μΌ ν©λλ€.
Clock Domain Crossing (CDC)λ μλ‘ λ€λ₯Έ ν΄λ‘ μ£Όνμλ₯Ό κ°μ§ ν΄λ‘ λλ©μΈ κ°μ λ°μ΄ν° μ μ‘μ μμ νκ² μννκΈ° μν κΈ°μ μ λλ€.