VLSI Wiki
Contents:
  1. Clock Domain Crossing (CDC)
    1. 1. Definition: What is Clock Domain Crossing (CDC)?
    2. 2. Components and Operating Principles
    3. 3. Related Technologies and Comparison
    4. 4. References
    5. 5. One-line Summary

Clock Domain Crossing (CDC)

1. Definition: What is Clock Domain Crossing (CDC)?

Clock Domain Crossing (CDC)λŠ” 디지털 회둜 μ„€κ³„μ—μ„œ μ„œλ‘œ λ‹€λ₯Έ 클둝 주파수λ₯Ό 가진 두 개의 클둝 도메인 κ°„μ˜ 데이터 전솑을 μ˜λ―Έν•©λ‹ˆλ‹€. 이 κ°œλ…μ€ VLSI μ‹œμŠ€ν…œμ—μ„œ ν•„μˆ˜μ μ΄λ©°, λ‹€μ–‘ν•œ 클둝 도메인 κ°„μ˜ 데이터 일관성을 μœ μ§€ν•˜λŠ” 데 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. CDCλŠ” 특히 μ—¬λŸ¬ 클둝 도메인이 μ‘΄μž¬ν•˜λŠ” λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ—μ„œ λ°œμƒν•˜λŠ” 타이밍 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 ν•„μš”ν•©λ‹ˆλ‹€.

CDC의 μ€‘μš”μ„±μ€ λ‹€μŒκ³Ό 같은 λͺ‡ 가지 μš”μ†Œλ‘œ μš”μ•½λ  수 μžˆμŠ΅λ‹ˆλ‹€. 첫째, λ‹€μ–‘ν•œ 클둝 주파수λ₯Ό 가진 회둜 ꡬ성 μš”μ†Œ κ°„μ˜ 데이터 전솑이 μ΄λ£¨μ–΄μ§ˆ λ•Œ λ°œμƒν•  수 μžˆλŠ” 데이터 μ†μ‹€μ΄λ‚˜ 였λ₯˜λ₯Ό λ°©μ§€ν•˜λŠ” 데 ν•„μˆ˜μ μž…λ‹ˆλ‹€. λ‘˜μ§Έ, CDCλŠ” μ‹œμŠ€ν…œμ˜ μ„±λŠ₯을 μ΅œμ ν™”ν•˜λŠ” 데 κΈ°μ—¬ν•˜μ—¬, 클둝 도메인 κ°„μ˜ μƒν˜Έμž‘μš©μ΄ μ›ν™œν•˜κ²Œ 이루어지도둝 ν•©λ‹ˆλ‹€. μ…‹μ§Έ, CDCλŠ” μ‹ λ’°μ„±κ³Ό μ•ˆμ •μ„±μ„ λ†’μ΄λŠ” 데 κΈ°μ—¬ν•˜μ—¬, μ‹œμŠ€ν…œμ˜ 전체적인 신뒰성을 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

CDCλ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ” λͺ‡ 가지 기술적 νŠΉμ§•μ„ κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. 첫째, CDCλŠ” 클둝 도메인 κ°„μ˜ 데이터 전솑 μ‹œ λ°œμƒν•  수 μžˆλŠ” λ©”νƒ€μŠ€ν…Œμ΄λΈ” μƒνƒœλ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ μ„€κ³„λœ λ‹€μ–‘ν•œ 방법둠을 ν¬ν•¨ν•©λ‹ˆλ‹€. λ‘˜μ§Έ, CDC의 κ΅¬ν˜„μ—λŠ” FIFO(First-In-First-Out) 큐, λ“€μ–Ό 포트 RAM, 그리고 동기화 ν”Œλ¦½ν”Œλ‘­κ³Ό 같은 λ‹€μ–‘ν•œ 기술이 μ‚¬μš©λ©λ‹ˆλ‹€. μ΄λŸ¬ν•œ κΈ°μˆ λ“€μ€ λ°μ΄ν„°μ˜ μ •ν™•ν•œ 전솑을 보μž₯ν•˜κ³ , 클둝 도메인 κ°„μ˜ 타이밍 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 도움을 μ€λ‹ˆλ‹€.

2. Components and Operating Principles

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의 μ„€κ³„μžλŠ” 각 기술의 νŠΉμ„±μ„ μ΄ν•΄ν•˜κ³ , 상황에 λ§žλŠ” 졜적의 μ†”λ£¨μ…˜μ„ 선택해야 ν•©λ‹ˆλ‹€.

4. References

  • IEEE (Institute of Electrical and Electronics Engineers)
  • ACM (Association for Computing Machinery)
  • International Symposium on Low Power Electronics and Design (ISLPED)
  • Semiconductor Research Corporation (SRC)
  • Design Automation Conference (DAC)

5. One-line Summary

Clock Domain Crossing (CDC)λŠ” μ„œλ‘œ λ‹€λ₯Έ 클둝 주파수λ₯Ό 가진 클둝 도메인 κ°„μ˜ 데이터 전솑을 μ•ˆμ „ν•˜κ²Œ μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ κΈ°μˆ μž…λ‹ˆλ‹€.