클럭 도메인 교차 소개:더블 플로핑

이 기사에서는 두 클럭 도메인 간의 단일 비트 제어 신호를 전송하기 위해”더블 플로핑”이라는 잘 알려진 기술에 대해 설명합니다.

디지털 시스템에 여러 클럭 신호를 사용하는 것이 일반적입니다. 서로 다른 클럭 도메인의 클럭 신호는 일반적으로 독립적이기 때문에,서로 다른 클럭 도메인들간에 데이터를 전송하는 것은 어려운 과제가 될 수 있다. 이 기사에서는 두 클럭 도메인 사이에 단일 비트 제어 신호를 전송하기 위해”이중 플로핑”이라는 잘 알려진 기술에 대해 설명합니다.

왜 우리는 여러 시계가 필요합니까?

일반적인 디지털 설계 방법론은 설계 절차와 시스템 타이밍 분석을 모두 단순화하기 때문에 전체 시스템에 하나의 클럭 신호를 사용하도록 권장합니다. 그러나 이 방법론이 항상 가장 효율적인 솔루션을 제공하는 것은 아니며 때로는 전체 시스템에 대해 단일 클럭을 가질 수도 없습니다. 예를 들어,100 메가 헤르츠 및 150 메가 헤르츠에서 작동하는 인터페이스를 사용하여 두 개의 외부 장치와 통신하는 20 메가 헤르츠에서 작동하는 디자인을 고려하십시오. 여기서 우리는 세 가지 다른 클럭 주파수를 처리해야합니다. 인터페이스의 클럭 주파수는 미리 정의될 수 있으며,사용 중인 클럭에 따라 선택할 수 없습니다.

때때로,우리는 시스템의 다른 부분에 대한 클럭 주파수를 선택할 수 있지만,이 경우에도,주어진 클럭 주파수에서 전체 시스템을 작동하는 것이 좋지 않을 수 있습니다. 예를 들어,100 메가 헤르츠 클럭이 필요한 서브 시스템을 제외하고 전체 시스템이 20 메가 헤르츠에서 작동 할 수 있다고 가정합니다. 우리가 전체 체계를 위해 1 개의 클록 신호를 이용한것을 결정하면,그때 우리는 체계안에 유효한 가장 높은 클록 비율을 수용하기 위하여 100 메가헤르츠에를 체계를 운영해야 할텐데. 물론,이것은 합리적인 뿐만 아니라 우리(20 메가 헤르츠에서 작동 될 수 있는 부품)시스템의 큰 부분을 오버 디자인 했습니다 하지만 또한 우리가 불필요 하 게 시스템 동적 전력 소비를 증가 했습니다 때문에. 보시다시피,시스템의 다른 부분에 대해 서로 다른 클럭 속도를 사용해야하는 많은 상황이 있습니다.

플립 플롭 및 램과 같은 모든 동기 요소가 동일한 클럭 신호를 사용하는 디자인의 섹션을 클럭 도메인이라고합니다. 다른 클럭 도메인을 갖는 것은 유익 할 수 있지만 보이는 것만 큼 쉽지는 않습니다. 다음 섹션에서는 다중 클럭 시스템을 사용할 때 직면할 수 있는 몇 가지 문제에 대해 설명합니다.

준 안정성 문제

는 우리가 각각 50 메가 헤르츠 및 100 메가 헤르츠에서 작동하는 두 개의 논리 섹션을 가지고 있다고 가정합니다. 이것은 그림 1 에 나와 있습니다.

그림 1

우리의 간단한 예에서,비 섹션은 입력,엔_인,섹션의 엔_아웃 출력에 연결된다. 이 연결은 특정 동작이 수행된 후 비에서 알고리즘을 개시하는 액티브 하이 인에이블 신호에 대응한다.

클럭 파형이 그림 2 와 같으며 시스템이 상승 에지 트리거된다고 가정합니다. 이 신호는 클록 도메인에 의해 생성되기 때문에,도면에 도시된 바와 같이 클록 1 의 상승 에지 후에 낮은-높은 전이가 발생할 수 있다. 이 경우,로직 섹션에서의 플립플롭 지연은 클록-투-큐 지연($$)에 해당한다. 2015 년 10 월 15 일-2015 년 10 월 15 일-2015 년 10 월 15 일-2015 년 10 월 15 일-2015 년 10 월 15 일-2015 년 10 월 15 일 샘플링이 성공적으로 일어날 경우 타이밍 요구 사항이 충족됩니다.

그림 2

그림 2 에서 조건은 만족하지만 항상 그런 것은 아닙니다. 다른 클럭 도메인의 클럭 신호는 일반적으로 독립적입니다. 우리는 그들의 위상 관계를 모르고 파형은 그림 3 과 같이 될 수 있습니다. 이 경우,인에이블 신호의 로우-하이-전이가 클락 2 의 상승 에지에 너무 가까워서 조건이 충족되지 않는다.

