← 전체 글로 돌아가기
CDC

𝗖𝗗𝗖 𝗠𝗧𝗕𝗙 │ 2-FF를 넣었는데 왜 배치가 중요할까?

Two-flop CDC synchronizer MTBF: publication retry of the reviewed 2026-10-06 draft

Two-flop CDC synchronizer MTBF: publication retry of the reviewed 2026-10-06 draft 인포그래픽
Daily ASIC original infographic · English labels

CDC 리뷰에서 “2-FF synchronizer가 있으니 됐다”는 말을 듣곤 합니다. 그런데 배치 후 보고서를 보니 똑같은 2-FF 체인 두 개의 MTBF가 크게 다릅니다. RTL은 같은데, 무엇이 달라졌을까요?

첫 번째 FF는 비동기 입력을 샘플링하므로 metastability에 빠질 수 있습니다. 두 번째 FF가 다음 destination clock edge에서 값을 읽기 전까지, 첫 번째 FF의 출력이 안정될 시간이 필요합니다. 이 시간을 늘려야 metastability가 다음 단계로 전파될 가능성이 줄어듭니다.

예를 들어 destination clock이 200 MHz라면 한 주기는 5 ns입니다. 단순화한 예에서 첫 번째 FF의 clock-to-Q, FF 사이 routing, 두 번째 FF의 setup에 1.4 ns가 쓰이면 안정될 여유는 약 3.6 ns입니다. 같은 두 FF라도 이 경로에 3.4 ns가 쓰이면 여유는 약 1.6 ns로 줄어듭니다. 실제 값은 clock skew, uncertainty, PVT 등을 포함한 구현 보고서로 확인해야 합니다.

핵심은 MTBF가 FF 개수만의 함수가 아니라는 점입니다. 일반적인 모델에서 MTBF는 안정될 시간에 대해 지수적으로 좋아지고, destination clock 주파수와 비동기 입력의 전환 빈도가 높아질수록 낮아집니다. 따라서 두 FF를 가까이 배치해 FF1→FF2 경로의 여유를 확보하는 일은 단순한 배선 정리가 아닙니다.

리뷰할 때는 체인이 실제로 synchronizer로 인식됐는지, 두 clock의 constraint가 올바른지, FF1→FF2의 timing slack과 입력 toggle rate가 현실적인지 함께 보세요. 무작정 stage를 늘리면 MTBF에는 도움이 되지만 latency도 늘어납니다.

근거: Intel, Understanding Metastability in FPGAs (MTBF 모델과 settling time)
https://cdrdv2-public.intel.com/650346/wp-01082-quartus-ii-metastability.pdf
Intel, Quartus Prime Pro Edition User Guide: Design Recommendations, §3 (2025-04-14)
https://www.intel.com/programmable/technical-pdfs/683082.pdf
AMD, Vivado UG835 report_synchronizer_mtbf (2026.1)
https://docs.amd.com/r/en-US/ug835-vivado-tcl-commands/report_synchronizer_mtbf

ORIGINAL POSTLinkedIn에서 원문 보기 ↗
이전 글𝗔𝗫𝗜 𝗥𝗘𝗔𝗗 𝗜𝗗 │ 먼저 끝난 응답이 왜 기다릴까?다음 글𝗔𝗫𝗜𝟰-𝗟𝗶𝘁𝗲 𝗪𝗿𝗶𝘁𝗲 │ 주소와 데이터는 따로 온다