KR101169972B1 - 동기 펄스 발생기에서의 위상 검출 - Google Patents

동기 펄스 발생기에서의 위상 검출 Download PDF

Info

Publication number
KR101169972B1
KR101169972B1 KR1020050061808A KR20050061808A KR101169972B1 KR 101169972 B1 KR101169972 B1 KR 101169972B1 KR 1020050061808 A KR1020050061808 A KR 1020050061808A KR 20050061808 A KR20050061808 A KR 20050061808A KR 101169972 B1 KR101169972 B1 KR 101169972B1
Authority
KR
South Korea
Prior art keywords
clock
signal
edge
clock signal
core
Prior art date
Application number
KR1020050061808A
Other languages
English (en)
Other versions
KR20060050001A (ko
Inventor
리처드 더블유. 애드키슨
Original Assignee
휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. filed Critical 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Publication of KR20060050001A publication Critical patent/KR20060050001A/ko
Application granted granted Critical
Publication of KR101169972B1 publication Critical patent/KR101169972B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R25/00Arrangements for measuring phase angle between a voltage and a current or between voltages or currents
    • G01R25/005Circuits for comparing several input signals and for indicating the result of this comparison, e.g. equal, different, greater, smaller, or for passing one of the input signals as output signal
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R25/00Arrangements for measuring phase angle between a voltage and a current or between voltages or currents
    • G01R25/02Arrangements for measuring phase angle between a voltage and a current or between voltages or currents in circuits having distributed constants
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Manipulation Of Pulses (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

제1 클럭 영역 내에 배치된 제1 회로(103A)와 제2 클럭 영역 내에 배치된 제2 회로(103B) 간에 데이터 전송을 실행하는 클럭 동기화기(100)에서 동작하는 동기 펄스 발생기(116)를 위한 위상 검출기(206) 및 위상 검출 방법이 개시되어 있다. 상기 제1 클럭 영역은 제1 클럭 신호(108)로 동작하고 상기 제2 클럭 영역은 제2 클럭 신호(106)로 동작한다. 적어도 하나의 제1 플립 플롭(302)이 상기 제2 클럭 신호(106)의 상승 에지를 이용하여 상기 제1 클럭 신호(108)를 샘플링하도록 동작하고 적어도 하나의 제2 플립 플롭(324)이 상기 제2 클럭 신호(106)의 하강 에지를 이용하여 상기 제1 클럭 신호(108)를 샘플링하도록 동작한다. 상기 샘플링은 상기 제1 및 제2 클럭 신호들(108, 106) 간의 동시에 발생하는 상승 에지들을 나타내는 천이들을 생성한다.
Figure R1020050061808
컴퓨터 시스템, 동기 펄스, 위상 검출, 클럭, 링크 클럭, 코어 클럭

Description

동기 펄스 발생기에서의 위상 검출{PHASE DETECTION IN A SYNC PULSE GENERATOR}
도 1은 클럭 경계를 건너서 데이터 전송을 실행하기 위한 동기화기 시스템의 일 실시예에 대한 블록도를 도시한다.
도 2는 도 1에 도시된 동기화기 시스템과 함께 동작하는 동기 펄스 발생기의 일 실시예에 대한 기능 블록도를 도시한다.
도 3은 도 2에 도시된 동기 펄스 발생기의 위상 검출 회로의 일 실시예에 대한 개략도를 도시한다.
도 4는 도 3의 위상 검출 회로와 관련된 타이밍도를 도시한다.
도 5a는 도 3에 도시된 동기 펄스 발생기의 유효 검증 회로(validation circuitry)의 일 실시예의 일부분에 대한 개략도를 도시한다.
도 5b는 도 5a에 예시된 유효 검증 회로의 다른 부분에 대한 개략도를 도시한다.
도 5c는 도 5a에 예시된 유효 검증 회로의 또 다른 부분에 대한 개략도를 도시한다.
도 6은 클럭 신호들과 관련될 수 있는 상이한 스큐들(skews)을 예시하는 타이밍도를 도시한다.
도 7a는 클럭 신호들의 상승 클럭 에지들과 관련된 상이한 스큐들을 더 예시하는 표를 도시한다.
도 7b는 클럭 신호들의 하강 클럭 에지들과 관련된 상이한 스큐들을 더 예시하는 표를 도시한다.
도 8은 유효 검증 회로의 동작 모드들과 관련하여 상승 및 하강 클럭 에지들과 관련된 상이한 스큐들을 예시하는 표를 도시한다.
도 9는 동기 발생 회로의 일 실시예에 대한 블록 개략도를 도시한다.
도 10은 도 9의 동기 발생 회로와 관련된 타이밍도를 도시한다.
도 11은 동기 펄스 발생 방법의 일 실시예에 대한 흐름도를 도시한다.
도 12는 위상 검출 방법의 일 실시예에 대한 흐름도를 도시한다.
도 13은 동기 발생 방법의 일 실시예에 대한 흐름도를 도시한다.
도 14a는 도 2의 동기 펄스 발생기의 일 실시예와 관련된 추가의 타이밍도의 일부분을 도시한다.
도 14b는 도 14a에 제시된 타이밍도의 다른 부분을 도시한다.
<도면의 주요 부분에 대한 부호의 간단한 설명>
100 : 클럭 동기화기/동기화기 시스템
103A : 링크 클럭 영역 논리(제1 회로)
103B : 코어 클럭 영역 논리(제2 회로)
104 : 위상 동기 루프
105A : 동기화기 링크 대 코어(제1 동기화기)
105B : 동기화기 코어 대 링크(제2 동기화기)
116 : 동기 펄스 발생기 회로
122 : 링크 클럭 동기화기 제어기(제1 동기화기 제어기)
124 : 코어 클럭 동기화기 제어기(제2 동기화기 제어기)
130 : 위상 검출기
204 : 동기 발생 회로
206 : 위상 검출기 회로
210 : 유효 에지 검출 회로
212 : 타임아웃 카운터
<관련 출원(들)에의 상호 참조>
이 출원은 이하의 공통으로 소유된 공동 계류중인 특허 출원들: (i) ______________ 출원된 Richard W. Adkisson 및 Ryan L. Akkerman 명의의 출원 번호 ______________(사건 번호 200315339-1)인 "PROGRAMMABLE SYNC PULSE GENERATOR"; (ii) ______________ 출원된 Richard W. Adkisson 명의의 출원 번호 ______________(사건 번호 200315340-1)인 "DRIFT-TOLERANT SYNC GENERATION CIRCUIT AND A SYNC PULSE GENERATOR"; (iii) 2003년 7월 30일 출원된 Richard W. Adkisson 명의의 출원 번호 10/630,159(사건 번호 200207722-2)인 "PROGRAMMABLE CLOCK SYNCHRONIZER"; 및 (iv) 2003년 7월 30일 출원된 Richard W. Adkisson 명의의 출원 번호 10/630,298(사건 번호 200208010-1)인 "PHASE DETECTOR FOR A PROGRAMMABLE CLOCK SYNCHRONIZER"에 개시된 주제와 관련된 주제를 개시하고, 상기 관련 특허 출원들 모두가 모든 목적을 위해 참고로 본 명세서에 통합된다.
<배경>
디지털 전자 시스템, 예컨대, 컴퓨터 시스템은 종종, 각각이 성능 증대를 위하여 최적화된 속도로 동작하는 상이한 인터페이스들을 이용하여 통신할 필요가 있다. 전형적으로, 그 인터페이스들에 적절한 타이밍을 제공하기 위하여 상이한 주파수들을 갖는 다수의 클럭 신호들이 이용된다. 더욱이, 그러한 클럭 신호들의 주파수들은 일반적으로 소정의 방식으로 서로 관련된다. 예를 들면, 전형적인 컴퓨터 시스템에서는 그것의 디지털 회로의 특정 부분에 대하여 시간 베이스(time base)를 제공하기 위한 마스터 클럭으로서 특정 주파수(F1)에서 동작하는 링크 또는 시스템 클럭이 이용될 수 있다. 컴퓨터 시스템의 디지털 회로의 다른 부분들(예컨대 코어 세그먼트 및 거기에 배치된 논리 회로)은 마스터 클럭으로부터 도출된 타이밍 신호들을 이용하여 클로킹(clocking)될 수 있고, 여기서 도출된 주파수들(Fd)은 F1/Fd ≥ 1의 관계를 따른다.
구성 요소 디지털 회로 부분들의 비동기 - 관련이 있기는 하지만 - 특성 때문에, 컴퓨터 시스템들에서는 타이밍 관련 데이터 오류를 피하기 위하여 클럭 영역 경계를 건너서 데이터 전송 동작들을 동기화하기 위하여 동기화기 회로가 종종 이용된다. 그러한 동기화기 회로는 전형적으로 저 지연 시간(low latency)을 가질 필요가 있다(이는 2개의 상이한 클럭 영역들에서의 회로 부분들을 각각 클로킹하는 비동기 클럭들의 정확한 제어를 필요로 한다). 전형적으로, 상이하지만 서로 관련된 주파수의 클럭들을 생성하기 위해, 종래의 동기화기 회로 구성에서는 위상 동기 루프(PLL)가 이용된다. 위상 검출 능력 및 드리프트 내성(drift tolerance)을 갖는 동기화 펄스를 발생시킬 수 있다면 PLL이 불충분했던 애플리케이션에서 유익할 것이다.
<개요>
제1 클럭 영역 내에 배치된 제1 회로와 제2 클럭 영역 내에 배치된 제2 회로 간에 데이터 전송을 실행하는 클럭 동기화기(clock synchronizer)에서 동작가능한 동기 펄스 발생기를 위한 위상 검출기 및 위상 검출 방법이 개시되어 있다. 상기 제1 클럭 영역은 제1 클럭 신호로 동작가능하고 상기 제2 클럭 영역은 제2 클럭 신호로 동작가능하다. 적어도 하나의 제1 플립 플롭이 상기 제2 클럭 신호의 상승 에지(rising edge)를 이용하여 상기 제1 클럭 신호를 샘플링하도록 동작가능하고 적어도 하나의 제2 플립 플롭이 상기 제2 클럭 신호의 하강 에지(falling edge)를 이용하여 상기 제1 클럭 신호를 샘플링하도록 동작가능하다. 상기 샘플링은 상기 제1 신호와 상기 제2 신호 간에 동시에 발생하는(coincident) 상승 에지들을 나타내는 천이들(transitions)을 생성한다.
도면들에서, 같거나 유사한 구성 요소들은 수 개의 도면들에 걸쳐서 동일한 참조 번호로 지정되어 있고, 도시된 여러 구성 요소들은 반드시 일정한 비율로 도시되어 있지는 않다. 이제 도 1을 참조하면, N개의 클럭 사이클을 갖는 제1 클럭 영역(즉, "고속 클럭 영역")과 N/M > 1인 M개의 클럭 사이클을 갖는 제2 클럭 영역(즉, "저속 클럭 영역") 간의 클럭 경계를 건너서 데이터 전송을 실행하기 위한 동기화기 시스템(100)의 일 실시예가 도시되어 있다. 전형적으로, M = (N - 1)이고, 예시적인 구현으로서, 동기화기 시스템(100)은 5:4의 주파수 비를 갖는 고속 클럭 영역(예컨대, 333 MHz의 링크 클럭 신호로 동작함)과 저속 클럭 영역(예컨대, 267 MHz의 코어 클럭 신호로 동작함) 간에 데이터를 전송하기 위해 컴퓨터 시스템의 일부로서 제공될 수 있다. 따라서, 본 특허 출원의 목적 상, "제1 클럭" 및 "링크 클럭"의 용어들은 고속 클럭 영역과 관련하여 동의어로 사용될 것이고, 마찬가지로, "제2 클럭" 및 "코어 클럭"의 용어들은 저속 클럭 영역과 관련하여 사용될 것이다. 그러나, 본 명세서에서 설명된 동기화기 펄스 발생기(또는, 동기 펄스 발생기)는, 예를 들어, 코어 클럭/버스 클럭 영역 인터페이스와 같은, 다른 클럭 영역들과 관련한 애플리케이션들을 가질 수 있음이 이해되어야 할 것이다.
위상 동기 루프(PLL) 회로(104)는 자기에게 제공된 시스템 클럭(109)(sys_clk로 지칭됨)에 기초하여 링크 클럭(즉, 제1 클럭) 신호(108)(link_clock으로 지칭됨)를 발생시키도록 동작가능하다. PLL 회로(104)는 또한 시스템 클럭 신호에 기초하여 코어 클럭(즉, 제2 클럭) 신호(106)(core_clock으로 지칭됨)를 발생시키도록 동작가능하다. core_clock(106) 및 link_clock 신호들(108) 각각은 동기화기 시스템(100)용으로 제공된 동기화기/제어기 블록(102)의 여러 부분들에 제공되는 분배된 클럭 신호(distributed clock signal)를 발생시키기 위한 각각의 클럭 분배 트리 블록(clock distribution tree block)에 우선 제공된다. 참조 번호 112는 도 1에서 "c"로 라벨링되고 참조 번호 106'로 도시된 분배된 core_clock 신호를 생성하기 위하여, core_clock 신호(106)로 동작가능한 클럭 분배 트리를 나타낸다. 마찬가지로, 참조 번호 114는 도 1에서 "l"로 라벨링되고 참조 번호 108'로 도시된 분배된 link_clock 신호를 생성하기 위해 link_clock 신호(108)로 동작가능한 클럭 분배 트리(114)를 나타낸다. 당업자라면, 분배된 클럭 신호들이 입력된 클럭 신호들과 본질적으로 같다는 것을 쉽게 인지할 것이다. 따라서, 시스템 클럭 신호(109), core_clock 신호(106) 및 그것의 분배된 대응 신호(discributed counterpart) c(106')는 이하에서 동등하게 취급된다. 또한, link_clock 신호(108) 및 그것의 분배된 대응 신호 l(108')도 마찬가지로 동등한 것으로 취급된다.
동기화(SYNC) 펄스 발생 회로(116)는 클럭 신호들(106, 108)에 응답하여, 동기화기 제어기 회로의 적당한 영역들에 전송되는 한 쌍의 SYNC 펄스들을 발생시키도록 동작가능하다. sync_c(118) 및 sync_l(120)로 지정된 SYNC 펄스들은 데이터 전송 동작들을 조정(coordinate)하기 위한 기준점을 제공하고 link_clock 및 core_clock 신호들이 동시에 발생하는 상승 에지들을 가질 때에 하이(HIGH)로 드라이브된다. 2개의 클럭 신호들(106, 108) 및 SYNC 펄스 신호들은, 제1 클럭 영역(즉, 링크 클럭 영역)과 제2 클럭 영역(즉, 코어 클럭 영역) 간의 클럭 경계에 걸쳐 있어서, 그 경계를 건너서 데이터 전송을 실행하기 위한 동기화기/제어기 블록(102)으로 제공된다. 참조 번호 103A 및 103B는 제1 및 제2 클럭 영역들 내에 각각 배치된 회로, 예컨대, 링크 클럭 영역 논리 및 코어 클럭 영역 논리을 나타내는 것으로, 이들은 동기화기들(105A 및 105B)을 통하여 용이하게 그들 사이에서 데이터를 송수신하게 되며 이에 대해서는 아래에서 더 상세히 설명될 것이다.
링크 클럭 동기화기 제어기(122)는 분배된 link_clock, l(108')과 sync_l pulse(120)에 응답하여, 복수의 동기화기 제어 신호들을 발생시키도록 동작가능하고, 상기 신호들의 일부분은 제1 회로(103A)(즉, 링크 클럭 영역 논리)로부터 제2 회로(103B)(즉, 코어 클럭 영역 논리)로의 데이터 전송을 제어하도록 동작하는 제1 동기화기 회로 수단(105A)으로 전달된다. 참조 번호 132는 링크 클럭 동기화기 제어기(122)로부터 나오는 이 부분의 제어 신호들의 신호 경로를 나타낸다. 링크 클럭 동기화기 제어기(122)에 의해 발생된 동기화기 제어 신호들 중 다른 부분은 제2 회로(103B)로부터 제1 회로(103A)로의 데이터 전송을 제어하도록 동작하는 제2 동기화기 회로 수단(105B)으로 (신호 경로 134를 통하여) 전달된다. 본 특허 출원에서 사용되는 명명법과 일관되게, 제1 및 제2 동기화기 회로들은 각각 링크 대 코어 동기화기(link-to-core synchronizer) 및 코어 대 링크 동기화기(core-to-link synchronizer) 회로들로 불릴 수도 있다. 게다가, 코어 클럭 동기화기 제어기(124)는 또한 제1 동기화기 제어기(122)(즉, 링크 클럭 동기화기 제어기)에 제공되는 제어기 간의 제어 신호들(inter-controller control signals)의 세트를 발생시키므로 양 제어기가 함께 동작할 수 있게 된다. 참조 번호 128은 링크 클럭 동기화기(122)와 코어 클럭 동기화기 제어기(124) 사이에 제공되는 제어기 간의 제어 신호(들)의 신호 경로를 나타낸다.
링크 클럭 동기화기 제어기(122)의 동작과 마찬가지로, 코어 클럭 동기화기 제어기(124)는 분배된 core_clock, c(106'), 제어기 간의 제어 신호들 및 sync_c 펄스(118)에 응답하여, 복수의 동기화기 제어 신호들을 발생시키도록 동작가능하고, 상기 제어 신호들 중 일부분은 제1 동기화기 회로 수단(105A)으로 전달되고, 상기 신호들 중 다른 부분은 제2 동기화기 회로 수단(105B)으로 전달된다. 참조 번호(138 및 140)는 이들 제어 신호들에 관한 각각의 신호 경로들을 나타낸다.
링크 클럭 동기화기 제어기(122)는 또한 링크 클럭 영역 논리(103A)가 언제 코어 클럭 영역 논리(103B)로 데이터를 송신할 수 있는지(즉, 유효 TX 동작들) 및 언제 코어 클럭 영역 논리(103B)로부터 데이터를 수신할 수 있는지(즉, 유효 RX 동작들)를 알게 하기 위하여 신호 경로(136)를 통하여 링크 클럭 영역 논리(103A)로 제공되는 데이터 송신/수신 제어 신호들을 발생시키도록 동작가능하다.
또한, 선택적(optional) 위상 검출기(130)가 샘플링된 link_clock 및 core_clock 신호들에 응답하여 동작함으로써 2개의 클럭 신호들 간의 위상차(즉, 스큐)를 검출한다. 이 정보는 링크 클럭 동기화기 제어기(122)로 제공되고, 이 링크 클럭 동기화기 제어기는 스큐를 보상하거나 또는 코어 클럭 동기화기 제어기(124)와 조정할 적당한 시간들을 결정할 수 있다. 이상에서 설명한 다양한 서브시스템들에 관한 보다 상세한 정보는 다음의 공통으로 소유된 공동 계류중인 특허 출원: 2003년 7월 30일 출원된 Richard W. Adkisson 명의의 출원 번호 10/630,159(사건 번호 200207722-2)의 "PROGRAMMABLE CLOCK SYNCHRONIZER"에서 확인할 수 있고, 상기 출원은 모든 목적을 위하여 본 명세서에 참고로 통합된다.
위에서 및 상호 참조 미국 특허 출원에서 제시된 바와 같이, 동기화기 시스템(100)은 상이한 스큐 허용 오차(skew tolerances) 및 지연 시간(latencies)에 대해 프로그램될 수 있고, 따라서 큰 스큐(high skew)가 존재하거나, 적은 지연 시간(low latency)의 요건이 있는 경우에도 고속의 데이터 전송이 적절히 처리될 수 있다. 또한, 동기화기 시스템(100)은 N개의 제1 클럭 사이클 대 M개의 제2 클럭 사이클의 비율을 갖는 임의의 2개의 클럭 영역과 함께 동작할 수 있고, 여기서 N/M≥1이다. 동기화기 시스템(100)은 한정으로서가 아니라 예로서 제시되어 있음이 이해되어야 할 것이다. 동기화기 시스템(100)은 동기 펄스 발생 회로(116)가 이용될 수 있는 동기화기 시스템의 일 실시예이다. 이러한 일반적인 관점에서, 링크 클럭 동기화기 제어기(122), 코어 클럭 동기화기 제어기(124), 링크 영역 논리(103A), 및 제1 동기화기(105A)는 링크 클럭 영역으로부터 코어 클럭 영역으로 데이터를 전송하는 제1 동기화 회로를 구현한다. 마찬가지로, 링크 클럭 동기화기 제어기(122), 코어 클럭 동기화기 제어기(124), 코어 영역 논리(103B), 및 제2 동기화기(105B)는 코어 클럭 영역으로부터 링크 클럭 영역으로 데이터를 전송하는 제2 동기화 회로를 구현한다.
도 2는 내부 위상 검출 회로(200), 유효 검증 회로(validation circuitry)(202), 및 동기 발생 회로(204)를 포함하는 동기 펄스 발생기(116)의 일 실시예에 대한 개략도를 도시한다. 위상 검출 회로(200)는 링크 및 코어 클럭 신호들의 동시에 발생하는 상승 에지들을 판정하기 위해 코어 클럭 신호로 링크 클럭 신호를 샘플링하도록 동작가능한 위상 검출기 회로(206)를 포함한다. 예시된 바와 같이, 위상 검출기 회로에 의해 어서트(assert)된 cr_edge 신호(제1 샘플링된 클럭 신호) 및 cf_edge 신호(제2 샘플링된 클럭 신호)는 동시에 발생하는 상승 에지들을 나타낸다. 구체적으로, cr_edge 신호는 코어 클럭 신호의 상승 에지를 이용하여 링크 클럭 신호를 샘플링함으로써 발생된다. 일 실시예에서, 0에서 1로의 천이를 갖는 cr_edge 신호는 링크 클럭 신호와 코어 클럭 신호 사이에 동시에 발생하는 상승 에지들이 발생하기 전에 어서트된다. 한편, cf_edge 신호는 코어 클럭 신호의 하강 에지를 이용하여 링크 클럭 신호를 샘플링함에 따라 어서트된다. 일 실시예에서, cr_edge 신호와 마찬가지로, 1에서 0으로의 천이를 갖는 cf_edge 신호는 링크 클럭 신호와 코어 클럭 신호 사이에 동시에 발생하는 상승 에지들이 발생하기 전에 어서트된다.
위상 검출 회로(200)는 또한 위상 검출기 회로(206)로부터 cr_edge 및 cf_edge 신호들을 수신하는 스테이징 레지스터부(staging register portion)(208)를 포함한다. 스테이징 레지스터부(208)는 cr_edge 및 cf_edge 신호들이 유효 검증 회로(202)에 의해 처리되기 전에 그 신호들을 적절히 지연시키는 임의의 개수의 지연 레지스터들을 포함할 수 있다. 아래에서 더 상세히 설명하겠지만, 이용되는 레지스터의 개수는 링크 클럭 영역과 코어 클럭 영역 간의 클럭 사이클들의 비율과 관련이 있다. 예를 들면, 링크 클럭 영역과 코어 클럭 영역 간의 비율이 5:4인 경우에는, 6개의 레지스터, 즉 레지스터 0 내지 5가 적절할 것이다.
유효 검증 회로(202)는 유효 에지 검출 회로(210), 및 레지스터(214)를 갖는 타임아웃 카운터(212)를 포함한다. 유효 에지 검출 회로(210)는 지연된 cr_edge 및 cf_edge 신호들 뿐만 아니라 링크 클럭 신호와 코어 클럭 신호 간의 비율을 나타내는 비율 신호도 수신한다. 게다가, 스큐 허용 오차의 적당한 레벨을 선택하기 위해 모드 신호가 유효 에지 검출 회로에 전송된다. 일 실시예에서, 모드 신호는 프로그램 가능하다. 더 설명하겠지만, 유효 에지 검출 회로(210)는 제1 및 제2 클럭 신호들 간의 스큐 허용 오차에 기초하여, 동시에 발생하는 에지들, 예컨대, cr_edge 및 cf_edge 신호들에 의해 표시되는 동시에 발생하는 상승 에지들의 유효성을 검증(validate)한다. 예를 들면, 하나의 예시적인 동작 모드에서, 유효 에지 검출 회로(210)는 다음 값보다 적은 스큐를 보상하도록 동작가능하다.
(코어 클럭 신호의 주기)/2 - (링크 클럭 신호의 주기)/2
다른 예시적인 동작 모드에서, 유효 에지 검출 회로(210) 및 타임아웃 카운터(212)는 다음 값보다 적은 스큐를 보상하도록 동작가능하다.
(코어 클럭 신호의 주기) - (링크 클럭 신호의 주기)
동시에 발생하는 상승 에지들의 유효성을 검증함에 따라, 유효 에지 검출 회로(210)는 유효 에지 신호, 즉 edge_valid를 드라이브하고, 이 신호는 링크 클럭 영역 및 코어 클럭 영역 둘 다에서 동기화 펄스들을 발생시키는 동기 발생 회로(204)에 의해 수신된다. 동기 발생 회로(204)는 비율 신호를 edge_valid 신호 및 피드백 루프와 함께 이용하여 코어 및 링크 클럭 영역 둘 다에서 동기화 펄스들을 연속적으로 발생시킨다. 링크 클럭 영역에서 발생된 동기화 펄스들은 sync_l로 표시된다. 마찬가지로, 코어 클럭 영역에서 발생된 동기화 펄스들은 sync_c로 표시된다.
도 3은 동기화기 시스템(100)에서 사용되는 클럭들 간의 동시에 발생하는 상승 에지들의 표식을 제공하도록 동작가능한 위상 검출 회로(200)를 포함하는 회로부(300)의 일 실시예에 대한 블록 개략도를 도시한다. 위에서 논의한 바와 같이, 위상 검출 회로(200)는 위상 검출기 회로(206), 및 적어도 하나의 레지스터를 포함하는 지연 블록(208)을 포함한다. 일반적으로, 위상 검출기 회로(206)는 비분배된 core_clock(106)의 상승 및 하강 에지들을 이용하여 비분배된 link_clock(108)을 샘플링한다. 일 구현예에서는, 등가의 분배된 클럭 신호들(equivalent distributed clock signals)이 대신 이용될 수도 있다. 따라서, 예시적인 구현으로서, link_clock l(108')은 core_clock c(106')의 상승 에지에서 클로킹되는 적어도 하나의 제1 플립 플롭에 의해 샘플링된다. 예시된 바와 같이, 플립 플롭들(302 및 304)은 core_clock c(106')의 상승 에지를 이용하여 link_clock l(108')을 샘플링한다. 2개의 플립 플롭을 샘플링에 이용함으로써, 위상 검출기 회로(206)는 준안전성(metastability)을 줄일 수 있다. 플립 플롭(302)은 샘플링된 link_clock l(108') 신호를 pd_cr1_ff 신호로서 어서트하고, 이 신호는 플립 플롭(304)을 통하여 샘플링되어 pd_cr2_ff 신호로서 어서트된다. 플립 플롭(306)은 pd_cr2_ff 신호를 스테이징함으로써 타이밍을 유지하여 pd_cr3_ff 신호가 어서트되도록 하고 이 신호는 플립 플롭(308) 및 AND 게이트(310)에 드라이브된다. AND 게이트(310)는, 플립 플롭(308)에 의해 발생된 pd_cr4_ff 신호에 의해 공급되는, 반전된 제2 입력을 갖는다. AND 게이트(310)는 pd_cr3_ff 신호가 어서트되고 pd_cr4_ff 신호가 디어서트(deassert)될 때 cr_edge 신호를 어서트한다. 그러므로 cr_edge 신호는 제1 및 제2 클럭 신호들 간의 동시에 발생하는 상승 에지들을 나타내는 0에서 1로의 천이를 갖고 어서트된다. cr_edge 신호는 지연 레지스터 블록(208)에 드라이브되고, 이 지연 레지스터 블록은, 예시된 바와 같이, 일련의 플립 플롭들(312-322)을 포함하고, 이 플립 플롭들 각각은 유효 에지 검출기 회로(210)에 입력을 제공하는 탭을 갖는다. 구체적으로, 플립 플롭(312)은 cr_edge 신호를 수신하여 cr_edge_ff[0] 신호를 어서트하고, 이 cr_edge_ff[0] 신호는 플립 플롭(314) 및 유효 에지 검출기 회로(210)에 송신된다. 마찬가지로, 플립 플롭(314)은 cr_edge_ff[1] 신호를 어서트하고, 플립 플롭(316)은 cr_edge_ff[2] 신호를 어서트하고, 플립 플롭(318)은 cr_edge_ff[3] 신호를 어서트하고, 플립 플롭(320)은 cr_edge_ff[4] 신호를 어서트하고, 플립 플롭(322)은 cr_edge_ff[5] 신호를 어서트한다. 일 실시예에서, 어서트된 샘플링된 클럭 신호(즉, cr_edge)는 N+1회 레지스터될 수 있고, 여기서, 예를 들어, 5:4가 검출된 최대 비율이면 N+1은 6이다. 탭들은 레지스터들로부터 선택되고 아래에서 더 상세히 설명될 방식을 이용하는 유효 에지 검출기 회로(210)에 의해 구현된다.
마찬가지로, link_clock l(108')은 core_clock c(106')의 하강 에지에서 클로킹되는 적어도 하나의 제2 플립 플롭에 의해 샘플링된다. 예시된 바와 같이, 플립 플롭들(324 및 326)은 core_clock c(106')의 하강 에지를 이용하여 link_clock l(108')을 샘플링한다. 플립 플롭(324)은 샘플링된 link_clock l(108') 신호를 pd_cf1_ff 신호로서 어서트하고, 이 신호는 플립 플롭(326)에 의해 샘플링되어 pd_cf2_ff 신호로서 어서트된다. 플립 플롭(328)은 타이밍을 보증하기 위해 pd_cf2_ff 신호를 지연시켜 pd_cf3_ff 신호를 어서트하고 이 pd_cf3_ff 신호는 플립 플롭(330) 및 AND 게이트(332)에 의해 수신된다. 이 AND 게이트는 pd_cf3_ff 입력을 반전시키고 플립 플롭(330)으로부터 pd_cf4_ff 신호의 형태로 제2 입력 신호를 수신한다. AND 게이트(332)는 어서트된 논리 로우 pd_cf3_ff 신호 및 어서트된 논리 하이 pd_cr4_ff 신호를 검출함에 따라, 동시에 발생하는 상승 에지들을 나타내는 cf_edge 신호(즉, 제2 샘플링된 클럭 신호)를 어서트한다. 그러므로 제1 및 제2 클럭 신호들 간의 동시에 발생하는 상승 에지들의 발생을 나타내는 1에서 0으로의 천이를 갖는 cf_edge 신호가 어서트된다. 이 cf_edge 신호는 지연 레지스터 블록(208)에 전송되고, 이 지연 레지스터 블록은 예시된 바와 같이, 일련의 플립 플롭들(334-344)을 포함하고, 이 플립 플롭들 각각은 유효 에지 검출기 회로(210)에 입력을 제공하는 탭을 갖고, 여기서 플립 플롭들(334, 336, 338, 340, 342 및 344)은 각각 cf_edge_ff[0], cf_edge_ff[1], cf_edge_ff[2], cf_edge_ff[3], cf_edge_ff[4] 및 cf_edge_ff[5] 신호들을 어서트한다. 예시된 실시예에서, 위상 검출 회로(200)는 플립 플롭들을 이용하지만, 위상 검출 회로(200)는 래치, 지연선 등과 같은 다양한 디지털 논리 컴포넌트들로 실현될 수도 있음이 이해되어야 할 것이다. 더욱이, 위상 검출 회로(200)는 양의 논리와 관련하여 설명되어 있지만, 위상차를 결정하기 위해 음의 논리가 이용될 수도 있다. 또한 본 명세서에서의 논리는 동시에 발생하는 상승 에지들과 관련하여 설명되어 있지만, 본 특허 출원의 교시 내용은 동시에 발생하는 하강 에지들에도 적용될 수 있음이 이해되어야 할 것이다.
도 4는 도 3의 회로 부분(300)과 관련된 타이밍도(400)를 도시하는데, 여기 서는 link_clock 신호와 core_clock 신호 간에 5:4의 클럭 주파수 비율이 예시되어 있다. 사이클 카운트는 특정 타이밍 시퀀스에서 core_clock 사이클들의 회수를 나타낸다. 특히, 타이밍도(400)는 플립 플롭들(324-330), AND 게이트(332), 및 플립 플롭들(334 및 336)의 출력을 각각 pd_cf1_ff, pd_cf2_ff, pd_cf3_ff, pd_cf4_ff, cf_edge, cf_edge_ff[0], 및 cf_edge_ff[1]로 예시하고 있다. 또한, 유효 에지 검출기 회로(210)의 출력은 edge_valid로 표현되어 있다. 예시된 바와 같이, 신호들은 복수의 0 또는 복수의 1을 포함하는 논리 데이터 레벨들을 포함한다. 설명을 위하여, 위상 검출 회로(200)의 하강 에지 부분의 타이밍도만 예시되어 있다. 위상 검출 회로(200)의 상승 에지 부분도 유사한 동작(즉, cr_edge 신호의 발생 및 후속의 지연 레지스트레이션(delay registration))을 가짐이 이해되어야 할 것이다.
위에서 논의한 바와 같이, 플립 플롭(324)은 참조 번호들(402-410)에 의해 표시된 바와 같이 코어 클럭 신호(106')의 하강 에지를 이용하여 링크 클럭 신호(108')를 샘플링한다. 예시된 실시예에서, 이것은 [1001] 시퀀스의 논리 레벨들을 생성한다. 플립 플롭(326)은 코어 클럭 신호(106')의 하강 에지를 이용하여 pd_cf1_ff 신호를 또한 샘플링하기 때문에, pd_cf2_ff 신호의 레벨들이 1 사이클만큼 시프트된다. 플립 플롭(328)은 pd_cf2_ff 신호를 샘플링하고 그 신호를 반사이클(half-cycle)만큼 지연시킴으로써 pd_cf3_ff의 데이터를 pd_cf2_ff 신호의 데이터에 대하여 1 사이클의 1/2만큼 시프트한다. 플립 플롭(330)은 pd_cf3_ff를 샘플링하고 그 신호를 전사이클(full cycle)만큼 지연시킨다. 플립 플롭(330)의 pd_cf4_ff 신호의 데이터는 따라서 1 사이클만큼 시프트된 pd_cf3_ff 신호의 데이터이다. AND 게이트(332)는 pd_cf3_ff 신호 및 pd_cf4_ff 신호 양쪽 모두를 수신하고 1에서 0으로의 천이가 검출될 때, 즉, pd_cf3_ff 데이터가 논리 로우이고 pd_cf4_ff가 논리 하이로 어서트될 때 cf_edge 신호로서 1의 논리 레벨을 어서트한다. 예시된 실시예에서, 이 1에서 0으로의 천이 조건은 참조 번호 412 및 414에 의해 표시되어 있다.
동시에 발생하는 상승 에지들을 나타내는 검출된 천이들은 스큐 허용 오차의 모드 및 비율에 기초하여 유효 에지 회로(210)에 의해 유효성이 검증된다. 예시된 예에서 계속하여, cf_edge, cf_edge_ff[0], 및 cf_edge_ff[1] 신호들은 유효 에지 검출기 회로(210)로 전송된다. link_clock 신호 및 core_clock 신호 간에는 아무런 스큐도 존재하지 않고, 언급한 바와 같이, link_clock 신호와 core_clock 신호 간의 클럭 비율은 5:4이다. 그러므로, 아래에서 상세히 설명될, 현재 하강 에지 조건(current falling edge condition)을 검출함에 따라, 유효 에지 검출기 회로는 edge_valid 신호를 논리 하이로 어서트한다.
위에서 언급한 바와 같이, 유효 에지 검출기(210)는 4개의 동작 모드 중 임의의 하나에 대해 설정될 수 있다. Assume Start Stable 모드는 5:4 비율에 대해 (코어 주기/2 - 링크 주기/2) 또는 링크 주기의 1/8 미만의 스큐 허용 오차를 제공한다. 이 동작 모드에서는, 동시에 발생하는 상승 에지들은 참조 번호(416)에 의해 표시된 바와 같이 현재 하강 에지 조건에서 유효 검증되고, 이것은 다음의 논리와 관련된다:
~cf_edge & cf_edge_ff[0] & ~cf_edge_ff[1]
제2 Assume Start Stable 모드, 즉 Assume Start Stable 2 모드도 또한 5:4 비율에 대해 (코어 주기/2 - 링크 주기/2) 또는 링크 주기의 1/8 미만의 스큐 허용 오차를 제공한다. 이 동작 모드에서는, 동시에 발생하는 상승 에지들은 전술한 현재 하강 에지 조합이 2회 연속하여 검출될 때 유효성이 검증된다. 예를 들면, 현재 하강 에지 조건이 2개의 연속되는 사이클에서 검출됨으로써, 에일리어싱(aliasing)에 의해 유발되는 동시에 발생하는 에지들을 검출하게 될 위험이 최소화된다. Wait-for-Zero 모드는 5:4 비율에서 (코어 주기 - 링크 주기) 또는 링크 주기의 2/8 미만의 스큐 허용 오차를 제공한다. 이 동작 모드에서는, 유효 에지 신호(edge_valid)는 샘플링된 cr_edge 클럭 신호에서의 제로 크로싱 조건(zero crossing condition) 및 샘플링된 cf_edge 클럭 신호에서의 일정 하강 에지 조건(constant falling edge condition)을 검출하면 어서트된다. 제2 Wait-for-Zero 모드, 즉 Wait-for-Zero 2 모드도 또한 5:4 비율에서 (코어 주기 - 링크 주기) 또는 링크 주기의 2/8 미만의 스큐 허용 오차를 제공한다. 이 제2 Wait-for-Zero 모드에서, 유효 에지 검출기 회로는 샘플링된 cr_edge 클럭 신호에서의 제로 크로싱 조건 및 샘플링된 cf_edge 클럭 신호에서의 일정 하강 에지 조건을 검출한 후에 edge_valid 신호를 어서트한다. 이와 달리, edge_valid 신호는 이 모드에서 특정 시간 기간 후에 아무런 제로 크로싱도 검출되지 않을 경우 타임아웃 후에 발생될 수도 있다. 구체적으로, 일 실시예에서 timeout_count_ff[11:0] 신호를 포함하는 피드백 루프를 이용하여 타임아웃 카운터(212)(도 2에 도시됨)가 특정 시간 기간이 경과한 후에 타임아웃 신호를 어서트한다. 일단 타임아웃 기간이 발생하면, 유효 에지 검출기는 Assume Start Stable 2 모드로 시프트한다.
도 5a는 동기화 펄스 발생 회로(116)의 일부를 형성하는 회로 블록(500A)의 개략도를 도시한다. 위에서 논의한 바와 같이, cf_edge 신호는 위상 검출기 회로(206)로부터 적어도 하나의 지연 레지스터(208)로 드라이브되고, 이 지연 레지스터는 일 실시예에서 복수의 플립 플롭들(334-344)을 포함한다. 유효 에지 검출 회로(210)는 플립 플롭들(334-344)로부터 탭들을 수신하는 AND 게이트들(502-506)을 포함한다. AND 게이트(502)는 현재 하강 에지 조건을 검출하면 curr_cf_edge 신호를 어서트한다. AND 게이트(502)의 제1 입력은 플립 플롭(336)에 의해 제공된 반전된 cf_edge_ff[1] 신호이다. AND 게이트(502)의 제2 입력은 플립 플롭(334)에 의해 제공된 cf_edge_ff[0] 신호이고 제3 입력은 반전된 cf_edge 신호이다. 그러므로, 현재 하강 에지 조건을 검출하기 위한 논리는 다음과 같다:
~cf_edge_ff[1] & cf_edge_ff[0] & ~cf_edge
AND 게이트(504)는 5:4의 클럭 비율에 대해 이전 하강 에지 조건을 검출하면 prev_cf_edge_54를 어서트한다. AND 게이트(504)에 제공되는 제1 입력은 플립 플롭(344)으로부터의 반전된 cf_edge_ff[5] 신호이다. 제2 입력은 플립 플롭(342)으로부터의 cf_edge_ff[4] 신호이고 제3 입력은 플립 플롭(340)으로부터의 반전된 cf_edge_ff[3] 신호이다. 따라서, 5:4의 클럭 비율에 대해 이전 하강 에지 조건을 검출하기 위한 논리는 다음과 같다:
~cf_edge_ff[5] & cf_edge_ff[4] & ~cf_edge_ff[3]
AND 게이트(506)는 4:3의 클럭 비율에 대해 이전 하강 에지 조건을 검출하면 prev_cf_edge_43을 어서트한다. AND 게이트(506)에 제공되는 제1 입력은 플립 플롭(342)으로부터의 반전된 cf_edge_ff[4] 신호이다. 제2 입력은 플립 플롭(340)으로부터의 cf_edge_ff[3] 신호이고 제3 입력은 플립 플롭(338)으로부터의 반전된 cf_edge_ff[2] 신호이다. 따라서, 4:3의 클럭 비율에 대해 이전 하강 에지 조건을 검출하기 위한 논리는 다음과 같다:
~cf_edge_ff[4] & cf_edge_ff[3] & ~cf_edge_ff[2]
비율 신호의 제어하에 있는 멀티플렉서(MUX) 회로(508)는 prev_cf_edge_54 신호 및 prev_cf_edge_43 신호를 수신한다. 링크 클럭 영역과 코어 클럭 영역 간의 클럭 비율이 5:4이면, 비율 신호는 [10]으로 설정된다. 한편, 클럭 비율이 4:3이면, 비율 신호는 [01]로 설정된다. 비율 신호의 제어를 받아, MUX 회로(508)는 이상에서 논의된 이전 하강 에지 조건을 나타내는 prev_cf_edge 신호로서 어서트하기 위해 prev_cf_edge_54 신호 또는 prev_cf_edge_43 신호를 적절히 선택한다. 5:4 및 4:3 이외의 비율들은 AND 게이트 및 MUX 회로의 수를 증가시킴으로써 또, 비율 신호의 폭을 증가시킴으로써 수용될 수 있음이 이해되어야 할 것이다.
도 5b는 동기화 펄스 발생 회로(116)의 또 다른 부분을 형성하는 회로 블록(500B)의 개략도를 도시한다. 위에서 설명한 도 5a는 하강 에지 조건들과 관련하여 cf_edge 신호의 처리를 예시한 반면, 도 5b는 상승 에지 조건들과 관련하여 cr_edge 신호의 처리를 예시한다. 회로 블록(500B)은 플립 플롭들(312-320)을 포함하는 지연 레지스터(208)의 일부분을 포함한다. 게다가, 복수의 AND 게이트를 갖는 유효 에지 검출 회로(210)의 일부분이 회로 블록(500B)에 포함된다. 구체적으로, AND 게이트들(510-520)은 지연 레지스터(208)로부터의 탭들에 의해 제공된 신호들을 처리한다. 또한, MUX 회로들(522-524)은 AND 게이트들(510-520)의 대응하는 세그먼트들에 의해 발생된 신호들을 처리한다.
AND 게이트(510)는 현재 상승 에지 플러스 조건을 나타내는 curr_cr_plus 신호를 발생시킨다. cr_edge_ff[0] 신호는 AND 게이트(510)에 반전된 제1 입력을 제공한다. cr_edge 신호는 AND 게이트(510)에 제2 입력을 제공한다. 그러므로, 현재 상승 에지 플러스 조건을 검출하기 위한 논리는 다음과 같다:
~cr_edge_ff[0] & cr_edge
AND 게이트(512)는 반전된 cr_edge_ff[4] 신호와 cr_edge_ff[3] 신호를 AND 연산함으로써 5:4 클럭 비율에 대해 이전 상승 에지 플러스 조건을 나타내는 prev_cr_plus_54 신호를 어서트한다. 마찬가지로, AND 게이트(514)는 반전된 cr_edge_ff[3] 신호와 cr_edge_ff[2] 신호를 AND 연산함으로써 4:3 클럭 비율에 대해 이전 상승 에지 플러스 조건을 나타내는 prev_cr_plus_43 신호를 어서트한다. MUX 회로(522)는 비율 신호의 제어를 받아 클럭 비율에 따라서 prev_cr_plus_54 신호 또는 prev_cr_plus_43 신호를 적절히 선택한다.
AND 게이트(516)는 cr_edge_ff[0] 신호와 반전된 cr_edge 신호를 AND 연산함으로써 현재 상승 에지 마이너스 조건을 나타내는 curr_cr_minus 신호를 어서트한다. AND 게이트(518)는 cr_edge_ff[4] 신호와 반전된 cr_edge_ff[3] 신호를 AND 연산함으로써 5:4 비율에 대해 이전 상승 에지 마이너스 조건을 나타내는 prev_cr_minus_54 신호를 어서트한다. AND 게이트(520)는 cr_edge_ff[3] 신호와 반전된 cr_edge_ff[2] 신호를 AND 연산함으로써 4:3 비율에 대해 이전 상승 에지 마이너스 조건을 나타내는 prev_cr_minus_43 신호를 어서트한다. MUX 회로(524)는 비율 신호의 제어를 받아 클럭 비율에 따라서 prev_cr_minus_54 신호 또는 prev_cr_minus_43 신호를 적절히 선택한다.
도 5c는 유효 에지 검출 회로(210)의 또 다른 부분을 정의하는 회로 블록(500C)을 도시한다. 모드 신호의 제어하에 있는 MUX 회로(526)는 다음의 표에 의해 기술된 바와 같이 유효 에지 검출 회로(210)의 동작 모드를 결정한다.
[표 1] 모드 신호 및 동작 모드
모드 신호 [1:0] 선택된 동작 모드
00 Assume Start Stable
01 Assume Start Stable 2
10 Wait-for-Zero
11 Wait-for-Zero 2
Assume Start Stable 모드와 관련하여, 이 모드 신호가 [00]으로 설정될 때, curr_cf_edge 신호가 선택되어 edge_valid 신호로서 어서트된다. Assume Start Stable 모드에 대한 논리는 다음과 같다:
~cf_edge_ff[1] & cf_edge_ff[0] & ~cf_edge
Assume Start Stable 2 모드와 관련하여, 모드 신호가 [01]로 설정될 때, AND 게이트(528)는 curr_cf_edge 신호와 MUX 회로(508)에 의해 제공된 prev_cf_edge 신호를 AND 연산하여 assume_start_stable2 신호를 어서트하고, 이 신호는 다시 MUX 회로(526)에 의해 edge_valid 신호로서 어서트된다. Assume Start Stable 2 모드에서는, edge_valid 신호가 어서트되기 전에 현재 하강 에지 조건 및 이전 하강 에지 조건 양자 모두가 만족되어야 한다. 이것은 스큐가 2개의 샘플 간에 거의 변하지 않았음을 보증하고 따라서 에일리어싱을 방지한다. 예로서, 5:4 비율에 대해 Assume Start Stable 2 모드에 대한 논리는 다음과 같다:
(~cf_edge_ff[1] & cf_edge_ff[0] & ~cf_edge) &
(~cf_edge_ff[5] & cf_edge_ff[4] & ~cf_edge_ff[3])
Wait-for-Zero 모드와 관련하여, 어서트된 모드 신호가 [10]일 때, AND 게이트(530)는 AND 게이트(510)에 의해 제공된 curr_cr_plus신호와 MUX 회로(524)에 의해 제공된 prev_cr_minus 신호를 AND 연산하여 currp_prevm 신호를 어서트한다. AND 게이트(532)는 currp_prevm 신호와 assume_start_stable2 신호를 AND 연산하여 wait1 신호를 어서트하고, 이 신호는 OR 게이트(534)에 전송된다. OR 게이트(534)의 제2 입력은 AND 게이트들(536 및 538)에 의해 발생된다. 구체적으로, AND 게이트(536)는 AND 게이트(516)에 의해 제공된 curr_cr_minus 신호와 MUX 회로(522)에 의해 제공된 prev_cr_plus 신호를 AND 연산하여 currm_prevp 신호를 어서트한다. AND 게이트(538)는 assume_start_stable2 신호와 currm_prevp 신호를 AND 연산하여 wait2 신호를 어서트한다.
OR 게이트(534)는 wait1 신호와 wait2 신호를 OR 연산하여 wait_for_zero 신호를 어서트하고 이 신호는 Wait-for-Zero 모드에서 edge_valid 신호로서 어서트하기 위해 MUX 회로(526)에 의해 선택된다. Wait-for-Zero 모드는 상승 에지는 이전 샘플과 현재 샘플 간에 전방 또는 후방으로 점프하지만 하강 에지는 일정한 상태로 머물러 있을 때 발생하는 제로 크로싱 조건을 검출하면 edge_valid를 설정한다. 이해하다시피, 상승 에지의 전후방 점프는 AND 게이트들(530 및 536)과 관련된 논리에 의해 검출된다. 예로서, 5:4 비율에 대해 Wait-for-Zero 모드에 대한 논리는 다음과 같다:
{[(~cr_edge_ff[0] & cf_edge) & (cr_edge_ff[4] &
~cr_edge_ff[3])] & assume_start_stable2} OR
{[(cr_edge_ff[0] & ~cf_edge) & (~cr_edge_ff[4] &
cr_edge_ff[3])] & assume_start_stable2}
Wait-for-Zero 2 모드와 관련하여, 모드 신호가 [11]로 어서트될 때, AND 게이트(528)에 의해 제공된 assume_start_stable2 신호와 OR 게이트(534)에 의해 제공된 wait_for_zero 신호는 타임아웃 신호의 제어하에 동작하는 MUX 회로(540)로 제1 및 제2 입력들을 제공한다. MUX 회로(540)는 유효 에지 검출기 회로(210)가 도 3의 타임아웃 카운터(212)에 의해 결정된 소정의 타임아웃 기간 이후에 아무런 제로 크로싱도 검출되지 않으면 Wait-for-Zero 모드에서 Assume Start Stable 2 모드로 스위칭하도록 허가한다. 제로 크로싱 타임아웃 조건을 포함하는 이 동작 모드는 작은 오프셋이 존재하고 아무런 제로 크로싱도 발생하지 않을 만큼 스큐가 충분히 작을 때 특히 유용하다. 발생하지 않을 제로 크로싱을 무기한 기다리는 것과는 대조적으로, Wait-for-Zero 2 모드는 Assume Start Stable 2 모드로 스위칭한다.
도 6은 5:4 클럭 비율에 대해 링크 클럭 신호와 코어 클럭 신호 간의 상이한 스큐들을 예시하는 타이밍도(600)를 도시한다. 사이클 카운트는 특정 타이밍 시퀀스에서 core_clock 사이클들의 회수를 나타낸다. core_clock 신호(602)와 link_clock 신호(604) 간의 동시에 발생하는 상승 에지들은 각각 화살표(606 및 608)로 표시되어 있고, 이 경우 core_clock 신호와 link_clock 신호 간에는 스큐가 없다. 위에서 논의한 바와 같이, 본 명세서에서 설명된 동기화기 펄스 발생기 회로는 다양한 스큐를 보상하도록 동작가능하다. 예로서, core_clock 신호들(610-614)은 각각 +1.125 ns, +0.75 ns, 및 +0.375 ns의 스큐들을 나타내고, 화살표들(616-620)은 link_clock(604)의 상승 에지(608)와 관련하여 상승 에지들을 나타낸다. 마찬가지로, core_clock 신호들(622-626)은 각각 -0.375 ns, -0.75 ns, 및 -1.125 ns의 스큐들을 나타낸다. 이들 음의 스큐들에 대하여, core_clock들에서의 대응하는 상승 에지들은 화살표들(628-632)로 표현된다. 도 6에 도시된 스큐들은 예시적인 것이고 본 특허 출원의 교시 내용 범위 내에서 core_clock과 link_clock 간에 다른 스큐들이 존재할 수도 있음이 이해되어야 할 것이다.
도 7a는 도 6에 도시된 신호들의 상승 클럭 에지들과 관련된 상이한 스큐들을 더 예시하는 표(700)를 도시한다. 행들(610r-614r)은 core_clock 신호들(610-614)과 관련된 논리 레벨들 및 스큐 데이터를 표로서 정리한 것이다. 마찬가지로, 행(602r)은 core_clock 신호(602)과 관련된 데이터를 표로서 정리한 것이고 행들(622r-626r)은 core_clock 신호들(622-626)과 관련된 데이터를 표로서 정리한 것이다. 열들(702-716)은 특정 타이밍 시퀀스에서의 core_clock 사이클들의 사이클 카운트 및 수에 대응한다. "r"은 상승을 나타내고, "f"는 하강을 나타내고(도 7b 참조), "p1"은 플러스 1(+1) 스큐를 나타내고, "p2"는 플러스 2(+2) 스큐를 나타내고, "m1"은 마이너스 1(-1) 스큐를 나타내고, "m2"는 마이너스 2(-2) 스큐를 나타낸다. 플러스 스큐, 또는 양의 스큐란 정상적인 동시에 발생하는 상승 에지가 링크 클럭에서 먼저 발생하고, 이후에 코어 클럭 신호에서의 대응하는 상승 에지가 발생하는 조건으로서 정의된다. 마찬가지로, 마이너스 또는 음의 스큐는 코어 클럭이 링크 클럭보다 선행하는 것을 나타낸다. 예를 들면, 열(708)에서의 표시 3-rp1은 열(708)에 대한 사이클 카운트가 3이고 이 사이클 카운트에 대해서 상승 에지는 플러스 1 스큐임을 나타낸다. 마찬가지로, 열(710)에서의 표시 0-r0은 열(710)에 대한 사이클 카운트가 0이고 이 사이클 카운트에 대해서 상승 에지가 조정되어 있지 않음을 나타낸다. 유사한 방식으로, 열(712)에서의 표시 1-rm1은 열(712)에 대한 사이클 카운트가 1이고 이 사이클에 대해서 상승 에지가 마이너스 1 스큐임을 나타낸다. 열(718)은 주파수들의 특정 조합 및 관련 주파수 비율에 대해 특정 행과 관련된 스큐를 나노초로 나타낸다. 열(720)은 특정 행과 관련된 스큐를 링크 클럭을 기준으로 나타내고 열(722)은 링크 및 코어 주기들의 관점에서 스큐에 대한 일반식을 제공한다.
타원들은 샘플 에지 검출들의 위치들을 나타내고 밑줄은 동시에 발생하는 상승 에지들이 발생하는 사이클을 나타낸다. 예로서, 행(610r)과 관련하여, 논리 레벨 시퀀스 [10011001]은 core_clock(610)의 상승 에지를 이용하여 link_clock(604)을 샘플링함으로써 발생된 논리 레벨들에 대응한다. 이 시퀀스 내에서, 상승 샘플 링된 에지는 열들(706 및 708)에서 각각 논리 레벨들의 타원에 의해 표시된 바와 같이 사이클(2 및 3)에서 발생하는 0에서 1로의 천이에서 발생한다. 밑줄은 상승 에지가 사이클(3)에서(열(708)에서) 발생하는 것을 나타낸다.
도 7b는 도 6에 도시된 신호들의 하강 클럭 에지들과 관련된 상이한 스큐들을 더 예시하는 표(750)를 도시한다. 도 7a의 행들(610r-614r)과 마찬가지로, 행들(610f-614f)은 core_clock 신호들(610-614)와 관련된 논리 레벨들 및 스큐 데이터를 표로서 정리한 것들이다. 열들(752-766)은 특정 타이밍 시퀀스에서의 core_clock 사이클들의 사이클 카운트 및 수에 대응한다. 다시, 열(768)은 주파수들의 특정 조합 및 관련 주파수 비율에 대해 특정 행과 관련된 스큐를 나노초로 나타낸다. 열(770)은 특정 행과 관련된 스큐를 링크 클럭을 기준으로 나타내고 열(772)은 링크 및 코어 클럭 주기들의 관점에서 스큐에 대한 일반식을 제공한다. 타원들은 샘플 에지 검출들의 위치들을 나타내고 밑줄은 동시에 발생하는 하강 에지들이 발생하는 사이클을 나타낸다. 예로서, 행(622f)의 레벨들, [X0X1X0X1]은 core_clock(622)의 하강 에지를 이용하여 샘플링되는 link_clock(604)을 나타낸다. X 표식은 무효 사이클의 발생을 나타낸다. 동시에 발생하는 에지들은 원으로 둘러싸인 1에서 0으로의 천이에 의해 표시된 바와 같이 사이클 0에서 검출된다.
도 8은 유효 검증 회로의 동작 모드들과 관련하여 상승 및 하강 클럭 에지들과 관련된 상이한 스큐들을 예시하는 표(800)를 도시한다. 행들(602, 610-614, 및 622-626)은 core_clock들(602, 610-614, 및 622-626)과 관련된 논리 레벨들 및 스큐 데이터의 일부분을 나타낸다. 열들(708-714)은 도 7a에 제시된 바와 같이 상승 core_clock 에지들에서 샘플링된 링크 클럭 레벨들을 나타내고 열들(756-762)은 도 7b에 제시된 바와 같이 하강 core_clock 에지들에서 샘플링된 링크 클럭 레벨들을 나타낸다. 열(802)은 Wait-for-Zero(WFZ) 모드 및 Wait-for-Zero 2(WFZ2) 모드가 어느 스큐들에 대해 적당한지를 나타낸다. 열(804)은 Assume Start Stable(SS) 모드 및 Assume Start Stable 2(SS2) 모드가 어느 스큐들에 대해 적당한지를 나타낸다. 열(806)은 주파수들 및 관련 주파수 비율의 특정 조합에 대해 특정 행과 관련된 스큐를 나노초로 나타낸다. 열(808)은 특정 행과 관련된 스큐를 링크 클럭을 기준으로 나타내고, 열(810)은 링크 및 코어 클럭 주기들의 관점에서 스큐에 대한 일반식을 제공한다.
예시된 표의 포맷에서, 참조 번호 812는 Wait-for-Zero 모드 또는 Wait-for-Zero 2 모드에서 검출될 수 있는 제로 크로싱 조건을 도시한다. 상기하다시피, 제로 크로싱 조건은, 상승 에지가 이전 샘플과 현재 샘플 간에 전방 또는 후방으로 점프하지만 하강 에지는 일정한 상태로 머물러 있을 때 발생한다. 참조 번호 812와 관련하여, 상승 에지는 0과 m1 간에 점프하고 있지만 하강 에지는 일정한 상태로 머물러 있다. 참조 번호 814는 Assume Start Stable 모드 또는 Assume Start Stable 2 모드에서 검출될 수 있는 현재 하강 에지 조건을 도시한다. 상기하다시피, 현재 하강 에지 조건은 그 주위에 아무런 다른 하강 에지도 없는 클린 하강 에지(clean falling edge)의 검출에 의해 예시된다.
더욱이, 당업자라면 여기까지를 참조하여 특히, 도 5a-5c에 도시된 다양한 MUX 구성들을 참조하여, Assume Start Stable 및 Assume Start Stable 2 모드들에 서, 본 발명의 실시예는 위상 검출을 하는 동안 제1 클럭 신호만의 하강 에지 샘플링으로 동작가능하므로, cr_edge 신호의 발생 및 전달을 요하지 않는다는 것이 이해될 것이다. 게다가, 예시된 위상 검출 실시예에서, 링크 클럭 신호(즉, 고속 클럭)가 코어 클럭 신호(즉, 저속 클럭)를 이용하여 샘플링되기는 하지만, 클럭 샘플링은 그 역으로 수행될 수도 있음은, 즉 본 발명의 목적 상 저속 클럭 신호가 고속 클럭 신호를 이용하여 샘플링될 수도 있음이 명백할 것이다. 명백히, 그러한 실시예에서는 논리 뿐만 아니라 신호 레벨들 및 에지들(즉, 하강/상승 에지들, 논리 하이 및 로우 등과 관련하여)에서 수반하는 변경들, 즉, 필요한 변경을 가하는 것이 요구될 것이 명백하다.
도 9는 동기 회로부(900), 링크 동기 발생기 회로, 즉, 제1 동기 발생기(902), 및 코어 동기 발생기 회로, 즉, 제2 동기 발생기(904)를 포함하는 동기 발생 회로(204)의 일 실시예를 도시한다. 동기 회로부(900)는 edge_valid 신호를 수신하고, 실질적으로 동시에 발생하는 상승 에지들을 중심으로 하는 start_syncs_h_ff 신호, 즉 동기 개시 신호(start sync signal)를 발생시킨다. 더 구체적으로는, edge_valid 신호는 동기 발생 상태 머신(906)에 의해 수신되고 이 동기 발생 상태 머신은 사이클 카운트를 나타내는 상태 신호들의 세트를 발생시킨다. 일 실시예에서, 상태 신호는 state_ff[2:0] 신호이다. 각각의 상태 신호는 플립 플롭(908)에 의해 수신되고, 이 플립 플롭은 state_ff 신호를 어서트하며, 이 state_ff 신호는 동기 발생 상태 머신(906)으로 피드백됨으로써 동기 발생 상태 머신(906)이 그것의 모든 상태들을 런 스루(run through)할 수 있게 된다. state_ff 신호는 또한 동기 개시 논리 회로(start sync logic circuit)(910)에도 제공되는데, 이 동기 개시 논리 회로는 start_syncs 신호, 즉 초기 동기 개시 신호(initial start sync signal)를 발생시키기 위하여 비율 신호를 수신한다. 플립 플롭(912)은 start_syncs 신호를 한 사이클만큼 지연시킨 후, start_syncs_ff 신호를 플립 플롭(914)에 전송하고, 이 플립 플롭(914)은 start_syncs_ff 신호를 1 사이클의 1/2만큼 시프트하여 실질적으로 동시에 발생하는 상승 에지들을 중심으로 하는 start_syncs_h_ff 신호를 어서트하기 위하여, start_syncs_ff 신호를 core_clock 신호의 하강 에지를 이용하여 샘플링한다.
위에서 언급한 바와 같이, start_syncs_h_ff 신호는 플립 플롭(916), 코어 동기 발생기(918), 및 플립 플롭들(920-926)을 포함하는 코어 동기 발생 회로(904)로 전송된다. 처음에, 플립 플롭(916)은 start_syncs_h_ff 신호를 수신하여, 그 start_syncs_h_ff 신호를 1 사이클 동안 대기시킨 후, start_core_sync_ff 신호를 어서트하며, 이 start_core_sync_ff 신호는 코어 동기 발생기(918)에 의해 수신된다. 이 start_core_sync_ff 신호는 코어 동기 발생기(918)를 시동하고, 이 코어 동기 발생기는 비율 신호에 기초하여 core_sync_ff 신호를 생성하며, 이 core_sync_ff 신호는 플립 플롭들(922-926)을 통하여 스테이징되어 코어 클럭 영역에서 sync_c 펄스를 생성하게 된다. 예시된 바와 같이, core_sync_ff 신호는 코어 동기 발생기로 리턴된다. 게다가, 코어 동기 발생기는 플립 플롭(920)에 의해 샘플링되고 코어 동기 발생기(918)로 리턴되는 core_cycle_ff[2:0] 신호를 어서트한다. core_cycle_ff 신호 및 core_sync_ff 신호에 대해 제공된 피드백 루프들은 코어 동기 발생기(918)의 펄스 발생 성능을 유지하는 데 도움이 된다.
또한, start_syncs_h_ff 신호는 링크 클럭 영역에 배치되어 있는 링크 동기 발생 회로(902)로 전송된다. 링크 동기 발생 회로(902)의 회로는 코어 동기 발생 회로(904)의 회로와 유사하다. 플립 플롭(928)이 start_syncs_h_ff 신호를 수신하여 start_link_sync_ff 신호를 어서트하고, 이 신호는 링크 동기 발생기(930)에 의해 수신된다. 비율 신호는 링크 동기 발생기(930)에 제공되기 전에 플립 플롭들(932 및 934)에 의해 link_clock 신호를 이용하여 클로킹된다. 링크 동기 발생기(930)는 link_sync_ff 신호를 생성하고, 이 신호는 플립 플롭(938)에 의해 link_clock을 이용하여 샘플링된 후, 플립 플롭들(940-944)에 의해 link_clock을 이용하여 샘플링된다. 결과로 발생되는 sync_l 신호는 링크 클럭 영역에 대한 동기화 펄스를 포함한다. link_cycle_ff 신호와 관련된 플립 플롭(936) 및 link_sync_ff와 관련된 플립 플롭(938)은 링크 동기 발생기(930)에 대하여 피드백 루프를 제공한다.
당업자라면 도 9에 도시된 출력단 플립 플롭 구성, 즉 sync_c의 경로 내의 플립 플롭들(924 및 926) 및 sync_l의 경로 내의 플립 플롭들(940, 942 및 944)은 다양한 변형이 가능하며, 실제 설계 구현에 따라서 일 실시예에서는 각각의 영역의 지연/분배 트리의 일부로서 제공될 수 있다는 것을 인식할 것이다.
도 10은 도 9의 동기 발생 회로(204)와 관련된 타이밍도(1000)를 도시한다. 다시, link_clock 신호와 core_clock 신호 간에 5:4의 클럭 주파수 비율이 예시된다. 사이클 카운트는 특정 타이밍 시퀀스에서 core_clock 사이클들의 회수를 나타낸다. 특히, 타이밍도(1000)는 edge_valid 신호가 동기 발생 상태 머신(906)에 의해 수신되고, 이 동기 발생 상태 머신은 링크 및 코어 클럭 영역들에서 적절한 동기 펄스들을 발생시키기 위하여 상태 카운트를 발생시키는 것을 예시한다. 비율 신호에 기초하여, 동기 발생 상태 머신은 0에서 최대값(예시된 실시예에서는 state_ff[2:0]로 인하여 최대값이 7이다)까지 카운트한다. (도 9의) 동기 개시 논리 회로(910)는 state_ff[2:0]가 4(이것은 사이클 3, 즉, 동시에 발생하는 상승 에지들 전의 사이클임)일 때 start_syncs_ff가 어서트되도록 start_syncs 신호를 발생시킨다. start_syncs_ff 신호는 플립 플롭(914)에 의해 1 사이클의 1/2만큼 지연된다. 이 결과로 실질적으로 동시에 발생하는 상승 에지들을 중심으로 하는 start_syncs_h_ff 신호가 발생된다. 코어 동기 회로(904)와 관련하여, start_syncs_h_ff 신호는 플립 플롭(916)에 의해 1/2 사이클만큼 더 지연된다. start_core_sync_ff 신호는 core_cycle_ff 신호의 발생을 개시하고, 이 core_cycle_ff 신호는 core_sync_ff 신호의 발생을 개시하고, 이 core_sync_ff 신호는 다시 core_cycle_ff 신호의 발생을 개시하고, 등등이다. 도 9와 관련하여 앞에서 설명한 바와 같이, core_sync_ff 신호는 sync_c 신호로서 제공되도록 적절히 스테이징된다. 마찬가지로, 링크 동기 회로(902)와 관련하여, start_syncs_h_ff 신호는 플립 플롭(928)에 의해 1/2 사이클만큼 지연된다. 그 후, start_link_sync_ff 신호는 link_cycle_ff 신호의 발생을 개시하고, 이 link_cycle_ff 신호는 link_sync_ff 신호의 발생을 개시하며, 이 link_sync_ff 신호는 다시 link_cycle_ff 신호의 발생을 개시하고, 등등이다. 다시, 도 9와 관련하여 앞에서 설명한 바와 같이, link_sync_ff 신호는 sync_l 신호로서 제공되도록 플립 플롭들(940-944)을 통하여 적절히 스테이징된다.
도 11은 동기화기 펄스 발생 방법의 일 실시예를 도시한다. 블록(1100)에서, 제1 및 제2 클럭 신호의 동시에 발생하는 상승 에지들을 결정하기 위하여 제1 클럭 신호가 제2 클럭 신호를 이용하여 샘플링된다. 블록(1102)에서, 동시에 발생하는 상승 에지들은 제1 및 제2 클럭 신호 간의 스큐 허용 오차에 기초하여 유효성이 검증된다. 블록(1104)에서는, 유효성이 검증된 동시에 발생하는 상승 에지들을 나타내는 유효 에지 신호가 발생된다. 이 유효 에지 신호는 동시에 발생하는 에지들, 예컨대, Assume Start Stable 또는 Assume Start Stable 2 모드들을 검출하거나, 또는 제로 크로싱들, 예컨대, Wait-for-Zero 또는 Wait-for-Zero 2 모드들을 검출하여 클럭 신호 에일리어싱에 의해 유발될 수 있는 동시에 발생하는 에지들을 제거시킴으로서 검증될 수 있다. 그러므로, 몇몇 동작 모드들은 적절한 클럭 비율들에 기초하여 구성 가능한 방식으로 보다 큰 스큐 허용 오차를 제공한다. 블록(1106)에서는, 유효 에지 신호에 응답하여, 제1 클럭 영역에서 동기화 펄스들이 발생되고 제2 클럭 영역에서 동기화 펄스들이 발생된다.
도 12는 이상에서, 특히, 도 2 및 3과 관련하여 설명한 회로에 의해 동작가능한 위상 검출 방법의 일 실시예를 도시한다. 블록(1200)에서, 제1 클럭 신호는 제2 클럭 신호의 상승 에지를 이용하여 샘플링되어, 제1 및 제2 클럭 신호들에서 동시에 발생하는 상승 에지들을 나타내는 0에서 1로의 천이를 갖는 제1 샘플링된 클럭 신호를 어서트하게 된다. 일 실시예에서, 제1 샘플링된 클럭 신호는 제1 클럭 신호와 제2 클럭 신호 간에 동시에 발생하는 에지들의 발생 전에 어서트된다. 논리는 동시에 발생하는 상승 또는 동시에 발생하는 하강 에지들과 관련하여 구성될 수 있음이 이해되어야 할 것이다. 블록(1202)에서, 제1 클럭 신호는 제2 클럭 신호의 하강 에지를 이용하여 샘플링되어 그 클럭 신호들에서 동시에 발생하는 상승 에지들을 나타내는 1에서 0으로의 천이를 갖는 제2 샘플링된 클럭 신호를 어서트하게 된다. 제1 샘플링된 클럭 신호와 마찬가지로, 제2 샘플링된 클럭 신호도 제1 클럭 신호와 제2 클럭 신호 간에 동시에 발생하는 에지들의 발생 전에 어서트될 수 있다. 블록(1200)과 관련하여 언급한 바와 같이, 본 방법은 동시에 발생하는 상승 또는 동시에 발생하는 하강 에지들과 관련하여 실시될 수 있다. 따라서, 이 실시예에서 동기화기 펄스 발생기는 저속 클럭 영역에서 동작하는 논리를 이용하여 2개의 클럭들 간에 동시에 발생하는 에지들을 검출함으로써, 보다 양호한 타이밍을 제공한다. 게다가, 또 다른 실시예로서, 본 발명의 방법은 이상에서 언급한 바와 같이 특정 모드들에서 제2 샘플링된 클럭 신호만을 이용하여 실시될 수도 있다.
도 13은 동기 발생 방법의 일 실시예를 도시한다. 블록(1300)에서는, 동시에 발생하는 에지들을 나타내는 유효 에지 신호 및 비율에 응답하여, 실질적으로 제1 및 제2 클럭 신호들 간에 동시에 발생하는 상승/하강 에지들을 중심으로 하는 동기 개시 신호(start sync pulse)가 발생된다. 블록(1302)에서는, 동기 개시 신호에 응답하여, 제1 클럭 영역에서 제1 동기 펄스가 어서트된다. 블록 1304에서는, 동기 개시 신호에 응답하여 제2 클럭 영역에서 제2 동기화 펄스가 어서트됨으로써 제1 및 제2 동기화 펄스들이 실질적으로 동시에 어서트된다. 따라서, 본 명세서에서 설명한 시스템들 및 방법들은 동기 펄스들을 생성하지 않는 일반 PLL들로부터 스큐 내성이 있는 고속 동기 펄스들의 발생을 가능하게 한다. 게다가, 본 명세서에서 설명한 시스템들 및 방법들은 동기화기 펄스 발생기가 처음으로 동시에 발생하는 에지들을 검출했고 그에 따라서 동기 펄스들을 발생시키기 시작한 후에도 클럭들 간의 스큐가 드리프트하도록 허용한다(즉, 드리프트 내성(drift tolerance)).
도 14a는 동기 펄스 발생기의 일 실시예와 관련된 또 다른 타이밍도(1400)의 일부분을 도시하는데, 여기서는 link_clock 신호와 core_clock 신호 간에 4:3의 클럭 주파수 비율이 예시되어 있다. 사이클 카운트는 특정 타이밍 시퀀스에서 core_clock 사이클들의 회수를 나타낸다. 특히, 타이밍도(1400)는 플립 플롭들(324-330), AND 게이트(332), 및 플립 플롭들(334 및 336)(도 3에 도시됨)의 출력을 각각 pd_cf1_ff, pd_cf2_ff, pd_cf3_ff, pd_cf4_ff, cf_edge, cf_edge_ff[0], 및 cd_edge_ff[1]로 예시하고 있다. 처음에, link_clock은 예를 들어 참조 번호들 (1402, 1404, 및 1406)에 의해 표시된 바와 같이 core_clock의 하강 에지들에서 샘플링된다. 1에서 0으로의 천이들은 참조 번호들(1408, 1410, 및 1412)에 의해 표시된 바와 같이 사이클(2) 동안에 검출된다는 것을 주목해야 한다. 또한, 예시된 link_core와 core_clock 간에는 아무런 스큐도 존재하지 않기 때문에, 시스템은 Assume Start Stable 모드에 있고, 여기서는 참조 번호(1414)에 의해 표시된 바와 같이 논리 조합 {~cf_edge & cf_edge_ff[0] & ~cf_edge_ff[1]}에 대응하는 하강 에지 조합이 검출된다.
도 14b는 도 14a에 제시된 타이밍도(1400)가 진행된 타이밍도(1450)를 도시한다. 이 타이밍도에서는, 유효 에지 검출 회로(210), 동기 발생 상태 머신(906), 동기 개시 논리 회로(910), 플립 플롭(912), 및 플립 플롭(914)의 출력이 각각 edge_valid, state_ff[2:0], start_syncs_ff, 및 start_syncs_h_ff로서 도시되어 있다. 또한, 코어 동기 회로(904)와 관련하여, 플립 플롭(916), 플립 플롭(920), 및 플립 플롭(922)의 출력이 각각 start_core_sync_ff, core_cycle_ff, 및 core_sync_ff로서 도시되어 있다. 마찬가지로, 링크 동기 회로(902)와 관련하여, 플립 플롭(928), 플립 플롭(936), 및 플립 플롭(938)의 출력이 각각 start_link_sync_ff, link_cycle_ff, 및 link_sync_ff로서 도시되어 있다. 따라서, 본 명세서에서 설명한 동기화기 펄스 발생기는 5:4 이외의 클럭 영역 비율들을 포함하는, 임의의 N:M 클럭 영역 비율들에 적용될 수 있다.
이상에서는 본 발명을 특정 실시예들과 관련하여 특별히 설명하였지만, 도시되고 설명된 발명의 형태들은 예시적인 실시예로서만 취급되어야 함이 이해되어야 할 것이다. 첨부된 청구항들에 의해 정의된 발명의 사상 및 범위를 벗어나지 않고 다양한 변경, 대체 및 변형들이 실현될 수 있다.
본 발명의 시스템 및 방법에 의하면, 동기 펄스들을 생성하지 않는 일반 PLL들로부터 스큐 내성이 있는 고속 동기 펄스들이 발생될 수 있다. 또한, 본 발명의 시스템 및 방법에 의하면, 동기화기 펄스 발생기가 처음에 동시에 발생하는 에지들을 검출한 후 그에 따라서 동기 펄스들을 발생시키기 시작한 이후에 클럭들 간의 스큐가 드리프트되는 경우에도 동작할 수 있다. 즉, 동기 펄스 발생이 드리프트 내성을 갖는다.

Claims (10)

  1. 제1 클럭 신호와 제2 클럭 신호로 동작하는 위상 검출기 - 상기 제1 및 제2 클럭 신호들은 N개의 제1 클럭 사이클 대 M개의 제2 클럭 사이클의 비율을 갖고, N/M ≥ 1임 - 로서,
    상기 제2 클럭 신호의 상승 에지를 이용하여 상기 제1 클럭 신호를 샘플링하도록 동작가능함으로써, 상기 제1 및 제2 클럭 신호들에서 동시에 발생하는 상승 에지들(coincident rising edges)을 나타내는 0에서 1로의 천이(zero-to-one transition)를 갖는 제1 샘플링된 클럭 신호를 어서트(assert)하도록 동작하는 적어도 하나의 제1 플립 플롭; 및
    상기 제2 클럭 신호의 하강 에지를 이용하여 상기 제1 클럭 신호를 샘플링하도록 동작함으로써, 상기 제1 및 제2 클럭 신호들에서 동시에 발생하는 상승 에지들을 나타내는 1에서 0으로의 천이(one-to-zero transition)를 갖는 제2 샘플링된 클럭 신호를 어서트하도록 동작가능한 적어도 하나의 제2 플립 플롭
    을 포함하고,
    상기 제1 및 제2 샘플링된 클럭 신호들은, 상기 제1 및 제2 클럭 신호들 간의 스큐 허용 오차(skew tolerance)에 기초하여 상기 동시에 발생하는 상승 에지들의 유효성을 검증(validate)하고 그에 응답하여 유효 에지 신호를 발생시키기 위한 유효 검증 회로(validation circuitry)에 전송되도록 동작가능한,
    위상 검출기.
  2. 제1항에 있어서, 상기 적어도 하나의 제1 플립 플롭은 상기 제2 클럭 신호의 상승 에지를 이용하여 상기 제1 클럭 신호를 샘플링하도록 동작가능한 2개의 플립 플롭들을 포함하는 위상 검출기.
  3. 제1항 또는 제2항에 있어서, 상기 적어도 하나의 제2 플립 플롭은 상기 제2 클럭 신호의 하강 에지를 이용하여 상기 제1 클럭 신호를 샘플링하도록 동작가능한 2개의 플립 플롭들을 포함하는 위상 검출기.
  4. 제1항 또는 제2항에 있어서, 상기 제1 및 제2 샘플링된 클럭 신호들 각각은 지연 레지스터부를 통하여 스테이징(stage)되도록 동작가능한 위상 검출기.
  5. 삭제
  6. 제1 클럭 신호 및 제2 클럭 신호로 동작하는 위상 검출 방법 - 상기 제1 및 제2 클럭 신호들은 N개의 제1 클럭 사이클 대 M개의 제2 클럭 사이클의 비율을 갖고, N/M ≥ 1임 - 로서,
    상기 제2 클럭 신호의 상승 에지를 이용하여 상기 제1 클럭 신호를 샘플링함으로써 상기 제1 및 제2 클럭 신호들에서 동시에 발생하는 상승 에지들을 나타내는 0에서 1로의 천이를 갖는 제1 샘플링된 클럭 신호를 어서트하는 단계;
    상기 제2 클럭 신호의 하강 에지를 이용하여 상기 제1 클럭 신호를 샘플링함으로써 상기 제1 및 제2 클럭 신호들에서 동시에 발생하는 상승 에지들을 나타내는 1에서 0으로의 천이를 갖는 제2 샘플링된 클럭 신호를 어서트하는 단계; 및
    동시에 발생하는 상승 에지들을 나타내는 상기 제1 및 제2 샘플링된 클럭 신호들 중 적어도 하나를, 상기 제1 및 제2 클럭 신호들 간의 스큐 허용 오차에 기초하여 상기 동시에 발생하는 상승 에지들의 유효성을 검증하고 그에 응답하여 유효 에지 신호를 발생시키기 위한 유효 검증 회로에 전송하는 단계
    를 포함하는 위상 검출 방법.
  7. 제6항에 있어서, 상기 제2 클럭 신호의 상승 에지를 이용하여 상기 제1 클럭 신호를 샘플링하는 동작은 코어 클럭 신호(core clock signal)의 상승 에지를 이용하여 링크 클럭 신호(link clock signal)를 샘플링하는 것을 포함하는 위상 검출 방법.
  8. 제6항에 있어서, 상기 제2 클럭 신호의 하강 에지를 이용하여 상기 제1 클럭 신호를 샘플링하는 동작은 코어 클럭 신호의 하강 에지를 이용하여 링크 클럭 신호를 샘플링하는 것을 포함하는, 위상 검출 방법.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서,
    적어도 하나의 지연 레지스터를 통하여 상기 제1 및 제2 샘플링된 클럭 신호들 각각을 스테이징하는 동작을 더 포함하는 위상 검출 방법.
  10. 삭제
KR1020050061808A 2004-07-23 2005-07-08 동기 펄스 발생기에서의 위상 검출 KR101169972B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/898,693 US7119582B2 (en) 2004-07-23 2004-07-23 Phase detection in a sync pulse generator
US10/898,693 2004-07-23

Publications (2)

Publication Number Publication Date
KR20060050001A KR20060050001A (ko) 2006-05-19
KR101169972B1 true KR101169972B1 (ko) 2012-08-06

Family

ID=35656474

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050061808A KR101169972B1 (ko) 2004-07-23 2005-07-08 동기 펄스 발생기에서의 위상 검출

Country Status (2)

Country Link
US (1) US7119582B2 (ko)
KR (1) KR101169972B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382847B2 (en) * 2004-07-23 2008-06-03 Hewlett-Packard Development Company, L.P. Programmable sync pulse generator
US8806035B2 (en) * 2005-05-12 2014-08-12 Hewlett-Packard Development Company, L.P. Transfer of control in digital content access sessions
KR101215760B1 (ko) * 2008-08-01 2012-12-26 가부시키가이샤 어드밴티스트 시간 측정 회로, 시간 측정 방법, 이들을 이용한 시간 디지털 변환기 및 시험 장치
US8826062B2 (en) 2011-05-23 2014-09-02 Intel Mobile Communications GmbH Apparatus for synchronizing a data handover between a first clock domain and a second clock domain through phase synchronization
US8918666B2 (en) 2011-05-23 2014-12-23 Intel Mobile Communications GmbH Apparatus for synchronizing a data handover between a first and second clock domain through FIFO buffering
CN103713194B (zh) * 2012-10-08 2016-08-03 富士通株式会社 一种用于时钟恢复的相位检测方法和装置
CN103809025B (zh) * 2012-11-15 2016-06-08 上海船舶运输科学研究所 船舶发电机组并网相位差检测方法
US11989148B2 (en) * 2020-12-30 2024-05-21 Stmicroelectronics International N.V. Data bridge for interfacing source synchronous datapaths with unknown clock phases
CN114185397B (zh) * 2022-02-15 2022-05-17 深圳市爱普特微电子有限公司 跨时钟域数据传输电路及方法
CN114491519B (zh) * 2022-04-01 2022-06-21 北京智芯微电子科技有限公司 一种检测信号的电路、方法及芯片

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278123A (ja) 1999-03-19 2000-10-06 Fujitsu Quantum Device Kk 誤差抑制位相比較回路及びこれを用いたpll回路

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347559A (en) 1992-12-30 1994-09-13 Digital Equipment Corporation Apparatus and method of data transfer between systems using different clocks
US5721886A (en) 1995-11-30 1998-02-24 Ncr Corporation Synchronizer circuit which controls switching of clocks based upon synchronicity, asynchronicity, or change in frequency
US6084934A (en) 1997-03-06 2000-07-04 International Business Machines Corporation Natural throttling of data transfer across asynchronous boundaries
US5920213A (en) 1997-03-28 1999-07-06 Cypress Semiconductor Corp. Pulse discriminating clock synchronizer for logic derived clock signals for a programmable device
US6084447A (en) 1997-03-28 2000-07-04 Cypress Semiconductor Corp. Pulse discriminating clock synchronizer for logic derived clock signals with synchronous clock suspension capability for a programmable device
US5923195A (en) 1997-03-28 1999-07-13 Cypress Semiconductor Corp. Fast clock generator and clock synchronizer for logic derived clock signals with synchronous clock suspension capability for a programmable device
US6175603B1 (en) 1997-08-07 2001-01-16 Cisco Technology, Inc. System for managing signals in different clock domains and a programmable digital filter
GB9720811D0 (en) 1997-09-30 1997-12-03 Sgs Thomson Microelectronics Dual port buffer
US6075832A (en) 1997-10-07 2000-06-13 Intel Corporation Method and apparatus for deskewing clock signals
US6037809A (en) 1998-06-02 2000-03-14 General Electric Company Apparatus and method for a high frequency clocked comparator and apparatus for multi-phase programmable clock generator
US6166963A (en) 1998-09-17 2000-12-26 National Semiconductor Corporation Dual port memory with synchronized read and write pointers
US6369624B1 (en) 1998-11-03 2002-04-09 Altera Corporation Programmable phase shift circuitry
US6448820B1 (en) 1998-11-04 2002-09-10 Altera Corporation Fast locking phase frequency detector
US6114915A (en) 1998-11-05 2000-09-05 Altera Corporation Programmable wide-range frequency synthesizer
JP2001051747A (ja) 1999-08-12 2001-02-23 Fujitsu Ltd クロック制御回路
JP3919990B2 (ja) 1999-11-10 2007-05-30 富士通株式会社 タイミング同期システム、そのシステムに用いられる装置およびタイミング同期方法
US6718477B1 (en) 2000-03-06 2004-04-06 William C. Plants Delay locked loop for an FPGA architecture
DE10048590B4 (de) 2000-09-30 2008-02-28 Infineon Technologies Ag Phasenregelkreis
US20020199124A1 (en) 2001-06-22 2002-12-26 Adkisson Richard W. System and method for synchronizing data transfer across a clock domain boundary
US6759881B2 (en) 2002-03-22 2004-07-06 Rambus Inc. System with phase jumping locked loop circuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278123A (ja) 1999-03-19 2000-10-06 Fujitsu Quantum Device Kk 誤差抑制位相比較回路及びこれを用いたpll回路

Also Published As

Publication number Publication date
US7119582B2 (en) 2006-10-10
US20060017472A1 (en) 2006-01-26
KR20060050001A (ko) 2006-05-19

Similar Documents

Publication Publication Date Title
KR101169972B1 (ko) 동기 펄스 발생기에서의 위상 검출
US7002376B2 (en) Phase detector for a programmable clock synchronizer
US6744285B2 (en) Method and apparatus for synchronously transferring data across multiple clock domains
US20020199124A1 (en) System and method for synchronizing data transfer across a clock domain boundary
US5115455A (en) Method and apparatus for stabilized data transmission
US8023605B2 (en) Oversampling circuit and oversampling method
KR20070093322A (ko) 지연동기회로 및 반도체 집적회로장치
KR100887238B1 (ko) 파이프라인 시스템의 동적 클럭 제어 장치 및 방법
US20020196886A1 (en) SYNC pulse compensation and regeneration in a clock synchronizer controller
US20050008110A1 (en) System and method for data phase realignment
US7929655B2 (en) Asynchronous multi-clock system
GB2416650A (en) Generating two synchronisation pulses when two clock signals with different frequencies have coincident edges, to aid data transfer between clock domains
US7382847B2 (en) Programmable sync pulse generator
US7100065B2 (en) Controller arrangement for synchronizer data transfer between a core clock domain and bus clock domain each having its own individual synchronizing controller
US6928574B1 (en) System and method for transferring data from a lower frequency clock domain to a higher frequency clock domain
US7194650B2 (en) System and method for synchronizing multiple synchronizer controllers
US7123674B2 (en) Reducing latency and power in asynchronous data transfers
US6931562B1 (en) System and method for transferring data from a higher frequency clock domain to a lower frequency clock domain
US7280629B2 (en) Method and apparatus for receiving data based on tracking zero crossings
US10505550B1 (en) Method and apparatus of operating synchronizing high-speed clock dividers to correct clock skew
US6867631B1 (en) Synchronous frequency convertor for timebase signal generation
JPH05336091A (ja) バス通信システム
JP5742456B2 (ja) シリアル・データ通信装置のdpll回路
EP2447805B1 (en) Apparatus and method for synchronizing and providing a glitch-free clock
JP2010206735A (ja) 位相制御装置及び位相制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 7