타이밍 분석과 CDC
쓰기 측 100 MHz, 읽기 측 80 MHz인 비동기 FIFO에서 쓰기 측은 100워드의 버스트를 매 사이클 1워드씩 쓰고, 읽기 측은 매 사이클 1워드씩 읽습니다. 버스트 사이에는 충분한 휴지 기간이 있습니다. 넘치지 않기 위해 필요한 최소 깊이는 얼마입니까(동기화로 인한 지연은 무시합니다)?
- A80워드
- B25워드
- 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로 나누어 버린 값입니다. 실제 설계에서는 동기화 지연분의 여유를 더합니다.