거북이처럼 천천히

Verilog RTL 설계(7월 25일 - 1, Slack) 본문

RTL Design/Verilog RTL 설계

Verilog RTL 설계(7월 25일 - 1, Slack)

유로 청년 2024. 7. 25. 20:27

1. Slack

  • 디지털 회로에서 신호가 목적지에 도달하는 데, 필요한 시간(PDT, Propagation delay time)과 실제로 허용된 시간 (Required Time)의 차이를 의미한다.
  • 아래 사진과 함께 설명을 이어가도록 하겠다.

데이터를 읽기 위해서는 Clock edge을 전후로 여유 시간을 가질 필요가 있다.

 

 

  • Clock edge에 데이터를 읽기 위해서는 그 이전에 이미 연산 및 전달이 끝 마치고, 도착한 상태여야 한다.
  • Q) 왜 Clock edge 전후로 여유 시간을 갖고, 데이터를 준비 및 유지해야 하는가?
    A)
    Clock Pulse라 하더라도 항상 일정한 주기를 갖고 신호가 발생하지 않는다. 예를 들어 Basys3의 CP의 주기는 10ns이지만, 항상 10ns 주기를 갖고 나타나지 않고 약간의 오차를 갖고 클록 펄스가 나타날 수 있다. (예를 들어 9ns or 11ns에 CP가 나타날 수 있다.)
     따라서 이러한 The worst case를 고려하여 클록의 전후로 여유 시간을 갖고, 데이터를 준비 및 유지할 필요가 있다.
  • 이처럼 clock edge 전후로 나타나는 시간를 각각 Setup Time, Hold Time이라 한다.

 

 

 

1.1. 디지털 설계에서 사용되는 Time 용어 정리

  • 디지털 설계에서 다음 4가지 Time 용어 및 개념은 타이밍 분석 및 회로 동작의 신뢰성 평가에 있어 중요한 용어 및 개념이다. 따라서 이를 이해하고, 넘어갈 필요가 있다.

 

  1. Setup Time
    - 정의 : Clock edge가 도착하기 전에 데이터가 목적지에 도착하여 안정되어야 하는 최소 시간
    - 역활 : 데이터의 올바른 전달을 보장
    - 위반 시 : 올바른 시간에 데이터 전달을 못할 수 있으며, 잘못된 데이터 전달 가능성이 발생할 수 있다.


  2. Hold Time
    - 정의 :
    Clock edge 이후에도 잠시 동안 데이터가 유지되어야 하는 최소 시간
    - 역활 : 이전 데이터가 올바르게 저장되도록 저장
    - 위반 시 : 데이터 손실 및 잘못된 상태가 전달될 가능성이 발생할 수 있다. 


  3. Required Time
    - 정의 :
    신호가 목적지에 도달해야 하는 시간
    - 중요성 :
    회로의 성능 및 정확성을 보장


  4. Arrival Time
    - 정의 : 실제로 신호가 목적지에 도달한 시간
    - 중요성 : Required Time과 비교하여 타이밍 마진 계산에 사용

 

 

 

2.  Positive slack과 Negative slack

  • Slack은 신호가 목적지에 도달해야 하는 시간(Required Time)과 실제로 신호가 목적지에 도달한 시간(Arrival Time)의 차이이다. 
  • 만약, Required Time - Arrival Time > 0 이라면 Positive Slack 이라 하며, Required Time - Arrival Time < 0이라면 Negative Slack 이라한다.
  • 특히, Negative Slack은 회로가 의도대로 동작하지 않는 문제점을 유발할 수 있어 Negative Slack에 대해서는 회로를 재설계하거나 클럭 신호의 주파수를 줄여 해결 할 수 있다.