크리티컬 패스 분석과 로컬 최적화로 타이밍 클로저 결
타이밍 클로저 과정에서 주로 접하는 문제는 셋업 타이밍 위반(setup violation)입니다. 조합 로직의 지연이 클럭 주기보다 길어서 다음 플립플롭에 데이터가 늦게 도착하는 상황이고, 수업 프로젝트에서 배치 최적화 후에 갑자기 크리티컬 패스가 바뀌는 현상도 경험했습니다.
해결 방법으로 가장 먼저 시도한 것은 크리티컬 패스의 로직 단계 수를 줄이는 것입니다. 멀티플렉서 트리를 재구성하거나 연산 순서를 바꿔 경로 깊이를 줄이면 조합 지연이 감소합니다. 레이아웃 측면에서는 크리티컬 패스 셀의 드라이브 강도를 높이거나 배치를 조밀하게 만드는 방법도 사용했습니다.
타이밍 클로저에서 배운 것은 한 경로를 수정하면 다른 경로에 영향이 생긴다는 점입니다. 타이밍 위반을 개별로 수정하면 새로운 위반이 생기는 경우가 있어, 변경 영향 범위를 함께 보는 시야가 효율적인 클로저를 만듭니다.