KR102664062B1 - 비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법 - Google Patents

비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102664062B1
KR102664062B1 KR1020190063868A KR20190063868A KR102664062B1 KR 102664062 B1 KR102664062 B1 KR 102664062B1 KR 1020190063868 A KR1020190063868 A KR 1020190063868A KR 20190063868 A KR20190063868 A KR 20190063868A KR 102664062 B1 KR102664062 B1 KR 102664062B1
Authority
KR
South Korea
Prior art keywords
code
output
flip
clock signal
bits
Prior art date
Application number
KR1020190063868A
Other languages
English (en)
Other versions
KR20200138514A (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 삼성전자주식회사
Priority to KR1020190063868A priority Critical patent/KR102664062B1/ko
Priority to US16/686,184 priority patent/US10868541B1/en
Priority to CN202010105727.1A priority patent/CN112019210A/zh
Publication of KR20200138514A publication Critical patent/KR20200138514A/ko
Application granted granted Critical
Publication of KR102664062B1 publication Critical patent/KR102664062B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K23/00Pulse counters comprising counting chains; Frequency dividers comprising counting chains
    • H03K23/58Gating or clocking signals not applied to all stages, i.e. asynchronous counters
    • H03K23/588Combination of a synchronous and an asynchronous counter
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K23/00Pulse counters comprising counting chains; Frequency dividers comprising counting chains
    • H03K23/40Gating or clocking signals applied to all stages, i.e. synchronous counters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/15Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors
    • H03K5/15013Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs
    • H03K5/15026Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs with asynchronously driven series connected output stages
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K23/00Pulse counters comprising counting chains; Frequency dividers comprising counting chains
    • H03K23/40Gating or clocking signals applied to all stages, i.e. synchronous counters
    • H03K23/48Gating or clocking signals applied to all stages, i.e. synchronous counters with a base or radix other than a power of two
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/16Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Manipulation Of Pulses (AREA)
  • Pulse Circuits (AREA)

Abstract

본 발명의 실시 예에 따른 코드 생성기는 코드의 제 1 내지 제 m 비트들(m은 2 이상의 정수)에 해당하는 제 1 내지 제 m 출력 신호들을 비동기로 각각 출력하도록 구성되는 제 1 내지 제 m 플립-플롭들을 포함하는 비동기 카운터 및 코드의 제 m+1 내지 제 m+n 비트들(n은 2 이상의 정수)에 해당하는 제 m+1 내지 제 m+n 출력 신호들을 동기로 출력하도록 구성되는 제 m+1 내지 제 m+n 플립-플롭들을 포함하는 동기 카운터를 포함하고, 비동기 카운터는 코드의 제 1 내지 제 m 비트들이 코드의 제 m+1 내지 제 m+n 비트들이 출력되는 시점에서 함께 출력되도록, 제 1 내지 제 m 출력 신호들을 지연시키도록 구성되는 제 1 내지 제 m 지연 회로들을 더 포함한다.

Description

비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법{CODE GENERATOR COMPRISING ASYNCHRONOUS COUNTER AND SYNCHRONOUS COUNTER, AND OPERATING METHOD THEREOF}
본 발명은 코드 생성기 및 그것의 동작 방법에 관한 것으로, 좀 더 자세하게는 비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법에 관한 것이다.
카운터는 클럭 신호를 수신하고 클럭 신호에 기초하여 카운팅 동작을 수행할 수 있다. 카운터는 클럭 신호의 상승 엣지 또는 하강 엣지마다 카운팅 값을 증가시키거나 감소시킬 수 있다. 카운터는 클럭 신호의 논리 값이 변경되는 횟수를 카운팅할 수 있다. 카운터는 크게 비동기 카운터와 동기 카운터로 분류될 수 있다. 카운터는 2진 코드를 출력할 수 있다.
비동기 카운터는 클럭 신호를 수신하고 분주할 수 있다. 다만, 비동기 카운터에 의해 출력되는 코드는 수신된 클럭 신호에 동기되지 않을 수 있다. 반면에, 동기 카운터는 클럭 신호를 수신할 수 있고 동기 카운터에 의해 출력되는 코드는 수신된 클럭 신호에 동기될 수 있다. 다만, 동기 카운터는 비동기 카운터에 비해 상대적으로 고속에서 동작하기 어렵다.
본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 본 발명은 비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법을 제공할 수 있다.
본 발명의 실시 예에 따른 코드 생성기는 코드의 제 1 내지 제 m 비트들(m은 2 이상의 정수)에 해당하는 제 1 내지 제 m 출력 신호들을 비동기로 각각 출력하도록 구성되는 제 1 내지 제 m 플립-플롭들을 포함하는 비동기 카운터 및 코드의 제 m+1 내지 제 m+n 비트들(n은 2 이상의 정수)에 해당하는 제 m+1 내지 제 m+n 출력 신호들을 동기로 출력하도록 구성되는 제 m+1 내지 제 m+n 플립-플롭들을 포함하는 동기 카운터를 포함하고, 비동기 카운터는 코드의 제 1 내지 제 m 비트들이 코드의 제 m+1 내지 제 m+n 비트들이 출력되는 시점에서 함께 출력되도록, 제 1 내지 제 m 출력 신호들을 지연시키도록 구성되는 제 1 내지 제 m 지연 회로들을 더 포함한다.
본 발명의 다른 실시 예에 따른 코드 생성기는 제 1 클럭 신호를 수신하고 제 1 클럭 신호에 기초하여 바이너리 코드의 제 1 비트들을 비동기로 출력하도록 구성되는 비동기 카운터, 비동기 카운터에 의해 제 1 클럭 신호가 분주된 제 2 클럭 신호에 기초하여 바이너리 코드의 제 2 비트들을 동기로 출력하도록 구성되는 동기 카운터; 및 바이너리 코드의 제 1 및 제 2 비트들을 수신하고 그리고 바이너리 코드를 그레이 코드로 변환하도록 구성되는 코드 변환기를 포함한다.
본 발명의 또 다른 실시 예에 따른 코드 생성기의 동작 방법은 제 1 클럭 신호를 수신하는 단계, 제 1 내지 제 m 플립-플롭들(m은 2 이상의 정수)을 이용하여 제 1 클럭 신호의 주파수를 분주함으로써 제 1 내지 제 m 출력 신호들을 각각 출력하는 단계, 코드의 제 1 내지 제 m 비트들에 해당하는 제 1 내지 제 m 출력 신호들을 각각 지연시키는 단계, 및 제 1 클럭 신호가 제 1 내지 제 m 플립-플롭들에 의해 분주된 제 2 클럭 신호의 엣지에서, 제 m+1 내지 제 m+n 플립-플롭들(n은 2 이상의 정수)을 이용하여 코드의 제 m+1 내지 제 m+n 비트들에 해당하는 제 m+1 내지 제 m+n 출력 신호들을 동기로 출력하는 단계를 포함한다.
본 발명의 실시 예에 따른 코드 생성기는 비동기 카운터와 동기 카운터를 포함하는 하이브리드 카운터를 이용하여 코드를 출력할 수 있다. 코드 생성기는 동기 카운터로 인한 클럭 신호의 주파수 제약과 비동기 카운터로 인한 코드 출력의 변동을 해소할 수 있다. 따라서, 코드 생성기는 고속 및 낮은 전원 전압에서도 동작할 수 있다.
도 1은 본 발명의 실시 예에 따른 코드 생성기의 블록도를 예시적으로 도시한다.
도 2a 내지 도 2c는 도 1의 비동기 카운터의 블록도들을 예시적으로 도시한다.
도 3은 도 1의 동기 카운터의 블록도를 예시적으로 도시한다.
도 4는 도 1의 코드 생성기의 동작을 예시적으로 도시하는 타이밍도이다.
도 5는 도 1의 비동기 카운터의 블록도를 예시적으로 도시한다.
도 6은 도 1의 코드 생성기의 동작을 예시적으로 도시하는 타이밍도이다.
도 7은 도 2a 내지 도 2c, 도 3, 및 도 5에서 도시된 플립-플롭을 예시적으로 도시한다.
도 8은 도 1의 동기 카운터의 블록도를 예시적으로 도시한다.
도 9는 본 발명의 다른 실시 예에 따른 코드 생성기의 블록도를 예시적으로 도시한다.
도 10은 본 발명의 또 다른 실시 예에 따른 코드 생성기의 블록도를 예시적으로 도시한다.
도 11은 본 발명의 또 다른 실시 예에 따른 코드 생성기의 블록도를 예시적으로 도시한다.
도 12는 도 11의 코드 변환기의 블록도를 예시적으로 도시한다.
도 13은 도 11 및 도 12의 코드 변환기의 동작을 예시적으로 도시하는 타이밍도이다.
도 14는 본 발명의 실시 예에 따른 코드 생성기의 동작의 순서도를 예시적으로 도시한다.
도 15는 본 발명의 실시 예에 따른 코드 생성기가 적용되는 이미지 센서의 블록도를 예시적으로 도시한다.
도 16은 본 발명의 실시 예에 따른 코드 생성기가 적용되는 디스플레이 장치의 블록도를 예시적으로 도시한다.
도 17은 본 발명의 실시 예에 따른 코드 생성기가 적용되는 전자 장치의 블록도를 예시적으로 도시한다.
도 1은 본 발명의 실시 예에 따른 코드 생성기의 블록도를 예시적으로 도시한다. 예를 들어, 코드 생성기(100)는 전자 장치, 반도체 장치, 집적 회로 등에 포함될 수 있다. 코드 생성기(100)는 아날로그 신호를 디지털 신호로 변환하는데 사용되는 카운터를 이용할 수 있다. 도 1을 참조하면, 코드 생성기(100)는 비동기 카운터(110) 및 동기 카운터(120)를 포함할 수 있다.
비동기 카운터(110)는 클럭 신호(CK1)를 수신하고 그리고 클럭 신호(CK1)에 기초하여 코드의 비트들(CODE[m:1])을 출력하거나 생성할 수 있다. 예를 들어, m은 2 이상의 정수일 수 있고 비동기 카운터(110)는 멀티 비트를 출력할 수 있다. 예를 들어, 클럭 신호(CK1)는 코드 생성기(100)의 외부로부터 전송될 수 있다. 다른 예를 들어, 코드 생성기(100)는 클럭 신호(CK1)를 생성하는 클럭 생성기(예를 들어, PLL(phase-locked loop) 회로, DLL(delay-locked loop) 회로 등)를 더 포함할 수 있다.
비동기 카운터(110)는 클럭 신호(CK1)에 응답하여 코드의 비트들(CODE[m:1])을 비동기로(asynchronously) 출력할 수 있다. 여기서, “비동기” 용어는 코드의 비트들(CODE[m:1])의 출력 시점들이 서로 상이함을 의미할 수 있다. 비동기 카운터(110)에 의해 결정되는 코드의 비트들(CODE[m:1])의 출력 시점들은 클럭 신호(CK1)를 기준으로 정렬되지 않을 수 있다. 예를 들어, 비동기 카운터(110)는 코드의 비트(CODE[1])를 출력할 수 있고 그 다음 코드의 비트(CODE[2])를 출력할 수 있다. 상술한 방식으로, 비동기 카운터(110)는 코드의 비트들(CODE[m:1])을 순차적으로 출력할 수 있다.
동기 카운터(120)는 클럭 신호(CK2)를 수신하고 그리고 클럭 신호(CK2)에 기초하여 코드의 비트들(CODE[m+n:m+1])을 출력하거나 생성할 수 있다. 예를 들어, n은 2 이상의 정수고 그리고 m과 같거나 상이할 수 있다. 동기 카운터(120)는 멀티 비트를 출력할 수 있다, 동기 카운터(120)는 클럭 신호(CK2)에 응답하여 코드의 비트들(CODE[m+n:m+1])을 동기로(synchronously) 출력할 수 있다. 여기서, “동기” 용어는 코드의 비트들(CODE[m+n:m+1])의 출력 시점들이 서로 동일함을 의미할 수 있다. 동기 카운터(120)에 의해 결정되는 코드의 비트들(CODE[m+n:m+1])의 출력 시점들은 클럭 신호(CK2)를 기준으로 정렬될 수 있다. 예를 들어, 동기 카운터(120)는 코드의 비트들(CODE[m+n:m+1])을 동시에 출력할 수 있다.
비동기 카운터(110)에 의해 출력되는 코드의 비트들(CODE[m:1])은 하위 비트들에 해당할 수 있다. 동기 카운터(120)에 의해 출력되는 코드의 비트들(CODE[m+n:m+1])은 상위 비트들에 해당할 수 있다. 코드의 비트(CODE[1])는 LSB(least significant bit)에 해당할 수 있다. 코드의 비트(CODE[m+n])는 MSB(most significant bit)에 해당할 수 있다.
도 1의 도시와 달리, 코드 생성기(100)가 비동기 카운터(110)만을 포함한다고 가정한다. 즉, 비동기 카운터(110)가 코드의 모든 비트들(CODE[1:n])을 출력할 수 있다. 코드 생성기(100)가 동기 카운터(120)를 포함하는 경우와 대비하여, 코드의 비트(CODE[1])의 출력 시점과 코드의 비트(CODE[n])의 출력 시점 간의 차이(변동(variation))가 커질 수 있다. 상술한 차이는 코드 생성기(100)의 공급 전압의 레벨이 낮아질수록 더 커질 수 있다.
도 1의 도시와 달리, 코드 생성기(100)가 동기 카운터(120)만을 포함한다고 가정한다. 즉, 동기 카운터(120)가 코드의 모든 비트들(CODE[1:n])을 출력할 수 있다. 코드 생성기(100)가 비동기 카운터(110)를 포함하면, 동기 카운터(120)는 클럭 신호(CK2)를 수신한다. 그러나, 코드 생성기(100)가 비동기 카운터(110)를 포함하지 않으면, 동기 카운터(120)는 클럭 신호(CK2)보다 고속인 클럭 신호(CK1)를 곧바로 수신할 수 있다. 동기 카운터(120)는 조합 논리 회로(도 3 참조)를 이용하여 코드의 비트들(CODE[1:n])을 출력할 수 있다. 조합 논리 회로의 전파 지연(propagation)으로 인하여, 코드의 비트들(CODE[1:n])의 개수가 증가할수록(코드의 사이즈가 커질수록), 동기 카운터(120)로 제공되는 클럭 신호(CK1)의 주파수가 더 제한될 수 있다. 또한, 코드 생성기(100)의 공급 전압의 레벨이 낮아질수록, 조합 논리 회로의 전파 지연이 증가하므로 동기 카운터(120)로 제공되는 클럭 신호(CK1)의 주파수가 더 제한될 수 있다.
도 1을 참조하면, 본 발명의 실시 예에 따른 코드 생성기(100)는 상술한 제약들을 해소할 수 있고 그리고 고속도 및 저전력에서 동작할 수 있는 하이브리드(hybrid) 카운터를 포함할 수 있다. 하이브리드 카운터는 비동기 카운터(110)와 동기 카운터(120) 모두를 포함할 수 있다. 비동기 카운터(110)는 클럭 신호(CK1)의 주파수를 분주(divide)할 수 있다. 비동기 카운터(110)가 수신하는 클럭 신호(CK1)와 동기 카운터(120)가 수신하는 클럭 신호(CK2)는 서로 상이할 수 있다. 예를 들어, 클럭 신호(CK1)의 주파수가 f면, 비동기 카운터(110)에 의해 분주된 클럭 신호(CK2)의 주파수는 f/2m일 수 있다. 클럭 신호(CK1)를 곧바로 수신하는 경우에 비해, 동기 카운터(120)는 클럭 신호(CK1)가 분주된 클럭 신호(CK2)를 수신하므로, 동기 카운터(120)의 조합 논리 회로로 인한 클럭 신호(CK2)의 주파수 제약이 해소될 수 있다.
도 2a 내지 도 2c들은 도 1의 비동기 카운터의 블록도들을 예시적으로 도시한다. 비동기 카운터들(110a, 110b, 110c) 각각은 도 1의 비동기 카운터(110)의 일 예시일 수 있다. 비동기 카운터들(110a, 110b, 110c)은 함께 설명될 것이다. 비동기 카운터(110a)는 플립-플롭들(111_1~111_m)을 포함할 수 있다. 비동기 카운터(110b)는 플립-플롭들(111_1~111_m)을 포함할 수 있다. 비동기 카운터(110c)는 플립-플롭들(111_1~111_m)과 인버터들(112_1~112_m)을 포함할 수 있다.
플립-플롭들(111_1~111_m) 각각은 클럭 포트, 리셋 포트(R), 및 출력 포트(Q)를 포함할 수 있다. 플립-플롭들(111_1~111_m) 각각은 입력 포트와 반전 출력 포트(미도시, 도 7 참조)를 더 포함할 수 있다. 플립-플롭들(111_1~111_m) 각각의 반전 출력 포트는 입력 포트로 전기적으로 연결될 수 있다. 예를 들어, 플립-플롭들(111_1~111_m) 각각은 트리거(T) 플립-플롭 또는 JK 플립-플롭일 수 있으나, 플립-플롭의 종류는 상술한 예시들로 한정되지 않는다. 플립-플롭들(111_1~111_m) 각각은 클럭 포트를 통해 수신되는 클럭 신호의 엣지(edge)에서 출력 포트(Q)를 통해 출력되는 출력 신호의 논리 값을 전환(toggle)하거나, 변경하거나, 또는 반전시킬 수 있다. 엣지는 클럭 포트를 통해 수신되는 클럭 신호의 상승 엣지 또는 하강 엣지일 수 있다.
플립-플롭들(111_1~111_m) 각각은 리셋 포트(R)를 통해 수신되는 리셋 신호(RESET)에 응답하여 출력 포트(Q)를 통해 출력되는 출력 신호의 논리 값을 사전에 결정된 값(예를 들어, 논리 0 또는 논리 1)으로 리셋할 수 있다. 플립-플롭들(111_1~111_m) 각각은 리셋 신호(RESET)가 활성화되면 출력 신호의 논리 값을 리셋할 수 있다. 플립-플롭들(111_1~111_m) 각각은 리셋 신호(RESET)가 활성화되지 않은 상태에서 클럭 포트를 통해 수신되는 클럭 신호의 엣지에서 출력 신호의 논리 값을 전환할 수 있다. 예를 들어, 플립-플롭들(111_1~111_m)은 서로 동일하게 구현될 수 있다.
플립-플롭(111_1)은 코드 생성기(100)로 전송되는 클럭 신호(CK1)를 클럭 포트를 통해 수신할 수 있다. 예를 들어, 플립-플롭(111_1)은 클럭 신호(CK1)의 반전 클럭 신호를 수신하지 않을 수 있다. 클럭 신호(CK1)는 차동 모드가 아닌 단일 모드로 코드 생성기(100)로 전송될 수 있다. 플립-플롭(111_1)은 클럭 신호(CK1)의 엣지에서 출력 포트(Q)를 통해 출력되는 출력 신호(Q[1])의 논리 값을 전환할 수 있다. 플립-플롭(111_1)의 출력 신호(Q[1])는 코드의 비트(CODE[1])에 해당할 수 있다. 플립-플롭(111_1)의 반전 출력 포트는 입력 포트로 전기적으로 연결될 수 있다. 출력 신호(Q[1])의 주파수는 클럭 신호(CK1)의 주파수의 절반일 수 있다. 플립-플롭(111_1)은 클럭 신호(CK1)를 이분주하여 출력 신호(Q[1])를 출력할 수 있다.
도 2a의 플립-플롭(111_2)은 플립-플롭(111_1)의 출력 신호(Q[1])를 클럭 포트를 통해 직접 수신할 수 있다. 도 2a의 플립-플롭(111_2)과 플립-플롭(111_1)과 실질적으로 동일하지만, 플립-플롭(111_1)은 상승 엣지에서 전환 동작을 수행하는 반면에 플립-플롭(111_2)은 하강 엣지에서 전환 동작을 수행할 수 있다. 도 2a의 다른 플립-플롭들(111_3~111_m)도 하강 엣지에서 전환 동작을 수행할 수 있다. 도 2a의 도시와 달리, 플립-플롭(111_1)은 하강 엣지에서 전환 동작을 수행하고 플립-플롭들(111_2~111_m)은 상승 엣지에서 전환 동작을 수행할 수도 있다.
도 2b의 플립-플롭(111_2)은 플립-플롭(111_1)의 반전 출력 신호(Qb[1])를 클럭 포트를 통해 직접 수신할 수 있다. 도 2b의 플립-플롭들(111_1~111_m)은 서로 동일하게 구현될 수 있고 상승 엣지에서 전환 동작을 수행할 수 있다. 도 2b의 도시와 달리, 플립-플롭들(111_1~111_m)은 하강 엣지에서 전환 동작을 수행할 수도 있다.
도 2c의 카운터(110c)는 인버터들(112_1~112_m)을 더 포함할 수 있다. 도 2c의 인버터(112_1)는 출력 신호(Q[1])의 논리 값을 반전시킬 수 있다. 플립-플롭(111_2)은 인버터(112_1)에 의해 플립-플롭(111_1)의 출력 신호(Q[1])가 반전된 신호(인버터(112_1)의 출력 신호)를 클럭 포트를 통해 수신할 수 있다.
도 2a 내지 도 2c의 플립-플롭(111_2)이 이전 플립-플롭(111_1)의 출력 신호(Q[1]), 반전 출력 신호(Qb[1]), 또는 인버터(112_1)의 출력 신호를 클럭 포트를 통해 수신하는 점을 제외하면, 플립-플롭(111_2)의 동작과 플립-플롭(111_1)의 동작은 실질적으로 동일할 수 있다.
플립-플롭(111_2)은 출력 신호(Q[1]), 반전 출력 신호(Qb[1]), 또는 인버터(112_1)의 출력 신호의 엣지에서 출력 포트(Q)를 통해 출력되는 출력 신호(Q[2])의 논리 값을 전환할 수 있다. 플립-플롭(111_2)의 출력 신호(Q[2])는 코드의 비트(CODE[2])에 해당할 수 있다. 플립-플롭(111_2)의 반전 출력 포트는 입력 포트로 전기적으로 연결될 수 있다. 출력 신호(Q[2])의 주파수는 출력 신호(Q[1])의 주파수의 절반일 수 있고 클럭 신호(CK1)의 주파수의 1/4일 수 있다. 플립-플롭(111_2)은 출력 신호(Q[1])를 이분주하여 출력 신호(Q[2])를 출력할 수 있다. 인버터(112_2)는 출력 신호(Q[2])의 논리 값을 반전시킬 수 있다.
비동기 카운터들(110a, 110b, 110c)은 코드의 비트들(CODE[m:1])의 개수(m)에 각각 해당하는 m개의 플립-플롭들(111_1~111_m) 또는 인버터들(112_1~112_m)을 포함할 수 있다. 플립-플롭(111_m)이 이전 플립-플롭(111_m-1; 미도시)의 출력 신호(Q[m-1]), 반전 출력 신호(Qb[m-1]), 또는 인버터의 출력 신호를 클럭 포트를 통해 수신하는 점을 제외하면, 플립-플롭(111_m)의 동작과 플립-플롭(111_2)의 동작은 실질적으로 동일할 수 있다. 플립-플롭(111_m)의 출력 포트(Q)를 통해 출력되는 출력 신호(Q[m])는 코드의 비트(CODE[m])에 해당할 수 있다. 인버터(112_m)는 출력 신호(Q[m])의 논리 값을 반전시킬 수 있다.
도 2a의 플립-플롭(111_m)의 출력 신호(Q[m])는 반전 클럭 신호(CK2b)일 수 있고 그 주파수는 클럭 신호(CK1)의 주파수가 2m으로 나뉜 것에 해당할 수 있다. 도 2b의 플립-플롭(111_m)의 반전 출력 신호(Q[m])는 클럭 신호(CK2)일 수 있고 그 주파수는 클럭 신호(CK1)의 주파수가 2m으로 나뉜 것에 해당할 수 있다. 도 2c의 인버터(112_m)를 통해 출력되는 클럭 신호(CK2)의 주파수는 클럭 신호(CK1)의 주파수가 2m으로 나뉜 것에 해당할 수 있다. 플립-플롭들(111_2~111_m)은 이전 플립-플롭들(111_1~111_m-1)로부터 제공되는 출력 신호들(Q[m:1-1])을 각각 이분주할 수 있다. 예를 들어, 클럭 신호(CK1)가 m분주된 클럭 신호(CK2) 또는 반전 클럭 신호(CK2b)는 동기 카운터(120)로 전송될 수 있다.
플립-플롭(111_1)의 출력 신호(Q[1])는 코드의 비트(CODE[1])에 해당하고 그리고 클럭 신호로서 플립-플롭(111_2)으로 제공될 수 있다. 플립-플롭(111_1)은 클럭 신호(CK1)의 엣지를 기준으로 출력 신호(Q[1])의 출력 시점(즉, 출력 신호(Q[1])의 논리 값이 결정되는 시점)을 결정할 수 있다. 플립-플롭(111_2)은 클럭 신호(CK1)의 엣지가 아닌 출력 신호(Q[1]), 반전 출력 신호(Qb[1]), 또는 인버터(112_1)의 출력 신호의 엣지를 기준으로 출력 신호(Q[2])의 출력 시점을 결정할 수 있다. 플립-플롭(111_m)은 출력 신호(Q[m-1]), 반전 출력 신호(Qb[m-1]), 또는 인버터의 출력 신호의 엣지를 기준으로 출력 신호(Q[m])의 출력 시점을 결정할 수 있다. 플립-플롭(111_m-1)의 출력 시점 다음에 플립-플롭(111_m)의 출력 시점이 위치할 수 있다. 비동기 카운터들(110a, 110b, 110c)은 비동기로 또는 순차적으로 코드의 비트들(CODE[m:1])을 출력할 수 있다.
도 3은 도 1의 동기 카운터의 블록도를 예시적으로 도시한다. 동기 카운터(120a)는 도 1의 동기 카운터(120)의 일 예시일 수 있다. 동기 카운터(120a)는 플립-플롭들(121_1~121_n)과 조합 논리 회로(122)를 포함할 수 있다.
플립-플롭들(121_1~121_n) 각각은 클럭 포트, 입력 포트(D), 출력 포트(Q), 반전 출력 포트(Qb), 및 리셋 포트(R)를 포함할 수 있다. 예를 들어, 플립-플롭들(121_1~121_n) 각각은 D 플립-플롭일 수 있다.
플립-플롭들(121_1~121_n) 각각은 클럭 포트를 통해 수신되는 클럭 신호의 엣지에서 입력 포트(D)를 통해 수신되는 입력 신호의 논리 값을 래치(latch)하고 그리고 래치된 논리 값을 갖는 출력 신호를 출력 포트(Q)를 통해 출력할 수 있다. 비동기 카운터들(110a, 110b, 110c)의 플립-플롭들(111_1~111_m)과 달리, 동기 카운터(120a)의 플립-플롭들(121_1~121_n)은 공통으로 클럭 신호(CK2)를 수신할 수 있다. 도 3의 도시와 달리, 동기 카운터(120a)의 플립-플롭들(121_1~121_n)은 공통으로 반전 클럭 신호(CK2b)를 수신할 수도 있다.
예를 들어, 인버터(112_m)는 클럭 신호(CK2)가 동기 카운터(120a)의 모든 플립-플롭들(121_1~121_n)로 적절하게 전송될 수 있게 클럭 신호(CK2)를 구동하는 드라이버(driver)일 수 있다. 다른 예를 들어, 비동기 카운터(110)는 클럭 신호(CK2)를 구동하는 드라이버를 포함할 수 있다. 드라이버는 인버터(112_m)를 포함하거나 인버터(112_m)로부터 제공되는 클럭 신호(CK2)를 버퍼링하고 출력할 수 있다. 플립-플롭들(121_1~121_n)은 클럭 신호(CK2)의 엣지에서 입력 신호들(D[m+n:m+1])의 논리 값들 각각 래치하고 그리고 출력 신호들(Q[m+n:m+1])을 각각 출력할 수 있다. 예를 들어, 플립-플롭들(121_1~121_n)은 서로 동일하게 구현될 수 있다.
출력 신호들(Q[m+n:m+1])은 코드의 비트들(CODE[m+n:m+1])에 각각 해당할 수 있다. 클럭 신호(CK2)의 엣지는 비동기 카운터들(110a, 110b, 110c)의 플립-플롭(111_m)의 출력 신호(Q[m])의 엣지에 해당할 수 있다. 동기 카운터(120a)의 플립-플롭들(121_1~121_n)은 공통으로 클럭 신호(CK2)를 수할 수 있다. 동기 카운터(120a)는 동기로 또는 동시에 코드의 비트들(CODE[m+n:m+1])을 출력할 수 있다.
플립-플롭들(121_1~121_n) 각각은 리셋 포트(R)를 통해 수신되는 리셋 신호(RESET)에 응답하여 출력 포트(Q)를 통해 출력되는 출력 신호의 논리 값을 사전에 결정된 값(예를 들어, 논리 0 또는 논리 1)으로 리셋할 수 있다. 플립-플롭들(121_1~121_n) 각각은 리셋 신호(RESET)가 활성화되면 출력 신호의 논리 값을 리셋할 수 있다. 플립-플롭들(121_1~121_n) 각각은 리셋 신호(RESET)가 활성화되지 않은 상태에서 클럭 포트를 통해 수신되는 클럭 신호(CK2)의 엣지에서 입력 신호의 논리 값을 래치할 수 있다. 동기 카운터(120a)의 플립-플롭들(121_1~121_n)로 전송되는 리셋 신호(RESET)와 비동기 카운터들(110a, 110b, 110c)의 플립-플롭들(111_1~111_m)로 전송되는 리셋 신호(RESET)는 서로 동일하거나 상이할 수 있다.
조합 논리 회로(122)는 플립-플롭들(121_1~121_n)의 반전 출력 신호들(Qb[m+n:m+1]) 또는 출력 신호들(Q[m+n:m+1])에 대한 INV, NAND, AND, NOR, OR, XNOR, XOR 등과 같은 다양한 논리 연산들을 수행할 수 있다. 조합 논리 회로(122)는 논리 연산들을 수행하기 위한 적어도 하나의 논리 게이트(예를 들어, 인버터, NAND 게이트, AND 게이트, NOR 게이트, OR 게이트, XNOR 게이트, XOR 게이트 등)를 포함할 수 있다. 조합 논리 회로(122)는 반전 출력 신호들(Qb[m+n:m+1])을 이용하여 플립-플롭들(121_2~121_n)의 입력 신호들(D[m+2:m+n])을 출력할 수 있다.
도 3를 참조하면, 코드의 비트(CODE[m+1])를 출력하는 동기 카운터(120a)의 플립-플롭(121_1)의 반전 출력 포트(Qb)는 입력 포트(D)로 전기적으로 연결될 수 있다. 예를 들어, 플립-플롭(121_1)은 비동기 카운터들(110a, 110b, 110c)의 플립-플롭들(111_1~111_m)과 유사하게, T 플립-플롭일 수 있다. 플립-플롭(121_1)은 비동기 카운터들(110a, 110b, 110c)의 플립-플롭들(111_1~111_m)과 동일하게 구현될 수 있다. 반면에, 동기 카운터(120a)의 나머지 플립-플롭들(121_2~121_m) 각각은 D 플립-플롭일 수 있다. 플립-플롭들(121_2~121_m)은 서로 동일하게 구현될 수 있다. 도 3의 도시와 달리, 조합 논리 회로(122)에 의해 수행되는 논리 연산에 따라, 동기 카운터(120a)의 모든 플립-플롭들(121_1~121_n)은 D 플립-플롭들일 수도 있다.
도 4는 도 1의 코드 생성기의 동작을 예시적으로 도시하는 타이밍도이다. 도 4는 도 1 내지 도 3을 참조하여 설명될 것이다. 도 4에서, 도 1의 비동기 카운터(110)는 도 2c의 비동기 카운터(110c)이고, 도 1의 동기 카운터(120)는 도 3의 동기 카운터(120a)이고, 그리고 m과 n 각각은 2인 것으로 가정한다. 비동기 카운터들(110a, 110b)의 타이밍도들도 비동기 카운터(110c)의 타이밍도와 유사할 수 있다. 비동기 카운터(110c)는 코드의 비트들(CODE[2:1])을 출력할 수 있고 그리고 동기 카운터(120a)는 코드의 비트들(CODE[4:3])을 출력할 수 있다. m과 n 각각이 2면, 예를 들어, 코드 생성기(100)는 클럭 신호(CK1)의 상승 엣지를 기준으로 0부터 15(=24(=m+n)-1)까지 셀 수 있다. 다른 예를 들어, 코드 생성기(100)는 클럭 신호(CK1)의 하강 엣지를 기준으로 카운팅 동작을 수행할 수도 있다. 또 다른 예를 들어, 코드 생성기(100)는 클럭 신호(CK1)의 상승 엣지 및 하강 엣지 모두를 기준으로 카운팅 동작을 수행할 수도 있다. T1 시점 이전에 리셋 신호(RESET)가 활성화된 다음에 비활성화될 수 있다. 리셋 신호(RESET)에 응답하여 코드의 비트들(CODE[4:1])의 논리 값들이 모두 0으로 리셋될 수 있다. 도 4에서 가정된 값들은 모두 예시적인 것에 불과하다.
리셋 신호(RESET)가 활성화되었다가 비활성화된 이후의 T1 시점에서, 클럭 신호(CK1)의 논리 값이 0에서 1로 전환될 수 있다. T1 시점에서, 클럭 신호(CK1)의 상승 엣지가 위치할 수 있다. 비동기 카운터(110c)의 플립-플롭(111_1)은 클럭 신호(CK1)의 상승 엣지에서 코드의 비트(CODE[1])의 논리 값을 0에서 1로 전환할 수 있다. T1 시점 전후로, 코드의 비트들(CODE[4:1])의 값들은 0000(2)에서 0001(2)로 업데이트될 수 있다. 도 4를 참조하면, 클럭 신호(CK1)의 상승 엣지가 위치하는 T1 시점 이후에 플립-플롭(111_1)에 의해 코드의 비트(CODE[1], 또는 Q[1])가 출력될 수 있다. T1 시점과 코드의 비트(CODE[1])의 출력 시점 간의 시간 차이(혹은 지연)은 tD1일 수 있다. tD1은 플립-플롭(111_1)의 CK-Q 지연에 해당할 수 있다. 지연은 지연 시간으로도 지칭될 수 있다.
T2 시점에서, 클럭 신호(CK1)의 상승 엣지가 위치할 수 있다. 비동기 카운터(110c)의 플립-플롭(111_1)은 클럭 신호(CK1)의 상승 엣지에서 코드의 비트(CODE[1])의 논리 값을 1에서 0으로 전환할 수 있다. 비동기 카운터(110c)의 플립-플롭(111_2)은 플립-플롭(111_1)의 출력 신호(Q[1], 즉 CODE[1])의 하강 엣지에서 코드의 비트(CODE[2])의 논리 값을 0에서 1로 전환할 수 있다. T2 시점 전후로, 코드의 비트들(CODE[4:1])의 값들은 0001(2)에서 0010(2)로 업데이트될 수 있다. 도 4를 참조하면, 코드의 비트(CODE[1])의 출력 시점 이후에, 플립-플롭(111_2)에 의해 코드의 비트(CODE[2], 또는 Q[2])가 출력될 수 있다.
T2 시점과 코드의 비트(CODE[1])의 출력 시점 간의 시간 차이는 tD1일 수 있다. 코드의 비트(CODE[1])의 출력 시점과 코드의 비트(CODE[2])의 출력 시점 간의 시간 차이는 인버터(112_1)의 전파 지연과 플립-플롭(111_2)의 CK-Q 지연의 합일 수 있다. T2 시점과 코드의 비트(CODE[2])의 출력 시점 간의 시간 차이는 tD2일 수 있다. tD2는 플립-플롭(111_1)의 CK-Q 지연, 인버터(112_1)의 전파 지연, 및 플립-플롭(111_2)의 CK-Q 지연의 합에 해당할 수 있다. 비동기 카운터(110c)는 코드의 비트들(CODE[2:1])을 비동기로 출력할 수 있다. 만약 인버터(112_1)가 비동기 카운터(110c)에 포함되지 않으면, 인버터(112_1)의 전파 지연은 전술한 시간 차이에 반영되지 않을 수도 있다.
T3 내지 T8 시점들에서의 비동기 카운터(110c)의 동작은 T1 또는 T2 시점들에서의 비동기 카운터(110c)의 동작과 실질적으로 동일하다. T3 시점 전후로, 코드의 비트들(CODE[4:1])의 값들은 0010(2)에서 0011(2)로 업데이트될 수 있다.
T4 시점에서, 동기 카운터(120a)의 플립-플롭들(121_1, 121_2)은 비동기 카운터(110c)의 플립-플롭(111_2)의 출력 신호(Q[2], 즉 CODE[2])의 하강 엣지에서 코드의 비트들(CODE[3, 4])의 논리 값들을 각각 래치할 수 있다. 플립-플롭(121_1)은 플립-플롭(111_2)의 출력 신호(Q[2])의 하강 엣지에서 코드의 비트(CODE[3])의 논리 값을 1로 결정할 수 있다. 플립-플롭(121_2)은 플립-플롭(111_2)의 출력 신호(Q[2])의 하강 엣지에서 코드의 비트(CODE[4])의 논리 값을 0으로 결정할 수 있다. T4 시점 전후로, 코드의 비트들(CODE[4:1])의 값들은 0011(2)에서 0100(2)로 업데이트될 수 있다.
T4 시점과 코드의 비트(CODE[1])의 출력 시점 간의 시간 차이는 tD1일 수 있다. T4 시점과 코드의 비트(CODE[2])의 출력 시점 간의 시간 차이는 tD2일 수 있다. 코드의 비트(CODE[2])의 출력 시점과 코드의 비트(CODE[3])의 출력 시점 간의 시간 차이는 인버터(112_2)의 전파 지연과 플립-플롭(121_1)의 CK-Q 지연의 합일 수 있다. T4 시점과 코드의 비트(CODE[3])의 출력 시점 간의 시간 차이는 tD3일 수 있다. tD3는 플립-플롭(111_1)의 CK-Q 지연, 인버터(112_1)의 전파 지연, 플립-플롭(111_2)의 CK-Q 지연, 인버터(112_2)의 전파 지연, 및 플립-플롭(121_1)의 CK-Q 지연의 합에 해당할 수 있다. 만약, 인버터들(112_1, 112_2)이 비동기 카운터(110c)에 포함되지 않으면, 인버터들(112_1, 112_2)의 전파 지연들은 전술한 시간 차이에 반영되지 않을 수도 있다.
T8 시점에서의 동기 카운터(120a)의 동작은 T4 시점에서의 비동기 카운터(110c)의 동작과 실질적으로 동일하다. T5 시점 전후로, 코드의 비트들(CODE[4:1])의 값들은 0100(2)에서 0101(2)로 업데이트될 수 있다. T6 시점 전후로, 코드의 비트들(CODE[4:1])의 값들은 0101(2)에서 0110(2)로 업데이트될 수 있다. T7 시점 전후로, 코드의 비트들(CODE[4:1])의 값들은 0110(2)에서 0111(2)로 업데이트될 수 있다. T8 시점 전후로, 코드의 비트들(CODE[4:1])의 값들은 0111(2)에서 1000(2)로 업데이트될 수 있다.
T4 시점과 코드의 비트(CODE[1])의 출력 시점 간의 시간 차이는 tD1일 수 있다. T4 시점과 코드의 비트(CODE[2])의 출력 시점 간의 시간 차이는 tD2일 수 있다. T4 시점과 코드의 비트(CODE[3])의 출력 시점 간의 시간 차이는 tD3일 수 있다. T4 시점과 코드의 비트(CODE[4])의 출력 시점 간의 시간 차이는 tD3일 수 있다. 비동기 카운터(110c)는 코드의 비트들(CODE[2:1])을 비동기로 출력할 수 있다. 동기 카운터(120a)는 코드의 비트들(CODE[4:3])을 동기로 출력할 수 있다.
도 5는 도 1의 비동기 카운터의 블록도를 예시적으로 도시한다. 비동기 카운터(110d)는 도 1의 비동기 카운터(110)의 다른 예시일 수 있다. 비동기 카운터(110d)와 비동기 카운터(110c)의 차이점이 주로 설명될 것이다. 비동기 카운터(110d)는 플립-플롭들(111_1~111_m)과 인버터들(112_1~112_m)을 포함할 수 있다. 비동기 카운터(110c)에 비해, 비동기 카운터(110d)는 지연 회로들(113_1~113_m)을 더 포함할 수 있다.
지연 회로들(113_1~113_m)은 플립-플롭들(111_1~111_m)의 출력 신호들(Q[m:1])을 각각 지연시킬 수 있고 그리고 코드의 비트들(CODE[m:1])을 동시에 또는 동기로 출력할 수 있다. 코드의 비트들(CODE[m:1])은 출력 신호들(Q[m:1])이 지연된 신호들에 해당할 수 있다. 예를 들어, 지연 회로들(113_1~113_m)은 코드의 비트들(CODE[m:1])이 동기로(동시에) 출력되도록, 출력 신호들(Q[m:1])을 지연시킬 수 있다. 지연 회로들(113_1~113_m)에 의해 플립-플롭들(111_1~111_m)의 출력 신호들(Q[m:1])이 지연되는 지연들은 서로 다를 수 있다.
지연 회로들(113_1~113_m)은 코드의 비트들(CODE[m:1])이 코드의 비트들(CODE[m+1:m+n])이 출력되는 시점에서 함께 출력되도록, 출력 신호들(Q[m:1])을 지연시킬 수 있다. 예를 들어, 지연 회로(113_1)는 플립-플롭들(111_2~111_m)의 CK-Q 지연들, 인버터들(112_1~112_m)의 전파 지연들, 그리고 플립-플롭(121_1)의 CK-Q 지연의 합만큼 출력 신호(Q[1])를 지연시킬 수 있다. 지연 회로(113_1)는 플립-플롭들(111_2~111_m), 인버터들(112_1~112_m), 및 플립-플롭(121_1)을 모사하는 모사 회로일 수 있다. 만약 인버터들(112_1~112_m)이 플립-플롭들(111_1~111_m)에 포함되지 않으면, 지연 회로(113_1)는 플립-플롭들(111_2~111_m)의 CK-Q 지연들 그리고 플립-플롭(121_1)의 CK-Q 지연의 합만큼 출력 신호(Q[1])를 지연시킬 수 있다.
지연 회로(113_2)는 플립-플롭들(111_3~111_m)의 CK-Q 지연들, 인버터들(112_2~112_m)의 전파 지연들, 그리고 플립-플롭(121_1)의 CK-Q 지연의 합만큼 출력 신호(Q[2])를 지연시킬 수 있다. 지연 회로(113_2)는 플립-플롭들(111_3~111_m), 인버터들(112_2~112_m), 및 플립-플롭(121_1)을 모사하는 모사 회로일 수 있다. 지연 회로(113_m)는 인버터(112_m)의 전파 지연 그리고 플립-플롭(121_1)의 CK-Q 지연의 합만큼 출력 신호(Q[m])를 지연시킬 수 있다. 예를 들어, 지연 회로(113_m)의 지연과 지연 회로(113_m-1)의 지연 간의 차이는 인버터(112_m-1)의 전파 지연과 플립-플롭(111_m)의 전파 지연의 합에 해당할 수 있다. 지연 회로(113_1)의 지연이 최대이고 지연 회로(113_m)의 지연이 최소일 수 있다. m이 증가할수록 지연 회로(113_m)의 지연은 점점 감소할 수 있다.
도 6은 도 1의 코드 생성기의 동작을 예시적으로 도시하는 타이밍도이다. 도 6은 도 1 내지 도 5를 참조하여 설명될 것이다. 도 6에서, 도 1의 비동기 카운터(110)는 도 5의 비동기 카운터(110d)이고, 도 1의 동기 카운터(120)는 도 3의 동기 카운터(120a)이고, 그리고 m과 n 각각은 2인 것으로 가정한다. 이하, 도 6의 타이밍도와 도 4의 타이밍도 간의 차이점이 주로 설명될 것이다.
비동기 카운터(110d)의 플립-플롭(111_1)은 클럭 신호(CK1)의 상승 엣지(T1 시점)에서 코드의 비트(CODE[1])의 논리 값을 0에서 1로 전환할 수 있다. T1 시점과 코드의 비트(CODE[1])의 출력 시점 간의 시간 차이는 지연 회로(113_1)에 의해 tD1이 아닌 tD3일 수 있다. tD3는 플립-플롭(111_1)의 CK-Q 지연, 인버터(112_1)의 전파 지연, 플립-플롭(111_2)의 CK-Q 지연, 인버터(112_2)의 전파 지연, 및 플립-플롭(121_1)의 CK-Q 지연의 합에 해당할 수 있다. 지연 회로(113_1)의 지연은 인버터(112_1)의 전파 지연, 플립-플롭(111_2)의 CK-Q 지연, 인버터(112_2)의 전파 지연, 및 플립-플롭(121_1)의 CK-Q 지연의 합에 해당할 수 있다.
비동기 카운터(110d)의 플립-플롭(111_2)은 클럭 신호(CK1)의 상승 엣지(T2 시점)에서 코드의 비트(CODE[2])의 논리 값을 0에서 1로 전환할 수 있다. T2 시점과 코드의 비트(CODE[2])의 출력 시점 간의 시간 차이는 지연 회로(113_2)에 의해 tD2가 아닌 tD3일 수 있다. 지연 회로(113_2)의 지연은 인버터(112_2)의 전파 지연 및 플립-플롭(121_1)의 CK-Q 지연의 합에 해당할 수 있다. 비동기 카운터(110c)와 달리, 비동기 카운터(110d)는 지연 회로들(113_1, 113_2)을 이용하여 코드의 비트들(CODE[2:1])을 동기로 출력할 수 있다.
동기 카운터(120a)의 플립-플롭(121_1)은 클럭 신호(CK1)의 상승 엣지(T8 시점)에서 코드의 비트(CODE[3])의 논리 값을 1에서 0으로 전환할 수 있다. 동기 카운터(120a)의 플립-플롭(121_2)은 클럭 신호(CK1)의 상승 엣지(T8 시점)에서 코드의 비트(CODE[4])의 논리 값을 0에서 1로 전환할 수 있다. T8 시점과 코드의 비트(CODE[3])의 출력 시점 간의 시간 차이는 tD3일 수 있다. T8 시점과 코드의 비트(CODE[4])의 출력 시점 간의 시간 차이도 tD3일 수 있다.
도 7은 도 2a 내지 도 2c, 도 3, 및 도 5에서 도시된 플립-플롭을 예시적으로 도시한다. 도 7의 플립-플롭(111)은 전술한 비동기 카운터(120a, 120b)의 플립-플롭들(111_1~111_m) 중 어느 하나일 수 있고 T 플립-플롭일 수 있다. 도 7의 플립-플롭(121)은 전술한 동기 카운터(120a)의 플립-플롭들(121_1~121_n) 중 어느 하나일 수 있고 D 플립-플롭일 수 있다. 도 7을 참조하면, 플립-플롭(121)의 반전 출력 포트(Qb)가 입력 포트(D)로 피드백되거나 입력 포트(D)에 전기적으로 연결되면, 플립-플롭(121)은 플립-플롭(111)과 실질적으로 동일하게 동작할 수 있다. 예를 들어, 비동기 카운터(120a, 120b)의 플립-플롭들(111_1~111_m)은 출력 포트(Qb)가 입력 포트(D)에 전기적으로 연결된 플립-플롭(121)을 이용하여 각각 구현될 수 있다.
도 8은 도 1의 동기 카운터의 블록도를 예시적으로 도시한다. 동기 카운터(120b)는 도 1의 동기 카운터(120)의 일 예시일 수 있다. 도 8에서, n은 4인 것으로 가정한다. 동기 카운터(120b)는 플립-플롭들(121_1~121_4)과 조합 논리 회로(122b)를 포함할 수 있다. 동기 카운터(120a)의 플립-플롭들(121_1~121_n)과 동기 카운터(120b)의 플립-플롭들(121_1~121_4)은 서로 동일할 수 있다. 조합 논리 회로(122b)는 도 3의 조합 논리 회로(122)의 일 예시일 수 있다.
조합 논리 회로(122b)는 플립-플롭들(121_1~121_4)의 반전 출력 신호들(Qb[m+4:m+1])에 대한 논리 연산들을 수행하는 적어도 하나 이상의 논리 게이트들을 포함할 수 있다. 조합 논리 회로(122b)는 반전 출력 신호들(Qb[m+1, m+2])에 대한 배타적 논리합 연산을 수행하는 논리 게이트(XOR1)를 포함할 수 있다. 논리 게이트(XOR1)의 출력 신호는 플립-플롭(121_2)의 입력 포트(D)로 전송될 수 있다. 조합 논리 회로(122b)는 반전 출력 신호들(Qb[m+1, m+2])에 대한 부정 논리합 연산을 수행하는 논리 게이트(NOR1)를 포함할 수 있다. 조합 논리 회로(122b)는 논리 게이트(NOR1)의 출력 신호와 반전 출력 신호(Qb[m+2])에 대한 배타적 논리합 연산을 수행하는 논리 게이트(XOR2)를 포함할 수 있다. 논리 게이트(XOR2)의 출력 신호는 플립-플롭(121_3)의 입력 포트(D)로 전송될 수 있다. 조합 논리 회로(122b)는 반전 출력 신호들(Qb[m+1, m+2])에 대한 부정 논리합 연산을 수행하는 논리 게이트(NOR2)를 포함할 수 있다. 조합 논리 회로(122b)는 논리 게이트(NOR2)의 출력 신호와 반전 출력 신호(Qb[m+2])에 대한 부정 논리합 연산을 수행하는 논리 게이트(NOR3)를 포함할 수 있다. 조합 논리 회로(122b)는 논리 게이트(NOR3)의 출력 신호와 반전 출력 신호(Qb[m+4])에 대한 배타적 논리합 연산을 수행하는 논리 게이트(XOR3)를 포함할 수 있다. 논리 게이트(XOR3)의 출력 신호는 플립-플롭(121_4)의 입력 포트(D)로 전송될 수 있다. 조합 논리 회로(122b)에 의해 수행되는 논리 연산들과 조합 논리 회로(122b)에 포함된 논리 게이트들은 모두 예시적인 것에 불과하다.
동기 카운터(120b)는 플립-플롭(121_1)의 반전 출력 포트(Qb)에서부터 조합 논리 회로(122b)를 경유하여 플립-플롭(121_4)의 입력 포트(D)까지의 크리티컬 패스(critical path)를 가질 수 있다. 동기 카운터(120b)의 크리티컬 패스는 n이 증가할수록 더 길어질 수 있다. n이 4인 경우, 크리티컬 패스는 플립-플롭(121_1)의 반전 출력 포트(Qb)에서부터 조합 논리 회로(122b)의 논리 게이트들(NOR2, NOR3, XOR3)을 경유하여 플립-플롭(121_4)의 입력 포트(D)까지의 경로에 해당할 수 있다. 크리티컬 패스로 인한 전파 지연은 플립-플롭(121_1)의 반전 출력 포트(Qb)를 통해 출력된 반전 출력 신호(Qb[m+1])가 조합 논리 회로(122b)의 논리 게이트들(NOR2, NOR3, XOR3)을 통해 플립-플롭(121_4)의 입력 포트(D)로 전파되는데 소요되는 시간에 해당할 수 있다.
동기 카운터(120b)는 비동기 카운터(110)에 의해 클럭 신호(CK1)가 분주된 클럭 신호(CK2)를 수신할 수 있다. 클럭 신호(CK2)는 상대적으로 클럭 신호(CK1)에 비해 저속일 수 있다. 클럭 신호(CK2)는 클럭 신호(CK1)의 주파수보다 낮은 주파수를 갖고 클럭 신호(CK1)의 주기보다 큰 주기를 가질 수 있다. 동기 카운터(120b)는 클럭 신호(CK2)에 기초하여 동작할 수 있다. 예를 들어, 클럭 신호(CK2)의 주기는 플립-플롭(121_1)의 CK-Q 지연, 크리티컬 패스의 전파 지연, 및 플립-플롭(121_4)의 셋업-시간(setup-time)의 합 이상일 수 있다. 비동기 카운터(110)에 의해 출력되는 코드의 비트들(CODE[m:1])의 개수인 m은 동기 카운터(120)의 크리티컬 패스의 전파 지연에 따라 결정될 수 있다. 예를 들어, 클럭 신호(CK1)의 주기가 P이면, P*m은 동기 카운터(120)의 크리티컬 패스의 전파 지연 이상일 수 있다.
코드 생성기(100)는 비동기 카운터(110)와 동기 카운터(120)를 모두 포함하는 하이브리드 카운터를 이용하여 크리티컬 패스로 인한 클럭 신호의 주파수 제약을 해소할 수 있다. 또한, 코드 생성기(100)는 비동기 카운터(110d)의 지연 회로들(113_1~113_m)과 동기 카운터(120)를 모두 이용하여 코드의 비트들(CODE[m+n:1])을 동기로 출력할 수 있다. 비동기 카운터(110)만을 사용하는 경우에 비해, 코드 생성기(100)는 지연 회로들(113_1~113_m)을 보다 덜 포함하거나 덜 이용할 수 있다. 코드 생성기(100)는 하이브리드 카운터를 이용하여 코드의 비트들(CODE[m+n:1])의 수가 커지더라도 코드의 비트들(CODE[m+n:1])이 출력되는 시점들을 서로 동일하게 조정할 수 있다.
도 9는 본 발명의 다른 실시 예에 따른 코드 생성기의 블록도를 예시적으로 도시한다. 코드 생성기(200)와 코드 생성기(100) 간의 차이점이 주로 설명될 것이다. 코드 생성기(200)는 비동기 카운터(210), 동기 카운터(220), 및 비동기 카운터(230)를 포함할 수 있다. 비동기 카운터(210) 및 동기 카운터(220)는 도 1 내지 도 8에서 전술한 비동기 카운터(110) 및 동기 카운터(120)와 실질적으로 각각 동일할 수 있다.
비동기 카운터(230)는 클럭 신호(CK3)를 수신하고 그리고 클럭 신호(CK3)에 기초하여 코드의 비트들(CODE[m+n+l:m+n+1])을 출력하거나 생성할 수 있다. 예를 들어, l은 2 이상의 정수일 수 있고, m과 n과 같거나 상이할 수 있고, 그리고 비동기 카운터(230)는 멀티 비트를 출력할 수 있다. 코드의 비트들(CODE[m+n+l:m+n+1])은 코드의 비트들(CODE[m+n:1])에 비해 상위 비트들에 해당할 수 있다. 클럭 신호(CK3)를 수신하는 점을 제외하면, 비동기 카운터(230)는 비동기 카운터(210)와 실질적으로 동일하게 동작할 수 있다. 클럭 신호(CK3)는 클럭 신호(CK2)와 동일하거나 또는 클럭 신호(CK2)가 버퍼링된 클럭 신호에 해당할 수 있다.
도 10은 본 발명의 또 다른 실시 예에 따른 코드 생성기의 블록도를 예시적으로 도시한다. 코드 생성기(300)와 코드 생성기(100) 간의 차이점이 주로 설명될 것이다. 코드 생성기(300)는 동기 카운터(310), 비동기 카운터(320), 및 동기 카운터(330)를 포함할 수 있다. 비동기 카운터(320) 및 동기 카운터(330)는 도 1 내지 도 8에서 전술한 비동기 카운터(110) 및 동기 카운터(120)와 실질적으로 각각 동일할 수 있다. 클럭 신호(CK1)를 수신하는 점을 제외하면, 동기 카운터(310)는 동기 카운터(330)와 실질적으로 동일하게 동작할 수 있다.
동기 카운터(310)는 클럭 신호(CK1)를 수신하고 그리고 클럭 신호(CK1)에 기초하여 코드의 비트들(CODE[m:1])을 출력하거나 생성할 수 있다. 비동기 카운터(320)는 클럭 신호(CK2)를 수신하고 그리고 클럭 신호(CK2)에 기초하여 코드의 비트들(CODE[m+n:m+1])을 출력하거나 생성할 수 있다. 클럭 신호(CK2)는 클럭 신호(CK1)와 동일하거나 또는 클럭 신호(CK1)가 버퍼링된 클럭 신호에 해당할 수 있다. 동기 카운터(330)는 클럭 신호(CK3)를 수신하고 그리고 클럭 신호(CK3)에 기초하여 코드의 비트들(CODE[m+n+l:m+n+1])을 출력하거나 생성할 수 있다. 클럭 신호(CK3)는 비동기 카운터(320)에 의해 클럭 신호(CK2)가 분주된 신호에 해당할 수 있다. 도 10에서, m, n, l은 2 이상의 정수일 수 있고 서로 동일하거나 상이할 수 있다.
도 11은 본 발명의 또 다른 실시 예에 따른 코드 생성기의 블록도를 예시적으로 도시한다. 코드 생성기(400)와 코드 생성기(100) 간의 차이점이 주로 설명될 것이다.
코드 생성기(400)는 비동기 카운터(410), 동기 카운터(420), 및 코드 변환기(430)를 포함할 수 있다. 비동기 카운터(410) 및 동기 카운터(420)는 도 1 내지 도 8에서 전술한 비동기 카운터(110) 및 동기 카운터(120)와 실질적으로 각각 동일할 수 있다. 코드 변환기(430)는 바이너리 코드(BCODE)를 그레이 코드(GCODE)로 변환할 수 있다. 바이너리 코드의 비트들(BCODE[m+n:1])은 도 1 내지 도 8에서 전술한 코드의 비트들(CODE[m+n:1])과 동일할 수 있다. 예를 들어, 코드 생성기(400)는 바이너리 코드(BCODE)를 출력하거나, 그레이 코드(GCODE)를 출력하거나, 또는 바이너리 코드(BCODE)와 그레이 코드(GCODE) 모두를 출력할 수 있다.
도 12는 도 11의 코드 변환기의 블록도를 예시적으로 도시한다. 코드 변환기(430)는 플립-플롭들(431_1~431_m+n-1)과 지연 회로(431_m+n)를 포함할 수 있다. 플립-플롭들(431_1~431_m+n-1) 각각은 클럭 포트, 리셋 포트(R), 및 출력 포트(Q)를 포함할 수 있다. 플립-플롭들(431_1~431_m+n-1) 각각은 입력 포트와 반전 출력 포트(미도시)를 더 포함할 수 있다. 플립-플롭들(431_1~431_m+n-1) 각각의 반전 출력 포트는 입력 포트로 전기적으로 연결될 수 있다. 예를 들어, 플립-플롭들(431_1~431_m+n-1) 각각은 전술한 T 플립-플롭일 수 있다. 플립-플롭들(431_1~431_m+n-1)은 클럭 포트들을 통해 바이너리 코드의 비트들(BCODE[m+n-1:1])을 갖는 클럭 신호들(혹은 비동기 카운터(410)와 동기 카운터(420)의 출력 신호들)을 수신할 수 있다. 플립-플롭들(431_1~431_m+n-1)이 수신하는 바이너리 코드의 비트들(BCODE[m+n-1:1])은 바이너리 코드의 모든 비트들(BCODE[m+n:1]) 중 MSB(BCODE[m+n])가 제외된 것이다. 플립-플롭들(431_1~431_m+n-1)은 클럭 신호들의 엣지들에서 그레이 코드의 비트들(GCODE[m+n:1])의 논리 값들을 전환할 수 있다. 예를 들어, 플립-플롭들(431_1~431_m+n-1)은 서로 동일하게 구현될 수 있다.
지연 회로(431_m+n)는 바이너리 코드의 비트(BCODE[m+n])를 갖는 클럭 신호(혹은 출력 신호)를 수신하고 그리고 수신된 클럭 신호를 그레이 코드의 비트(GCODE[m+n])로서 그대로 출력할 수 있다. 지연 회로(431_m+n)는 플립-플롭들(431_1~431_m+n-1) 중 어느 하나를 모사할 수 있다. 지연 회로(431_m+n)는 수신된 클럭 신호를 플립-플롭들(431_1~431_m+n-1) 각각의 CK-Q 지연만큼 지연시킬 수 있다. 예를 들어, 바이너리 코드의 비트(BCODE[m+n])와 그레이 코드의 비트(GCODE[m+n])는 서로 동일할 수 있고, 이들은 모두 MSB에 해당할 수 있다.
플립-플롭들(431_1~431_m+n-1)과 지연 회로(431_m+n)는 공통으로 리셋 신호(RESET)를 수신할 수 있다. 플립-플롭들(431_1~431_m+n-1)과 지연 회로(431_m+n)의 리셋 동작은 도 2a 내지 도 2c 및 도 3에서 전술한 리셋 동작과 실질적으로 동일할 수 있다. 예를 들어, 비동기 카운터(410), 동기 카운터(420), 및 코드 변환기(430)로 리셋 신호(RESET)가 공통으로 제공될 수 있다. 다른 예를 들어, 비동기 카운터(410), 동기 카운터(420), 및 코드 변환기(430)로 리셋 신호들이 각각 제공될 수도 있다.
도 13은 도 11 및 도 12의 코드 변환기의 동작을 예시적으로 도시하는 타이밍도이다. 도 13은 도 11 및 도 12를 참조하여 설명될 것이다. 도 13의 T1 내지 T8 시점들은 도 4 및 도 6의 T1 내지 T8 시점들과 다르다. 도 13에서 설명의 편의를 위해 m+n은 3인 것으로 가정한다.
T1 시점에서, 바이너리 코드의 비트(BCODE[1])의 논리 값이 0에서 1로 전환될 수 있다. 코드 변환기(430)의 플립-플롭(431_1)은 바이너리 코드의 비트(BCODE[1])를 갖는 출력 신호의 엣지(T1 시점)에서 그레이 코드의 비트(GCODE[1])의 논리 값을 0에서 1로 전환할 수 있다. 바이너리 코드의 비트(BCODE[1])의 출력 시점과 그레이 코드의 비트(GCODE[1])의 출력 시점 간의 시간 차이는 플립-플롭(431_1)의 CK-Q 지연에 해당할 수 있다. 다른 그레이 코드의 비트들(GCODE[2, 3])의 논리 값들은 유지될 수 있다. T1 시점 전후로, 그레이 코드의 비트들(GCODE[3:1])의 값들은 000(2)에서 001(2)로 업데이트될 수 있다.
T2 시점에서, 바이너리 코드의 비트(BCODE[2])의 논리 값이 0에서 1로 전환될 수 있다. 코드 변환기(430)의 플립-플롭(431_2)은 바이너리 코드의 비트(BCODE[2])를 갖는 출력 신호의 엣지(T2 시점)에서 그레이 코드의 비트(GCODE[2])의 논리 값을 0에서 1로 전환할 수 있다. 바이너리 코드의 비트(BCODE[2])의 출력 시점과 그레이 코드의 비트(GCODE[2])의 출력 시점 간의 시간 차이는 플립-플롭(431_2)의 CK-Q 지연에 해당할 수 있다. 다른 그레이 코드의 비트들(GCODE[1, 3])의 논리 값들은 유지될 수 있다. T2 시점 전후로, 그레이 코드의 비트들(GCODE[3:1])의 값들은 001(2)에서 011(2)로 업데이트될 수 있다.
T3 시점에서의 플립-플롭(431_1)의 동작은 T1 시점에서의 플립-플롭(431_1)의 동작과 실질적으로 동일할 수 있다. T3 시점 전후로, 그레이 코드의 비트들(GCODE[3:1])의 값들은 011(2)에서 010(2)로 업데이트될 수 있다. T4 시점에서, 바이너리 코드의 비트(BCODE[3])의 논리 값이 0에서 1로 전환될 수 있다. 코드 변환기(430)의 지연 회로(431_3)는 바이너리 코드의 비트(BCODE[3])를 그대로 그레이 코드의 비트(GCODE[3])로서 출력할 수 있다. 바이너리 코드의 비트(BCODE[3])의 출력 시점과 그레이 코드의 비트(GCODE[3])의 출력 시점 간의 시간 차이는 플립-플롭들(431_1, 431_2) 각각의 CK-Q 지연(즉, 지연 회로(431_3)의 지연)에 해당할 수 있다. 다른 그레이 코드의 비트들(GCODE[1, 2])의 논리 값들은 유지될 수 있다. T4 시점 전후로, 그레이 코드의 비트들(GCODE[3:1])의 값들은 010(2)에서 110(2)로 업데이트될 수 있다.
T5 내지 T8 시점들에서의 코드 변환기(430)의 동작은 T1 내지 T4 시점들에서의 코드 변환기(430)의 동작과 실질적으로 동일하다. T5 시점 전후로, 그레이 코드의 비트들(GCODE[3:1])의 값들은 110(2)에서 111(2)로 업데이트될 수 있다. T6 시점 전후로, 그레이 코드의 비트들(GCODE[3:1])의 값들은 111(2)에서 101(2)로 업데이트될 수 있다. T7 시점 전후로, 그레이 코드의 비트들(GCODE[3:1])의 값들은 101(2)에서 100(2)로 업데이트될 수 있다. T8 시점 전후로, 그레이 코드의 비트들(GCODE[3:1])의 값들은 100(2)에서 000(2)로 업데이트될 수 있다.
도 14는 본 발명의 실시 예에 따른 코드 생성기의 동작의 순서도를 예시적으로 도시한다. 도 14의 순서도는 도 1의 코드 생성기(100)에 관한 것이다. 다만, 도 14의 순서도는 도 9, 도 10, 및 도 11의 코드 생성기들(200, 300, 400)에도 적용될 수 있다. 도 14는 도 1 내지 도 13을 참조하여 설명될 것이다.
S110 단계에서, 코드 생성기(100)는 클럭 신호를 수신할 수 있다. 클럭 신호는 도 1에서 전술한 클럭 신호(CK1)일 수 있다. S120 단계에서, 코드 생성기(100)의 비동기 카운터(110)는 플립-플롭들(111_1~111_m)을 이용하여 클럭 신호(CK1)를 분주함으로써 코드의 하위 비트들(CODE[m:1])을 생성할 수 있다. S130 단계에서, 코드 생성기(100)의 동기 카운터(120)는 분주된 클럭 신호의 엣지에서, 플립-플롭들(121_1~121_n)을 이용하여 코드의 상위 비트들(CODE[m+n:m+1])을 생성할 수 있다. 분주된 클럭 신호는 도 1에서 전술한 클럭 신호(CK2)일 수 있다. 예를 들어, S130 단계는 S120 단계를 통해 클럭 신호가 분주된 다음에 진행될 수 있다. 예를 들어, 도 14의 순서도가 도 11의 코드 생성기(400)에 적용되는 경우, S130 단계 이후에, 코드 생성기(400)는 S120 및 S130 단계들을 통해 생성된 바이너리 코드를 그레이 코드로 변환할 수 있다.
도 15는 본 발명의 실시 예에 따른 코드 생성기가 적용되는 이미지 센서의 블록도를 예시적으로 도시한다. 이미지 센서(1000)는 픽셀 어레이(1100), 로우 드라이버(1200), ADC(analog to digital converter; 1300), 및 타이밍 컨트롤러(1400)를 포함할 수 있다. 도시되진 않았으나, 이미지 센서(1000)는 ADC(1300)로부터의 이미지 데이터를 처리하는 ISP(image signal processor)와 같은 프로세서를 더 포함할 수 있다. 예를 들어, 도 15의 이미지 센서(1000)의 구성 요소들은 본 발명의 실시 예에 따른 코드 생성기들(100, 200, 300, 400) 중 어느 하나를 포함하고 이용할 수 있다.
픽셀 어레이(1100)는 행 방향 및 열 방향을 따라 배치되고 입사되는 빛을 전기적 신호로 변환하는 픽셀들(미도시)을 포함할 수 있다. 로우 드라이버(1200)는 타이밍 컨트롤러(1400)의 제어에 기초하여 로우 어드레스를 디코딩하고 그리고 로우 어드레스에 대응하는 픽셀들을 선택하고 제어할 수 있다. 로우 드라이버(1200)는 제어 신호들 선택된 픽셀들로 전송할 수 있다. ADC(1300)는 타이밍 컨트롤러(1400)의 제어에 기초하여 픽셀 어레이(1100)로부터 출력되는 출력 신호(예를 들어, 아날로그 신호)에 대응하는 디지털 코드를 생성할 수 있다. 예를 들어, ADC(1300)는 출력 신호를 이중으로 샘플링하고 홀드할 수 있다. ADC(1300)는 상관 이중 샘플링을 수행할 수 있다. ADC(1300)는 이중으로 샘플링된 출력 신호의 레벨들 간의 차이를 디지털 코드로 변환할 수 있다. 타이밍 컨트롤러(1400)는 로우 드라이버(1200) 및 ADC(1300)를 제어할 수 있다. 타이밍 컨트롤러(1400)는 ADC(1300)로부터 이미지 데이터를 수신할 수 있다. 타이밍 컨트롤러(1400)는 이미지 센서(1000)와 통신하는 외부 장치의 요청에 따라 이미지 센서(1000)에 의해 감지된 이미지 데이터를 외부 장치로 전송할 수 있다.
도 16은 본 발명의 실시 예에 따른 코드 생성기가 적용되는 디스플레이 장치의 블록도를 예시적으로 도시한다. 디스플레이 장치(2000)는 디스플레이 패널(2100), 게이트 드라이버(2200), 데이터 드라이버(2300), 및 타이밍 컨트롤러(2400)를 포함할 수 있다. 예를 들어, 도 16의 디스플레이 장치(2000)의 구성 요소들은 본 발명의 실시 예에 따른 코드 생성기들(100, 200, 300, 400) 중 어느 하나를 포함하고 이용할 수 있다.
디스플레이 패널(2100)은 이미지를 표시할 수 있다. 디스플레이 패널(2100)은 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 플렉서블(flexible) 디스플레이 등으로 구현될 수 있고, 상술한 것들 이외의 다른 종류의 평판 디스플레이로 구현될 수도 있다. 디스플레이 패널(2100)은 행 방향 및 열 방향을 따라 배치되고 그리고 게이트 드라이버(2200) 및 데이터 드라이버(2300)에 의해 구동되어 픽셀 데이터에 대응하는 이미지를 표시할 수 있는 픽셀들을 포함할 수 있다.
게이트 드라이버(2200)는 디스플레이 패널(2100)의 픽셀들에 연결된 게이트 라인들(미도시)을 구동하고 픽셀들을 선택할 수 있다. 데이터 드라이버(2300)는 디스플레이 패널(2100)의 픽셀들에 연결된 데이터 라인들을 구동할 수 있다. 데이터 드라이버(2300)는 픽셀 데이터에 대응하는 계조(gray) 전압들을 픽셀들로 전송할 수 있다. 예를 들어, 픽셀은 박막 트랜지스터 그리고 박막 트랜지스터의 드레인 전극에 연결된 액정 커패시터 및 스토리지 커패시터를 포함할 수 있다. 계조 전압이 픽셀의 커패시터들로 인가될 수 있다.
타이밍 컨트롤러(2400)는 디스플레이 장치(2000)와 통신하는 외부 장치로부터 픽셀 데이터(혹은 이미지 데이터)를 수신할 수 있다. 타이밍 컨트롤러(2400)는 게이트 드라이버(2200) 및 데이터 드라이버(2300)를 제어할 수 있다.
도 17은 본 발명의 실시 예에 따른 코드 생성기가 적용되는 전자 장치의 블록도를 예시적으로 도시한다. 전자 장치(3000)는 MIPI 연합(Mobile Industry Processor Interface Alliance)에 의해 제안된 인터페이스 규약을 이용하거나 지원할 수 있는 데이터 처리 장치로 구현될 수 있고 컴퓨터 시스템으로도 지칭될 수 있다. 예를 들어, 전자 장치(3000)는 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Media Player), 스마트 폰, 태블릿 컴퓨터, 웨어러블 장치 등과 같은 전자 장치들 중 하나일 수 있다. 예를 들어, 도 17의 전자 장치(3000)의 구성 요소들은 본 발명의 실시 예에 따른 코드 생성기들(100, 200, 300, 400) 중 어느 하나를 포함하고 이용할 수 있다.
전자 장치(3000)는 어플리케이션 프로세서(3100), 디스플레이들(3220, 3221), 및 이미지 센서들(3230, 3231)을 포함할 수 있다. 어플리케이션 프로세서(3100)는 DigRF 마스터(3110), DSI(Display Serial Interface) 호스트(3120), CSI(Camera Serial Interface) 호스트(3130), 및 물리 계층(3140)을 포함할 수 있다.
DSI 호스트(3120)는 DSI에 따라 디스플레이(3220)의 DSI 장치(3225)와 통신할 수 있다. 예로서, DSI 호스트(3120)에는 시리얼라이저(SER)가 구현될 수 있고, DSI 장치(3225)에는 디시리얼라이저(DES)가 구현될 수 있다. CSI 호스트(3130)는 CSI에 따라 이미지 센서(3230)의 CSI 장치(3235)와 통신할 수 있다. 예로서, CSI 호스트(3130)에는 디시리얼라이저(DES)가 구현될 수 있고, CSI 장치(3235)에는 시리얼라이저(SER)가 구현될 수 있다. 전자 장치(3000)는 어플리케이션 프로세서(3100)와 통신하는 RF(Radio Frequency) 칩(3240)을 더 포함할 수 있다. RF 칩(3240)은 물리 계층(3242), DigRF 슬레이브(3244), 및 안테나(3246)를 포함할 수 있다. 예로서, RF 칩(3240)의 물리 계층(3242)과 어플리케이션 프로세서(3100)의 물리 계층(3140)은 MIPI 연합에 의해 제안된 DigRF 인터페이스에 의해 서로 데이터를 교환할 수 있다.
전자 장치(3000)는 워킹 메모리(3250), 임베디드 스토리지 장치(3251), 및 카드 스토리지 장치(3252)를 더 포함할 수 있다. 워킹 메모리(3250), 임베디드 스토리지 장치(3251), 및 카드 스토리지 장치(3252)는 어플리케이션 프로세서(3100)를 위해 데이터를 저장하거나 출력할 수 있다. 워킹 메모리(3250)는 어플리케이션 프로세서(3100)에 의해 처리된 또는 처리될 데이터를 일시적으로 저장할 수 있다. 워킹 메모리(3250)는 SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, 및/또는 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다. 임베디드 스토리지 장치(3251) 및 카드 스토리지 장치(3252)는 전원 공급 여부와 관계없이 데이터를 저장할 수 있다. 전자 장치(3000)는 Wimax(World Interoperability for Microwave Access, 3260), WLAN(Wireless Local Area Network, 3262), UWB(Ultra Wideband, 3264) 등과 같은 통신 모듈을 통해 외부 장치/시스템과 통신할 수 있다. 이 외에도, 전자 장치(3000)는 LTE(Long Term Evolution), GSM(Global System for Mobile communications), CDMA(Code Division Multiple Access), Bluetooth, NFC(Near Field Communication), WiFi(Wireless Fidelity), RFID(Radio Frequency Identification) 등의 다양한 무선 통신 규약 중 적어도 하나, 및/또는 TCP/IP(Transfer Control Protocol/Internet Protocol), USB, SCSI, M-PCIe(Mobile PCIe), Firewire 등의 다양한 유선 통신 규약 중 적어도 하나에 따라 외부 장치/시스템과 통신할 수 있다. 전자 장치(3000)는 음성 정보를 처리하기 위한 스피커(3270) 및 마이크(3275)를 더 포함할 수 있다. 나아가, 전자 장치(3000)는 위치 정보를 처리하기 위한 GPS(Global Positioning System) 장치(3280)를 더 포함할 수 있다. 전자 장치(3000)는 주변 장치들과의 연결을 관리하기 위한 브릿지(Bridge) 칩(3290)을 더 포함할 수 있다.

