왜 그 시간이 필요한지에서 푸는 결
정의로만 가르기보다, 왜 그 시간 제약이 필요한지부터 말씀드리고 싶습니다. 회로의 저장 소자는 클록 신호가 바뀌는 순간에 입력 값을 받아 기억합니다. 그런데 그 순간 입력 값이 흔들리고 있으면 0인지 1인지 잘못 받을 수 있습니다. 그래서 입력은 클록이 바뀌기 조금 전부터 안정돼 있어야 하고, 바뀐 직후에도 잠깐 그대로 유지돼야 합니다. 앞쪽의 안정 시간이 셋업 타임, 뒤쪽의 유지 시간이 홀드 타임입니다. 둘은 따로가 아니라 클록 순간을 사이에 둔 앞뒤 안정 구간입니다. 셋업을 어기면 값이 채 안정되기 전에 받아 잘못된 값을 저장하거나, 불안정한 어중간한 상태에 빠집니다. 홀드를 어기면 받자마자 입력이 바뀌어, 받은 값이 새 값에 덮여 깨집니다. 둘 다 결과는 그 한 비트가 틀리거나 회로가 불안정해지는 것입니다. 다만 세부 타이밍 수치나 보정은 공정·라이브러리마다 달라 단정하긴 어렵다는 한계는 둡니다. 핵심은, 정의가 아니라 왜 안정 구간이 필요하고 위반이 어떤 고장으로 가는지 짚는다는 점입니다.