셋업 시간과 홀드 시간
플립플롭이 데이터를 올바르게 받아들이려면 클록 에지 앞뒤로 데이터가 바뀌면 안 되는 시간이 있습니다. 에지 전에 필요한 시간이 셋업 시간, 에지 후에 필요한 시간이 홀드 시간입니다.
데이터 도착이 너무 늦어 셋업 시간을 지키지 못하는 것이 셋업 위반이며, 클록을 느리게 하면 해결됩니다. 다음 데이터로의 변화가 너무 빨라 홀드 시간을 지키지 못하는 것이 홀드 위반이며, 이는 클록 주파수를 낮춰도 해결되지 않으므로 지연을 추가해 수정합니다.
직접 확인하기: 데이터 변화 타이밍
클록 에지를 0으로 두고, 데이터가 새 값이 되는 시각(도착)과 다음 값으로 바뀌는 시각을 움직여 셋업 시간과 홀드 시간을 지키는지 판정합니다. 셋업 시간은 0.3 ns, 홀드 시간은 0.2 ns로 두었습니다.