Claims (20)

  1. 코드의 제 1 내지 제 m 비트들(m은 2 이상의 정수)에 해당하는 제 1 내지 제 m 출력 신호들을 비동기로 각각 출력하도록 구성되는 제 1 내지 제 m 플립-플롭들을 포함하는 비동기 카운터; 및
    상기 코드의 제 m+1 내지 제 m+n 비트들(n은 2 이상의 정수)에 해당하는 제 m+1 내지 제 m+n 출력 신호들을 동기로 출력하도록 구성되는 제 m+1 내지 제 m+n 플립-플롭들을 포함하는 동기 카운터를 포함하고,
    상기 비동기 카운터는 상기 코드의 상기 제 1 내지 제 m 비트들이 상기 코드의 상기 제 m+1 내지 제 m+n 비트들이 출력되는 시점에서 함께 출력되도록, 상기 제 1 내지 제 m 출력 신호들을 지연시키도록 구성되는 제 1 내지 제 m 지연 회로들을 더 포함하는 코드 생성기.
  2. 제 1 항에 있어서,
    상기 비동기 카운터의 상기 제 1 플립-플롭은 제 1 클럭 신호를 수신하도록 더 구성되고 그리고 상기 비동기 카운터의 상기 제 2 내지 제 m 플립-플롭들은 상기 제 1 내지 제 m-1 출력 신호들이 반전된 신호들을 각각 수신하도록 더 구성되고, 그리고
    상기 동기 카운터의 상기 제 m+1 내지 제 m+n 플립-플롭들은 각각 상기 제 m 출력 신호가 반전된 신호를 제 2 클럭 신호로서 수신하도록 더 구성되는 코드 생성기.
  3. 제 1 항에 있어서,
    상기 제 1 내지 제 m 지연 회로들에 의해 상기 제 1 내지 제 m 출력 신호들이 각각 지연되는 지연 시간들은 서로 다른 코드 생성기.
  4. 제 1 항에 있어서,
    상기 비동기 카운터의 상기 제 1 플립-플롭은 클럭 신호의 엣지에서 상기 코드의 상기 제 1 비트의 논리 값을 전환(toggle)하도록 더 구성되고, 그리고
    상기 비동기 카운터의 상기 제 m 플립-플롭은 상기 제 m-1 출력 신호의 엣지에서 상기 코드의 상기 제 m 비트의 논리 값을 전환하도록 더 구성되는 코드 생성기.
  5. 제 1 항에 있어서,
    상기 동기 카운터의 상기 제 m+1 플립-플롭은 상기 제 m 출력 신호의 엣지에서 상기 코드의 상기 제 m+1 비트의 논리 값을 전환하도록 구성되고, 그리고
    상기 동기 카운터의 상기 제 m+2 내지 제 m+n 플립-플롭들은 상기 제 m 출력 신호의 상기 엣지에서 상기 코드의 상기 제 m+2 내지 제 m+n 비트들의 논리 값들을 각각 래치(latch)하도록 구성되는 코드 생성기.
  6. 제 1 항에 있어서,
    상기 비동기 카운터의 상기 제 1 내지 제 m 플립-플롭들 및 상기 동기 카운터의 상기 제 m+1 플립-플롭은 동일한 종류의 플립-플롭인 코드 생성기.
  7. 제 1 항에 있어서,
    상기 동기 카운터는 상기 제 m+1 내지 제 m+n 출력 신호들에 대한 논리 연산들을 수행하도록 구성되는 조합 논리 회로를 더 포함하고, 그리고
    상기 제 m 출력 신호의 주기는 상기 조합 논리 회로의 전파 지연보다 큰 코드 생성기.
  8. 제 1 항에 있어서,
    상기 비동기 카운터는 상기 동기 카운터의 상기 제 m+1 내지 제 m+n 플립-플롭들로 전송되는 상기 제 m 출력 신호를 구동하는 드라이버를 포함하는 코드 생성기.
  9. 제 1 항에 있어서,
    상기 코드는 바이너리 코드이고,
    상기 비동기 카운터에 의해 출력되는 상기 제 1 내지 제 m 비트들은 상기 바이너리 코드의 하위 비트들이고 그리고 상기 동기 카운터에 의해 출력되는 상기 제 m+1 내지 제 m+n 비트들은 상기 바이너리 코드의 상위 비트들인 코드 생성기.
  10. 제 1 항에 있어서,
    상기 비동기 카운터의 상기 제 1 플립-플롭은 클럭 신호를 수신하고 상기 클럭 신호가 반전된 신호를 수신하지 않도록 더 구성되는 코드 생성기.
  11. 제 1 클럭 신호를 수신하고 상기 제 1 클럭 신호에 기초하여 바이너리 코드의 제 1 비트들을 각각 출력하도록 구성되는 비동기 카운터;
    상기 비동기 카운터에 의해 상기 제 1 클럭 신호가 분주된 제 2 클럭 신호에 기초하여 상기 바이너리 코드의 제 2 비트들을 각각 출력하도록 구성되는 동기 카운터; 및
    상기 바이너리 코드의 상기 제 1 및 제 2 비트들을 수신하고 그리고 상기 바이너리 코드를 그레이 코드로 변환하도록 구성되는 코드 변환기를 포함하는 코드 생성기.
  12. 제 11 항에 있어서,
    상기 코드 변환기는:
    상기 제 1 및 제 2 비트들 중 상기 바이너리 코드의 MSB(most significant bit)를 제외한 나머지 비트들에 각각 해당하는 제1 및 제2 출력 신호의 엣지들에서 상기 그레이 코드의 MSB를 제외한 나머지 비트들의 논리 값들을 전환하도록 구성되는 복수의 제 1 플립-플롭들; 및
    상기 바이너리 코드의 상기 MSB에 해당하는 출력 신호를 지연시켜 상기 그레이 코드의 상기 MSB를 출력하도록 구성되는 지연 회로를 포함하는 코드 생성기.
  13. 제 12 항에 있어서,
    상기 복수의 제 1 플립-플롭들 각각은 상기 제 1 및 제 2 출력 신호들 각각을 수신하는 클럭 포트, 상기 논리 값들 각각을 출력하는 출력 포트, 상기 논리 값들의 반전 값들 각각을 출력하는 반전 출력 포트, 상기 반전 출력 포트로 전기적으로 연결된 입력 포트를 포함하는 코드 생성기.
  14. 제 12 항에 있어서,
    상기 비동기 카운터는 상기 제 1 클럭 신호에 기초하여 상기 바이너리 코드의 상기 제 1 비트들을 비동기로 출력하도록 구성되는 복수의 제 2 플립-플롭들을 포함하고, 그리고
    상기 동기 카운터는 상기 제 2 클럭 신호에 기초하여 상기 바이너리 코드의 상기 제 2 비트들을 동기로 출력하도록 구성되는 복수의 제 3 플립-플롭들을 포함하는 코드 생성기.
  15. 제 12 항에 있어서,
    상기 비동기 카운터는:
    상기 비동기 카운터는 상기 제 1 클럭 신호에 기초하여 상기 제 1 출력 신호들을 비동기로 출력하도록 구성되는 복수의 제 2 플립-플롭들; 및
    상기 제 1 출력 신호들을 각각 지연시켜 상기 바이너리 코드의 상기 제 1 비트들을 동기로 출력하도록 구성되는 복수의 지연 회로들을 포함하고, 그리고
    상기 동기 카운터는 상기 제 2 클럭 신호에 기초하여 상기 바이너리 코드의 상기 제 2 비트들에 해당하는 상기 제 2 출력 신호들을 동기로 출력하도록 구성되는 복수의 제 3 플립-플롭들을 포함하는 코드 생성기.
  16. 제 1 클럭 신호를 수신하는 단계;
    제 1 내지 제 m 플립-플롭들(m은 2 이상의 정수)을 이용하여 상기 제 1 클럭 신호의 주파수를 분주함으로써 제 1 내지 제 m 출력 신호들을 각각 출력하는 단계;
    코드의 제 1 내지 제 m 비트들에 해당하는 상기 제 1 내지 제 m 출력 신호들을 각각 지연시키는 단계; 및
    상기 제 1 클럭 신호가 상기 제 1 내지 제 m 플립-플롭들에 의해 분주된 제 2 클럭 신호의 엣지에서, 제 m+1 내지 제 m+n 플립-플롭들(n은 2 이상의 정수)을 이용하여 상기 코드의 제 m+1 내지 제 m+n 비트들에 해당하는 제 m+1 내지 제 m+n 출력 신호들을 동기로 출력하는 단계를 포함하는 코드 생성기의 동작 방법.
  17. 제 16 항에 있어서,
    상기 제 1 내지 제 m 출력 신호들을 출력하는 단계는:
    상기 제 1 클럭 신호의 엣지에서 상기 제 1 플립-플롭의 상기 제 1 출력 신호를 출력하는 단계; 및
    상기 제 1 클럭 신호의 상기 엣지 이후의 상기 제 m-1 플립-플롭의 상기 제 m-1 출력 신호의 엣지에서, 상기 제 m 출력 신호를 출력하는 단계를 포함하는 코드 생성기의 동작 방법.
  18. 제 16 항에 있어서,
    상기 제 1 내지 제 m 출력 신호들은 순차적으로 출력되고, 그리고
    상기 제 m+1 내지 제 m+n 출력 신호들은 동시에 출력되는 코드 생성기의 동작 방법.
  19. 제 16 항에 있어서,
    상기 제 1 내지 제 m 출력 신호들이 출력된 다음에 상기 제 m+1 내지 제 m+n 출력 신호들이 출력되는 코드 생성기의 동작 방법.
  20. 제 16 항에 있어서,
    상기 코드인 바이너리 코드를 그레이 코드로 변환하는 단계를 더 포함하는 코드 생성기의 동작 방법.
