타이밍 분석과 CDC

쓰기 측은 200 MHz로 매 사이클 1워드씩 120워드의 버스트를 씁니다. 읽기 측은 150 MHz 클럭으로 3사이클 중 2사이클만 1워드씩 읽습니다. 넘치지 않기 위해 필요한 최소 깊이는 얼마입니까(동기화로 인한 지연은 무시합니다)?

  1. A30워드
  2. B60워드
  3. C40워드
정답과 해설 보기

정답: B. 60워드

120워드를 쓰는 데 걸리는 시간은 120 × 5 ns = 600 ns입니다. 읽기 측의 실효 속도는 150 MHz × 2/3 = 초당 1억 워드이므로, 600 ns 동안 읽을 수 있는 것은 60워드입니다. 따라서 FIFO에 쌓이는 최대량은 120 − 60 = 60워드입니다. 30워드는 읽기 측이 매 사이클 읽을 수 있다고 보고 150 MHz 그대로 계산한 값(600 ns에 90워드), 40워드는 버스트의 3분의 1을 취했을 뿐인 값입니다. 클럭 주파수가 아니라 휴지를 포함한 실효 속도로 비교하는 것이 중요합니다.

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

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

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