이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 보다 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 DLL 회로의 구성을 나타낸 블록도이다.
도시한 바와 같이, 본 발명의 일 실시예에 따른 DLL 회로는, 외부 클럭(clk_ext)을 버퍼링하여 기준 클럭(clk_ref)을 생성하는 클럭 입력 버퍼(10); 상기 기준 클럭(clk_ref)과 파워 업 신호(pwrup)에 응답하여 초기 동작 신호(init)를 생성하는 초기 동작 설정 수단(20); 상기 초기 동작 신호(init) 및 지연 제어 코드(dlycnt<1:n>)에 응답하여 상기 기준 클럭(clk_ref) 또는 피드백 클럭(clk_fb)을 지연시켜 n 개의 단위 지연 클럭(udly<1:n>)을 생성하는 지연 라인(30); 상기 n 개의 단위 지연 클럭(udly<1:n>) 중 n 번째 단위 지연 클럭(udly<n>)을 파인 지연시켜 지연 클럭(clk_dly)을 생성하는 파인 지연 수단(40); 상기 지연 클럭(clk_dly)을 구동하여 출력 클럭(clk_out)을 생성하는 클럭 드라이버(50); 상기 지연 클럭(clk_dly)을 소정 시간 지연시켜 상기 피드백 클럭(clk_fb)을 생성하는 지연 보상 수단(60); 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상을 비교하여 위상 비교 신호(phcmp)를 생성하는 위상 비교 수단(70); 상기 기준 클럭(clk_ref)과 상기 n-1 개의 단위 지연 클럭(udly<1:n-1>)에 응답하여 초기 설정 코드(iniset<1:n>)를 생성하는 초기 지연 모니터링 수단(80); 및 상기 초기 동작 신호(init), 상기 위상 비교 신호(phcmp) 및 상기 초기 설정 코드(iniset<1:n>)에 응답하여 상기 지연 제어 코드(dlycnt<1:n>)를 생성하는 쉬프트 레지스터(90);를 포함한다.
상기 클럭 입력 버퍼(10)는 상기 외부 클럭(clk_ext)의 진폭을 변환하는 버퍼링 동작을 수행하여 상기 기준 클럭(clk_ref)을 생성한다. 그리고 상기 초기 동 작 설정 수단(20)은 상기 파워 업 신호(pwrup)가 인에이블 되면, 상기 기준 클럭(clk_ref)의 소정의 주기 동안 상기 초기 동작 신호(init)를 인에이블 시킨다. 상기 초기 동작 신호(init)가 인에이블 되는 구간은 상기 지연 보상 수단(60)이 초기 동작시 상기 피드백 클럭(clk_fb)을 생성하는 시간과 상기 초기 지연 모니터링 수단(80)이 상기 초기 설정 코드(iniset<1:n>)를 생성하는 시간을 포함하도록 정의되어야 한다. 한편, 일반적으로 반도체 집적 회로는 상기 파워 업 신호(pwrup)가 인에이블 되면 동작을 개시하므로, 여기에서는 상기 DLL 회로의 동작의 시작을 지시하는 동작 시작 신호로서 상기 파워 업 신호(pwrup)가 활용되는 예를 나타내었다.
상기 지연 라인(30)은 상기 초기 동작 신호(init)가 인에이블 되면, 상기 피드백 클럭(clk_fb)을 입력 받아 지연시킨다. 상기 쉬프트 레지스터(90)로부터 출력되는 상기 지연 제어 코드(dlycnt<1:n>)는 초기에 상기 지연 라인(30)이 상기 피드백 클럭(clk_fb)으로부터 n-1 비트의 단위 지연 클럭(udly<1:n-1>)을 생성하고, 상기 기준 클럭(clk_ref)으로부터 n 번째의 단위 지연 클럭(udly<n>)을 생성하도록 하는 논리값으로 설정된다. 상기 n 번째의 단위 지연 클럭(udly<n>)은 상기 파인 지연 수단(40)에 전달되고, 상기 파인 지연 수단(40)은 이를 파인 지연시켜 상기 지연 클럭(clk_dly)으로서 출력한다. 반면에 나머지의 단위 지연 클럭(udly<1:n-1>)들은 상기 초기 지연 모니터링 수단(80)에 전달되며, 상기 초기 지연 모니터링 수단(80)은 상기 n-1 개의 단위 지연 클럭(udly<1:n-1>)과 상기 기준 클럭(clk_ref)의 위상을 각각 비교하여, 상기 기준 클럭(clk_ref)과 상기 피드백 클 럭(clk_fb)의 위상 정보에 따라 상기 초기 설정 코드(iniset<1:n>)를 생성한다.
상기 쉬프트 레지스터(90)는 상기 초기 동작 신호(init)가 인에이블 되어 있는 상태에서, 상기 초기 설정 코드(iniset<1:n>)가 입력되면 이를 상기 지연 제어 코드(dlycnt<1:n>)로서 출력한다. 즉, 상기 지연 제어 코드(dlycnt<1:n>)의 초기값을 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 초기 위상 정보에 따라 상기 클럭들의 위상차를 최소화시키기 위한 논리값으로 설정함으로써, 초기에 상기 클럭들의 위상차가 최소화된 상태에서 DLL 회로의 동작이 시작되도록 하며, 이에 따라 DLL 회로의 고정 완료까지의 시간을 단축시키고자 하는 것이다.
이후, 상기 초기 동작 신호(init)가 디스에이블 되면, 상기 쉬프트 레지스터(90)는 더 이상 상기 초기 설정 코드(iniset<1:n>)를 입력 받지 않고, 상기 위상 비교 신호(phcmp)에 응답하여 기 설정된 지연 제어 코드(dlycnt<1:n>)의 논리값을 변경시키면서 상기 지연 라인(30)의 동작을 제어한다. 또한 상기 지연 라인(30)은 더 이상 상기 피드백 클럭(clk_fb)을 입력 받지 않고, 상기 지연 제어 코드(dlycnt<1:n>)의 제어에 따라 상기 기준 클럭(clk_ref)을 지연시키는 동작을 수행한다.
한편, 상기 지연 보상 수단(60)은 상기 지연 클럭(clk_dly)이 데이터 출력 버퍼까지 진행하는 경로에 존재하는 지연 소자들에 의한 지연량을 모델링한 지연값을 상기 지연 클럭(clk_dly)에 부여함으로써 상기 피드백 클럭(clk_fb)을 생성한다. 그리고 상기 위상 비교 수단(70)은 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상을 비교하는 동작을 수행하여 상기 위상 비교 신호(phcmp)를 생 성한다. 상기 위상 비교 수단(70)은 에지 트리거 타입(Edge Trigger Type)의 플립플롭 회로를 통해 용이하게 구현될 수 있다.
이처럼, 본 발명의 일 실시예에 따른 DLL 회로는 초기 동작 구간 동안 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상 정보를 추출하고, 이에 따라 상기 지연 라인(30)이 양 클럭의 위상차를 최소화시키기 위한 지연값을 부여하도록 함으로써, 지연 고정 동작에 드는 시간을 감소시킬 수 있다.
도 2a는 도 1에 도시한 초기 동작 설정 수단의 상세 구성도이고, 도 2b는 도 2a에 도시한 초기 동작 설정 수단의 동작을 설명하기 위한 타이밍도이다.
도시한 바와 같이, 상기 초기 동작 설정 수단(20)은, 제 1 내지 제 5 플립플롭(FF1 ~ FF5), 제 1 낸드게이트(ND1) 및 인버터(IV)를 포함한다.
상기 제 1 내지 제 5 플립플롭(FF1 ~ FF5)은 직렬로 연결되어, 각각 상기 파워 업 신호(pwrup)에 의해 초기화되어 하이 레벨(High Level)의 신호를 출력하며, 상기 기준 클럭(clk_ref)에 응답하여 앞 단의 플립플롭의 출력 신호를 입력 받아 래치한다. 가장 앞 단에 구비되는 상기 제 1 플립플롭(FF1)은 그라운드 전원(VSS)을 입력 받는다. 상기 제 1 낸드게이트(ND1)는 상기 제 5 플립플롭(FF5)의 출력 신호와 상기 파워 업 신호(pwrup)를 입력 받는다. 상기 인버터(IV)는 상기 제 1 낸드게이트(ND1)의 출력 신호를 입력 받아 상기 초기 동작 신호(init)를 출력한다. 상기 초기 동작 신호(init)는 신호 쌍으로 구현될 수 있으며, 점선으로 표시한 것처럼 상기 제 1 낸드게이트(ND1)의 출력 신호를 부 초기 동작 신호(/init)로서 활용할 수 있다.
상기 파워 업 신호(pwrup)가 인에이블 된 후, 상기 기준 클럭(clk_ref)이 토글(Toggle)하면 상기 제 5 플립플롭(FF5)은 하이 레벨의 신호를 출력하므로, 상기 초기 동작 신호(init)는 하이 레벨로 인에이블 된다. 상기 그라운드 전원(VSS)이 상기 기준 클럭(clk_ref)이 5번 토글한 후에 상기 제 1 낸드게이트(ND1)에 전달되므로, 상기 초기 동작 신호(init)는 상기 기준 클럭(clk_ref)의 5주기 동안 인에이블 구간을 유지하게 된다.
이와 같은 상기 파워 업 신호(pwrup), 상기 기준 클럭(clk_ref) 및 상기 초기 동작 신호(init)의 파형은 도 2b를 통해 확인할 수 있다.
여기에서는, 상기 초기 동작 신호(init)가 상기 기준 클럭(clk_ref)의 5주기 동안 인에이블 되는 것을 예로 들어 나타내었지만, 구비 환경 및 조건에 따라 플립플롭의 수를 가감함으로써 상기 초기 동작 신호(init)의 인에이블 구간은 용이하게 변경 가능하다.
도 3은 도 1에 도시한 지연 라인의 상세 구성도이다.
도시한 바와 같이, 상기 지연 라인(30)은 직렬 연결된 n 개의 단위 지연부(310<1:n>)를 포함한다. 각각의 단위 지연부(310<1:n>)는 상기 n 개의 단위 지연 클럭(udly<1:n>)을 각각 한 개씩 출력하도록 구성된다.
각각의 단위 지연부(310<1:n>)는 각각 제 2 내지 제 4 낸드게이트(ND2<1:n> ~ ND4<1:n>)를 포함한다. 가장 앞 단에 구비되는 단위 지연부(310<1>)의 제 2 낸드게이트(ND2<1>)는 상기 초기 동작 신호(init)와 상기 피드백 클럭(clk_fb)을 입력 받는다. 그리고 2번째부터 n-1번째까지의 단위 지연부(310<2:n- 1>) 각각의 제 2 낸드게이트(ND2<2:n-1>)는 각각 앞 단의 단위 지연부(310<1:n-2>)의 출력 신호와 외부 공급전원(VDD)을 입력 받는다. 가장 뒷 단의 단위 지연부(310<n>)의 제 2 낸드게이트(ND2<n>)는 상기 부 초기 동작 신호(/init)와 앞 단위 단위 지연부(310<n-1>)의 출력 신호를 입력 받는다.
각각의 단위 지연부(310<1:n>)에 구비되는 n 개의 제 3 낸드게이트(ND3<1:n>)는 상기 지연 제어 코드(dlycnt<1:n>) 한 비트씩과 상기 기준 클럭(clk_ref)을 각각 입력 받는다. 그리고 n 개의 제 4 낸드게이트(ND4<1:n>)는 각각 제 2 낸드게이트(ND2<1:n>)의 출력 신호와 제 3 낸드게이트(ND3<1:n>)의 출력 신호를 입력 받아, 상기 단위 지연 클럭(udly<1:n>)을 각각 한 개씩 출력한다.
이와 같이 구성된 상기 지연 라인(30)에서, 상기 초기 동작 신호(init)의 인에이블 시점에서의 상기 지연 제어 코드(dlycnt<1:n>)는 이미 (0, 0, ㆍㆍㆍ, 1)로 설정되어 있다. 상기 피드백 클럭(clk_fb)은 첫 번째 단위 지연부(310<1>)의 제 2 낸드게이트(ND2<1>)에 입력되고, 이후 상기 n-1 개의 단위 지연부(310<1:n-1>)를 거치면서 지연되어, n-1 개의 상기 단위 지연 클럭(udly<1:n-1>)으로서 출력된다. 이 때, 상기 n 번째의 단위 지연부(310<n>)의 제 3 낸드게이트(ND3<n>)는 상기 기준 클럭(clk_ref)을 입력 받는다. 이 때, 상기 n 번째의 단위 지연부(310<n>)의 제 2 낸드게이트(ND2<n>)의 출력 신호는 하이 레벨이므로, 상기 n 번째의 단위 지연 클럭(udly<n>)은 상기 기준 클럭(clk_ref)이 지연된 형태로서 생성된다.
이처럼, 초기 동작시 상기 지연 라인(30)이 상기 기준 클럭(clk_ref)에 최소의 지연 시간을 부여하여 n 번째의 단위 지연 클럭(udly<n>)을 생성하고, 이러한 특성의 n 번째의 단위 지연 클럭(udly<n>)을 이용하여 상기 지연 클럭(clk_dly) 및 상기 피드백 클럭(clk_fb)을 생성하므로, 상기 피드백 클럭(clk_fb)은 상기 지연 보상 수단(60)의 고유 지연량 정보를 그 위상에 담게 된다. 이 때의 상기 피드백 클럭(clk_fb)을 이용하여 상기 n-1 개의 단위 지연 클럭(udly<1:n-1>)을 생성하면, 상기 초기 지연 모니터링 수단(80)은 초기 동작시 상기 지연 보상 수단(60)에 의한 상기 피드백 클럭(clk_fb)의 위상 정보를 추출하여 상기 기준 클럭(clk_ref)과 비교할 수 있다. 그리고 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상이 근접해지기 위해서는 상기 지연 라인(30)이 상기 기준 클럭(clk_ref)을 얼만큼 지연시켜야 하는지를 파악할 수 있게 된다. 결과적으로, 상기 지연 라인(30)이 출력하는 상기 n-1 개의 단위 지연 클럭(udly<1:n-1>)에 의해 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상차를 최소화시키는 상기 초기 설정 코드(iniset<1:n>)의 논리값이 추출 가능하게 된다.
이후, 상기 초기 동작 신호(init)가 디스에이블 되면, 상기 지연 라인(30)은 상기 초기 설정 코드(iniset<1:n>)와 같은 논리값을 갖는 상기 지연 제어 코드(dlycnt<1:n>)의 제어에 따라 상기 기준 클럭(clk_ref)을 지연시키는 동작을 수행한다. 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상에 따라 상기 지연 제어 코드(dlycnt<1:n>)는 변경될 수 있으나, 상기 지연 라인(30)은 종래의 기술에 비해 현저히 감소된 시간 안에 지연 고정 동작을 완료할 수 있다.
도 4는 도 1에 도시한 초기 지연 모니터링 수단의 상세 구성도이다.
상기 초기 지연 모니터링 수단(80)은, 상기 기준 클럭(clk_ref)과 상기 n-1 비트의 단위 지연 클럭(udly<1:n-1>)의 위상을 각각 비교하여 초기 위상 코드(iniph<1:n-1>)를 생성하는 초기 위상 정보 추출부(810); 및 상기 초기 위상 코드(iniph<1:n-1>)를 디코딩하여 상기 초기 설정 코드(iniset<1:n>)를 출력하는 제 1 디코딩부(820);를 포함한다.
상기 초기 위상 정보 추출부(810)는 직렬 연결된 n-1 개의 제 6 플립플롭(FF6<1:n-1>)을 포함하며, 각각의 제 6 플립플롭(FF6<1:n-1>)은 상기 n-1 개의 단위 지연 클럭(udly<1:n-1>)의 각 비트에 응답하여 상기 기준 클럭(clk_ref)을 래치하고, 상기 초기 위상 코드(iniph<1:n-1>)의 각 비트를 출력하는 기능을 수행한다.
이와 같은 구성에 의해, 상기 피드백 클럭(clk_fb)과 상기 기준 클럭(clk_ref)의 초기 위상 정보가 상기 초기 위상 코드(iniph<1:n-1>)의 논리값에 반영된다. 이후, 상기 제 1 디코딩부(820)는 상기 초기 위상 코드(iniph<1:n-1>)를 입력 받아, 상기 피드백 클럭(clk_fb)과 상기 기준 클럭(clk_ref)의 위상차를 최소화시키기 위한 논리값을 갖는 상기 초기 설정 코드(iniset<1:n>)를 생성한다. 상기 초기 설정 코드(iniset<1:n>)는 논리값이 ‘1’인 신호를 한 개만 포함하는 형태로 구현될 것이다.
도 5는 도 1에 도시한 쉬프트 레지스터의 상세 구성도이다.
도시한 바와 같이, 상기 쉬프트 레지스터(90)는 상기 위상 비교 신호(phcmp)에 응답하여 카운팅 동작을 수행하여 m 비트의 카운트 신호(count<1:m>)를 출력하는 카운팅부(910); 상기 m 비트의 카운트 신호(count<1:m>)를 디코딩하여 위상 디 코딩 코드(phdec<1:n>)를 출력하는 제 2 디코딩부(920); 상기 초기 동작 신호(init)에 응답하여 상기 위상 디코딩 코드(phdec<1:n>) 또는 상기 초기 설정 코드(iniset<1:n>)를 선택적으로 출력하는 먹스부(930); 및 상기 먹스부(930)의 출력 신호를 래치하고 상기 지연 제어 코드(dlycnt<1:n>)로서 출력하는 래치부(940);를 포함한다.
상기 카운팅부(910)는 상기 위상 비교 신호(phcmp)에 의해 전달되는 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상 정보에 따라 상기 m 비트의 카운트 신호(count<1:m>)의 논리값을 증가 또는 감소시킨다. 이후, 상기 제 2 디코딩부(920)는 상기 m 비트의 카운트 신호(count<1:m>)를 디코딩하여 상기 위상 디코딩 코드(phdec<1:n>)를 출력한다. 이 때, 상기 위상 디코딩 코드(phdec<1:n>)는 논리값이 ‘1’인 신호를 한 개만 포함하는 형태로 구현되며, 상기 m 비트의 카운트 신호(count<1:m>)의 논리값 변화에 따라 논리값 ‘1’이 한 자리씩 이동하는 형태로 구현된다.
상기 초기 동작 신호(init)가 인에이블 되면, 상기 먹스부(930)는 상기 위상 디코딩 코드(phdec<1:n>)를 차단하고, 상기 초기 설정 코드(iniset<1:n>)를 통과시킨다. 이 때, 상기 래치부(940)에는 상기 지연 제어 코드(dlycnt<1:n>)의 논리값이 (0, 0, ㆍㆍㆍ, 1)로 설정되어 있다. 이처럼, 상기 파워 업 신호(pwrup)가 인에이블 되면 특정한 코드를 출력하는 상기 래치부(940)의 구성은 당업자라면 용이하게 실시할 수 있는 기술에 해당한다. 상기 래치부(940)는 이후 상기 초기 설정 코드(iniset<1:n>)가 입력되면 이를 래치하여 상기 지연 제어 코드(dlycnt<1:n>)로서 출력한다. 즉, 상기 초기 동작 신호(init)가 정의하는 초기 동작 구간 동안에는, 상기 초기 설정 코드(iniset<1:n>)가 상기 지연 제어 코드(dlycnt<1:n>)로서 출력되는 것이다. 상기 지연 라인(30)은 상기 초기 설정 코드(iniset<1:n>)에 응답하여 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상차를 최소화시키기 위한 지연 시간을 상기 기준 클럭(clk_ref)에 부여한다.
이후, 상기 초기 동작 신호(init)가 디스에이블 되면, 상기 먹스부(930)는 상기 초기 설정 코드(iniset<1:n>)를 차단하고, 상기 위상 디코딩 코드(phdec<1:n>)를 통과시킨다. 이후, 상기 래치부(940)는 상기 위상 디코딩 코드(phdec<1:n>)를 래치하여 상기 지연 제어 코드(dlycnt<1:n>)로서 출력한다. 이 때의 상기 기준 클럭(clk_ref)과 상기 피드백 클럭(clk_fb)의 위상차는 이미 그리 크지 않은 상태이므로, 상기 위상 디코딩 코드(phdec<1:n>)의 논리값은 상기 초기 설정 코드(iniset<1:n>)의 논리값에 근사한 상태일 것이다. 따라서 상기 위상 비교 신호(phcmp)에 응답하여 상기 위상 디코딩 코드(phdec<1:n>) 및 상기 지연 제어 코드(dlycnt<1:n>)의 논리값이 변화하더라도, 이후 상기 지연 제어 코드(dlycnt<1:n>)의 논리값이 고정되기까지는 종래에 비해 현저히 짧은 시간이 소요된다.
즉, 본 발명에 따른 DLL 회로는 초기 동작시 피드백 클럭의 위상을 통해 지연 보상 수단의 고유 지연값을 판별하고, 피드백 클럭과 기준 클럭의 위상 정보에 따라 초기 설정 코드를 생성한다. 이후, 초기 설정 코드를 지연 제어 코드로서 활 용하여 지연 라인이 기준 클럭에 부여하는 최초의 지연 시간을 설정한다. 따라서, 초기 동작시부터 지연 라인은 피드백 클럭의 위상이 기준 클럭의 위상에 근접하도록 하는 지연 시간을 기준 클럭에 부여할 수 있으며, 이에 따라 DLL 회로가 지연 고정 동작을 완료하기까지의 시간은 현저히 감소한다. 이와 같이 빠른 지연 고정 동작을 수행하는 DLL 회로는 고속화 구현을 추구하는 반도체 집적 회로의 동작을 보다 효율적으로 지원할 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.