KR1020190063868A 2019-05-30 2019-05-30 비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법 KR102664062B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190063868A KR102664062B1 (ko) 2019-05-30 2019-05-30 비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법
US16/686,184 US10868541B1 (en) 2019-05-30 2019-11-17 Code generator including asynchronous counter and synchronous counter, and operating method thereof
CN202010105727.1A CN112019210A (zh) 2019-05-30 2020-02-20 包括异步计数器和同步计数器的代码生成器及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190063868A KR102664062B1 (ko) 2019-05-30 2019-05-30 비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20200138514A KR20200138514A (ko) 2020-12-10
KR102664062B1 true KR102664062B1 (ko) 2024-05-14

Family

ID=73506486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190063868A KR102664062B1 (ko) 2019-05-30 2019-05-30 비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US10868541B1 (ko)
KR (1) KR102664062B1 (ko)
CN (1) CN112019210A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI776488B (zh) * 2021-04-29 2022-09-01 華邦電子股份有限公司 計數裝置
US11264993B1 (en) * 2021-05-18 2022-03-01 Winbond Electronics Corp. Counting device
US20230106659A1 (en) 2021-09-30 2023-04-06 Shaoxing Yuanfang Semiconductor Co., Ltd. Counter design for a time-to-digital converter (tdc)
US11592786B1 (en) 2022-05-10 2023-02-28 Shaoxing Yuanfang Semiconductor Co., Ltd. Time-to-digital converter (TDC) measuring phase difference between periodic inputs
WO2024056397A1 (en) * 2022-09-13 2024-03-21 Ams Sensors Belgium Bvba Analog-to-digital converter with gray counter

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008258660A (ja) 2007-03-15 2008-10-23 Epson Imaging Devices Corp グレイコードカウンタ及び表示装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0461420A (ja) * 1990-06-28 1992-02-27 Canon Inc データ検出装置
JPH05315944A (ja) 1992-05-13 1993-11-26 Matsushita Electric Ind Co Ltd カウンタ回路
US6445760B1 (en) * 2000-07-14 2002-09-03 Applied Micro Circuits Corporation Partially-synchronous high-speed counter circuits
US6826249B1 (en) 2002-10-10 2004-11-30 Xilinx, Inc. High-speed synchronous counters with reduced logic complexity
US7190756B1 (en) * 2004-09-29 2007-03-13 Xilinx, Inc. Hybrid counter with an asynchronous front end
US7071751B1 (en) * 2004-12-17 2006-07-04 Xilinx, Inc. Counter-controlled delay line
US7702061B2 (en) 2007-12-17 2010-04-20 Integrated Device Technology, Inc. High speed hybrid structure counter having synchronous timing and asynchronous counter cells
JP5243352B2 (ja) 2009-06-17 2013-07-24 シャープ株式会社 Ad変換装置、固体撮像装置および電子情報機器
KR20130102861A (ko) * 2012-03-08 2013-09-23 에스케이하이닉스 주식회사 비동기식 디지털 위상 고정 루프
KR101811615B1 (ko) * 2012-04-24 2017-12-27 삼성전자주식회사 이진-그레이 변환 회로 및 이를 포함하는 그레이 코드 카운터
US9294099B2 (en) 2013-12-27 2016-03-22 Freescale Semiconductor, Inc. Hybrid synchronous/asynchronous counter
JP6686571B2 (ja) 2016-03-15 2020-04-22 株式会社豊田中央研究所 カウンタ回路、時間計測回路及び温度センサ回路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008258660A (ja) 2007-03-15 2008-10-23 Epson Imaging Devices Corp グレイコードカウンタ及び表示装置