그림 3

설정 시간 위반으로 인해 레지스터 출력 전압은 로직 하이,로직 로우 또는 로직 하이 및 로직 로우 전압 사이의 더 나쁜 값을 나타내는 값일 수 있습니다. 이 세 가지 경우는 입력 데이터가 실제로 해당 클럭 에지에서 로직 하이 인 동안 가능합니다. 마찬가지로,레지스터의 출력 값은 레지스터 홀드 시간이 위반될 때,즉 레지스터 홀드 시간에 의해 정의된 활성 클럭 에지 이후 시간 윈도우 내에서 변경되는 것을 예측할 수 없을 것이다. 레지스터의 출력이 로직 하이 및 로직 로우 전압 사이의 전압에서 정지 될 때,우리는 플립 플롭이 준 안정 상태로 진입했다고 말한다.

그림 3 의 타이밍 위반으로 인한 세 가지 가능한 사례를 개별적으로 살펴 보겠습니다:

  • 첫 번째 경우,출력 값이 로직 하이로 이동한다고 가정합니다. 이 경우 오류가 없으며 설치 시간 위반이 있었지만 플립 플롭에는 유효한 데이터가 포함되어 있습니다. 오류 없이 예상대로 데이터 전환입니다.2253>
  • 두 번째 경우는 다음과 같습니다. 이 경우 활성화 신호는 비 클럭 도메인에서 성공적으로 샘플링되지 않습니다. 그러나 이것은 문제가 되지 않습니다. 따라서 다음 상승 가장자리에서$$티=티 _3$$는 엔 _아웃 값을 올바르게 샘플링합니다. 이 클럭 에지의 경우 두 개 이상의 기간 동안 변경되지 않았기 때문에 타이밍 요구 사항이 충족됩니다. 이 경우 실제로 전환 한 것보다 약 하나의 클럭 기간을 샘플링합니다. 그러나 두 클럭 도메인의 클럭이 독립적이라고 가정하고 엔-아웃 신호의 도착 시간에 대해 어떤 가정도하지 않았기 때문에 이것은 문제가되지 않습니다. 실제로,비 클록 도메인의 회로는 하나의 클록 2 주기의 추가 지연을 갖는 클록 도메인의 계산의 끝을 실현한다.
  • 다음 준 안정 상태를 입력 합니다. 이 경우 레지스터 출력은 로직 하이 전압과 로직 로우 전압 사이의 전압에서 일시 중단되지만 이는 일시적입니다. 플립 플롭은 결국 준 안정 상태를 종료하고 로직 하이 또는 로직 로우 로 이동합니다. 준안정 상태를 종료하는 데 필요한 시간을 해결 시간$$티___________ 이것은 그림 4 에 나와 있습니다. 이 그림에서 설정 시간 위반이 발생했으며 플립 플롭이$$의 시간 간격 동안 준 안정 상태로 진입했습니다. 플립 플롭 출력은 로직 하이($$2 분기{메타-투-1}$$)또는 로직 로우($$2 분기{메타-투-0}$$)로 이동합니다.

그림 4

해결 시간은 결정적이지 않으며 확률 분포 함수로 설명됩니다.}}$$

여기서$$\타우$$는”붕괴 시간 상수”이며 플립 플롭의 전기적 특성에 의해 결정됩니다. 이 매개 변수의 일반적인 값은 약 1 나노초의 일부분입니다.

위의 방정식은 샘플링 클럭 에지 후$$티_트$$와 같은 시간 간격에 대해 준 안정 상태에 남을 확률을 제공합니다. 방정식의 지수 특성으로 인해$$의 값이 증가함에 따라 확률은 빠르게 감소 할 것입니다. 예를 들어,$$\tau=0.5$$ns 및$$T_r=5$$ns,우리가 얻은 확률$$\약 4.5\간 10^{-5}$$.

요약하면,우리는 두 클럭 도메인의 클럭 신호가 서로 독립적이기 때문에 준 안정성이 발생하는 것을 방지 할 수 없습니다. 그러나,우리가 충분히 큰 해상도 시간을 가진 플립 플롭을 제공한다면,그것은 높은 확률로 안정된 상태로 해결 될 것이다. 따라서,우리의 디자인은 준 안정 상태를 입력 할 수 플립 플롭을 포함하는 경우,우리는 준 안정성을 종료 할 수있는 플립 플롭 충분한 시간을 제공해야합니다. 그런 다음 플립 플롭의 값을 다운 스트림 논리 셀에 안전하게 전파 할 수 있습니다. 준 안정 값을 사용하면 전체 시스템이 알 수 없는 상태가 될 수 있습니다. 최악의 경우 높은 전류 흐름과 심지어 칩 소진으로 이어질 수 있습니다. 따라서 불안정한 데이터를 시스템에 공급하지 않도록해야합니다.

