현대 VLSI 설계에서 신뢰할 수 있는 리셋 메커니즘은 알려진 시작 상태를 확립하는 데 필수적입니다. 이 글은 비동기 리셋과 동기 클럭 간의 조정 과제를 살펴보고, ASIC 및 FPGA 환경 모두에 적용 가능한 검증된 전략을 제시합니다.
비동기 리셋은 클럭 에지를 기다리지 않고 전원 투자 직후 동기 로직을 정의된 상태로 가져오는 데 널리 사용됩니다. 그러나 해제는 시스템 클럭과 신중하게 타이밍되어야 메타스태빌리티와 간헐적 장애를 피할 수 있습니다. 이 문제는 대형 멀티 클럭 도메인 설계에서 심각해집니다.
비동기 리셋의 핵심 요건을 검토하고, 전통적인 동기화 및 분배 방법을 비판하며, 더 빠르고 단순하며 신뢰할 수 있는 수렴을 제공하는 고급 기술을 소개합니다. 별도 섹션에서 ASIC 및 FPGA 모범 사례와 예시 특수 케이스를 다룹니다.
1부(본문)는 주요 이슈를 개괄하며, 2부는 ASIC 및 FPGA 솔루션을 확장하고, 3부는 추가 유스케이스 통찰을 제공합니다.
1. 비동기 리셋 과제
디지털 VLSI 시스템은 예측 가능한 동작을 보장하기 위해 리셋을 포함합니다. 리셋은 동기식(활성 클럭 필요) 또는 비동기식(클럭 불필요)으로 구현될 수 있습니다. 동기 리셋은 결정적 지연을 도입하고 메타스태빌리티를 피하지만 데이터 경로 타이밍에 영향을 줄 수 있습니다. 비동기 리셋은 지연이 낮고 전용 플립플롭 입력을 사용할 수 있지만 몇 가지 단점이 있습니다:
리셋 해제 시 플립플롭에서 잠재적 메타스태빌리티 발생.
DFT 지원을 위한 직접 접근성 필요.
내방사성 애플리케이션에서 단일 이벤트 과도 현상(SET) 취약성.[1]
동기 대 비동기 리셋 논쟁은 계속되지만[2], 이 논의는 비동기 리셋 문제 해결에 집중합니다. 설명된 많은 기술은 두 리셋 유형 모두에 적용됩니다.
일반적인 비동기 리셋 드라이버로는 외부 포트, 전원 공급 RC 네트워크, 워치독 타이머, 수동 리셋 버튼, 마이크로프로세서 같은 외부 마스터가 있습니다. 일부 시나리오(예: 전원 투자 시 활성 클럭이 없거나 저전력 파워온 시퀀스)에서는 비동기 리셋이 필수입니다.
리셋 어서션은 클럭 타이밍을 무시할 수 있지만, 해제는 셋업과 홀드 요건을 만족시키기 위해 클럭에 동기화되어야 합니다. 위반 시 메타스태빌리티와 설계 실패를 초래할 수 있습니다. 그림 1은 액티브 하이 비동기 리셋을 보여줍니다: (a) 어서션은 CLK와 무관하게 플립플롭 출력 Q를 클리어; (b) 부적절한 해제 타이밍은 데이터 경로 위반과 유사한 메타스태빌리티를 유발할 수 있습니다.
이미지 클릭으로 확대 그림 1: 액티브 하이 비동기 리셋 어서션과 해제. (a) 리셋 어서션 (b) 타이밍 위반이 있는 해제. (출처: vSync Circuits)