KR102263674B1 - 프로그램가능 지연 회로 블록 - Google Patents

프로그램가능 지연 회로 블록 Download PDF

Info

Publication number
KR102263674B1
KR102263674B1 KR1020177009183A KR20177009183A KR102263674B1 KR 102263674 B1 KR102263674 B1 KR 102263674B1 KR 1020177009183 A KR1020177009183 A KR 1020177009183A KR 20177009183 A KR20177009183 A KR 20177009183A KR 102263674 B1 KR102263674 B1 KR 102263674B1
Authority
KR
South Korea
Prior art keywords
signal
clock
output
input
delay
Prior art date
Application number
KR1020177009183A
Other languages
English (en)
Other versions
KR20170051490A (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 KR20170051490A publication Critical patent/KR20170051490A/ko
Application granted granted Critical
Publication of KR102263674B1 publication Critical patent/KR102263674B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • 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
    • 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/14Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of delay lines
    • 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/15006Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with two programmable outputs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/156Arrangements in which a continuous pulse train is transformed into a train having a desired pattern

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Pulse Circuits (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

프로그램가능 지연 회로 블록(100)은 캐스케이드 입력(112) 및 클록 입력(114)을 가지는 입력 스테이지(102)를 포함하고, 입력 스테이지(102)는 캐스케이드 입력(112)에서 수신된 신호 또는 클록 입력(114)에서 수신된 신호를 패스한다. 프로그램가능 지연 회로 블록(100)은 입력 스테이지(102)로부터 패스된 신호에 선택된 양의 지연을 적용함으로써 지연된 신호를 생성하도록 구성된 지연 블록(104) 및 지연 양에 따르는 펄스 폭을 가지는 펄스 신호를 생성하도록 구성된 펄스 생성기(106)를 더 포함할 수 있다. 프로그램가능 지연 회로 블록(100)은 또한 캐스케이드 출력(148) 및 클록 출력(152)을 가지는 출력 스테이지(108)를 포함한다. 출력 스테이지(108)는 펄스 신호의 인버팅된 버전 또는 지연된 신호를 캐스케이드 출력(148)으로부터 패스하고 그리고 클록 입력(114)에서 수신된 신호, 펄스 신호의 인버팅된 버전, 또는 지연된 신호를 클록 출력(152)으로부터 패스하도록 구성된다.

Description

프로그램가능 지연 회로 블록{PROGRAMMABLE DELAY CIRCUIT BLOCK}
본 개시내용은 집적 회로(IC)들 및, 보다 구체적으로 IC 내에 사용하기 위한 프로그램가능 지연 회로 블록들에 관한 것이다.
집적 회로(IC)들은 점점 더 작은 피처 사이즈(feature size)들을 사용하여 제조된다. 더 작은 피처 사이즈들을 사용하는 것의 하나의 결과는, 배선 리소스(resource)들이 더 큰 저항 및 캐패시턴스를 띠는 것이다. 증가된 저항 및 캐패시턴스는 더 큰 신호 지연들을 생성하고, 이는 차례로 회로의 셋업 및 홀드 타이밍(hold timing) 위반들을 유발할 수 있다. 셋업 및 홀드 위반들은 올바른 회로 동작을 방해하며 종종 회로 성능을 증가시키는데 있어 제한 요소가 된다.
많은 IC들의 클록 아키텍처는 비교적 유연하지 않고 그리고 현대 회로 디자인들의 엄격한 타이밍 요건들을 충족시킬 수 없을 수 있다. 많은 경우들에서, 이용가능한 클록 아키텍처는 상기 클록 아키텍처에서 전파되는 클록 신호들에 대한 적당한 레벨의 제어를 제공하지 못한다.
일부 양상들에서, 프로그램가능 지연 회로 블록이 설명된다. 프로그램가능 지연 회로 블록은 캐스케이드(cascade) 입력 및 클록 입력을 가지는 입력 스테이지를 포함하고, 입력 스테이지는 캐스케이드 입력에서 수신된 신호 또는 클록 입력에서 수신된 신호를 패스(pass)한다. 프로그램가능 지연 회로 블록은 입력 스테이지로부터 패스된 신호에 선택된 양의 지연을 적용함으로써 지연된 신호를 생성하도록 구성된 지연 블록 및 지연 양에 따르는 펄스 폭을 가지는 펄스 신호를 생성하도록 구성된 펄스 생성기를 더 포함할 수 있다. 프로그램가능 지연부는 또한 캐스케이드(cascade) 출력 및 클록 출력을 가지는 출력 스테이지를 포함한다. 출력 스테이지는 펄스 신호 또는 지연된 신호를 캐스케이드 출력으로부터 패스하고 그리고 클록 입력에서 수신된 신호, 펄스 신호, 또는 지연된 신호를 클록 출력으로부터 패스하도록 구성된다.
선택적으로, 입력 스테이지는 메모리 셀을 포함할 수 있고 그리고 메모리 셀에 저장된 값에 따라 캐스케이드 입력에서의 신호 또는 클록 입력에서 수신된 신호 중 어느 하나를 패스한다.
선택적으로, 입력 스테이지는 메모리 셀에 저장된 값에 따라 클록 입력에서 수신된 신호를 선택적으로 게이팅(gate)할 수 있다.
선택적으로, 펄스 생성기는 지연된 신호의 인버팅된(inverted) 버전과 클록 입력에서 수신된 신호로부터 펄스 신호를 생성하는 NAND 회로를 포함할 수 있다.
선택적으로, 지연 블록은 다수의 탭(tap)들을 가지며 복수의 지연된 후보 신호들을 생성하는 지연 라인 및 복수의 지연된 후보 신호들 중 하나를 지연된 신호로서 패스하는 지연 선택기 블록을 포함할 수 있다.
선택적으로, 지연 라인은 2진 가중될 수 있다.
선택적으로, 지연 선택기 블록은 메모리 셀 및 인버팅 멀티플렉서(multiplexer)를 포함할 수 있고 그리고 인버팅 멀티플렉서는 메모리 셀에 저장된 값에 따라 복수의 지연된 후보 신호들로부터 지연된 신호를 선택한다.
선택적으로, 출력 스테이지는 복수의 메모리 셀들, 멀티플렉서, 및 인버팅 멀티플렉서를 더 포함할 수 있다. 멀티플렉서는 복수의 메모리 셀들 중 제 1 메모리 셀에 저장된 값에 따라 펄스 신호 또는 지연된 신호의 인버팅된 버전을 캐스케이드 출력에 패스하고 그리고 인버팅 멀티플렉서는 복수의 메모리 셀들 중 제 1 메모리 셀에 저장된 값 및 제 2 메모리 셀에 저장된 값에 따라 클록 입력에서 수신된 신호의 인버팅된 버전, 펄스 신호, 또는 지연된 신호의 인버팅된 버전을 클록 출력에 패스한다.
일부 다른 양상들에서, 클록 회로가 설명된다. 클록 회로는 제 1 캐스케이드 입력, 제 1 클록 입력, 다수의 탭들을 가지는 제 1 지연 라인, 제 1 펄스 생성기, 제 1 캐스케이드 출력, 및 제 1 클록 출력을 포함하는 제 1 프로그램가능 지연 회로 블록 및 제 2 캐스케이드 입력, 제 2 클록 입력, 다수의 탭들을 가지는 제 2 지연 라인, 제 2 펄스 생성기, 제 2 캐스케이드 출력, 및 제 2 클록 출력을 포함하는 제 2 프로그램가능 지연 회로 블록을 포함한다. 제 1 캐스케이드 출력은 제 2 캐스케이드 입력에 커플링된다.
선택적으로, 제 1 캐스케이드 출력은 제 1 펄스 생성기에 의해 생성된 제 1 펄스 신호의 인버팅된 버전 또는 제 1 지연 라인에 의해 생성된 제 1 지연된 신호를 패스할 수 있다. 제 2 캐스케이드 출력은 제 2 펄스 생성기에 의해 생성된 제 2 펄스 신호의 인버팅된 버전 또는 제 2 지연 라인에 의해 생성된 제 2 지연된 신호를 패스할 수 있다. 제 1 클록 출력은 제 1 클록 입력에서 수신된 신호, 제 1 펄스 신호의 인버팅된 버전, 또는 제 1 지연된 신호를 패스할 수 있고 그리고 제 2 클록 출력은 제 2 클록 입력에서 수신된 제 2 신호, 제 2 펄스 신호의 인버팅된 버전, 또는 제 2 지연된 신호를 패스할 수 있다.
선택적으로, 제 1 펄스 생성기는 제 1 지연 라인에 의해 신호에 적용된 지연 양에 따르는 펄스 폭을 가지는 제 1 펄스 신호를 생성할 수 있고 그리고 제 2 펄스 생성기는 제 2 지연 라인에 의해 신호에 적용된 지연 양에 따르는 펄스 폭을 가지는 제 2 펄스 신호를 생성할 수 있다.
선택적으로, 제 1 프로그램가능 지연부는 제 1 클록 신호를 지연할 수 있고 지연된 제 1 클록 신호를 제 1 캐스케이드 출력을 통해 출력할 수 있고 그리고 제 2 프로그램가능 지연부는 지연된 제 1 클록 신호를 제 2 캐스케이드 입력을 통해 수신할 수 있고 지연된 제 1 클록 신호를 추가로 지연할 수 있다.
선택적으로, 제 1 프로그램가능 지연부는 추가로, 지연을 적용함이 없이 제 1 클록 출력으로부터 제 1 클록 신호를 출력할 수 있다.
선택적으로, 제 1 클록 신호는 제 1 프로그램가능 지연부의 제 1 캐스케이드 입력에서 수신될 수 있고 제 1 프로그램가능 지연부는 제 1 클록 신호에 무관하게 제 2 클록 신호를 제 1 클록 입력에서 수신할 수 있고 지연을 적용함이 없이 제 2 클록 신호를 제 1 클록 출력으로부터 출력한다.
선택적으로, 제 1 프로그램가능 지연부는 제 1 클록 신호를 지연하고 지연된 제 1 클록 신호를 제 1 캐스케이드 출력을 통해 출력하고, 그리고 제 2 프로그램가능 지연부는 지연된 제 1 클록 신호를 제 2 캐스케이드 입력에서 수신하고, 지연된 제 1 클록 신호를 추가로 지연하고, 추가 지연된 제 1 클록 신호를 사용하여 펄스 신호를 생성하고, 그리고 펄스 신호의 인버팅된 버전을 출력한다.
선택적으로, 제 1 프로그램가능 지연부는 추가로, 지연을 적용함이 없이 제 1 클록 신호를 제 1 클록 출력을 통해 출력한다.
선택적으로, 제 2 프로그램가능 지연부는 제 1 클록 신호와 무관하게 제 2 클록 신호를 제 2 클록 입력에서 수신하고 그리고 펄스 신호를 생성하기 위하여 펄스 생성기 내에서 제 2 클록 신호 및 추가 지연된 제 1 클록 신호를 사용한다.
선택적으로, 제 1 프로그램가능 지연부는 수신된 클록 신호로부터 펄스 신호를 생성하고 펄스 신호의 인버팅된 버전을 제 1 캐스케이드 출력을 통해 출력하고 그리고 제 2 프로그램가능 지연부는 펄스 신호의 인버팅된 버전을 제 2 캐스케이드 입력에서 수신하고, 펄스 신호의 인버팅된 버전을 지연하고, 그리고 펄스 신호의 지연된 인버팅된 버전을 출력한다.
선택적으로, 제 1 프로그램가능 지연부는 추가로, 펄스 신호의 인버팅된 버전을 제 1 클록 출력으로부터 출력한다.
선택적으로, 제 1 캐스케이드 출력은 고정된 회로를 사용하여 제 2 캐스케이드 입력에 커플링된다.
본 요약 섹션은 청구 대상의 임의의 핵심 또는 필수적인 특징들을 식별하는 것이 아니라 단지 특정 개념들을 도입하기 위하여 제공된다. 본 발명의 어레인지먼트들의 다른 특징들은 첨부 도면들 및 다음 상세한 설명으로부터 자명할 것이다.
본 발명의 어레인지먼트들은 첨부 도면들에서 예로써 예시된다. 그러나, 도면들은 본 발명의 어레인지먼트들을 도시된 특정 구현들로만 제한하는 것으로 해석되지 않아야 한다. 다양한 양상들 및 장점들은 뒤따르는 상세한 설명을 리뷰하고 도면들을 참조하여 자명하게 될 것이다.
도 1은 예시적인 프로그램가능 지연 회로 블록(프로그램가능 지연부)을 예시하는 회로 다이어그램이다.
도 2는 도 1과 관련하여 설명된 프로그램가능 지연부들 중 하나 또는 그 초과를 사용하여 달성되는 예시적인 지연들을 예시하는 표이다.
도 3은 프로그램가능 지연부들을 사용하는 예시적인 캐스케이드형 아키텍처를 예시하는 회로 다이어그램이다.
도 4는 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처를 예시하는 회로 다이어그램이다.
도 5는 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처를 예시하는 회로 다이어그램이다.
도 6은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처를 예시하는 회로 다이어그램이다.
도 7은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처를 예시하는 회로 다이어그램이다.
도 8은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처를 예시하는 회로 다이어그램이다.
도 9는 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처를 예시하는 회로 다이어그램이다.
도 10은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처를 예시하는 블록 다이어그램이다.
도 11은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처를 예시하는 블록 다이어그램이다.
도 12는 집적 회로(IC) 내에 클록 아키텍처를 구현하는 방법을 예시하는 흐름도이다.
도 13은 IC에 대한 예시적인 아키텍처를 예시하는 블록 다이어그램이다.
본 개시내용이 신규한 특징들을 정의하는 청구항들로 결론을 맺지만, 본 개시내용 내에 설명된 다양한 특징들이 도면들과 함께 설명을 고려하여 더 잘 이해될 것이라는 것이 믿어진다. 본원에서 설명된 프로세스(들), 머신(들), 제조(들) 및 이들의 임의의 변형들은 예시를 위하여 제공된다. 본 개시내용 내에 설명된 특정 구조적 및 기능적 세부사항들은 제한으로서 해석되는 것이 아니라, 단지 사실상 임의의 적합하게 상세화된 구조에서 설명된 특징들을 다양하게 이용하도록 당업자를 교시하기 위한 대표적인 기초로서 그리고 청구항들에 대한 기초로서 해석된다. 추가로, 본 개시내용 내에서 사용된 용어들 및 어구들은 제한하고자 의도되는 것이 아니라, 오히려 설명된 특징들의 이해가능한 설명을 제공하도록 의도된다.
본 개시내용은 집적 회로(IC)들 및, 보다 구체적으로 IC 내에 사용하기 위한 프로그램가능 지연 회로 블록들에 관한 것이다. 본원에서 개시된 본 발명의 어레인지먼트들에 따라, 프로그램가능 지연 회로 블록이 설명되고, 상기 프로그램가능 지연 회로 블록은 증가된 유연성, 및 클록 신호들과 클록 신호 생성에 대한 제어를 제공한다. 일 양상에서, 클록 신호의 스큐(skew)가 제어될 수 있다. 다른 양상에서, 프로그램가능 펄스 폭을 가지는 펄스 신호들이 생성될 수 있다.
프로그램가능 지연 회로 블록은 캐스케이드된 입력 및 캐스케이드된 출력을 포함하고, 이에 의해 다수의 프로그램가능 지연 회로 블록들이 개별적으로 단일 프로그램가능 지연 회로 블록으로 가능한 것보다 더 많은 지연을 클록 신호에 적용할 능력뿐 아니라 클록 신호에 적용될 수 있는 지연의 증분 양에 비해 증가된 제어를 위해 직렬로 데이지 체인화되게(daisy chained) 한다. 추가의 세부사항들은 아래의 도면들과 관련하여 설명될 것이다.
본원에서 설명된 본 발명의 어레인지먼트들은 IC로서, IC 내의 회로로서, 하나 또는 그 초과의 재사용가능 회로 블록들 등으로서 구현될 수 있다. 일 양상에서, 본 발명의 어레인지먼트들은 프로그램가능 IC, 이를테면 FPGA(field programmable gate array) 또는 적어도 몇몇 프로그램가능 회로를 포함하는 다른 타입의 IC 내에 회로 형태로 구현될 수 있다. 다른 양상에서, 본 발명의 어레인지먼트들은, EDA(electronic design automation) 시스템에 의해 활용될 때, 회로 디자인에 통합될 수 있고 IC의 부분으로서 제조될 수 있는 회로의 디지털화된 설명을 저장하는 비-일시적 컴퓨터-판독가능 저장 매체로서 구현될 수 있다. 추가 양상들은 하나 또는 그 초과의 프로그램가능 지연 회로 블록들을 사용하여 수행되는 신호들을 프로세싱하는 방법 및/또는 IC 내에 클록 아키텍처를 구현하는 방법으로서 구현될 수 있다.
예시의 간략성 및 명확성을 위하여, 도면들에 도시된 엘리먼트들은 반드시 실척대로 도시되지 않는다. 예컨대, 엘리먼트들 중 일부의 치수들은 명확성을 위하여 다른 엘리먼트들에 비해 과장될 수 있다. 추가로, 적합한 것으로 고려되는 경우, 대응하는, 유사한, 또는 비슷한 피처들을 표시하기 위하여 참조 번호들이 도면들 간에 반복된다.
도 1은 예시적인 프로그램가능 지연 회로 블록(프로그램가능 지연부)(100)을 예시하는 회로 다이어그램이다. 프로그램가능 지연부(100)는 입력 스테이지(102), 지연 블록(104), 펄스 생성기(106), 및 출력 스테이지(108)를 포함한다. 지연 블록(104)은 지연 라인(124) 및 지연 선택기(126)로 형성된다. 추가로, 프로그램가능 지연부(100)는 복수의 메모리 셀들(110)을 포함한다. 일 양상에서, 메모리 셀들(110)은 구성 데이터가 로딩된 구성 메모리 셀들이다. 구성 데이터는 각각의 메모리 셀(110)에 1의 값 또는 0의 값 중 어느 하나를 저장하기 위하여 회로 블록들(100) 중 하나 또는 그 초과를 포함하는 IC에 로딩될 수 있고, 이에 의해 동작을 위한 프로그램가능 지연부(100)가 구성된다.
입력 스테이지(102)는 2개의 입력들을 포함한다. 제 1 입력은 "Csc In"으로서 도 1에 예시된 캐스케이드 입력(112)이다. 제 2 입력은 "Clk In"으로서 도 1에 예시된 클록 입력(114)이다. 캐스케이드 입력(112)은 인버터(115)의 입력에 제공된다. 인버터(115)의 출력은 멀티플렉서(116)의 제 1 입력에 제공된다. 멀티플렉서(116)는 인버팅 멀티플렉서이다. 클록 입력(114)은 NAND 회로(118)의 제 1 입력에 제공된다. NAND 회로(118)의 출력은 멀티플렉서(116)의 제 2 입력에 제공된다. 메모리 셀(MC[4])에 저장된 값은, 멀티플렉서(116)가 캐스케이드 입력(112)에서 수신된 신호를 패스할지 NAND 회로(118)로부터 지연 블록(104)의 지연 라인(124)에 출력되는 신호를 패스할지를 결정한다. 멀티플렉서(116)에 의해 패스된 신호는 지연 라인(124)에 진입하기 전에 인버팅된다.
NAND 회로(118)의 제 2 입력은 NAND 회로(120) 또는 NAND 회로(122) 중 어느 하나로부터 출력을 수신한다. 묘사된 바와 같이, NAND 회로(120)는 메모리 셀들(MC[2] 및 MC[3])로부터 획득된 값들에 대해 로지컬 NAND 동작을 수행한다. NAND 회로(120)는 클록 입력(114)에서 수신된 신호를 게이팅하거나 또는 클록 입력(114)에서 수신된 신호를 멀티플렉서(116)로 패스할 수 있다. NAND 회로(122)는 메모리 셀들(MC[2], MC[3] 및 MC[4])에 저장된 값들에 대해 로지컬 NAND 동작을 수행한다. NAND 회로(122)는 클록 입력(114)에서 수신된 신호를 게이팅할 수 있거나 또는 클록 입력(114)에서 수신된 신호를 멀티플렉서(116)로 패스한다.
NAND 회로(120)를 사용하여 클록 입력(114)에서 수신된 신호를 게이팅하는 것에 관련하여, 메모리 셀들(110)은, MC[2] 및 MC[3]가 1의 값들로 세팅될 때, NAND 회로(120)로부터의 출력이 로직 0 이도록, 구성될 수 있다. NAND 회로(122)를 사용하여 클록 입력(114)에서 수신된 신호를 게이팅하는 경우에, 메모리 셀들(110)은, MC[2], MC[3], 및 MC[4]가 1의 값들로 세팅될 때, NAND 회로(122)로부터의 출력이 로직 0 이도록, 구성될 수 있다. NAND 회로(118)의 제 2 입력에 제공된 로직 0에 의해, NAND 회로(118)의 출력은 클록 입력(114)에서 수신된 신호의 값에 무관하게 항상 로직 1일 것이다. 따라서, 클록 입력(114)은 게이팅된다. 멀티플렉서(116)의 출력은 로직 0일 것이고, 이에 의해, 지연 라인(124)이 필요하지 않고 및/또는 사용되지 않을 때, 지연 라인(124)이 동적 전력을 감소시키기 위하여 토글링(toggling)하는 것이 방지된다.
NAND 회로(120) 및 NAND 회로(122)는 대안들로서 제공된다. 일 양상에서, 지연 라인(124)은 2-입력 NAND 회로(120)를 사용하여 게이팅될 수 있고, 이때 NAND 회로(122)는 프로그램가능 지연부(100)로부터 배제된다. NAND 회로(120) 및 게이팅 지연 라인(124)을 사용하는 것은 지연 라인(124)을 접지로 게이팅한다. 2-입력 NAND 회로(120)는 3-입력 NAND 회로(122)보다 작은 면적을 요구하지만, 더 적은 수의 메모리 셀들(110)이 사용됨에 따라 프로그램가능 지연부(100)의 더 적은 수의 구성들을 제공한다. 예컨대, 본원의 도 9에 예시된 클록 아키텍처는 NAND 회로(120)를 사용하여 구현되지 않을 수 있다.
다른 양상에서, 지연 라인(124)은 3-입력 NAND 회로(122)를 사용하여 게이팅될 수 있고, 이때 NAND 회로(120)는 프로그램가능 지연부(100)로부터 배제된다. 주목되는 바와 같이, 3-입력 NAND 회로(122)의 사용은 NAND 회로(120)를 사용하는 것보다 더 큰 면적을 요구하지만, 프로그램가능 지연부(100)의 증가된 수의 구성들을 제공한다. 예컨대, NAND 회로(122)를 사용하여, 도 9에 예시된 클록 아키텍처가 구현될 수 있다.
주목되는 바와 같이, 지연 블록(104)은 지연 라인(124) 및 지연 선택기(126)를 포함한다. 지연 라인(124)은 다수의-탭 지연 라인으로서 구현될 수 있다. 지연 라인(124)은 추가로 2진 가중된다. 도 1의 예에서, 지연 라인(124)은 버퍼들(125)로 형성된다. 지연 라인(124)으로부터의 출력 탭들은 Y1, Y2, Y4, 및 Y8로 라벨링된다. 일 양상에서, 출력 탭 지연부(Y1)는 50 피코초의 지연을 임의의 신호 진입 지연 라인(124)에 적용할 수 있다. 출력 탭(Y2)은 100 피코초의 지연을 임의의 신호 진입 지연 라인(124)에 제공할 수 있다. 출력 탭(Y4)은 200 피코초의 지연을 임의의 신호 진입 지연 라인(124)에 제공할 수 있다. 출력 탭(Y8)은 400 피코초의 지연을 임의의 신호 진입 지연 라인(124)에 제공할 수 있다. 다른 지연 양들이 제공될 수 있다. 본원에서 제공되는 지연 양들은 예시적이고 제한들로서 의도되지 않는다.
일 양상에서, 지연 라인(124) 내에 버퍼들(125)의 포함은 클록 아키텍처의 기존 버퍼들 대신 버퍼(들)(125)의 대체를 허용한다. 보다 구체적으로, 클록 아키텍처의 하나 또는 그 초과의 버퍼들은 지연 라인(124) 내에 버퍼(들)(125)의 사용으로 인해 생략될 수 있고, 이에 의해 IC 내에 클록 아키텍처를 위해 요구되는 면적이 감소된다.
지연 선택기(126)는 출력 탭들(Y1, Y2, Y4, 및 Y8) 각각을 수용한다. 출력 탭들(Y1, Y2, Y4, 또는 Y8) 중 특정 출력 탭이 선택되고 그리고 메모리 셀들(110) 및 특히 메모리 셀들(MC[0] 및 MC[1]) 내에 적합한 값들을 로딩함으로써 신호(134)로서 패스된다. 메모리 셀(MC[0])은 멀티플렉서들(128 및 130)을 제어한다. 멀티플렉서(128)는 메모리 셀(MC[0])에 저장된 값에 따라 출력 탭(Y1 또는 Y2) 중 어느 하나를 패스한다. 멀티플렉서(130)는 메모리 셀(MC[0])에 저장된 값에 따라 출력 탭(Y4 또는 Y8) 중 어느 하나를 패스한다. 멀티플렉서(132)는 메모리 셀(MC[1])에 저장된 값에 따라 선택된 출력 탭을 신호(134)로서 패스한다. 멀티플렉서(132)는 인버팅 멀티플렉서이다. 따라서, 신호(134)는 멀티플렉서(132)에 의해 패스된 신호의 인버팅된 버전이다. 본원에서 정의된 바와 같이, 신호에 관련하여 용어 "패스"는 "출력" 및/또는 "생성"을 의미한다. 예컨대, 신호를 패스하는 인버팅 멀티플렉서는 신호를 선택하고, 선택된 신호를 인버팅하고, 그리고 선택되고 인버팅된 신호를 출력하는 인버팅 멀티플렉서를 지칭한다.
펄스 생성기(106)는 NAND 회로(136)를 포함한다. 묘사된 바와 같이, NAND 회로(136)는 지연 선택기(126)로부터의 신호(134)를 제 1 입력으로서 수신한다. NAND 회로(136)는 추가로 클록 입력(114)을 제 2 입력으로서 수신한다. 신호(134), 즉 출력 탭(Y1, Y2, Y4 또는 Y8), 및 클록 입력(114)에 대해 로지컬 NAND 연산을 수행함으로써 NAND 회로(136)는 선택된 펄스 폭을 가지는 펄스 신호(138)를 생성한다. 펄스 폭은 프로그램가능하고 그리고 특정 출력 탭에 따르고, 즉 지연 라인(124)을 통해 프로세싱되는(펄스 생성기(106)에 신호(134)로서 선택되고 패스되는) 신호에 적용된 지연 양에 따른다.
일 양상에서, 캐스케이드 입력(112)에서 수신된 신호는 지연 라인(124)으로 그리고 펄스 생성기(106) 쪽으로 신호(134)로서 패스될 수 있다. 캐스케이드 입력(112)에서 수신된 신호는 다른, 이전의 프로그램가능 지연으로부터 지연된 신호일 수 있다. 캐스케이드 입력(112)에서 수신된 신호를 지연 라인(124)을 통해 추가로 지연시키고 그리고 선택된 출력 탭으로부터의 그 신호의 추가로 지연된 버전을 신호(134)로서 펄스 생성기(106)로 패스함으로써, 다른 식으로 달성할 수 있는 것보다 더 큰 폭의 펄스들을 가진 펄스 신호가 생성될 수 있다. 펄스 생성기(106)는 지연 라인(124)을 통해 프로세싱된 신호의 상승 에지를 펄스 신호(138)의 상승 에지로서 사용할 수 있다. 펄스 신호(138)가 인버팅되기 때문에, 펄스 신호(138)는 인버터(146)에 의해 또는 멀티플렉서(148)에 의해 올바른 센스(sense)로 다시 인버팅된다. 묘사된 바와 같이, 멀티플렉서(148)는 인버팅 멀티플렉서이다. 예컨대, NAND 회로(135)는, 예컨대 센스 수정 후, 멀티플렉서(148)로부터 출력되는 펄스의 하강 에지를 생성하기 위하여 신호(134)의 상승 에지를 사용한다. 펄스 신호(138)를 프로그램가능 지연부(100)로부터의 센스 수정된 출력으로서 제공함으로써, 하나 또는 그 초과의 다운스트림 동기 회로 엘리먼트들, 예컨대 플립-플롭들은, 센스 수정된 펄스 신호(138)에 의해 클록킹될 때 타임 버로잉(time borrowing) 동작을 허용하기 위하여 선택적으로 래치들로 컨버팅될 수 있다. 본 명세서 내에서, 프로그램가능 지연부(100)로부터 출력으로서 생성된 펄스 신호에 대한 참조는 펄스 신호(138)의 인버팅된 버전, 즉 멀티플렉서(148)로부터 출력된 센스 수정된 펄스 신호를 의미한다.
출력 스테이지(108)는 다양한 상이한 출력 옵션들을 제공한다. 출력 스테이지(108)는 인버터(140)에서 클록 입력(114)을 수신한다. 출력 스테이지(108)는 멀티플렉서(142)의 입력에서 펄스 신호(138)를 수신한다. 출력 스테이지(108)는 멀티플렉서(142)의 다른 입력에서 멀티플렉서(132)로부터의 신호(134)를 수신한다. 멀티플렉서(142)는 Y1, Y2, Y4, 또는 Y8 중 어느 하나인 펄스 신호(138) 또는 신호(134) 중 어느 하나를 출력 신호(144)로서 패스한다. 멀티플렉서(142)는 메모리 셀(MC[2])에 저장된 값에 기반하여 펄스 신호(138) 또는 신호(134)를 패스한다.
신호(144)는 인버터(146)의 입력 및 멀티플렉서(148)의 제 1 입력 둘 모두에 제공된다. 인버터(146)의 출력은 "Csc Out"으로서 묘사되는 캐스케이드 출력(148)을 제공한다. 멀티플렉서(148)는 클록 신호(114)의 인버팅된 버전인 신호(150)를 제 2 입력에서 수신한다. 멀티플렉서(148)는 신호(144) 또는 신호(150) 중 어느 하나를 패스하고 그리고 메모리 셀(MC[3])에 저장된 값에 기반하여 클록 출력(152)으로서 패스된 신호를 인버팅한다. 지연되지 않을 때 클록 입력(114)을 통해 인버터(140)로 그리고 멀티플렉서(148)로부터 프로세싱되는 클록 신호들을 위한 경로는 지터(jitter)를 최소화하기 위하여 경로 내에 낮은-임계치 트랜지스터(들)를 활용할 수 있다.
프로그램가능 지연부(100)는 클록 신호들을 스큐잉(skew)하고 및/또는 프로그램가능 길이들의 펄스 폭들을 가지는 펄스 신호들을 생성하기 위하여 IC 클록 아키텍처 내에 사용될 수 있다. 프로그램가능 지연부(100)의 다수의 프로그램가능 지연부들이 IC 클록 아키텍처에 통합될 때, 그렇지 않으면 사용되지 않고 다른 프로그램가능 지연부에 이웃하는 프로그램가능 지연부는, 캐스케이드 입력들 및 캐스케이드 출력들을 사용하여 캐스케이드될 수 있다. 멀티플렉서들이 사용되는데, 이 멀티플렉서들은 지연 라인(124)으로 하여금, 다른 상이한 프로그램가능 지연부의 캐스케이드 출력에 커플링될 수 있는 클록 입력(114) 또는 캐스케이드 입력(112) 중 어느 하나에 커플링하게 한다. 캐스케이드형 프로그램가능 지연부들은 더 미세한 레벨들의 입도(granularity)로 더 큰 지연들의 생성을 가능하게 하는 다양한 가능한 연결들(다른 식으로도 가능)을 가질 수 있다.
추가로, 프로그램가능 지연부(100)는 스큐 조정을 위해 클록 신호들을 프로세싱하고 그리고 펄스 신호들을 생성하기 때문에 ― 상기 클록 신호들과 펄스 신호들 중 어느 하나는 캐스케이드형 다른 프로그램가능 지연부에서 추가로 지연될 수 있음 ―, 위상-시프트된 클록들 및 위상-시프트된 펄스 신호들은 IC 내에 추가 클록 트랙들의 사용을 요구함이 없이 리프 노드(leaf node)들에서 클록 아키텍처의 부분으로서 IC 도처에 프로그램가능 지연부들(100)을 분산시킴으로써 클록 아키텍처의 리프에서 생성될 수 있다. 그런 어레인지먼트는 동일한 클록 신호의 다중 위상-시프트된 버전들을 활용하는 회로에 대해 전력 및 면적을 절약시킨다.
도 2는 도 1과 관련하여 설명된 프로그램가능 지연부들 중 하나 또는 그 초과를 사용하여 달성되는 예시적인 지연들을 예시하는 표(200)이다. "프로그램가능 지연부들의 수"라는 제목의 좌측 컬럼(column)은 "달성된 지연"이라는 제목의 우측 컬럼의 총 지연 양을 달성하기 위하여, 직렬로 사용되어야 하는, 예컨대 캐스케이드되거나 데이지 체인화되어야 하는 프로그램가능 지연부들의 수를 표시한다. "지연 기여분들"이라는 제목의 중간 컬럼은 직렬로 연결된, 개별 프로그램가능 지연부들 각각에 의해 기여되는 지연 양을 도시한다.
지연 라인(124)에서 2진 가중으로 인해, 각각의 프로그램가능 회로는 최소 50 피코초의 지연 및 최대 400 피코초의 지연에 기여할 수 있다. 표(200)에 예시된 바와 같이, 1,050 피코초 초과의 지연은 4개의 프로그램가능 지연부들을 함께 캐스케이딩함으로써 달성될 수 있다. 캐스케이드형 아키텍처를 사용하여 하나 또는 그 초과의 프로그램가능 지연들에 의해 적용된 지연 양은 50 피코초의 증분들로 증가하고, 이는 프로그램가능 지연부들(100) 중 하나의 프로그램가능 지연부에 의해 적용될 수 있는 가장 작은 지연 양이다.
도 3-9는 메모리 셀들 내에 적합한 값들을 저장함으로써 구현될 수 있는 예시적인 캐스케이드형 아키텍처들을 예시한다. 도 3-9 내에서, 예시된 프로그램가능 지연부들을 통한 활성 신호 경로들은 와이어들(신호들) 및 단자들에 대해 굵은선을 사용하여 도시된다. 도 3-9 내에 예시된 프로그램가능 지연부들은 예시를 용이하게 하기 위하여 간략화된다. 인버터들, 메모리 셀들 등 같은 다양한 회로 엘리먼트들은 명확성을 위하여 생략된다.
도 3-9에 예시된 예들의 각각에서, 프로그램가능 지연부 A 및 프로그램가능 지연부 B가 독립적으로 구성가능하다는 것이 인지되어야 한다. 각각의 프로그램가능 지연부는 구성을 위하여 그 자신의 메모리 셀들의 세트를 가진다. 따라서, 프로그램가능 지연부 A의 지연 라인에 의해 적용된 지연 양은 프로그램가능 지연부 B의 지연 라인에 의해 적용된 지연 양과 상이할 수 있다. 추가로, 프로그램가능 지연부 A에 의해 생성된 펄스 신호는 프로그램가능 지연부 B에 의해 생성된 펄스 신호와 상이할 수 있는데, 예컨대 상이한 펄스 폭 및/또는 상이한 지연을 가질 수 있다. 추가로, 프로그램가능 지연부들 A 및/또는 B 중 어느 하나 또는 둘 모두의 클록 출력으로부터 출력된 임의의 신호는 개별 프로그램가능 지연부에 대한 로컬 클록 로드들을 구동하기 위하여 이용가능하다.
도 3은 프로그램가능 지연부들을 사용하는 예시적인 캐스케이드형 아키텍처(300)를 예시하는 회로 다이어그램이다. 도 3은, 프로그램가능 지연부 A가 제 1 클록 신호를 프로세싱하는 반면, 프로그램가능 지연부 B가 제 2, 독립적인 클록 신호를 프로세싱하는 예를 예시한다. 예컨대, 도 3을 참조하여, 클록 신호는 프로그램가능 지연부들 A 및 B 각각의 클록 입력(클록 입력(114))에서 수신되고, 각각의 프로그램가능 지연부의 지연 라인을 통해 패스되고, 그리고 그 다음으로 프로그램가능 지연부들 A 및 B의 클록 출력(클록 출력(152))으로 패스된다. 캐스케이드 출력(캐스케이드된 출력(148)) 및 캐스케이드 입력(캐스케이드된 입력(112))이 함께 커플링되지만, 캐스케이드된 입력들 및 캐스케이드된 출력들은 캐스케이드형 아키텍처(300)에서 사용되지 않는다.
도 4는 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처(400)를 예시하는 회로 다이어그램이다. 도 4는, 프로그램가능 지연부 B가 사용되지 않고 그러므로 처음에 프로그램가능 지연부 A를 사용하여 프로세싱된 클록 신호를 추가로 프로세싱하기 위하여 이용가능한 예를 예시한다. 예컨대, 클록 신호는 프로그램가능 지연부 A의 클록 입력에서 수신되고, 지연 라인을 통해 지연되고, 그리고 프로그램가능 지연부 A의 캐스케이드 출력에서 출력된다. 추가로, 프로그램가능 지연부 A의 클록 입력에서 수신된 본래의 클록 신호는 하나 또는 그 초과의 클록 로드들에 의해 사용하기 위하여 클록 출력으로부터 출력된다. 묘사된 바와 같이, 프로그램가능 지연부 A의 캐스케이드 출력은 프로그램가능 지연부 B의 캐스케이드 입력에 커플링된다. 캐스케이드형 아키텍처(400)는, 프로그램가능 지연부 B의 클록 출력으로부터 출력된 신호에 대해 생성될 수 있는 지연 양이 개별 프로그램가능 지연부의 지연 양의 2배일 수 있는 예를 예시한다.
도 5는 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처(500)를 예시하는 회로 다이어그램이다. 캐스케이드형 아키텍처(500)에서, 제 1 클록 신호는 프로그램가능 지연부 A의 캐스케이드 입력에서 수신되고, 지연 라인을 통해 프로세싱되고, 그리고 프로그램가능 지연부 A의 캐스케이드 출력으로부터 출력된다. 도시된 바와 같이, 프로그램가능 지연부 A의 캐스케이드 출력은 프로그램가능 지연부 B의 캐스케이드 입력에 커플링되고 그리고 프로그램가능 지연부 B의 클록 출력에서 출력되기 전에, 프로그램가능 지연부 B의 지연 라인을 통해 추가로 지연된다. 프로그램가능 지연부 B의 클록 출력을 통해 출력된 제 1 클록 신호는, 프로그램가능 지연부 A의 캐스케이드 입력이 도시되지 않은 이전 프로그램가능 지연부의 캐스케이드 출력에 의해 공급되기 때문에, 프로그램가능 지연부들 중 하나의 프로그램가능 지연부에 의해 제공되는 총 이용가능한 지연의 최대 3배를 가질 수 있다.
그러나, 프로그램가능 지연부 A는 클록 입력에서 제 2, 독립적인 클록 신호를 추가로 수신한다. 제 2 클록 신호는 임의의 부가적인 지연을 부가함이 없이 프로그램가능 지연부 A를 통해 패스되고 클록 출력을 통해 출력된다.
도 6은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처(600)를 예시하는 회로 다이어그램이다. 캐스케이드형 아키텍처(600)에서, 2개의 별개이고 독립적인 클록 신호들은 2개의 별개이고 독립적인 펄스 신호들을 생성하기 위하여 프로세싱된다. 프로그램가능 지연부들 A 및 B 각각은 클록 입력에서 클록 신호를 수신한다. 클록 신호는 프로그램가능 지연부들 A 및 B 각각의 지연 라인에서 지연되고 그 다음으로, 지연된 클록 신호 및 지연 없는 본래의 클록 신호에 대해 NAND 연산을 수행함으로써 펄스 신호를 생성하기 위하여 사용된다. 결과적인 펄스 신호는 프로그램가능 지연부들 A 및 B 각각의 클록 출력으로부터 출력된다.
도 7은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처(700)를 예시하는 회로 다이어그램이다. 캐스케이드형 아키텍처(700)의 예에서, 프로그램가능 지연부들 A 및 B는 프로그램가능 지연부들 중 하나의 프로그램가능 지연부의 2배의 지연을 달성하도록 캐스케이드된다. 그 다음으로, 지연된 신호는 프로그램가능 지연부들 중 하나의 프로그램가능 지연부를 사용하여 생성된 펄스 신호의 펄스 폭의 2배를 가지는 펄스 신호를 프로그램가능 지연부 B에서 생성하기 위하여 사용된다.
묘사된 바와 같이, 클록 신호는 프로그램가능 지연부 A의 클록 입력에서 수신된다. 클록 신호는 프로그램가능 지연부 A의 지연 라인을 사용하여 지연되고 캐스케이드 출력으로부터 출력된다. 지연된 클록 신호는 프로그램가능 지연부 B의 캐스케이드 입력에서 수신되고, 프로그램가능 지연부 B의 지연 라인을 사용하여 추가로 지연되고, 그리고 프로그램가능 지연부 B 내의 펄스 생성기에 제공된다.
프로그램가능 지연부 A의 클록 입력에서 수신된 본래의 클록 신호는 또한 임의의 지연이 부가됨이 없이 프로그램가능 지연부 A의 클록 출력으로 패스되고 프로그램가능 지연부 A에 로컬인 클록 로드들에 의해 사용하기 위하여 이용가능하다. 묘사된 바와 같이, 본래의 클록 신호는 또한 프로그램가능 지연부 A 외부의 부가적인 와이어 리소스들을 사용하여 프로그램가능 지연부 B의 클록 입력으로 패스되고 그리고 프로그램가능 지연부 B의 펄스 생성기에 의해 펄스 신호의 생성을 위해 사용된다. 대안적으로, 제 2의 독립적인 클록 신호는 파선으로 예시된 프로그램가능 지연부 B의 클록 입력에 제공될 수 있다. 결과적인 펄스 신호는 프로그램가능 지연부 B의 클록 출력으로부터 출력된다.
도 8은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처(800)를 예시하는 회로 다이어그램이다. 아키텍처(800)의 예에서, 프로그램가능 지연부 A는 클록 입력에서 클록 신호를 수신한다. 클록 신호는 프로그램가능 지연부 A의 지연 라인을 사용하여 지연된다. 그 다음으로, 지연된 클록 신호는 프로그램가능 지연부 A의 펄스 생성기를 사용하여 펄스 신호를 생성하기 위하여 본래의 클록 신호와 함께 펄스 생성기에 제공된다. 펄스 신호는 프로그램가능 지연부 A의 캐스케이드 출력 및 클록 출력 둘 모두에 의해 출력된다. 클록 출력으로부터의 펄스 신호는 프로그램가능 지연부 A의 클록 출력 내 및 그 부근에서 클록 로드들을 구동하기 위하여 사용될 수 있다. 캐스케이드 출력으로부터의 펄스 신호는 프로그램가능 지연부 B의 캐스케이드 입력에 제공된다. 펄스 신호는 프로그램가능 지연부 B의 지연 라인을 사용하여 지연되고 프로그램가능 지연부 B의 클록 출력을 통해 출력된다.
도 9는 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처(900)를 예시하는 회로 다이어그램이다. 캐스케이드형 아키텍처(900)의 예는 실질적으로 캐스케이드형 아키텍처(800)의 예와 유사하다. 하나의 예외는, 프로그램가능 지연부 A가 캐스케이드 출력 및 클록 출력 둘 모두로부터 펄스 신호를 출력하지 않는 것이다. 오히려, 프로그램가능 지연부 A는, 클록 출력으로부터 임의의 부가적인 지연 없이 본래의 클록 신호를 출력하면서, 캐스케이드 출력으로부터 펄스 신호를 출력한다. 캐스케이드 출력으로부터 출력된 펄스 신호는 프로그램가능 지연부 B의 캐스케이드 입력에 제공되고, 프로그램가능 지연부 B의 지연 라인을 통해 지연되고, 그리고 클록 출력을 통해 출력된다.
도 10은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처(1000)를 예시하는 블록 다이어그램이다. 캐스케이드형 아키텍처(1000)는 함께 캐스케이드된 4개의 프로그램가능 지연부들 A, B, C 및 D를 포함한다. 묘사된 바와 같이, 프로그램가능 지연부 A의 캐스케이드 출력(148)은 프로그램가능 지연부 B의 캐스케이드 입력(112)에 커플링된다. 프로그램가능 지연부 B의 캐스케이드 출력(148)은 프로그램가능 지연부 C의 캐스케이드 입력(112)에 커플링된다. 프로그램가능 지연부 C의 캐스케이드 출력(148)은 프로그램가능 지연부 D의 캐스케이드 입력(112)에 커플링된다. 마지막으로, 프로그램가능 지연부 D의 캐스케이드 출력(148)은 프로그램가능 지연부 A의 캐스케이드 입력(112)에 커플링된다.
캐스케이드형 아키텍처(1000)는 수신된 클록 신호에 적용될 하나의 프로그램가능 지연부의 최대 4배까지의 총 지연을 허용한다. 추가로, 하나의 프로그램가능 지연부에 의해 생성된 펄스 신호의 펄스 폭의 최대 4배의 펄스 폭을 가지는 펄스 신호들이 생성될 수 있다. 그 경우에서, 결과적인 출력 신호가 프로그램가능 지연부 D의 클록 출력(152)으로부터 출력되는 동안, 프로그램가능 지연부 A는 신호 진입 포인트로서 사용된다.
그러나, 출력 신호가 지연 양, 요구되는 펄스 폭, 및/또는 클록 신호를 필요로 하는 IC의 위치에 따라 프로그램가능 지연부들 A, B, C 및/또는 D 중 임의의 프로그램가능 지연부의 클록 출력(152)으로부터 취해질 수 있다는 것이 인지되어야 한다. 유사하게, 신호 진입 포인트는 가변할 수 있고 프로그램가능 지연부들 A, B, C, 및/또는 D 중 임의의 프로그램가능 지연부의 클록 입력(114)일 수 있다. 예컨대, 도 10에 예시된 루프 백 구성을 사용하여, 클록 아키텍처가 생성될 수 있고, 이 클록 아키텍처에서, 신호는 클록 입력(114)을 통해 프로그램가능 지연부 B에 진입하고, 캐스케이드 출력들(148)을 사용하여 프로그램가능 지연부들 C 및 D를 통해 캐스케이드되고, 그리고 프로그램가능 지연부 A에 대한 루프 백 연결을 사용하여 캐스케이드된다. 결과적인 신호는 프로그램가능 지연부 A의 클록 출력(152)으로부터 출력될 수 있다. 도 10을 참조하여 설명된 예들이 모두 4개의 예시된 프로그램가능 지연부들을 활용하지만, 예시된 지연부들 모두보다 더 적은 수의 클록 아키텍처들이 또한 생성될 수 있다. 예컨대 루프 백 구성에 대해 2개의 프로그램가능 지연부들이든, 3개의 프로그램가능 지연부들이든, 4개의 프로그램가능 지연부들이든 또는 그 초과의 프로그램가능 지연부들이든, IC 내에 도시된 바와 같은 루프 백 구성으로 배열된 프로그램가능 지연부들의 주어진 세트 내에서, 클록 신호에 대한 진입 및 퇴장 포인트들은 서로 독립적으로 선택될 수 있다.
도 11은 프로그램가능 지연부들을 사용하는 다른 예시적인 캐스케이드형 아키텍처(1100)를 예시하는 블록 다이어그램이다. 캐스케이드형 아키텍처(1100)는 4개의 프로그램가능 지연부들 A, B, C 및 D를 포함한다. 도 11의 예에서, 프로그램가능 지연부들은 2개의 별개의 쌍들로서 함께 캐스케이드된다.
프로그램가능 지연부들의 제 1 쌍에서, 프로그램가능 지연부 A의 캐스케이드 출력(148)은 프로그램가능 지연부 B의 캐스케이드 입력(112)에 커플링된다. 프로그램가능 지연부 B의 캐스케이드 출력(148)은 프로그램가능 지연부 A의 캐스케이드 입력(112)에 커플링된다.
프로그램가능 지연부들의 제 2 쌍에서, 프로그램가능 지연부 C의 캐스케이드 출력(148)은 프로그램가능 지연부 D의 캐스케이드 입력(112)에 커플링된다. 프로그램가능 지연부 D의 캐스케이드 출력(148)은 프로그램가능 지연부 C의 캐스케이드 입력(112)에 커플링된다.
캐스케이드형 프로그램가능 지연부들의 각각의 쌍은 하나의 프로그램가능 지연부의 지연의 최대 2배 및 하나의 프로그램가능 지연부의 최대 2배의 펄스 폭을 가지는 펄스 신호를 제공할 수 있다. 하나의 결과적인 출력 신호는 프로그램가능 지연부 B의 클록 출력(152)으로부터 출력된다. 다른 결과적인 출력 신호는 프로그램가능 지연부 D의 클록 출력(152)으로부터 출력된다.
도 10 및 11의 각각에서, 프로그램가능 지연부들의 캐스케이드 출력과 캐스케이드 입력 간의 연결들은 고정될 수 있고, 즉 프로그램가능 지연부들이 구현되는 IC의 부분으로서의 하드와이어링된(hardwired) 연결부로서 생성될 수 있다.
도 12는 IC 내에 클록 아키텍처를 구현하는 방법(1200)을 예시하는 흐름도이다. 블록(1205)에서, 제 1 프로그램가능 지연부는 본원에서 구현되는 클록 아키텍처, 예컨대 클록 트리(tree)의 부분으로서 IC 내에 제공된다. 블록(1210)에서, 제 2 또는 그 초과의 프로그램가능 지연부들은 클록 아키텍처의 부분으로서 IC 내에 제공된다. 프로그램가능 지연부들은 클록 아키텍처 도처에 부가될 수 있다. 일 양상에서, 프로그램가능 지연부는 클록 아키텍처의 각각의 리프에서 부가된다. 클록 트리 또는 클록 아키텍처의 리프는, 클록 신호가 클록 소스로부터의 클록 신호를 IC의 특정 지역 또는 존으로 전달하는 라우팅 트랙(와이어)을 떠나는 노드이고, 그때 클록 신호는 리프 노드에 대해 로컬인 하나 또는 그 초과의 클록 로드들로 분산시키기 위해 분산 트랙(와이어)으로 스위칭된다.
블록(1215)에서, 본 명세서 내에서 예시된 바와 같이 하나 또는 그 초과의 캐스케이드형 아키텍처들을 형성하기 위하여 프로그램가능 지연부들 중 선택된 프로그램가능 지연부들이 함께 커플링된다. 2 또는 그 초과의 프로그램가능 지연부들은 하나의 프로그램가능 지연부의 캐스케이드 출력을 다른 프로그램가능 지연부의 캐스케이드 입력과 연결함으로써 커플링된다.
블록(1220)에서, 프로그램가능 지연부들은 구현되는 회로 디자인에 의해 필요시되거나 요구되는 클록 신호들을 생성하기 위하여 개별 프로그램가능 지연부들의 메모리 셀들 내에 적합한 값들을 로딩함으로써 구성될 수 있다.
일 양상에서, 캐스케이드 아키텍처들의 형성은 하드와이어링된 회로를 사용하여 수행될 수 있다. 예컨대, 각각의 프로그램가능 지연부는 하드와이어링될 수 있거나, 또는 고정된 회로 블록, 즉 구성가능할 수 있다. 캐스케이드 출력을 캐스케이드 입력에 연결하는 2, 또는 그 초과의 캐스케이드형 프로그램가능 지연부들 간의 배선은 IC 내에서 하드와이어링되거나, 또는 고정된 연결일 수 있다.
도 13은 IC에 대한 예시적인 아키텍처(1300)를 예시하는 블록 다이어그램이다. 일 양상에서, 아키텍처(1300)는 FPGA(field programmable gate array) 타입의 IC 내에 구현된다. 아키텍처(1300)는 또한 SOC 타입의 IC를 나타낸다. 주목된 바와 같이, SOC는 프로그램 코드 및 하나 또는 그 초과의 다른 회로들 및/또는 회로 시스템들을 실행하는 프로세서를 포함하는 IC이다. 회로들 및/또는 회로 시스템들은 서로 그리고 프로세서와 협력하여 동작할 수 있다. 임의의 경우에, 본 개시내용에 설명된 프로그램가능 지연부들은 도 13에 예시된 클록 영역들 도처에 구현될 수 있다.
도시된 바와 같이, 아키텍처(1300)는 몇몇 상이한 타입들의 프로그램가능 회로, 예컨대, 로직, 블록들을 포함한다. 예컨대, 아키텍처(1300)는 MGT(multi-gigabit transceiver)들(1301), CLB(configurable logic block)들(1302), BRAM(random access memory block)들(1303), IOB(input/output block)들(1304), CONFIG/CLOCKS(configuration and clocking logic)(1305), DSP(digital signal processing block)들(1306), 특수 I/O 블록들(1307)(예컨대, 구성 포트들 및 클록 포트들), 및 다른 프로그램가능 로직(1308), 이를테면 디지털 클록 관리기들, 아날로그-디지털 컨버터들, 시스템 모니터링 로직 등을 포함하는 다수의 상이한 프로그램가능 타일(tile)들을 포함할 수 있다.
일부 IC들에서, 각각의 프로그램가능 타일은 각각의 인접한 타일의 대응하는 INT(programmable interconnect element)(1311)에 그리고 상기 INT(1311)로부터 표준화된 연결들을 가지는 INT(1311)를 포함한다. 그러므로, 함께 취해진 INT들(1311)은 예시된 IC에 대한 프로그램가능 상호연결 구조를 구현한다. 각각의 INT(1311)는 또한, 도 13의 상단에 포함된 예들에 의해 도시된 바와 같이, 동일한 타일 내의 프로그램가능 로직 엘리먼트로의 그리고 상기 프로그램가능 로직 엘리먼트로부터의 연결들을 포함한다.
예컨대, CLB(1302)는 사용자 로직 플러스 단일 INT(1311)를 구현하도록 프로그래밍될 수 있는 CLE(configurable logic element)(1312)를 포함할 수 있다. BRAM(1303)은 하나 또는 그 초과의 INT들(1311)에 더하여 BRAM 로직 엘리먼트(BRL)(1313)를 포함할 수 있다. 통상적으로, 타일에 포함된 INT들(1311)의 수는 타일의 높이에 따른다. 묘사된 바와 같이, BRAM 타일은 5개의 CLB들과 동일한 높이를 가지지만, 다른 수들(예컨대, 4개)이 또한 사용될 수 있다. DSP 타일(1306)은 적합한 수의 INT들(1311)에 더하여 DSP 로직 엘리먼트(DSPL)(1314)를 포함할 수 있다. IOB(1304)는 INT(1311)의 하나의 인스턴스(instance)에 더하여 예컨대 I/O 로직 엘리먼트(IOL)(1315)의 2개의 인스턴스들을 포함할 수 있다. 당업자들에게 명확할 바와 같이, 예컨대 IOL(1315)에 연결된 실제 I/O 패드들은 통상적으로 IOL(1315)의 영역으로 국한되지 않는다.
도 13에 묘사된 예에서, 예컨대 지역들(1305, 1307, 및 1308)로 형성된 다이의 중심에 가까운 컬럼형(columnar) 영역은 구성, 클록, 및 다른 제어 로직을 위해 사용될 수 있다. 이 컬럼으로부터 연장되는 수평 영역들(1309)은 프로그램가능 IC의 폭에 걸쳐 클록들 및 구성 신호들을 분배하기 위하여 사용된다. 하나 또는 그 초과의 프로그램가능 지연부들은 지역들(1305, 1307, 1308, 및/또는 1309) 도처에 분산된 클록 라인들 상에 구현될 수 있다.
일 양상에서, 클록 회로들, 또는 리프 클록 회로들은 아키텍처(1300) 내의 다양한 위치들에 구현될 수 있다. 그런 클록 회로들은 본 개시내용 내에서 설명된 바와 같은 프로그램가능 지연부를 포함할 수 있다. 예컨대, 프로그램가능 지연부를 포함하는 클록 회로는 지역(1309)의 교차 지점에 포함되거나, 또는 위치될 수 있고, 컬럼들 중 하나 또는 그 초과 또는 이 각각은 CLB들(1302), BRAM들(1303), 및/또는 DSP들(1306)을 포함한다. 그러나, 프로그램가능 지연부들이 아키텍처(300) 내의 다른 곳에 포함되거나 위치될 수 있고 본원에서 제공된 예들은 제한되는 것으로 의도되지 않는 것이 인지되어야 한다.
도 13에 예시된 아키텍처를 활용하는 일부 IC들은 IC의 대부분을 형성하는 규칙적인 컬럼형 구조(regular columnar structure)를 방해하는 부가적인 로직 블록들을 포함한다. 부가적인 로직 블록들은 프로그램가능 블록들 및/또는 전용 회로일 수 있다. 예컨대, PROC(1310)로서 묘사된 프로세서 블록은 CLB들 및 BRAM들의 몇 개의 컬럼들에 걸친다.
일 양상에서, PROC(1310)는 전용 회로로서, 예컨대 하드-와이어링된 프로세서로서 구현되는데, 즉 IC의 프로그램가능 회로를 구현하는 다이의 부분으로서 제조된다. PROC(1310)은 개별 프로세서, 예컨대 프로그램 코드를 실행할 수 있는 단일 코어로부터, 하나 또는 그 초과의 코어들, 모듈들, 코-프로세서들, 인터페이스들 등을 가지는 전체 프로세서 시스템까지의 복잡한 범위에 이르는 여러 상이한 프로세서 타입들 및/또는 시스템들 중 임의의 것을 표현할 수 있다.
다른 양상에서, PROC(1310)은 아키텍처(1300)로부터 생략되고 설명된 다른 다양한 프로그램가능 블록들 중 하나 또는 그 초과로 대체된다. 추가로, 그런 블록들은, PROC(1310)에게 흔히 있는 경우지만 프로그램가능 회로의 다양한 블록들이 프로그램 코드를 실행하는 프로세서를 형성하기 위하여 사용될 수 있다는 점에서 "소프트 프로세서"를 형성하기 위하여 활용될 수 있다.
어구 "프로그램가능 회로"는, IC 내의 프로그램가능 회로 엘리먼트들, 예컨대 본원에서 설명된 다양한 프로그램가능 또는 구성가능 회로 블록들 또는 타일들뿐 아니라, IC에 로딩되는 구성 데이터에 따라 다양한 회로 블록들, 타일들, 및/또는 엘리먼트들을 선택적으로 커플링하는 상호연결 회로를 의미한다. 예컨대, PROC(1310) 외부에 있는 도 13에 도시된 부분들, 이를테면 CLB들(1302) 및 BRAM들(1303)은 IC의 프로그램가능 회로로 고려된다. 프로그램가능 회로는 자신의 내부에 상이한 물리적 회로들을 구현하도록 구성되거나 프로그래밍될 수 있다.
일반적으로, 구성 데이터가 IC에 로딩될 때까지 프로그램가능 회로의 기능성은 설정되지 않는다. 구성 비트들의 세트는 FPGA와 같은 IC의 프로그램가능 회로를 프로그래밍하기 위하여 사용될 수 있다. 구성 비트(들)는 통상적으로 "구성 비트스트림"으로서 지칭된다. 일반적으로, 프로그램가능 회로는 먼저 구성 비트스트림을 IC에 로딩함이 없이 동작하거나 기능하지 않는다. 구성 비트스트림은 프로그램가능 회로 내의 특정 물리적 회로를 효과적으로 구현하거나 설명한다. 구성 비트스트림 또는 회로 디자인은 예컨대, 다양한 프로그램가능 회로 블록들 사이의 물리적 연결성(다른 식으로는 존재하지 않음) 및 프로그램가능 회로 블록들의 기능적 양상들을 특정한다. 구성 비트스트림은 추가로 본원에서 설명된 프로그램가능 지연부들의 동작을 제어하기 위하여 사용되는 메모리 셀들에 로딩될 수 있는 값들을 특정한다.
"하드와이어링된" 또는 "하드닝된(hardened)", 즉 프로그램가능하지 않은 회로는 IC의 부분으로서 제조된다. 프로그램가능 회로와 달리, 하드와이어링된 회로 또는 회로 블록들은 IC의 제조 후 구성 비트스트림의 로딩을 통해 구현되지 않는다. 하드와이어링된 회로는 예컨대 먼저 구성 비트스트림을 IC에 로딩함이 없이 기능하는 전용 회로 블록들 및 상호연결부들을 가진다. 하드와이어링된 회로의 예는 PROC(1310)이다.
일부 인스턴스들에서, 하드와이어링된 회로, 예컨대 프로그램가능 지연부들은 IC 내의 하나 또는 그 초과의 메모리 엘리먼트들에 저장된 레지스터 세팅들 또는 값들에 따라 세팅되거나 선택될 수 있는 하나 또는 그 초과의 동작 모드들을 가질 수 있다. 동작 모드들은 예컨대 IC에 구성 비트스트림의 로딩을 통해 세팅될 수 있다. 이런 능력에도 불구하고, 하드와이어링된 회로는, 하드와이어링된 회로가 IC의 부분으로서 제조될 때 동작가능하고 특정 기능을 가지기 때문에, 프로그램가능 회로로 고려되지 않는다.
도 13은 프로그램가능 회로, 예컨대 프로그램가능 패브릭(fabric)을 포함하는 IC를 구현하기 위하여 사용될 수 있는 예시적인 아키텍처를 예시하기 위해 의도된다. 예컨대, 컬럼에서 로직 블록들의 수, 컬럼들의 상대적 폭, 컬럼들의 수 및 순서, 컬럼들에 포함된 로직 블록들의 타입들, 로직 블록들의 상대적 사이즈들, 및 도 13의 상단에 포함된 상호연결/로직 구현들은 순수하게 예시적이다. 실제 IC에서, 예컨대, CLB들의 하나보다 많은 인접한 컬럼은, CLB들이 나타나는 곳이면, 사용자 회로 디자인의 효율적인 구현을 가능하게 하기 위하여 포함될 수 있다. 그러나, 인접한 CLB 컬럼들의 수는 IC의 전체 사이즈에 따라 가변할 수 있다. 추가로, IC 내의 PROC(1310)와 같은 블록들의 사이즈 및/또는 포지셔닝은 단지 예시를 위한 것이며 제한으로서 의도되지 않는다.
본원에 개시된 본 발명의 어레인지먼트들에 따라, 2 또는 그 초과의 프로그램가능 지연부들로 형성되는 프로그램가능 지연 회로 블록 및 캐스케이드 아키텍처들이 설명된다. IC의 클록 아키텍처에 통합될 때, 본 발명의 어레인지먼트들은 클록 신호들 및 클록 신호 생성에 대해 증가된 유연성 및 제어를 제공한다. 클록 신호들의 스큐는 증가된 정확도로 제어될 수 있다. 추가로, 프로그램가능 펄스 폭을 가지는 펄스 신호들이 생성될 수 있어, 선택된 클록킹된 엘리먼트들이 펄스 신호를 사용하여 클록킹될 때, 타임 버로잉 동작들이 구현되도록 그런 선택된 클록킹된 회로 엘리먼트들을 래치들로 컨버션하는 것이 가능해진다.
설명을 위하여, 특정 명명법이 본원에 개시된 다양한 본 발명의 개념들의 완전한 이해를 제공하기 위하여 설명된다. 그러나, 본원에 사용된 용어들은 단지 본 발명의 어레인지먼트들의 특정 양상들을 설명하기 위한 것이고 제한되도록 의도되지 않는다.
본 개시내용 내에서 정의된 바와 같이, 단수 표현은 하나 또는 하나보다 많은 것을 의미한다. 본원에서 정의된 바와 같이 용어 "복수"는 2 또는 2보다 많은 것을 의미한다. 본원에서 정의된 바와 같이 용어 "다른"은 적어도 제 2 또는 그 초과를 의미한다. 본원에서 정의된 바와 같이 용어 "커플링된"은, 다르게 표시되지 않으면, 임의의 개재 엘리먼트들 없이 직접적으로든 하나 또는 그 초과의 개재 엘리먼트들을 갖고 간접적으로든 연결되는 것을 의미한다. 2개의 엘리먼트들은 또한 통신 채널, 경로, 네트워크, 또는 시스템을 통해 기계적으로, 전기적으로 커플링되거나, 또는 통신적으로 링킹(link)될 수 있다.
본 개시내용에 정의된 바와 같이, 용어 "및/또는"은 연관되어 열거된 아이템들 중 하나 또는 그 초과의 임의의 조합들 및 모든 가능한 조합들을 의미한다. 본 개시내용에 사용될 때, 용어들 "포함하다" 및/또는 "포함하는"은, 언급된 피처들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 또는 그 초과의 다른 피처들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다. 비록 용어들 "제 1", "제 2" 등이 다양한 엘리먼트들을 설명하기 위하여 본원에서 사용될 수 있지만, 이들 엘리먼트들은, 문맥이 다르게 표시하지 않으면, 이들 용어들이 하나의 엘리먼트로부터 다른 엘리먼트를 구별하기 위해서만 사용되기 때문에, 이들 용어들에 의해 제한되지 않아야 한다.
본원에서 정의된 바와 같이, 용어 "만약"은 문맥에 따라, "결정할 때", "결정할 시", "결정에 대한 응답으로", "검출에 대한 응답으로", "결정에 대한 응답으로", 또는 "검출에 대한 응답으로"를 의미한다. 유사하게, 본원에서 정의된 바와 같이 어구 "만약 결정되면" 또는 어구 "[언급된 조건 또는 이벤트]가 검출되면"은 문맥에 따라, "결정할 시", "결정에 대한 응답으로", "결정에 응답하여", "[언급된 조건 또는 이벤트]를 검출할 시", "[언급된 조건 또는 이벤트]를 검출하는 것에 대한 응답으로", 또는 "[언급된 조건 또는 이벤트]를 검출하는 것에 응답하여"를 의미한다.
본 개시내용 내에서, 동일한 참조 문자들은 단자들, 신호 라인들, 와이어들, 및 이들의 대응하는 신호들을 지칭하기 위하여 사용된다. 이에 관하여, 용어들 "신호", "와이어", "연결", "단자", 및 "핀"은 본 개시내용 내에서 가끔 상호교환가능하게 사용될 수 있다. 또한, 용어들 "신호", "와이어" 등이 하나 또는 그 초과의 신호들, 예컨대 단일 와이어를 통한 단일 비트의 전달 또는 다수의 병렬 와이어들을 통한 다수의 병렬 비트들의 전달을 표현할 수 있다는 것이 인지되어야 한다. 추가로, 각각의 와이어 또는 신호는 경우에 따라 신호 또는 와이어에 의해 연결되는 2 또는 그 초과의 컴포넌트들 간의 양방향 통신을 표현할 수 있다.
하나 또는 그 초과의 양상들은 추가로 본원에서 설명되는 방법들 및/또는 회로들의 구현을 가능하게 하는 모든 피처들을 포함하는 컴퓨터 프로그램 제품에 임베딩될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 데이터 저장 매체를 포함한다. 본원에서 정의된 바와 같이, 어구 "컴퓨터-판독가능 저장 매체"는 명령 실행 시스템, 장치, 또는 디바이스에 의해 또는 이들과 연관하여 사용하기 위한 프로그램 코드를 포함하거나 저장하는 저장 매체를 의미한다. 본원에서 정의된 바와 같이, "컴퓨터-판독가능 저장 매체"는 비-일시적이며, 이로써 일시적인 전파 신호 자체가 아니다. 컴퓨터-판독가능 저장 매체의 예들은 광학 미디어, 자기 미디어, 자기-광학 미디어, 컴퓨터 메모리, 이를테면 랜덤 액세스 메모리, 벌크 저장 디바이스, 예컨대 하드 디스크 등(그러나 이에 제한되지 않음)을 포함할 수 있다.
도면들의 흐름도 및 블록 다이어그램들은 본원에 개시된 본 발명의 어레인지먼트들의 다양한 양상들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능성 및 동작을 예시한다. 이에 관하여, 흐름도 또는 블록 다이어그램들의 각각의 블록은 특정 기능(들)을 구현하기 위한 하나 또는 그 초과의 실행가능 명령들을 포함하는 모듈, 세그먼트, 또는 코드 부분을 표현할 수 있다. 또한, 블록 다이어그램들 및/또는 흐름도 예시의 각각의 블록, 및 블록 다이어그램들 및/또는 흐름도 예시의 블록들의 조합들이 특수 기능들 또는 액트(act)들을 수행하는 특수 목적 하드웨어-기반 시스템들, 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 조합들에 의해 구현될 수 있다는 것이 주목될 것이다.
일 양상에서, 흐름도 예시의 블록들은 다양한 블록들의 숫자들에 대응하는 증가하는 번호순으로 수행될 수 있다. 다른 양상들에서, 블록들은 블록들의 숫자들과 상이하거나, 다양한 순서로 수행될 수 있다. 예컨대, 연속적으로 도시된 2 또는 그 초과의 블록들은 실질적으로 동시에 실행될 수 있다. 다른 경우들에서, 2 또는 그 초과의 블록들은 때때로, 포함된 기능성에 따라 역순으로 실행될 수 있다. 또 다른 경우들에서, 하나 또는 그 초과의 블록들은 저장된 결과들과 다양한 순서로 수행될 수 있고 바로 뒤따르지 않는 후속 또는 다른 블록들에서 활용될 수 있다.
아래 청구항들에서의 모든 수단 또는 단계 플러스 기능 엘리먼트들의 대응하는 구조들, 재료들, 액트들, 및 등가물들은 특정하게 청구된 다른 청구된 엘리먼트들과 결합하여 기능을 수행하기 위한 임의의 구조, 재료, 또는 동작을 포함하도록 의도된다.
프로그램가능 지연 회로 블록은 캐스케이드 입력 및 클록 입력을 가지는 입력 스테이지 ― 입력 스테이지는 캐스케이드 입력에서 수신된 신호 또는 클록 입력에서 수신된 신호를 패스함 ―, 입력 스테이지로부터 패스된 신호에 선택된 양의 지연을 적용함으로써 지연된 신호를 생성하도록 구성된 지연 블록, 및 지연 양에 따르는 펄스 폭을 가지는 펄스 신호를 생성하도록 구성된 펄스 생성기를 포함한다. 프로그램가능 지연 회로 블록은 또한 캐스케이드 출력 및 클록 출력을 가지는 출력 스테이지를 포함한다. 출력 스테이지는 펄스 신호의 인버팅된 버전 또는 지연된 신호를 캐스케이드 출력으로부터 패스하고 그리고 클록 입력에서 수신된 신호, 펄스 신호의 인버팅된 버전, 또는 지연된 신호를 클록 출력으로부터 패스하도록 구성된다.
입력 스테이지는 메모리 셀을 포함할 수 있고 그리고 메모리 셀에 저장된 값에 따라 캐스케이드 입력의 신호 또는 클록 입력에서 수신된 신호 중 어느 하나를 패스할 수 있다. 추가로, 입력 스테이지는 메모리 셀에 저장된 값에 따라 클록 입력에서 수신된 신호를 선택적으로 게이팅할 수 있다.
펄스 생성기는 지연된 신호의 인버팅된 버전과 클록 입력에서 수신된 신호로부터 펄스 신호를 생성하는 NAND 회로를 포함할 수 있다.
지연 블록은 다수의 탭들을 가지며 그리고 복수의 지연된 후보 신호들을 생성하는 지연 라인을 포함할 수 있다. 지연 블록은 또한 복수의 지연된 후보 신호 중 하나를 지연된 신호로서 패스하는 지연 선택기 블록을 포함할 수 있다. 지연 라인은 이진 가중될 수 있다.
지연 선택기 블록은 메모리 셀 및 인버팅 멀티플렉서를 포함할 수 있다. 인버팅 멀티플렉서는 메모리 셀에 저장된 값에 따라 복수의 지연된 후보 신호들로부터 지연된 신호를 선택할 수 있다.
출력 스테이지는 복수의 메모리 셀들, 멀티플렉서, 및 인버팅 멀티플렉서를 포함할 수 있다. 멀티플렉서는 복수의 메모리 셀들 중 제 1 메모리 셀에 저장된 값에 따라 펄스 신호 또는 지연된 신호의 인버팅된 버전을 캐스케이드 출력에 패스할 수 있다. 인버팅 멀티플렉서는 복수의 메모리 셀들 중 제 1 메모리 셀에 저장된 값 및 제 2 메모리 셀에 저장된 값에 따라 클록 입력에서 수신된 신호의 인버팅된 버전, 펄스 신호, 또는 지연된 신호의 인버팅된 버전을 클록 출력에 패스할 수 있다.
클록 회로는 제 1 캐스케이드 입력, 제 1 클록 입력, 다수의 탭들을 가지는 제 1 지연 라인, 제 1 펄스 생성기, 제 1 캐스케이드 출력, 및 제 1 클록 출력을 가지는 제 1 프로그램가능 지연 회로 블록을 포함한다. 클록 회로는 또한 제 2 캐스케이드 입력, 제 2 클록 입력, 다수의 탭들을 가지는 제 2 지연 라인, 제 2 펄스 생성기, 제 2 캐스케이드 출력, 및 제 2 클록 출력을 가지는 제 2 프로그램가능 지연 회로 블록을 포함한다. 제 1 캐스케이드 출력은 제 2 캐스케이드 입력에 커플링된다.
제 1 캐스케이드 출력은 제 1 펄스 생성기에 의해 생성된 제 1 펄스 신호의 인버팅된 버전 또는 제 1 지연 라인에 의해 생성된 제 1 지연된 신호를 패스할 수 있다. 제 2 캐스케이드 출력은 제 2 펄스 생성기에 의해 생성된 제 2 펄스 신호의 인버팅된 버전 또는 제 2 지연 라인에 의해 생성된 제 2 지연된 신호를 패스할 수 있다. 제 1 클록 출력은 제 1 클록 입력에서 수신된 신호, 제 1 펄스 신호의 인버팅된 버전, 또는 제 1 지연된 신호를 패스할 수 있다. 제 2 클록 출력은 제 2 클록 입력에서 수신된 제 2 신호, 제 2 펄스 신호의 인버팅된 버전, 또는 제 2 지연된 신호를 패스할 수 있다.
제 1 펄스 생성기는 제 1 지연 라인에 의해 신호에 적용된 지연 양에 따르는 펄스 폭을 가지는 제 1 펄스 신호를 생성할 수 있다. 제 2 펄스 생성기는 제 2 지연 라인에 의해 신호에 적용된 지연 양에 따르는 펄스 폭을 가지는 제 2 펄스 신호를 생성할 수 있다.
일 양상에서, 제 1 프로그램가능 지연부는 제 1 클록 신호를 지연할 수 있고 그리고 지연된 제 1 클록 신호를 제 1 캐스케이드 출력을 통해 출력할 수 있다. 제 2 프로그램가능 지연부는 지연된 제 1 클록 신호를 제 2 캐스케이드 입력을 통해 수신할 수 있고 그리고 지연된 제 1 클록 신호를 추가로 지연할 수 있다. 예컨대, 제 1 프로그램가능 지연부는 지연을 적용함이 없이 제 1 클록 신호를 제 1 클록 출력으로부터 출력할 수 있다. 다른 예에서, 제 1 클록 신호는 제 1 프로그램가능 지연부의 제 1 캐스케이드 입력에서 수신될 수 있다. 그 경우에, 제 1 프로그램가능 지연부는 제 1 클록 신호에 무관하게 제 2 클록 신호를 제 1 클록 입력에서 수신할 수 있고 지연을 적용함이 없이 제 2 클록 신호를 제 1 클록 출력으로부터 출력한다.
다른 양상에서, 제 1 프로그램가능 지연부는 제 1 클록 신호를 지연할 수 있고 그리고 지연된 제 1 클록 신호를 제 1 캐스케이드 출력을 통해 출력할 수 있다. 제 2 프로그램가능 지연부는 지연된 제 1 클록 신호를 제 2 캐스케이드 입력에서 수신하고, 지연된 제 1 클록 신호를 추가로 지연하고, 추가로 지연된 제 1 클록 신호를 사용하여 펄스 신호를 생성하고, 그리고 펄스 신호의 인버팅된 버전을 출력할 수 있다. 일 예에서, 제 1 프로그램가능 지연부는 지연 없이 제 1 클록 신호를 제 1 클록 출력을 통해 추가로 출력할 수 있다. 또 다른 예에서, 제 2 프로그램가능 지연부는 제 1 클록 신호와 무관하게 제 2 클록 신호를 제 2 클록 입력에서 수신하고 그리고 펄스 신호를 생성하기 위하여 펄스 생성기 내에서 제 2 클록 신호 및 추가 지연된 제 1 클록 신호를 사용할 수 있다.
또 다른 양상에서, 제 1 프로그램가능 지연부는 수신된 클록 신호로부터 펄스 신호를 생성하고 펄스 신호의 인버팅된 버전을 제 1 캐스케이드 출력을 통해 출력할 수 있다. 제 2 프로그램가능 지연부는 펄스 신호의 인버팅된 버전을 제 2 캐스케이드 입력에서 수신하고, 펄스 신호의 인버팅된 버전을 지연하고, 그리고 펄스 신호의 지연된 인버팅된 버전을 출력할 수 있다. 그 경우에, 제 1 프로그램가능 지연부는 펄스 신호의 인버팅된 버전을 제 1 클록 출력으로부터 추가로 출력할 수 있다.
제 1 캐스케이드 출력은 고정된 회로를 사용하여 제 2 캐스케이드 입력에 커플링될 수 있다.
본 개시내용 내에 설명된 특징들은 본 개시내용의 사상 또는 본질적 속성들로부터 벗어남이 없이 다른 형태들로 구현될 수 있다. 따라서, 그런 특징들 및 구현들의 범위를 표시할 때, 전술한 개시내용보다는 뒤따르는 청구항들에 대해 참조가 이루어져야 한다.

Claims (15)

  1. 프로그램가능 지연 회로 블록으로서,
    캐스케이드(cascade) 입력 및 클록(clock) 입력을 포함하는 입력 스테이지 ― 상기 입력 스테이지는 상기 캐스케이드 입력에서 수신된 신호 또는 상기 클록 입력에서 수신된 신호를 패스(pass)함 ―;
    상기 입력 스테이지의 출력에 커플링되고 그리고 상기 입력 스테이지로부터 패스된 신호에 선택된 지연 양을 적용함으로써 지연된 신호를 생성하도록 구성된 지연 블록;
    상기 지연 블록의 출력에 커플링되고 그리고 상기 지연 블록에 의해 적용된 상기 지연 양을 따르는 펄스 폭을 가지는 펄스 신호를 생성하도록 구성된 펄스 생성기; 및
    상기 펄스 생성기의 출력에 커플링된 출력 스테이지
    를 포함하고,
    상기 출력 스테이지는 상기 프로그램가능 지연 회로 블록에 대한 캐스케이드 출력 및 클록 출력을 포함하고,
    상기 출력 스테이지는 상기 펄스 신호의 인버팅된(inverted) 버전 또는 상기 지연된 신호를 상기 캐스케이드 출력에 패스하도록 구성가능하고 그리고 상기 클록 입력에서 수신된 신호, 상기 펄스 신호의 인버팅된 버전, 또는 상기 지연된 신호를 상기 클록 출력에 패스하도록 구성가능한,
    프로그램가능 지연 회로 블록.
  2. 제 1 항에 있어서,
    상기 입력 스테이지는 메모리 셀을 포함하고 그리고 상기 메모리 셀에 저장된 값에 따라 상기 캐스케이드 입력에서의 신호 또는 상기 클록 입력에서 수신된 신호 중 어느 하나를 패스하는,
    프로그램가능 지연 회로 블록.
  3. 제 1 항에 있어서,
    상기 입력 스테이지는 메모리 셀에 저장된 값에 따라 상기 클록 입력에서 수신된 신호를 선택적으로 게이팅(gate)하는,
    프로그램가능 지연 회로 블록.
  4. 제 1 항에 있어서,
    상기 펄스 생성기는 상기 지연된 신호의 인버팅된 버전과 상기 클록 입력에서 수신된 신호로부터 상기 펄스 신호를 생성하는 NAND 회로를 포함하는,
    프로그램가능 지연 회로 블록.
  5. 제 1 항에 있어서,
    상기 지연 블록은,
    다수의 탭(tap)들을 가지며 그리고 복수의 지연된 후보 신호들을 생성하는 지연 라인; 및
    상기 복수의 지연된 후보 신호들 중 하나를 상기 지연된 신호로서 패스하는 지연 선택기 블록
    을 포함하는,
    프로그램가능 지연 회로 블록.
  6. 제 5 항에 있어서,
    상기 지연 선택기 블록은 메모리 셀 및 인버팅 멀티플렉서를 포함하고; 그리고
    상기 인버팅 멀티플렉서는 상기 메모리 셀에 저장된 값에 따라 상기 복수의 지연된 후보 신호들로부터 상기 지연된 신호를 선택하는,
    프로그램가능 지연 회로 블록.
  7. 제 1 항에 있어서,
    상기 출력 스테이지는 복수의 메모리 셀들, 멀티플렉서, 및 인버팅 멀티플렉서를 더 포함하고;
    상기 멀티플렉서는 상기 복수의 메모리 셀들 중 제 1 메모리 셀에 저장된 값에 따라 상기 펄스 신호 또는 상기 지연된 신호의 인버팅된 버전을 상기 캐스케이드 출력에 패스하고; 그리고
    상기 인버팅 멀티플렉서는 상기 복수의 메모리 셀들 중 제 1 메모리 셀에 저장된 값 및 제 2 메모리 셀에 저장된 값에 따라 상기 클록 입력에서 수신된 신호의 인버팅된 버전, 상기 펄스 신호, 또는 상기 지연된 신호의 인버팅된 버전을 상기 클록 출력에 패스하는,
    프로그램가능 지연 회로 블록.
  8. 클록 회로로서,
    제 1 프로그램가능 지연 회로 블록; 및
    제 2 프로그램가능 지연 회로 블록
    을 포함하며,
    상기 제 1 프로그램가능 지연 회로 블록은,
    제 1 캐스케이드 입력 및 제 1 클록 입력을 포함하고 그리고 상기 제 1 캐스케이드 입력 또는 상기 제 1 클록 입력에서 수신된 신호를 패스하도록 구성된 제 1 입력 스테이지, 상기 제 1 입력 스테이지의 출력에 커플링된 제 1 지연 블록 ― 상기 제 1 지연 블록은 상기 제 1 입력 스테이지로부터 패스된 신호에 선택된 지연 양을 적용함 ―, 선택된 펄스 폭을 가지는 제 1 펄스 신호를 생성하도록 구성된, 제 1 지연 블록의 출력에 커플링된 제 1 펄스 생성기, 및 상기 제 1 펄스 생성기의 출력에 커플링된 제 1 출력 스테이지를 포함하며, 상기 제 1 출력 스테이지는 제 1 출력 신호를 상기 제 1 프로그램가능 지연 회로 블록으로부터 출력하도록 구성가능한 제 1 캐스케이드 출력 및, 제 2 출력 신호를 상기 제 1 프로그램가능 지연 회로 블록으로부터 출력하도록 구성가능한 제 1 클록 출력을 포함하며,
    상기 제 2 프로그램가능 지연 회로 블록은,
    제 2 캐스케이드 입력 및 제 2 클록 입력을 포함하고 그리고 상기 제 2 캐스케이드 입력 또는 제 2 클록 입력에서 수신된 신호를 패스하도록 구성된 제 2 입력 스테이지, 상기 제 2 입력 스테이지의 출력에 커플링된 제 2 지연 블록 ― 상기 제 2 지연 블록은 상기 제 2 입력 스테이지로부터 패스된 신호에 선택된 지연 양을 적용함 ―, 선택된 펄스 폭을 가지는 제 2 펄스 신호를 생성하도록 구성된, 제 2 지연 블록의 출력에 커플링된 제 2 펄스 생성기, 및 상기 제 2 펄스 생성기의 출력에 커플링된 제 2 출력 스테이지를 포함하며, 상기 제 2 출력 스테이지는 제 1 출력 신호를 상기 제 2 프로그램가능 지연 회로 블록으로부터 출력하도록 구성가능한 제 2 캐스케이드 출력 및, 제 2 출력 신호를 상기 제 2 프로그램가능 지연 회로 블록으로부터 출력하도록 구성가능한 제 2 클록 출력을 포함하며,
    상기 제 1 캐스케이드 출력은 상기 제 2 캐스케이드 입력에 커플링되는,
    클록 회로.
  9. 제 8 항에 있어서,
    상기 제 1 캐스케이드 출력은 상기 제 1 펄스 생성기에 의해 생성된 제 1 펄스 신호의 인버팅된 버전 또는 상기 제 1 지연 블록에 의해 생성된 제 1 지연된 신호를 패스하고;
    상기 제 2 캐스케이드 출력은 상기 제 2 펄스 생성기에 의해 생성된 제 2 펄스 신호의 인버팅된 버전 또는 상기 제 2 지연 블록에 의해 생성된 제 2 지연된 신호를 패스하고;
    상기 제 1 클록 출력은 상기 제 1 클록 입력에서 수신된 신호, 상기 제 1 펄스 신호의 인버팅된 버전, 또는 상기 제 1 지연된 신호를 패스하고; 그리고
    상기 제 2 클록 출력은 상기 제 2 클록 입력에서 수신된 제 2 신호, 상기 제 2 펄스 신호의 인버팅된 버전, 또는 상기 제 2 지연된 신호를 패스하는,
    클록 회로.
  10. 제 8 항에 있어서,
    상기 제 1 펄스 신호의 상기 선택된 펄스 폭은 상기 제 1 입력 스테이지로부터 패스된 신호에 상기 제 1 지연 블록에 의해 적용된 선택된 지연 양에 따르고; 그리고
    상기 제 2 펄스 신호의 상기 선택된 펄스 폭은 상기 제 2 입력 스테이지로부터 패스된 신호에 상기 제 2 지연 블록에 의해 적용된 선택된 지연 양에 따르는,
    클록 회로.
  11. 제 8 항에 있어서,
    상기 제 1 프로그램가능 지연 회로 블록은 상기 제 1 캐스케이드 입력 또는 상기 제 1 클록 입력에서 수신된 제 1 클록 신호를 지연하고 그리고 지연된 제 1 클록 신호를 상기 제 1 캐스케이드 출력을 통해 출력하고; 그리고
    상기 제 2 프로그램가능 지연 회로 블록은 상기 지연된 제 1 클록 신호를 상기 제 2 캐스케이드 입력을 통해 수신하고 그리고 상기 지연된 제 1 클록 신호를 추가로 지연하는,
    클록 회로.
  12. 제 11 항에 있어서,
    상기 제 1 클록 신호는 상기 제 1 프로그램가능 지연 회로 블록의 상기 제 1 캐스케이드 입력에서 수신되고;
    상기 제 1 프로그램가능 지연 회로 블록은 상기 제 1 클록 신호에 무관하게 제 2 클록 신호를 상기 제 1 클록 입력에서 수신하고 그리고 지연을 적용함이 없이 상기 제 2 클록 신호를 상기 제 1 클록 출력으로부터 출력하는,
    클록 회로.
  13. 제 8 항에 있어서,
    상기 제 1 프로그램가능 지연 회로 블록은 상기 제 1 캐스케이드 입력 또는 상기 제 1 클록 입력에서 수신된 제 1 클록 신호를 지연하고 그리고 지연된 제 1 클록 신호를 상기 제 1 캐스케이드 출력을 통해 출력하고; 그리고
    상기 제 2 프로그램가능 지연 회로 블록은 상기 지연된 제 1 클록 신호를 상기 제 2 캐스케이드 입력에서 수신하고, 상기 지연된 제 1 클록 신호를 추가로 지연하고, 추가 지연된 제 1 클록 신호를 사용하여 펄스 신호를 생성하고, 그리고 상기 펄스 신호의 인버팅된 버전을 출력하는,
    클록 회로.
  14. 제 13 항에 있어서,
    상기 제 2 프로그램가능 지연 회로 블록은 상기 제 1 클록 신호와 무관하게 제 2 클록 신호를 상기 제 2 클록 입력에서 수신하고 그리고 펄스 신호를 생성하기 위하여 상기 펄스 생성기 내에서 상기 제 2 클록 신호 및 추가 지연된 제 1 클록 신호를 사용하는,
    클록 회로.
  15. 제 8 항에 있어서,
    상기 제 1 프로그램가능 지연 회로 블록은 상기 제 1 캐스케이드 입력 또는 상기 제 1 클록 입력에서 수신된 클록 신호로부터 제 1 펄스 신호를 생성하고 상기 제 1 펄스 신호의 인버팅된 버전을 상기 제 1 캐스케이드 출력을 통해 출력하고; 그리고
    상기 제 2 프로그램가능 지연 회로 블록은 상기 제 1 펄스 신호의 인버팅된 버전을 상기 제 2 캐스케이드 입력에서 수신하고, 상기 펄스 신호의 인버팅된 버전을 지연하고, 그리고 상기 제 1 펄스 신호의 지연된 인버팅된 버전을 출력하는,
    클록 회로.
KR1020177009183A 2014-09-10 2015-04-01 프로그램가능 지연 회로 블록 KR102263674B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/482,832 2014-09-10
US14/482,832 US9118310B1 (en) 2014-09-10 2014-09-10 Programmable delay circuit block
PCT/US2015/023790 WO2016039814A1 (en) 2014-09-10 2015-04-01 Programmable delay circuit block

Publications (2)

Publication Number Publication Date
KR20170051490A KR20170051490A (ko) 2017-05-11
KR102263674B1 true KR102263674B1 (ko) 2021-06-09

Family

ID=52875315

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177009183A KR102263674B1 (ko) 2014-09-10 2015-04-01 프로그램가능 지연 회로 블록

Country Status (6)

Country Link
US (1) US9118310B1 (ko)
EP (1) EP3192171B1 (ko)
JP (1) JP6602849B2 (ko)
KR (1) KR102263674B1 (ko)
CN (1) CN106688182B (ko)
WO (1) WO2016039814A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9537491B1 (en) 2015-03-24 2017-01-03 Xilinx, Inc. Leaf-level generation of phase-shifted clocks using programmable clock delays
US10284185B1 (en) * 2017-12-18 2019-05-07 Xilinx, Inc. Selectively providing clock signals using a programmable control circuit
US11803668B2 (en) * 2021-07-30 2023-10-31 Nvidia Corporation Isolating a region of a system on a chip for safety critical operations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117598A1 (en) 2011-11-03 2013-05-09 Nvidia Corporation Glitchless programmable clock shaper

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69407588T2 (de) * 1994-09-21 1998-07-09 Sgs Thomson Microelectronics Programmierbare digitale Verzögerungsschaltungseinheit
JP3319340B2 (ja) * 1997-05-30 2002-08-26 日本電気株式会社 半導体回路装置
US5923197A (en) * 1997-07-31 1999-07-13 Credence Systems Corporation Pulse stuffing circuit for programmable delay line
US6043677A (en) * 1997-10-15 2000-03-28 Lucent Technologies Inc. Programmable clock manager for a programmable logic device that can implement delay-locked loop functions
KR100266679B1 (ko) * 1998-04-16 2000-09-15 김영환 디램용 펄스발생회로
WO2001048972A1 (en) * 1999-12-28 2001-07-05 Mellanox Technologies Ltd. Adaptive sampling
JP4986318B2 (ja) * 2000-08-28 2012-07-25 ルネサスエレクトロニクス株式会社 半導体装置
US7250800B2 (en) * 2005-07-12 2007-07-31 Hewlett-Packard Development Company, L.P. Clock pulse width control circuit
CN201113942Y (zh) * 2007-08-03 2008-09-10 核工业理化工程研究院 脉冲延迟信号发生器
WO2011118381A1 (ja) * 2010-03-26 2011-09-29 古河電気工業株式会社 遅延制御装置
US9093989B2 (en) * 2011-11-21 2015-07-28 Freescale Semiconductor, Inc. Clock signal generator module, integrated circuit, electronic device and method therefor
CN102684651B (zh) * 2012-05-25 2015-07-08 华为技术有限公司 用于数字电路的信号延迟方法、装置及数字电路系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130117598A1 (en) 2011-11-03 2013-05-09 Nvidia Corporation Glitchless programmable clock shaper

Also Published As

Publication number Publication date
US9118310B1 (en) 2015-08-25
CN106688182B (zh) 2020-09-08
CN106688182A (zh) 2017-05-17
JP2017532850A (ja) 2017-11-02
EP3192171B1 (en) 2020-03-11
EP3192171A1 (en) 2017-07-19
JP6602849B2 (ja) 2019-11-06
KR20170051490A (ko) 2017-05-11
WO2016039814A1 (en) 2016-03-17

Similar Documents

Publication Publication Date Title
US7583103B2 (en) Configurable time borrowing flip-flops
US8115530B2 (en) Robust time borrowing pulse latches
US7548089B1 (en) Structures and methods to avoiding hold time violations in a programmable logic device
US9685957B2 (en) System reset controller replacing individual asynchronous resets
US10699054B2 (en) Standard cell library, integrated circuit including synchronous circuit, and computing system for designing the integrated circuit
CN111512552B (zh) 使用可编程控制电路选择性地提供时钟信号
KR102263674B1 (ko) 프로그램가능 지연 회로 블록
US10320386B1 (en) Programmable pipeline interface circuit
US9692418B1 (en) Pipelined interconnect circuitry with double data rate interconnections
US7382170B2 (en) Programmable delay circuit having reduced insertion delay
US8988125B1 (en) Circuits for and methods of routing signals in an integrated circuit
WO2016093891A1 (en) Dynamic voltage scaling in programmable integrated circuits
US9729153B1 (en) Multimode multiplexer-based circuit
US9576101B2 (en) Configurable cell design using capacitive coupling for enhanced timing closure
US10979034B1 (en) Method and apparatus for multi-voltage domain sequential elements
US20160358638A1 (en) Integrated circuits with embedded double-clocked components
US10069486B1 (en) Multimode registers with pulse latches
US9372953B1 (en) Increasing operating frequency of circuit designs using dynamically modified timing constraints
US7683666B1 (en) Circuit component with programmable characteristics and method of operating same
Li et al. Design and implementation of clock network for nanometer FPGA

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