더블 플로핑

우리는 플립 플롭에 충분한 시간을 주면 준 안정 상태에 남을 가능성을 크게 줄일 수 있음을 보았습니다. 이것이 시스템에 준 안정 데이터를 전파하는 것을 피하기 위해 어떻게 사용될 수 있는지 보자. 그림 5 의 블록 다이어그램을 고려하십시오. 그림 1 의 비 클럭 도메인에서 엔 _인 신호를 수신하고 처리하는 일반적인 경로를 보여 줍니다.

그림 5

이 회로를 작동하는 데 사용할 수있는 최소 클럭 기간은

입니다., \; 설치}$$

이 경우,”빗”은”빗”과”빗”의 최대 지연 시간이며,”빗”은”빗”의 최대 지연 시간이며,”빗”은”빗”의 최대 지연 시간이며,”빗”은”빗”의 최대 지연 시간이며,”빗”은”빗”의 최대 지연 시간이며,”빗”은”빗”의 최대 지연 시간이며,”빗”은”빗”의 최대 지연 시간이며,”빗”은”빗”의 최대 지연 시간이며,”빗”은”빗”의 최대 지연 시간입니다.”,전시. 이 방정식은 2 의 출력 데이터가 안정적이라고 가정함으로써 얻어진다. 그렇지 않은 경우 다음 방정식과 같이 해결 시간을 고려해야합니다.

$$, \; 설치}$$

해결 시간의 값은 준 안정 상태에서 나올 확률을 결정합니다. 이 경우 주기는 다음과 같습니다. 그런 다음 사용 가능한 해결 시간 값은

입니다.)$$

준 안정 상태에 남아있을 확률을 줄이려면$$티_엘$$를 늘려야합니다. 주어진 클럭 기간으로$$티_{클록 2}$$,유일한 디자인 옵션은 매개 변수를 최소화하는 것입니다$$티_{빗,\;최대}$$. 따라서,우리는 더 나은”빗을 넣어 것입니다. 도 6 에 도시 된 바와 같이 이 방법으로$$티_{빗,\;최대}$$사이의 경로에 대해 이론적으로 0 이됩니다. 따라서 가능한 최대 해결 시간을 갖습니다.

그림 6

이 기술을 이중 플로핑이라고 하며,위와 같은 제어 신호를 두 클럭 도메인 간에 인에이블 신호로 전송할 때 널리 사용됩니다. 추가 레지스터는 비 클럭 도메인에 의해 캡처 된 활성화 신호에 하나의 클럭 기간의 또 다른 지연을 소개합니다. 그러나 이 지연은 시스템의 준안정 상태를 피할 수 있는 이점이 있습니다.

이 문서에서는 느린 클럭 도메인에서 빠른 클럭 도메인으로 활성화 신호를 전달하는 방법에 대해 설명합니다. 당신은 느린 클럭 도메인에 빠른에서 제어 신호를 전달하는 등 여러 가지 다른 기술에 익숙해해야 할 수도 있습니다,손 떨고 기술과 클럭 도메인 간의 피포 기반 데이터 전송. 자세한 내용은 효율성,이식성 및 확장성을 위한 코딩 및 고급 설계 6 장에서 확인할 수 있습니다: 아키텍처,구현 및 최적화.

요약

  • 시스템의 여러 부분에 대해 서로 다른 클럭 속도를 사용해야 하는 상황이 많이 있습니다.
  • 서로 다른 클럭 도메인의 클럭 신호는 일반적으로 독립적이기 때문에,서로 다른 클럭 도메인들간에 데이터를 전송하는 것은 어려운 과제가 될 수 있다.
  • 설정 시간 또는 보류 시간 위반이 발생하면 레지스터의 출력 값을 예측할 수 없습니다. 로직 하이,로직 로우 또는 로직 하이 및 로직 로우 전압 사이의 더 나쁜 값을 나타내는 값을 보유 할 수 있습니다.
  • 준 안정 상태를 종료하는 데 필요한 시간을 해결 시간$$티 _알$$라고 합니다.
  • 만약 우리의 설계가 준안정성 상태에 들어갈 수 있는 플립플롭을 포함한다면,우리는 그 플립플롭에게 준안정성을 벗어날 충분한 시간을 주어야 한다.
  • “이중 플로핑”기술은 두 클럭 도메인 사이에서 단일 비트 제어 신호를 전송하는 데 널리 사용됩니다.

내 기사의 전체 목록을 보려면 이 페이지를 방문하십시오.

답글 남기기

이메일 주소는 공개되지 않습니다.