Also Published As

Publication number Publication date
US20200382124A1 (en) 2020-12-03
US10868541B1 (en) 2020-12-15
KR20200138514A (ko) 2020-12-10
CN112019210A (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
KR102664062B1 (ko) 비동기 카운터와 동기 카운터를 포함하는 코드 생성기 및 그것의 동작 방법
US11200928B2 (en) Memory controller and operating method with read margin control circuit determining data valid window
US9520865B2 (en) Delay circuits and related systems and methods
US20180152282A1 (en) Electronic circuit adjusting delay depending on communication condition
US9711192B2 (en) Memory device having different data-size access modes for different power modes
US11315614B2 (en) Memory device including interface circuit and method of operating the same
EP3805937B1 (en) Memory device including interface circuit and method of operating the same
US9515686B2 (en) Signal transmitting circuit using common clock, and storage device therewith
WO2016167933A2 (en) Control circuits for generating output enable signals, and related systems and methods
US11431326B2 (en) Semiconductor device
JP2019530125A (ja) メモリのためのクロック成形装置および方法
KR102386753B1 (ko) 공통 클럭을 사용하는 플립플롭을 포함하는 전자 회로
KR20170136304A (ko) 적층형 반도체 장치 및 이를 포함하는 시스템
KR20130048632A (ko) 클럭 버퍼회로 및 이를 포함하는 데이터 출력회로
US10985742B2 (en) Operation method of signal receiver, pulse width controller, and electronic device including the same
KR20170046504A (ko) 디스큐 기능을 갖는 클락 발생 회로 및 상기 회로를 포함하는 반도체 집적회로 장치
US8953392B2 (en) Latency control device and semiconductor device including the same
KR20170116918A (ko) 다중-입력 쉬프트 레지스터 기능을 지원하는 입출력 회로 및 이를 포함하는 메모리 장치
US10109338B2 (en) Semiconductor devices and semiconductor systems generating internal address
US11018658B1 (en) Electronic device and operating method of electronic device
CN106415511B (zh) 动态随机存取存储器接口的串行数据传输
CN113903380A (zh) 分离和复制纹波电路

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