안녕하세요. RTLog입니다.
면접에서도 자주 활용되고, 시험에도 단골로 출제되는 개념인 Timing에 대해서 작성해보려고 합니다.
Timing Analysis
이런 그림, 많이들 보셨을겁니다. D F/F에서의 Timing Diagram인데요, 네 가지 시간 개념이 등장합니다.
1. T_setup (setup time): time before the clock edge that data must be stable
2. T_hold (hold time): time after the clock edge that data must be stable
*c.f) T_a (Aperture time): T_setup + T_hold
F/F은 Clock Edge에서 데이터를 챈다고 알고 계실텐데요. 그렇다면, Clock Edge와 동시에, 혹은 미세한 시간 전후에 입력 데이터가 바뀐다면 어떻게 동작할까요? 애매한 상황이 벌어질 것입니다. 따라서, 데이터를 채는 시점인 Clock Edge 전후에 Setup/Hold Time을 두어서 그 동안은 데이터가 안정적이어야 정확한 동작을 할 수 있습니다.
Setup/Hold Time은 Standard Cell Library에 정의된 각 파운드리 공정의 특성입니다. 따라서, 회로 설계 엔지니어는 Cell을 사용해야 하는 입장에서 Setup/Hold Time을 변경할 수 없고, 이를 고려한 설계를 해야 합니다.
3. T_CQmin(Clock to Q Contamination Delay) (= T_ccq)
- time after clock edge that the output Q is guaranteed to be stable (stop changing)
4. T_CQmax(Clock to Q Propagation Delay) (= T_pcq)
- time after clock edge that the output Q might be unstable (start changing)
Clock Edge가 되면 Output에 Input이 즉시 업데이트 되는 것은 아닙니다. 아래와 같이 F/F 또한 게이트로 구성된 회로이기 때문이죠. 따라서 데이터가 변하기 시작하는 시점과 안정되는 시점이 존재하는데, Clock Edge부터 각각의 시점까지 Contamination Delay, Propagation Delay로 지칭합니다.
Setup/Hold Time과 마찬가지로 T_CQmin, T_CQmax은 공정의 특성입니다.
* 구글에 TSMC/Samsung Electronics Standard Cell Library로 검색해서 pdf를 찾아보시면, Ctrl + F 로 setup time을 검색해보시면 T_setup /T_hold /T_CQmin/T_CQmax을 직접 확인할 수 있습니다.
그렇다면, F/F과 F/F 사이에 Combinational Logic을 넣어서 내용을 이어가보겠습니다.
* T_c: Clock Period
Comnational Logic에 대한 두 가지 시간 개념을 더 생각해볼 수 있습니다.
위에서의 내용은 F/F 관점의 개념이라면, 해당 내용은 Combinational Logic 관점의 개념이라고 생각하시면 됩니다.
5. T_cd(Contamination Delay): combinational logic Contamination delay (Q1 → D2 회색 화살표)
6. T_pd(Propagation Delay): combinational logic propgation delay (Q1 → D2 파란색 화살표)
Clock Edge에 맞춰서 입력 데이터 값을 가지고 있는 레지스터가 업데이트되면, Combinational Logic에도 값의 변화가 생길텐데요. T_CQmax 이후 값이 안정화된 시점부터 Combination Logic의 결과 값이 안정화되는 시간을 T_cd, T_CQmin 이후 값의 Logic의 입력에 변화가 생긴 시점부터 Logic의 결과 값이 변화하기 시작하는 시간을 T_pd라고 합니다.
다음 포스트는 Timing Constraint에 대해 작성해보겠습니다.
'Digital Design > 설계 방법론' 카테고리의 다른 글
Timing Analysis (2) - Timing Constraint (3) | 2024.02.28 |
---|