셋업·홀드 시간 (Setup and Hold Time)
쉽게 풀면
플립플롭은 클록 신호의 가장자리에서 입력 값을 붙잡아 저장합니다. 이때 입력이 클록보다 조금 먼저 안정되어 있어야 하고, 클록이 지난 뒤에도 잠깐은 바뀌지 않고 그대로 있어야 제대로 저장됩니다. 앞쪽 여유를 셋업 시간, 뒤쪽 여유를 홀드 시간이라고 부르며, 이 두 조건을 지키지 못하면 저장된 값이 틀리거나 불안정한 상태에 빠집니다.
왜 중요한가
디지털 회로가 몇 메가헤르츠로 동작할지 몇 기가헤르츠로 동작할지는 결국 이 두 제약을 모든 경로에서 만족하는지로 결정됩니다. 그래서 자동화된 정적 타이밍 분석은 칩 안의 모든 경로에 대해 셋업과 홀드 여유를 계산하고, 여유가 음수인 경로를 찾아 설계를 고치는 과정을 반복합니다. 논문과 설계 보고서에서 동작 주파수를 주장하려면 반드시 이 여유를 근거로 제시해야 합니다.
논문에서는 이렇게 쓰입니다
셋업 위반이 발생한 경로를 찾아 지연을 줄이는 전형적인 설계 수정 과정을 설명한 문장입니다.
조금 더 깊게 보면
셋업 제약은 앞단 플립플롭의 출력 지연과 조합 논리 지연의 합이 클록 주기에서 셋업 시간과 클록 스큐를 뺀 값보다 작아야 한다는 조건이므로, 클록 주기를 늘리면 해결됩니다. 반대로 홀드 제약은 같은 경로의 최소 지연이 홀드 시간과 스큐의 합보다 커야 한다는 조건이라 클록 주기와 무관하며, 지연이 너무 짧은 경로에 버퍼를 넣어 일부러 늦추는 방식으로 고칩니다. 그래서 셋업 위반은 성능 문제이고 홀드 위반은 기능 자체가 깨지는 문제로 다뤄지며, 양쪽 모두 공정·전압·온도 조건별로 검증합니다.
주의할 점
셋업 위반은 동작 주파수를 낮추면 사라지지만 홀드 위반은 주파수를 아무리 낮춰도 사라지지 않습니다. 두 위반의 성격이 근본적으로 다르다는 점을 혼동하면 안 됩니다. 이 조건을 지키지 못했을 때 나타나는 불안정 상태가 디지털 회로 준안정성입니다.