타이밍 분석과 CDC

쓰기 측 100 MHz, 읽기 측 80 MHz인 비동기 FIFO에서 쓰기 측은 100워드의 버스트를 매 사이클 1워드씩 쓰고, 읽기 측은 매 사이클 1워드씩 읽습니다. 버스트 사이에는 충분한 휴지 기간이 있습니다. 넘치지 않기 위해 필요한 최소 깊이는 얼마입니까(동기화로 인한 지연은 무시합니다)?

  1. A80워드
  2. B25워드
  3. C20워드
정답과 해설 보기

정답: C. 20워드

100워드를 쓰는 데 걸리는 시간은 100 × 10 ns = 1000 ns입니다. 그동안 읽기 측은 1000 ns ÷ 12.5 ns = 80워드를 읽을 수 있으므로, FIFO에 남는 최대량은 100 − 80 = 20워드입니다. 식으로 쓰면 버스트 길이 × (1 − 읽기 속도 ÷ 쓰기 속도) = 100 × (1 − 80 ÷ 100) = 20입니다. 80워드는 그동안 읽을 수 있는 양, 25워드는 속도 차 20 MHz를 읽기 측의 80 MHz로 나누어 버린 값입니다. 실제 설계에서는 동기화 지연분의 여유를 더합니다.

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

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

  1. 쓰기 측은 200 MHz로 매 사이클 1워드씩 120워드의 버스트를 씁니다. 읽기 측은 150 MHz 클럭으로 3사이클 중 2사이클만 1워드씩 읽습니다. 넘치지 않기 위해 필요한 최소 깊이는 얼마입니까(동기화로 인한 지연은 무시합니다)?
  2. 쓰기 측 250 MHz, 읽기 측 200 MHz이며 둘 다 매 사이클 1워드씩 전송합니다. 64워드의 버스트를 받는 FIFO에 계산상 필요한 최소 깊이는 얼마입니까(동기화로 인한 지연은 무시하고, 소수점 이하는 올림합니다)?
  3. 액티브 Low 외부 리셋으로부터 '비동기로 어서트하고 동기로 디어서트하는' 내부 리셋을 만드는 리셋 동기화기의 구성으로 올바른 것은?
  4. 같은 송신 측 도메인에서 온 두 개의 제어 신호를 각각 별도의 2단 동기화기로 받고, 수신 측에서 AND를 취해 사용하는 설계의 문제점으로 올바른 것은?
  5. STA와 RTL 시뮬레이션을 수행하더라도 CDC 검증 툴로 확인해야 하는 이유로 올바른 것은?