IT기술

반도체 SETUP HOLD timing구하는 법

backend엔지니어 2023. 3. 5. 01:05

setup이란?

setup은 레지스터 전송 경로에서 데이터가 유효한 시간을 의미합니다. 클럭 신호가 레지스터로 전송되는 시간입니다. setup경로에서 데이터가 레지스터로 안정적으로 전송되도록 전달 지점을 조정해야 합니다. 이를 위해서는 레지스터와 클럭 버퍼 사이에 지연 조정 회로를 추가해야 합니다. 레지스터에 입력된 데이터가 안정적으로 전송되지 않으면 레지스터에 입력된 값이 부정확해지고 회로 동작에 영향을 미칠 수 있습니다. 따라서 레지스터와 클럭 버퍼 사이에 지연 조정 회로를 추가하여 Setup 경로에서 데이터 전송 타이밍을 조정하는 것이 중요합니다. 이를 통해 안정적인 레지스터 전달 경로를 구성하여 회로의 안정성을 보장할 수 있습니다

 

setup time 구하는법

Setup time은 레지스터 입력에 안정적인 데이터가 전달되는 데 필요한 최소 시간을 의미합니다. 따라서 다음은 설정 시간을 얻는 방법입니다.

 

요약
1. 레지스터 입력이 안정적으로 전달되는 시기를 결정합니다. 이렇게 하려면 레지스터 입력이 안정적으로 전송되는 시기를 레지스터 데이터시트에서 확인하십시오.
2. 레지스터 입력의 최대 지연 시간을 결정합니다. 이는 레지스터 입력에 대한 클럭 신호의 전파 시간과 클럭 버퍼의 지연 시간을 모두 고려하여 결정된다.
3. 레지스터 입력의 최소 setup time은 다음과 같이 계산됩니다: Setup time = 레지스터 입력이 안정적으로 전송되는 경우 - 레지스터 입력의 최대 지연.

setup time은 상기 방법을 사용하여 얻을 수 있다. 그러나 실제 회로에 영향을 미치는 여러 가지 노이즈 및 기타 요인이 있으므로 이러한 요인을 고려하고 적절한 여유를 주어야 합니다.

설정 시간은 데이터가 입력되고 클럭이 입력되기까지 일정 시간이 소요되는데, 이를 설정 시간이라고 한다. 간단히 말해서, 데이터는 적어도 시계 전에 일정표로 와야 한다.

위 그림에서 설정 시간(클럭에서 Q로의 지연 + 다음 플립 플랍에서 지연)을 만족시키기 위해 <클럭의 사이클 - 설정 시간

 

setup time 주의점

1. 데이터 시트가 제공하는 설정 시간 값은 일반적으로 테스트 환경에서 측정되므로 실제 환경에서는 다를 수 있습니다. 따라서 충분한 여유를 갖는 것이 중요하다
2. 설정 시간을 결정할 때 레지스터 및 레지스터 입력, 레지스터 및 클럭 버퍼와 같이 전달 경로에서 발생하는 모든 지연을 고려하십시오.
3. 설정 시간은 레지스터 입력이 안정적으로 전달되는 데 필요한 최소 시간을 나타내므로 이 시간보다 작은 값을 사용하는 것은 매우 위험합니다. 레지스터 입력에 잘못된 값이 전달될 수 있기 때문입니다.
4. 여러 개의 레지스터가 연속적으로 연결된 경우, 각 레지스터에 대한 설정 시간은 전파 지연과 버퍼 지연을 모두 고려하여 결정되어야 한다.
5. 노이즈와 레지스터 입력, 레지스터 및 클럭 버퍼와 같은 다른 요인들이 전송 경로에서 발생할 수 있으므로 이러한 요인들을 고려하고 적절한 여유를 주어야 한다.
6. Setup 시간을 얻을 때 적절한 모델링 및 시뮬레이션을 통해 정확한 결과를 얻을 수 있습니다. 따라서 시뮬레이션에 사용되는 모델과 설정을 신중하게 선택해야 합니다.

 

hold란?

