타이밍 분석과 CDC

4비트 데이터의 각 비트에 각각 2단 동기화기를 달아 다른 클럭 도메인으로 전달했습니다. 데이터가 0111에서 1000으로 바뀔 때 일어날 수 있는 문제로 올바른 것은?

  1. A비트마다 캡처되는 사이클이 어긋나 1111이나 0000 같은 중간 값을 받는 경우가 있다
  2. B동기화기를 거치면 모든 비트가 같은 사이클에 맞춰지므로 문제는 일어나지 않는다
  3. C4비트 모두 메타스테이블 상태가 되어 그대로 0으로도 1로도 돌아오지 않게 된다
정답과 해설 보기

정답: A. 비트마다 캡처되는 사이클이 어긋나 1111이나 0000 같은 중간 값을 받는 경우가 있다

2단 동기화기는 비트마다 변화를 캡처하는 것이 이번 에지인지 다음 에지인지가 확정되지 않습니다. 0111에서 1000으로의 변화에서는 4비트가 모두 바뀌므로, 일부 비트만 새 값이 된 1111이나 0000, 0100 등을 1사이클 동안 받을 수 있습니다. 수신 측이 그 값을 사용하면 오동작합니다. 메타스테이블 상태는 시간이 지나면 0이나 1로 안정됩니다. 카운터 값이라면 그레이 코드로 변환하여 1비트만 바뀌도록 하고, 임의의 데이터라면 핸드셰이크나 비동기 FIFO를 사용합니다.

이 분야 연습하기 분야로 돌아가기

타이밍 분석과 CDC의 다른 문제

  1. 멀티비트 데이터를 다른 클럭 도메인으로 안전하게 전달하는 방법으로 올바른 것은?
  2. 500 MHz 클럭 도메인에서 1사이클(2 ns)만 1이 되는 펄스를 100 MHz 도메인으로 2단 동기화기를 통해 전달했습니다. 일어날 수 있는 문제로 올바른 것은?
  3. 400 MHz 도메인에서 100 MHz 도메인으로 레벨 신호를 동기화기로 확실하게 전달하기 위해, 신호 폭을 수신 측 클럭 주기의 1.5배 이상으로 하려고 합니다. 송신 측 클럭으로 최소 몇 사이클의 폭으로 하면 됩니까?
  4. 토글 동기화(송신 측에서 펄스가 올 때마다 반전하는 레벨 신호를 만들어 전달하는 방식)에서 수신 측이 원래 펄스를 복원하는 방법으로 올바른 것은?
  5. 토글 동기화로 펄스를 빠른 클럭 도메인에서 느린 클럭 도메인으로 전달할 때의 제약으로 올바른 것은?