hold는 레지스터 전달 경로에서 데이터가 안정적으로 전송되는 데 필요한 시간을 의미합니다. 즉, 레지스터 입력의 안정적인 데이터가 클럭 신호의 상승 에지에서 전송되어야 하는 시간을 의미합니다. Hold 경로에서 데이터가 레지스터로 안정적으로 전송되지 않으면 레지스터에 입력된 값이 부정확해져 회로 동작에 영향을 미칠 수 있습니다. 따라서 Hold 경로에서 안정적인 데이터 전송점을 확보하기 위해서는 레지스터와 클럭 버퍼 사이에 지연 조정 회로를 추가하여 데이터 전송점을 조정해야 합니다. 설정 및 보류는 레지스터 전송 경로에서 신뢰할 수 있는 데이터 전송을 위해 서로 다른 조건을 충족해야 합니다. Setup(설정) 경로와 Hold(보류) 경로에서 조정해야 하는 지연 값은 서로 다르며, 각각 조정하여 안정적인 레지스터 전달 경로를 구성해야 합니다.

 

hold time구하는법

hold time은 레지스터 포워딩 경로에서 데이터가 안정적으로 전송되는 데 필요한 시간을 의미합니다. 따라서 hold time을 얻는 방법은 다음과 같습니다.

 

요약
1. 클럭 신호의 상승 에지에서 데이터가 안정적으로 전송되는 시간을 결정합니다. 이를 위해 클럭 신호의 상승 에지에서 데이터가 안정적으로 전송되는 시점에 대한 클럭을 확인하고 데이터 시트를 등록합니다.
2. 레지스터와 클럭 버퍼 사이의 지연 값을 결정합니다. 이는 레지스터 입력에 대한 전파 시간과 클럭 버퍼의 지연 시간을 모두 고려하여 결정됩니다.
3. 레지스터 입력의 최소 홀드 시간은 다음과 같이 계산됩니다: 홀드 타임 = 레지스터와 클럭 버퍼 사이의 지연 - 클럭 신호의 상승 에지에서 데이터가 안정적으로 전송되는 시간

위의 방법을 통해 Hold time을 구할 수 있습니다. 다만, 실제 회로에서는 여러 가지 노이즈나 다른 요소들이 영향을 미치므로, 이러한 요소들을 고려하여 적절한 여유를 두어야 합니다.


hold는 setup과 반대로 clock이 들어오고 나서 데이터가 일정 시간 이상 유지되어야 합니다. hold를 만족하기 위해서는 (다음 flip flop까지의 delay + clock에서 Q까지의 delay > hold time의 요구시간 ) 이 만족해야 합니다.

 

hold time구할 때 주의점

1. Hold time을 구할 때는 레지스터와 레지스터 입력, 레지스터와 클럭 버퍼 등의 전달 경로에서 발생하는 모든 딜레이를 고려해야 합니다.
2. Hold time은 레지스터의 입력이 안정적으로 유지되는 최소한의 시간을 나타내므로, 이 시간보다 작은 값을 사용하는 것은 매우 위험합니다. 이는 레지스터 입력에 잘못된 값이 전달될 수 있기 때문입니다.
3. Hold time을 결정할 때는 데이터 시트에서 제공하는 값 또는 시뮬레이션 결과를 참고할 수 있습니다. 그러나, 시뮬레이션을 수행할 때는 적절한 모델링과 설정을 선택하여 신뢰성 높은 결과를 얻을 수 있도록 해야 합니다.
4. Hold time은 레지스터 입력이 유지되는 최소한의 시간을 나타내므로, 이를 보장하기 위해서는 클럭 딜레이나 전파 딜레이 등의 불확실성을 고려해야 합니다.
5. 만약 여러 개의 레지스터가 연속적으로 연결되어 있는 경우, 각각의 레지스터의 Hold time은 전파 딜레이와 버퍼 딜레이를 모두 고려하여 결정해야 합니다.
6. 레지스터와 레지스터 입력, 레지스터와 클럭 버퍼 등의 전달 경로에서 노이즈나 다른 요소들이 발생할 수 있으므로, 이러한 요소들을 고려하여 적절한 여유를 두어야 합니다.