KR102688777B1 - 리프로그래밍 가능 집적 회로 장치의 부분 재구성 동안 안정적인 io 인터페이스를 보장하기 위한 회로 및 방법 - Google Patents
리프로그래밍 가능 집적 회로 장치의 부분 재구성 동안 안정적인 io 인터페이스를 보장하기 위한 회로 및 방법 Download PDFInfo
- Publication number
- KR102688777B1 KR102688777B1 KR1020217014634A KR20217014634A KR102688777B1 KR 102688777 B1 KR102688777 B1 KR 102688777B1 KR 1020217014634 A KR1020217014634 A KR 1020217014634A KR 20217014634 A KR20217014634 A KR 20217014634A KR 102688777 B1 KR102688777 B1 KR 102688777B1
- Authority
- KR
- South Korea
- Prior art keywords
- circuit
- input
- data
- receive
- output
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 11
- 239000000872 buffer Substances 0.000 claims description 27
- 230000001360 synchronised effect Effects 0.000 claims description 14
- 230000008878 coupling Effects 0.000 claims description 8
- 238000010168 coupling process Methods 0.000 claims description 8
- 238000005859 coupling reaction Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 9
- 239000004744 fabric Substances 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 6
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17736—Structural details of routing resources
- H03K19/17744—Structural details of routing resources for input/output signals
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/17752—Structural details of configuration resources for hot reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/17756—Structural details of configuration resources for partial configuration or partial reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Logic Circuits (AREA)
- Dc Digital Transmission (AREA)
Abstract
집적 회로 장치에서 데이터를 라우팅 하기위한 회로가 설명된다. 회로는 입/출력 포트; 상기 입/출력 포트에 결합되고 데이터를 수신하도록 구성된 인터페이스 회로로서, 상기 데이터와 미리 결정된 값의 선택을 가능하게 하는 선택 회로를 포함하는 인터페이스 회로;및 상기 선택 회로를 제어하도록 결합된 제어 회로를 포함하고, 상기 제어 회로는 제어 신호에 대응하여 상기 집적 회로 장치의 부분 재구성 동안 상기 미리 결정된 값으로 상기 입/출력 포트를 유지한다. 집적 회로 장치에서 데이터를 라우팅하기 위한 회로를 구성하는 방법 또한 설명된다.
Description
본 발명은 일반적으로 집적 회로 장치에 관한 것으로, 특히 재프로그래밍 가능 집적 회로 장치의 부분 재구성 동안 안정적인 IO 인터페이스를 보장하기 위한 회로 및 방법에 관한 것이다.
프로그래밍 가능 로직 장치는 집적 회로의 사용자가 사용자가 선택한 회로 설계를 사용하여 장치를 프로그래밍할 수 있도록 하는 집적 회로 장치이다. 프로그래밍 가능 로직 장치는 원하는대로 재구성될 수 있고, 종종 부분 재구성(PR)을 겪는다. 부분 재구성은 유익하지만, 단점이 있거나 불리한 결과를 초래할 수도 있다. 부분 재구성을 사용하는 대부분의 시스템에서, 외부 입/출력(IO) 인터페이스는 고정되어있고, 재구성될 수 없다. 그러나 이러한 인터페이스에 연결하는 프로그래밍 가능 로직은 정상 시스템 동작의 일부로서 다수의 부분 재구성에 의존할 수 있다.
따라서 부분 재구성 동안 예측 가능하고 수용 가능한 성능을 제공하는 IO 회로가 필요하다.
집적 회로 장치에서 부분 재구성 동안 예를 들어 외부 입/출력 인터페이스 상에서 안정된 값을 제공하기 위한 회로가 설명된다. 입/출력 회로는 입력/출력 포트; 상기 입/출력 포트에 결합되고 데이터를 수신하도록 구성된 인터페이스 회로 - 상기 인터페이스 회로는 데이터 및 미리 결정된 값의 선택을 가능하게 하는 선택 회로를 포함함 -; 및 상기 선택 회로를 제어하기 위해 결합된 제어 회로를 포함하고, 상기 제어 회로는 제어 신호에 대응하여 집적 회로 장치의 부분 재구성 동안 미리 결정된 값으로 입/출력 포트를 유지한다.
집적 회로 장치에서 부분 재구성 동안 예를 들어 외부 입력/출력 인터페이스 상에서 안적정인 값을 제공하는 방법이 또한 설명된다. 방법은 인터페이스 회로를 입/출력 포트에 결합하는 단계 - 상기 입/출력 포트는 데이터를 수신하도록 구성되고 인터페이스 회로는 데이터와 미리 결정된 값의 선택을 가능하게 하는 선택회로를 포함함-; 상기 선택 회로를 제어하도록 상기 제어 회로를 구성하는 단계; 및 상기 제어회로로부터의 제어 신호에 대응하여 집적 회로 장치의 부분 재구성 동안 입/출력 포트를 미리 결정된 값으로 유지하는 단계를 포함한다.
도1은 IO 회로를 가지는 집적 회로의 블록도이다.
도2는 집적 회로 장치의 IO 회로의 블록도이다.
도3은 집적 회로 장치를 위한 비동기식 IO 회로의 블록도이다.
도4는 집적 회로 장치를 위한 동기식 IO 회로의 블록도이다.
도5는 도4의 동기식 IO회로의 동작을 보여주는 타이밍도이다.
도6은 집적 회로 장치의 다른 IO 회로의 블록도이다.
도7은 집적 회로 장치의 IO 패드와 관련된 집적 회로 장치의 부분의 블록도이다.
도8은 메모리 엘리먼트에 결합된 IO 회로의 구현을 보여주는 블록도이다.
도9는 홀드 동작 동안 메모리 엘리먼트에 결합된 IO 회로의 구현을 보여주는 블록도이다.
도10은 프로그래밍 가능 로직 장치의 다른 블록도이다.
도11은 도10의 프로그래밍 가능 로직 장치의 구성 가능 로직 엘리먼트의 블록도이다.
도12는 집적 회로 장치에서 IO 회로를 구현하는 방법을 보여주는 플로우 차트이다.
도2는 집적 회로 장치의 IO 회로의 블록도이다.
도3은 집적 회로 장치를 위한 비동기식 IO 회로의 블록도이다.
도4는 집적 회로 장치를 위한 동기식 IO 회로의 블록도이다.
도5는 도4의 동기식 IO회로의 동작을 보여주는 타이밍도이다.
도6은 집적 회로 장치의 다른 IO 회로의 블록도이다.
도7은 집적 회로 장치의 IO 패드와 관련된 집적 회로 장치의 부분의 블록도이다.
도8은 메모리 엘리먼트에 결합된 IO 회로의 구현을 보여주는 블록도이다.
도9는 홀드 동작 동안 메모리 엘리먼트에 결합된 IO 회로의 구현을 보여주는 블록도이다.
도10은 프로그래밍 가능 로직 장치의 다른 블록도이다.
도11은 도10의 프로그래밍 가능 로직 장치의 구성 가능 로직 엘리먼트의 블록도이다.
도12는 집적 회로 장치에서 IO 회로를 구현하는 방법을 보여주는 플로우 차트이다.
IO 인터페이스를 구현하는 회로 및 방법은 PR 이벤트 동안 특정 전압에서 집적 회로의 출력 값을 유지할 수 있게 한다. 일부 실시예에 따르면, 출력 경로에 대한 기존 클럭을 사용하여 PR 이벤트의 기간 동안 출력 값은 프로그래밍 가능 상수값으로 동기식으로 전환될 수 있다. 즉, IO 인터페이스는 홀드 신호가 표명될 때 미리 정의된 상수값이 동기식으로 전환되도록 할 수 있다. IO 인터페이스의 3-상태 버퍼에 대한 3-상태 제어 값은 또한 3-상태 경로에 대한 기존 클럭을 사용하여 PR 이벤트의 기간 동안 프로그래밍 가능 상수 값으로 동기식으로 전환될 수 있다. 따라서, IO 프로그래밍은 PR 이벤트 동안 유지될 수 있고, IO 쌍 별로 선택될 수 있다. 다른 구현에 따르면, 홀드 신호가 표명될 때 상수 값이 전환되는 비동기 동작이 이용될 수 있다. 아래에서 더 자세히 설명되는 바와 같이, 회로 및 방법은 고정된 값으로 IO 인터페이스 값을 유지함으로써 집적 회로 장치의 부분 재구성 동안 안정적인 IO를 제공한다.
본 명세서는 신규한 것으로 간주되는 발명의 하나 이상의 구현의 특징을 정의하는 청구항을 포함하지만, 회로 및 방법은 도면과 함께 관련된 설명을 고려하면 더 잘 이해될 것이다. 다양한 회로 및 방법이 개시되지만, 회로 및 방법은 다양한 형태로 구현될 수 있는 독창적인 방식의 단순한 예일 뿐임을 이해해야 한다. 따라서, 본 명세서에 개시된 특정 구조적 및 기능적 세부 사항은 제한적으로 해석되어서는 안되며, 단지 청구범위에 대한 기초로서 그리고 당업자에게 사실상 임의 적절하게 상세한 구조에서 독창적인 방식을 다양하게 사용하도록 가르치기위한 기초로서 해석되어야 한다. 또한, 여기에서 사용된 용어 및 문구는 제한하기 위한 것이 아니라, 회로 및 방법에 대한 이해가능한 설명을 제공하기 위한 것이다.
먼저 도1을 보면, IO 회로를 갖는 집적 회로 장치(100)의 블록도가 도시된다. 특히, 입/출력 포트(102)는 입/출력 블록(IOB)과 랜덤 액세스 메모리의 블록(BRAM)와 같은 구성가능 로직 엘리먼트(109) 및 다른 프로그래밍 가능 리소스를 갖는 프로그램가능 리소스(106)를 제어하는 제어 회로(104)에 결합된다. 구성 데이터는 구성 컨트롤러(110)에 의해 구성 메모리(108)에 제공될 수 있다. 구성 데이터는 프로그래밍 가능 리소스(106)의 동작을 가능하게 한다. 메모리(113)는 제어 회로(104) 및 프로그래밍 가능 리소스(106)에 결합될 수 있다. 송신기와 수신기를 포함하는 트랜시버 회로(114)는 제어 회로(104), 프로그래밍 가능 리소스(106) 및 메모리(113)에 결합될 수 있고, I/O 포트(116, 117)을 통해 집적 회로에서 신호를 수신할 수 있다. 다른 I/O 포트는 도시된 바와 같이 제어 회로(104)에 결합된 I/O 포트(118)와 같은 집적 회로 장치의 회로에 결합될 수 있다. 클로킹 네트워크(120)는 도1의 회로의 다양한 엘리먼트에 결합된다. 도1의 회로는 예로서 제공되지만, 부분 재구성 동안 데이터 값이 유지되어야 하는 다른 회로의 IO회로를 구현하는 다른 회로가 사용될 수 있다.
도2를 보면, 집적 회로 장치의 IO 회로(200)의 블록도가 도시된다. 제어 회로(202)는 입/출력 포트(204)에 결합된다. 제어 회로(202)는 클럭 입력(206)에서 클럭 신호를 수신하고, 제어 입력(208)에 제공되는 홀드(HOLD) 신호 및 제1 데이터 입력(210)에 제공되는 데이터(HOLD DATA)를 생성한다. 아래에서 더 자세히 설명되는 바와 같이, HOLD DATA는 IO 포트(204)의 출력 데이터(OUTPUT)가 유지되는 전압이다. 홀드 신호 및 홀드 데이터를 수신하는 것 외에도, 데이터는 정상 작동(즉, 부분 재구성의 외부 작동)동안 출력 데이터(OUTPUT)로서 출력(214)에서 생성되도록 제2 데이터 입력(212)에서 IO 회로에 제공된다. 또한 IO 포트(204)는 제2 클럭 입력(216)에서 클럭 신호를 수신할 수 있다.
입/출력 포트가 도시되지만, 입/출력 포트(204)는 전용 입력 회로 또는 전용 출력 회로일 수 있음을 이해해야 한다. 도2의 회로는 예를 들어 도1의 IO 블록 또는 도10의 입/출력 로직(IOL)에서 구현될 수 있다. 아래에서 더 자세히 설명되는 바와 같이, 출력(214)에 의해 생성되는 출력 데이터는 예를 들어 입/출력 회로(200)를 갖는 집적 회로의 부분이거나 입/출력 회로(200)를 갖는 집적회로로부터 분리되는 메모리 회로와 같은 다른 회로의 노드에서 전압을 유지하는데 사용될 수 있다. 아래에서 더 자세히 도시되는 도3 내지 6은 물론, 도2는 부분 재구성 동안 고정된 값에서 입/출력 포트의 출력으로서 값을 유지하는 것을 설명하지만, 회로와 방법은 미리 결정된 값에서 입력 포트로 작동하도록 의도된 입/출력 포트를 유지하기 위해 사용될 수 있음을 이해해야 한다. 예를 들어, 도2의 구현에서, 입력 데이터는 포트(214)(예를 들어, 입/출력 포트가 입력으로 작동함)에 결합될 수 있고, 입력 데이터는 212(예를 들어, 입력(212)은 출력으로서 기능함.)에서 생성되거나 212는 고정 값을 생성할 수 있다. 즉, 제어 회로(202)는 입력 포트로 동작하도록 입/출력 포트(204)를 제어할 수 있고, 여기서 수신된 데이터를 라우팅하는 노드(예를 들어, 입/출력 포트(204)의 출력으로 동작하는 입력(212))는 고정값으로 유지된다.
도3을 보면, 집적 회로 장치를 위한 비동기식 IO 회로(300)의 블록도가 도시된다. 도3의 구현에 따르면, 인터페이스 회로(301)는 입/출력 포트에 결합된 회로이고, 예로서 플립플롭으로 도시된 제1 레지스터(302)를 포함하며, 이는 입력(303)에서 3-상태(TRISTATE) 신호를 수신하고 클럭 입력에서 클럭(CLK) 신호를 수신하도록 구성된다. 레지스터(302)의 출력은 선택 회로(304)에 결합되고, 그 출력은 3-상태 버퍼(306)를 제어하는 3-상태 제어 신호(IO_T_VAL)로 선택된다. 3-상태 버퍼의 출력은 IO 패드(307)에 결합된다. 선택 회로(304)의 제어 터미널은 레지스터(302)에 의해 생성된 3-상 제어 신호 또는 미리 결정된 전압인 상수(CONSTANT1) 값 중 하나를 선택하는데 사용된다. 아래에서 상세히 설명되는 바와 같이, 부분 재구성 작동 중에 상수값이 선택될 수 있다.
데이터는 집적 회로의 정상 작동(예를 들어, 부분 재구성 작동의 외부 작동)동안 IO 포트에서 생성되는 데이터(DATA)를 수신하기 위한 입력(309)을 갖는 레지스터(308)를 통해 IO 패드(307)로 라우팅 된다. 클럭 입력은 또한 클럭 신호를 수신한다. 멀티플렉서로서 예시적인 방법으로 또한 도시된 선택 회로(310)는 레지스터(308)에 의해 생성된 데이터 또는 3-상태 버퍼(306)의 데이터 입력에 IO_OUT_VAL 신호로서 제공 되는 상수(CONSTANT2)값의 선택을 가능하게 한다. 상수 값은 선택 회로(310)에 의해 선택될 수 있고, 예를 들어 부분 재구성 작동 동안 미리 결정된 전압(즉, 논리 “0” 또는 논리 “1”)에서 IO 패드(307)에 값을 유지하도록 하기 위해 3-상태 버퍼(306)의 데이터 입력에 IO_OUT_VAL 신호로서 제공될 수 있다.
선택 회로(304) 및 선택 회로(310)는 제어 회로(311)에 의해 생성되고 선택 회로의 제어 터미널에 제공된 제어 신호에 의해 제어된다. 보다 구체적으로, 여기에서 AND 게이트(312)를 포함하는 것으로 예시적으로 도시된, 제어회로(311)의 로직 회로(312)의 출력은 홀드(HOLD)신호와 완료(COMPLETE) 신호를 수신하도록 구성된다. HOLD 신호는 부분 재구성에 대한 요청으로 사용될 수 있고, COMPLETE 신호는 초기 구성의 상태가 완료라는 것을 나타내는 데 사용될 수 있고, 이후 부분 재구성이 수행될 수 있다. 작동하는 동안, 홀드 신호와 완료 신호는 예를 들어 부분 재구성 동안 IO 패드(307)에 데이터를 제공하거나 IO 패드에 고정된, 미리 결정된 값을 제공하기 위해 정상 작동중에 사용되는 3-상태 및 데이터 신호를 선택할 출력을 생성하는데 사용된다.
도4를 보면, 집적 회로 장치를 위한 동기식 IO 회로(400)의 블록도가 도시된다. 도4의 구현에 따르면, 제어 회로(401)는 또한 예로서 AND 게이트로 도시된 로직 회로(402) 및 선택 회로(304 및 310)에 의해 생성된 신호의 선택이 레지스터(302 및 308)에 대한 3-상태 및 데이터 입력과 동기화 되는 것을 보장하기 위해 로직 회로(402)의 출력에서 직렬로 구현되는 레지스터(404 및 406)를 포함한다. 도5의 타이밍도에 도시된 바와 같이, 제어 회로(401)의 출력에서 생성된 연속 동기화(CONSTANT_SYNC) 신호는 부분 재구성 동안 3-상태 제어 및 데이터 값(IO_OUT_VAL 및 IO_T_VAL)을 동기화 할 수 있게 한다.
도6을 보면, 집적 회로 장치의 다른 IO 회로(600)의 블록도가 도시된다. IO 회로(600)는 제어 회로(602)에 의해 제어되는 인터페이스 회로(601)를 포함한다. 여기에 예로서 AND게이트로 도시된 제어 회로(602)의 로직 회로(603)는 홀드(HOLD) 신호와 완료(COMPLETE)신호를 수신하도록 구성된다. 로직 회로(603)의 출력은 지연 엘리먼트(606)에 의해 생성된 지연된 부분 재구성 홀드(PR_Hold_Delayed) 신호 및 반전된 부분 재구성 홀드(PR_Hold_B) 신호를 생성하도록 구성된 인버터(604)에 결합된 부분 재구성 홀드(PR_Hold) 신호이다. PR_Hold, PR_Hold_B 및 PR_Hold_Delayed를 포함하는 부분 재구성 홀드 신호는 여기에 예로서 멀티플렉서로 도시된 복수의 선택 회로를 제어하기 위해 사용된다.
제1 선택 회로(608)는 종료(Termination)값 및 부분 재구성(PR_constant)값(즉, 부분 재구성 동안 출력이 유지되는 값)을 수신하도록 구성되고, 여기서 출력은 선택 회로(608)의 선택 입력에 제공되는 PR_Hold_Delayed 신호에 대응하여 생성된다. 제1 선택 회로(608)의 출력 및 지연 엘리먼트(610)를 통해 생성된 지연된 출력은 다른 선택 회로(612)에 결합되고, 여기서 상기 IO 포트(614)에 대한 데이터 입력은 선택 회로(612)의 제어 터미널에 제공되는 PR_Hold 신호에 대응하여 생성된다. 선택 회로(608)에 의해 Ternimation 값이 선택될 때, IO 포트(614)의 임피던스는 IO 포트에서 입력 데이터(DATA)를 수신할 수 있도록 제어될 수 있다. PR_Constant가 선택 회로(608)에 의해 선택될 때, IO 포트(614)의 출력은 예를 들어 부분 재구성 동안 미리 결정된 값으로 유지될 수 있다.
IO 포트(614)를 인에이블하기 위해 IO 회로(600)에 추가 회로 엘리먼트가 제공된다. 선택 회로(616)는 정상 동작을 위한 인에이블 신호(Data_EN) 및 부분 재구성 인에이블 신호(PR_Constant)를 수신하도록 결합된다. 출력 및 지연 엘리먼트(618)에 의해 생성된 지연된 출력은 선택 회로(620)의 입력에 제공되며, 이는 선택 회로(620)의 제어 터미널에 제공되는 PR_Hold_B 신호에 대응하여 IO 포트(614)에 대한 인에이블 (Enable)신호를 생성한다. 인에이블 신호는 IO 포트(614)가 Data 또는 IO 회로(614)에 제공된 선택 회로(612)의 출력에 기초하여 출력을 생성할 수 있게 한다. 즉, IO 포트의 출력에서 생성된 데이터는 IO 회로(614)의 정상 동작 동안 생성되는 데이터 또는 부분 재구성 동안 예를 들어 외부 회로(예를 들면, 메모리)를 위해 IO 회로의 출력에서 값을 유지하는데 사용되는 미리 결정된, 고정 값을 포함할 수 있다. Termination 값, PR_constant 값 및 Data_EN값은 선택 회로(608 및 616)에 결합된 출력을 갖는 레지스터에 저장될 수 있다는 점을 유의해야 한다.
지연 엘리먼트는 브레이크 전메이크(make-before-break) 연결이 있는 것을 보장하기 위해 포함될 수 있다. 특히, 지연 엘리먼트(606)는 612 및 620이 선택될 때까지 선택 회로(608 및 616)의 출력을 선택하지 않기 위해 지연된 PR Hold 신호를 생성하는데 사용된다. 지연 엘리먼트(618)는 데이터 인에이블 값(즉, Data_En)을 지연시켜 정상 동작 동안 보내진 데이터(DATA)가 더 이상 이용불가능 하기 전에 종료값(즉, 종료)이 준비되도록 사용될 수 있다. 따라서, 지연 엘리먼트(618)는 출력 신호가 항상 로직 0 또는 1임을 보장한다. 또한, PR hold 동안 출력에서 값의 홀드를 벗어날 때, 예를 들어 지연 엘리먼트(610)를 사용하여 선택 회로(608)의 출력에서 생성된 종료값을 지연시키는 것이 유리하다. 선택 회로(612 및 620)의 동작은 반대이고, PR 홀드 모드에 들어갈 때 멀티플렉서(608)의 지연된 출력이 사용되고, PR 홀드 모드에서 나올 때 멀티플렉서(616)의 지연된 출력이 사용되는점에 유의해야 한다. 도2를 참조하여 전술한 바와 같이, 도 3, 도4 및 도6의 입/출력 포트(307 및 614)는 또한 입력 포트로서 작동 할 수 있고, 입력 포트의 값은 고정된 값으로 유지된다.
도7을 보면, 집적 회로 장치의 IO 패드의 동작과 관련된 집적 회로 장치의 부분의 블록도가 도시된다. 도7의 집적 회로의 부분은 도10 및 도11을 참조하여 설명된 바와 같은 프로그래밍 가능 로직 장치의 프로그래밍 가능 리소스를 포함할 수 있는 패브릭(702), 물리적(PHY) 인터페이스(704), 물리적 IO(PIO)(706), 및 집적 회로 장치의 접촉 패드 또는 한 회로와 다른 회로 사이의 전기적 연결에 사용되는 다른 연결 엘리먼트와 같은 접촉 엘리먼트 (708)를 포함할 수 있다. 접촉 엘리먼트(708)에서 전압값을 유지하기 위한 회로 및 방법은 예를들어 PIO(706)에서 구현될 수 있고, 패브릭(702) 및 PHY(704)에서 회로에 의해 제어될 수 있다. 다른 구현에 따르면, IO 인터페이스는 패브릭과 PHY 사이에 배치될 수도 있으며, 이는 더 많은 멀티플렉서와 일정한 프로그래밍 값을 요구할 수 있다. IO 회로는 다른 IO 인터페이스 유형과 함께 사용될 수 있다. 예를 들면, IO는 물리적 인터페이스(PHY)를 통해 패브릭에 대한 어떠한 연결도 요구되지 않는 DDRMC(Hard double data rate memory controller)로, PHY를 통해 프로그래밍 가능 로직 장치의 패브릭으로, PHY(Component) 패브릭을 통해, 그리고 예를 들어 PHY 피드스루를 통해 패브릭으로 연결될 수 있다.
도8을 보면, 블록도는 메모리 엘리먼트에 결합된 IO 회로의 구현을 도시한다. 예를 들어 프로그래밍 가능 로직 장치와 같은 집적 회로일 수 있는 제1 회로(802)는, 예를 들어 double data rate 4(DDR4)와 같은 메모리 회로일 수 있는 제2 회로에 결합된다. 메모리 인터페이스 로직을 포함하는 재구성가능 로직 모듈(806)은 여기서 데이터와 3-상태 제어 신호를 수신하기 위해 구성된 3-상태 버퍼로서 예로서 도시된 복수의 출력에서 로직 값(즉, 로직 “1” 또는 “0”)을 생성한다. 제1회로(802)의 복수의 출력 패드와 대응하는 제2 회로(804)의 입력 패드는 대응하는 클럭 인에이블 입력 패드(812)에 결합된 클럭 인에이블(CKE) 출력 패드(810), 대응하는 칩 선택 패드(816)에 결합된 칩 선택(CS_n) 패드(814), 대응하는 활성 개방 행 패드(820)에 결합된 활성 개방 행(ACT_n)패드(818), 대응하는 열 어드레스 선택 패드(824)에 결합된 열 어드레스 선택(CAS_n) 패드(822), 대응하는 행 어드레스 선택 패드(828)에 결합된 행 어드레스 선택(RAS_n) 패드(826), 및 대응하는 기록 인에이블 패드(832)에 결합된 기록 인에이블(WE_n) 패드(830)를 포함한다.
한 구현에 따르면, 위에 설명된 회로 및 방법은 셀프 리프레쉬(self-refresh) 모드에서 메모리 장치의 값을 유지하기위해 사용될 수 있다. 도8에 도시된 바와 같이, 인터페이스 컨트롤러는 먼저 버퍼(808)에 셀프-리프레쉬-엔트리 명령어(CS_n, RAS_n, CAS_n, 및 CKE는 WE_n 및 ACT_n HIGH로 LOW 유지함)를 적용하고, 도9에 도시된 바와 같이 인터페이스 컨트롤러가 재구성 되는 동안 셀프-리프레쉬에 메모리를 유지하기 위해 재구성 로직 모듈(806)에 의해 생성된 부분 재구성 홀드(PR_HOLD)신호의 표명에 의해 강제되는 값을 포함한다. 즉, 출력 패드(808, 810, 814, 818, 822, 826 및 830)의 값은 셀프-리프레쉬 모드를 유지하기 위해 부분 재구성 동안 특정 값으로 유지된다. 회로(802 및 804)는 단일 IC 다이, 단일 장치(예를 들어, 직접 접속 IC 다이를 갖는 멀티-칩 모율 또는 보드)의 분리 IC 다이, 인쇄 회로 보드(PCB) 상의 분리 다이(예를 들면 직접 연결 다이) 또는 분리 IC 패키지에서 구현될 수 있음을 이해해야 한다.
회로 및 방법은 IO 인터페이스와 프로그래밍 가능 로직 사이에 디커플링 로직을 구현하고 - 이는 더 잘 사용할 수 있는 프로그래밍 로직의 사용을 요구할 수 있음 -, PR이 발생하려고 할 때 디커플링 제어 신호를 표명해야 할 필요를 제거함으로써 향상된 성능을 제공한다. 회로 및 방법은 재구성 모듈에서 IO 인터페이스를 구현하는 것- 이 경우 인터페이스는 다시 사용될 수 있기 전에 셧다운, 리프로그래밍 및 재교정되어야 함 -을 방지한다. 예를 들어, 이러한 구현은 부분 재구성 프로세스에 추가 시간을 더하기 때문에 바람직하지 않고, 또한 외부 메모리에 저장된 데이터의 손실을 초래할 수 있다.
도10을 보면, IO 회로를 가지는 프로그래밍 가능 로직 장치의 다른 블록도가 도시된다. 프로그래밍 가능 리소스를 갖는 장치는 프로그래밍 가능 리소스를 갖는 주문형 집적회로(ASIC)와 같은 임의의 유형의 집적 회로 장치에서 구현될 수 있지만 다른 장치는 전용 프로그래밍 가능 로직 장치(PLDs)를 포함한다. PLD의 한 유형은 복합 프로그래밍 가능 로직 장치(CPLD)이다. CPLD는 함께 그리고 상호연결 스위치 매트릭스에 의해 입/출력(I/O) 리소스에 연결된 두개 이상의 “기능 블록”을 포함한다. CPLD의 각 기능 블록은 프로그래밍 가능 로직 어레이(PLA) 또는 프로그래밍 가능 어레이(PAL) 장치에 사용되는것과 유사한 2-레벨 AND/OR 구조를 포함한다. PLD의 다른 유형은 필드 프로그래밍 가능 게이트 어레이(FPGA)이다. 일반적인 FPGA 에서, 구성 가능 로직 블럭(CLB)의 어레이는 프로그래밍 가능 입/출력 블럭(IOB)에 결합된다. CLB와 IOB는 프로그래밍 가능 라우팅 리소스의 계층구조(hierarchy)에 의해 상호 연결된다. 이러한 CLB, IOB 및 프로그래밍 가능 라우팅 리소스는 일반적으로 오프칩 메모리로부터 FPGA의 구성 메모리 셀에 구성 비트스트림(bitstream)을 로드함으로써 커스터마이징 된다. 프로그래밍 가능 로직 장치의 이러한 유형의 경우, 장치의 기능은 해당 목적을 위해 장치에 제공되는 구성 비트스트림의 구성 데이터 비트(또는 부분 재구성 동안 전송된 구성 데이터 비트)에 의해 제어된다. 구성 데이터 비트는 휘발성 메모리(예를 들면, FPGA 및 일부 CPLD에서와 같은 정적 메모리 셀), 비휘발성 메모리(예를 들면, 일부 CPLD에서와 같은 플래시 메모리), 또는 다른 유형의 메모리 셀에 저장될 수 있다.
도10의 장치는 멀티-기가비트 트랜시버(MGT)(1001), CLB(1002), 랜덤 엑세스 메모리 블록(BRAM)(1003), 입/출력 블럭(IOB)(1004), 구성 및 클럭킹 로직(CONFIG/CLOCKS)(1005), 디지털 신호 처리 블럭(DSP)(1006), 특수 입/출력 블럭(I/O)(1007)(예를 들면, 구성 포트 및 클럭 포트) 및 디지털 클럭 매니저, 아날로그-디지털 컨버터, 시스템 모니터링 로직 등과 같은 다른 프로그래밍 가능 로직(1008)을 포함하는 다수의 다른 프로그래밍 가능 타일을 갖는 FPGA 아키텍쳐(1000)를 포함한다. 또한 일부 FPGA는 예를 들어 소프트웨어 어플리케이션을 수행하는데 사용될 수 있는 전용 프로세서 블럭(PROC)(1010)을 포함한다.
일부 FPGA에서, 각각의 프로그래밍 가능 타일은 각 인접한 타일에서 대응하는 상호 접속 엘리먼트로/로부터 표준화된 접속을 가지는 프로그래밍 가능 상호접속 엘리먼트(INT)(1011)를 포함한다. 따라서, 하나로 합쳐진 프로그래밍 가능 상호접속 엘리먼트는 설명된 FPGA를 위한 프로그래밍 가능 상호접속 구조를 구현한다, 프로그래밍 가능 상호접속 엘리먼트(1011)는 도10의 상단에 포함된 예에 의해 도시된 바와 같이 동일한 타일 내에 프로그래밍 가능 로직 엘리먼트로/로부터 연결을 포함한다.
예를 들면, CLB(1002)는 사용자 로직을 구현하도록 프로그래밍 될 수 있는 구성가능 로직 엘리먼트(CLE)(1012)와 단일 프로그래밍 가능 상호접속 엘리먼트(1011)을 포함할 수 있다. BRAM(1003)은 BRAM 로직 엘리먼트(BRL)(1013)에 더하여 하나 이상의 프로그래밍 가능 상호접속 엘리먼트를 포함할 수 있다. BRAM은 구성 로직 블록의 분산 RAM과는 분리된 별도의 전용 메모리를 포함한다. 일반적으로, 타일에 포함된 상호접속 엘리먼트의 수는 타일의 높이에 의존한다. 도시된 구현에서, BRAM 타일은5개의 CLB와 같은 높이를 가지지만 다른 숫자도 또한 사용될 수 있다. DSP 타일(1006)은 적절한 수의 프로그래밍 가능 상호접속 엘리먼트에 더해 DSP 로직 엘리먼트(DSPL)(1014)를 포함할 수 있다. 예를 들어, IOB(1004)는 프로그래밍 가능 상호접속 엘리먼트(1011)의 하나의 인스턴스에 더하여 입/출력 로직 엘리먼트(IOL)(1015)의 2개 인스턴스를 포함할 수 있다. 회로와 방법은 IOL(1015)을 사용하여 구현될 수 있다. 장치의 접속 위치는 해당 목적에 따라 장치에 제공된 구성 비트 스트림의 구성 데이터 비트에 의해 제어된다. 구성 비트 스트림의 비트에 대응하여 프로그래밍 가능 상호접속은 상호접속 라인을 포함하는 접속이 프로그래밍 가능 로직에서 구현되는 회로 또는 BRAM, 프로세서와 같은 다른 회로에 다양한 신호를 결합하기위해 사용될 수 있게 한다.
도시된 구현에서, 다이 중앙 근처의 열 영역은 구성, 클럭 및 기타 제어 로직에 사용된다. 이 열에서 확장되는 구성/클럭 분배 영역(1009)은 FPGA의 폭에 걸쳐 클럭 및 구성신호를 분배하는데 사용된다. 도10에 도시된 아키텍쳐를 활용하는 일부 FPGA는 FPGA의 큰 부분을 구성하는 일반 열 구조를 방해하는 추가적인 로직 블록을 포함한다. 추가 로직 블록은 프로그래밍 가능 블록 및/또는 전용 로직일 수 있다. 예를 들면, 도10에 도시된 프로세서 블럭(PROC)(1010)은 CLB 및 BRAM의 여러 열에 걸쳐있다.
도10은 단지 예시적인 FPGA 아키텍쳐를 도시하기 위한 것임을 주목하라. 열에 있는 로직 블록의 수, 열의 상대적 너비, 열의 수와 순서, 열에 포함된 로직 블록의 유형, 로직 블록의 상대적 크기, 및 도10의 상단에 포함된 상호연결/로직 구현은 단순히 예시적인 것이다. 예를 들면, 실제 FPGA에서는 사용자 로직의 효율적 구현을 용이하게 하기 위해 CLB가 나타나는 곳마다 CLB의 두개 이상의 인접한 열이 일반적으로 포함된다. 도10의 구현은 프로그래밍 가능 리소스를 가지는 집적 회로에 관한 것이지만, 위에 설명된 회로 및 방법은 프로그래밍 가능 자원과 하드 블록의 조합을 가지는 임의의 유형의 장치에서 구현될 수 있음을 이해해야 한다.
도11을 보면, 도 10에서 구현될 수 있는 구성 가능 로직 엘리먼트의 블록도가 도시된다. 특히, 도11은 예를 들어 프로그래밍 가능 로직 같은 도10의 구성 로직 블럭(1002)의 구성 가능 로직 엘리먼트를 단순화 된 형태로 도시한다. 도11의 구현에서, 슬라이스 M(1101)은 6개의 LUT데이터 입력 터미널(A1-A6, B1-B6, C1-C6 및 D1-C6)에 의해 각 구동되고 2개의 LUT 출력 신호(O5 및 O6)를 각 제공하는 4개의 색인 테이블(LUTM)(1101A 내지 1101D)을 포함한다. LUT(1101A 내지 1101D)로부터 O6 출력 터미널은 각 슬라이스 출력 터미널(A 내지 D)를 구동한다. LUT 데이터 입력 신호는 프로그래밍 가능 상호접속 엘리먼트(1111)에 의해 구현될 수 있는 입력 멀티플렉서를 통해 FPGA 상호접속 구조에 의해 공급되고, LUT 출력 신호는 또한 상호접속 구조에 공급된다. 슬라이스 M은 또한 : 출력 터미널(AMUX 내지 DMUX)을 구동하는 출력 선택 멀티플렉서(1111A 내지 1111D); 메모리 엘리먼트의 데이터 입력 터미널(1102A 내지 1102D)를 구동하는 멀티플렉서(1112A 내지 1112D); 조합 멀티플렉서(1116, 1118 및 1119); 바운스 멀티플렉서 회로(1122 내지 1123); 인버터(1105) 및 멀티플렉서(1106)에 의해 표현되는 회로(입력 클럭 경로에 함께 선택적 반전을 제공함); 및 멀티플렉서(1114A 내지 1114D, 1115A 내지 1115D, 1120 내지 1121) 및 배타적(exclusive) OR 게이트(1113A 내지 1113D)를 갖는 캐리 로직을 포함한다. 도11에 도시된 바와 같이, 이러한 모든 엘리먼트는 함께 결합된다. 도 11에 설명된 멀티플렉서에 대한 선택 입력이 도시되지 않은 경우, 선택 입력은 구성 메모리 셀에 의해 제어된다. 즉, 구성 메모리 셀에 저장된 구성 비트스트림의 구성 비트는 멀티플렉서에 대한 올바른 입력을 선택하기 위해 멀티플렉서의 선택 입력에 결합된다. 잘 알려진 구성 메모리 셀은 명확성을 위해 도11 뿐만 아니라 본 명세서의 다른 선택된 도면에서 생략된다.
도시된 구현에서, 각 메모리 엘리먼트(1102A 내지 1102D)는 동기식 또는 비동기식 플립플롭 또는 래치로서 기능하도록 프로그래밍될 수 있다. 동기식 기능과 비동기식 기능 사이의 선택은 Sync/Asynch 선택 회로(1103)를 프로그래밍 함으로써 슬라이스에서 모든 4개의 메모리 엘리먼트에 대해 이루어진다. S/R (set/reset) 입력 신호가 셋 기능을 제공하도록 메모리 엘리먼트가 프로그래밍 될 때, REV 입력 터미널은 리셋 기능을 제공한다. S/R 입력 신호가 리셋 기능을 제공하도록 메모리 엘리먼트가 프로그래밍 될 때, REV 입력 터미널은 셋 기능을 제공한다. 메모리 엘리먼트(1102A 내지 1102D)는 예를 들어 글로벌 클럭 네트워크 또는 상호접속 구조에 의해 제공될 수 있는 클럭 신호(CK)에 의해 클럭킹 된다. 이러한 프로그래밍 가능 메모리 엘리먼트는 FPGA 설계 분야에서 잘 알려져 있다. 각각의 메모리 엘리먼트(1102A 내지 1102D)는 등록된 출력 신호(AQ 내지 DQ)를 상호접속 구조에 제공한다. 각 LUT(1101A 내지 1101D)는 2개의 출력 신호(O5 및 O6)를 제공하기 때문에, LUT는 5개의 공유 입력 신호를 갖는 2개의 5-입력 LUT(IN1 내지 IN5) 또는 입력 신호를 갖는 1개의 6-입력 LUT(IN1 내지 IN6)로서 기능하도록 구성될 수 있다.
도11의 구현에서, 각 LUTM(1101A 내지 1101D)는 여러 모드 중 하나에서 기능할 수 있다. 색인 테이블 모드에 있을 때, 각 LUT는 입력 멀티플렉서를 통해 FPGA상호 접속 구조에 의해 공급되는 6개의 데이터 입력 신호(IN1 내지 IN6)를 갖는다. 64개의 데이터 값 중 하나는 신호(IN1 내지 IN6)의 값에 기초하여 구성 메모리 셀로부터 프로그래밍 가능하게 선택된다. RAM 모드에서, 각 LUT는 공유된 어드레스와 함께 단일 64-비트 RAM 또는 2개의 32-비트 RAM으로서 기능을 한다. RAM 기록 데이터는 입력 터미널(DI1)을 통해(LUT(1101A 내지 1101C)의 경우 멀티플렉서(1117A 내지 1117C)를 통함) 64-비트 RAM에 공급되거나 입력 터미널(DI1 및 DI2)를 통해 2개의 32-비트 RAM에 공급된다. LUT RAM에서 RAM 기록 동작은 멀티플렉서(1106)로부터 클럭 신호(CK)에 의해 및 멀티플렉서(1107)로부터 기록 인에이블 신호(WEN)에 의해 제어되며, 이는 클럭 인에이블 신호(CE) 또는 기록 인에이블 신호(WE)를 선택적으로 통과할 수 있다. 시프트 레지스터 모드에서, 각 LUT는 2개의 16-비트 시프트 레지스터로서 기능하거나, 단일 32-비트 시프트 레지스터를 생성하기 위해 직렬로 결합된 2개의 16-비트 시프트 레지스터와 함께 기능한다. 시프트-인(shift-in)신호는 입력 터미널(DI1 및 DI2)의 하나 또는 둘 모두를 통해 제공된다. 16-비트 및 32-비트 시프트 아웃 신호는 LUT 출력 터미널을 통해 제공될 수 있으며, 32-비트 시프트 아웃 신호는 또한 LUT 출력 터미널(MC31)을 통해 더 직접적으로 제공될 수 있다. LUT(1101A)의 32-비트 시프트 아웃 신호(MC31)는 또한 출력 선택 멀티플렉서(111D) 및 CLE 출력 터미널(DMUX)를 통해 시프트 레지스터 체인을 위한 일반적인 상호 접속 구조에 제공될 수 있다. 따라서, 위에 설명된 회로 및 방법은 도10 및 11의 장치와 같은 장치 또는 기타 적절한 장치에서 구현될 수 있다.
이제, 도12를 보면, 플로우 차트는 집적 회로 장치에서 IO 회로의 구현 방법을 도시한다. 인터페이스 회로는 블록(1202)에서 입/출력 포트에 결합되고, 여기서 입/출력 포트는 데이터를 수신하도록 구성되며, 인터페이스 회로는 데이터와 미리 결정된 값의 선택을 가능하게 하는 선택 회로를 포함한다. 예를 들어, 입/출력 포트는 도2, 도3, 도4 및 도6의 입/출력 포트일 수 있다. 제어 회로는 블록(1204)에서 인터페이스 회로의 선택 회로를 제어하도록 구성된다. 예를 들어, 제어 회로는 도2, 도3, 도4 및 도6의 제어 회로일 수 있다. 입/출력 포트는 블록(1206)에서 제어 회로로부터의 제어 신호에 응답하여 집적 회로 장치의 부분 재구성 동안 논리 0 또는 논리 1과 같은 미리 결정된 값으로 유지된다.
일 구현에 따르면, 인터페이스 회로를 구성하는 것은 데이터를 수신하기 위한 제1 입력과 미리 결정된 값을 수신하기 위한 제2 입력을 가지는 멀티플렉서를 구성하는 것을 포함할 수 있다. 방법은 데이터를 수신하기 위한 데이터 입력 및 클럭 신호에 대응하여 데이터를 생성하기 위한 데이터 출력을 가지는 레지스터를 구성하는 단계를 더 포함한다. 방법은 또한 선택 회로의 출력과 입/출력 포트 사이에 3-상태 버퍼를 결합하는 단계, 및 버퍼 제어 신호를 수신하도록 제2 레지스터를 구성하는 단계를 포함할 수 있으며, 여기서 상기 버퍼 제어 신호는 3-상태 버퍼를 제어하도록 사용된다. 제2 레지스터를 통해 버퍼 제어 신호를 수신하도록 구성된 제1 입력과 제2 미리 결정된 값을 수신하도록 구성된 제2 입력을 갖는 제2 선택 회로가 구현될 수 있고, 여기서 상기 제2 선택 회로를 구성하는 것은 제2 레지스터를 통해 버퍼 제어 신호를 수신하기 위한 제1 입력과 제2 미리 결정된 값을 수신하기 위한 제2 입력을 갖는 멀티플렉서를 구성하는 단계 포함하며, 상기 제어 회로의 출력은 상기 제2 선택 회로의 제어 터미널에 결합된다. 방법은 데이터와 클럭 신호를 수신하도록 레지스터를 구성하는 단계, 및 클럭 신호를 수신하고 선택 회로에 결합된 동기화된 제어 신호를 생성하도록 동기화 회로를 구성하는 단계를 더 포함할 수 있다. 동기화 회로를 구성하는 것은 데이터 입력에서 제어신호를 수신하고 클럭 신호를 수신하도록 복수의 레지스터를 직렬로 구성하는 것을 포함할 수 있으며, 여기서 동기화된 제어 신호는 복수의 레지스터의 출력에서 생성된다. 도8 및 도9를 참조하여 도시되고 설명된 바와 같이, 메모리는 입/출력 포트에 결합될 수 있으며, 입/출력 포트에서 값은 부분 재구성 동안 미리 결정된 값으로 유지된다.
도12의 방법은 설명된 도1 내지 11의 회로 또는 일부 다른 적절한 회로를 사용하여 수행될 수 있다. 방법의 특정 엘리먼트가 설명되지만, 방법의 추가 엘리먼트 또는 엘리먼트와 관련된 추가 세부사항은 도1 내지 도6의 개시에 따라 구현될 수 있음을 이해해야 한다.
일례에서, 집적 회로 장치에서 데이터를 라우팅 하기 위한 회로는 : 입/출력 포트; 상기 입/출력 포트에 결합되고 데이터를 수신하도록 구성되며, 데이터 또는 미리 결정된 값의 선택을 가능하게 하는 선택 회로를 포함하는 인터페이스 회로; 및 상기 선택 회로를 제어하도록 결합된 제어 회로를 포함하며, 상기 제어 회로는 상기 집적 회로 장치의 부분 재구성 동안 미리 결정된 값으로 상기 입/출력 포트를 유지한다.
일례에서, 선택 회로는 데이터를 수신하도록 구성된 제1 입력 및 미리 결정된 값을 수신하도록 구성된 제2 입력을 가지는 멀티플렉서를 포함한다. 예에서, 회로는 데이터를 수신하도록 구성된 데이터 입력 및 클럭 신호에 대응하여 데이터를 생성하도록 구성된 데이터 출력을 갖는 레지스터를 더 포함하고, 여기서 상기 데이터는 선택 회로의 제1 입력에 결합된다. 예에서, 회로는 선택 회로의 출력과 입/출력 포트 사이에 결합된 3-상태 버퍼를 더 포함한다. 예에서, 회로는 버퍼 제어 신호를 수신하기 위한 입력을 갖는 제2 레지스터를 더 포함하고, 여기서 상기 버퍼 제어 신호는 3-상태 버퍼를 제어하는데 사용된다. 예에서, 회로는 제2 레지스터를 통해 버퍼 제어 신호를 수신하도록 구성된 제1 입력 및 제2 미리 결정된 값을 수신하도록 구성된 제2 입력을 갖는 제2 선택 회로를 더 포함한다. 예에서, 제2 선택 회로는 제2 레지스터를 통해 버퍼 제어 신호를 수신하도록 구성된 제1 입력과 제2 미리 결정된 값을 수신하도록 구성된 제2 입력을 갖는 멀티플렉서를 포함하고, 제어 회로의 출력은 제2 선택 회로의 제어 터미널에 결합된다. 예에서, 회로는 데이터와 클럭 신호를 수신하도록 구성된 레지스터를 더 포함하고, 회로는 클럭 신호를 수신하고 선택 회로에 결합된 동기화된 제어 신호를 생성하도록 구성된 동기화 회로를 더 포함한다. 예에서, 동기화 회로는 데이터 입력에서 동기화된 제어 신호를 수신하고 클럭 신호를 수신하기 위해 직렬로 연결된 복수의 레지스터를 포함하며, 여기서 상기 동기화된 제어 신호는 복수의 레지스터의 출력에서 생성된다.
예에서, 집적 회로 장치에서 데이터를 라우팅 하기 위한 회로를 구성하는 방법은 : 인터페이스 회로를 입/출력 포트에 결합하는 단계 - 상기 입/출력 포트는 데이터를 수신하도록 구성되며, 인터페이스 회로는 데이터와 미리 결정된 값의 선택을 가능하게 하는 선택 회로를 포함함- ; 선택 회로를 제어하도록 제어 회로를 구성하는 단계; 및 집적 회로 장치의 부분 재구성 동안 미리 결정된 값으로 입/출력 포트를 유지하는 단계를 포함한다.
예에서, 인터페이스 회로를 구성하는 것은 데이터를 수신하는 제1 입력 및 미리 결정된 값을 수신하는 제2 입력을 갖는 멀티플렉서를 구성하는 단계를 포함한다. 예에서, 방법은 데이터를 수신하기 위한 데이터 입력 및 클럭 신호에 대응하여 데이터를 생성하기 위한 데이터 출력을 갖는 레지스터를 구성하는 단계를 더 포함한다. 예에서, 방법은 선택 회로의 출력과 입/출력 포트 사이에 3-상태 버퍼를 결합하는 단계를 더 포함한다. 예에서, 방법은 데이터와 클럭 신호를 수신하도록 레지스터를 구성하는 단계, 및 클럭 신호를 수신하고 선택 회로에 결합된 동기화된 제어 신호를 생성하도록 동기화 회로를 구성하는 단계를 더 포함한다. 예에서, 방법은 메모리를 입/출력 포트에 결합하는 단계를 더 포함하며, 여기서 입/출력 포트에서의 값은 부분 재구성 동안 미리 결정된 값으로 유지된다.
따라서 집적 회로에서 IO 인터페이스를 구현하기위한 새로운 회로 및 방법이 설명되었음을 알 수 있다. 당업자는 개시된 발명을 포함하는 수많은 대안 및 등가물이 존재하는 것을 알 수 있다고 인식 될 것이다. 그 결과, 본 발명은 전술한 구현에 의해 제한되지 않고 다음의 청구범위에 의해서만 제한된다.
Claims (16)
- 집적 회로 장치에서 데이터를 라우팅 하기 위한 회로에 있어서,
입출력 포트;
상기 입출력 포트에 결합되고 데이터를 수신하도록 구성된 인터페이스 회로로서, 상기 데이터 또는 미리 결정된 값의 선택을 가능하게 하는 선택 회로를 포함하는 인터페이스 회로; 및
상기 선택 회로를 제어하도록 결합된 제어 회로를 포함하고,
상기 제어 회로는 초기 구성이 완료된 것을 나타내는 제1 신호 및 상기 집적 회로 장치의 부분 재구성이 요청된 것을 나타내는 제2 신호를 수신하도록 구성되고,
상기 제어 회로는, 상기 초기 구성이 완료된 후, 상기 부분 재구성 동안 상기 미리 결정된 값으로 상기 입출력 포트를 유지하고, 상기 부분 재구성 후 상기 선택 회로로부터 상기 입출력 포트로 데이터를 제공하는 것을 가능하게 하는 회로. - 제1항에 있어서,
상기 제어 회로는 상기 선택 회로에 의해 생성된 신호를 상기 인터페이스 회로로 입력된 상기 데이터와 동기화하도록 구성되는 회로. - 제1항에 있어서,
상기 선택 회로는 상기 데이터를 수신하도록 구성된 제1 입력과 상기 미리 결정된 값을 수신하도록 구성된 제2 입력을 가지는 멀티플렉서를 포함하는 회로. - 제1항에 있어서,
상기 데이터를 수신하도록 구성된 데이터 입력과 클럭 신호에 대응하여 상기 데이터를 생성하도록 구성된 데이터 출력을 가지는 레지스터를 더 포함하는 회로로서, 상기 데이터는 상기 선택 회로의 제1 입력에 결합되는 회로. - 제1항에 있어서,
상기 선택 회로의 출력과 상기 입출력 포트 사이에 결합된 3-상태 버퍼를 더 포함하는 회로. - 제5항에 있어서,
버퍼 제어 신호를 수신하기 위한 입력을 가지는 제2 레지스터를 더 포함하는 회로로서, 상기 버퍼 제어 신호는 상기 3-상태 버퍼를 제어하기 위해 사용되는 회로. - 제6항에 있어서,
상기 제2 레지스터를 통해 상기 버퍼 제어 신호를 수신하도록 구성된 제1 입력 및 제2 미리 결정된 값을 수신하도록 구성된 제2 입력을 가지는 제2 선택 회로를 더 포함하는 회로. - 제7항에 있어서,
상기 제2 선택 회로는 상기 제2 레지스터를 통해 상기 버퍼 제어 신호를 수신하도록 구성된 제1 입력 및 상기 제2 미리 결정된 값을 수신하도록 구성된 제2 입력을 가지는 멀티플렉서를 포함하고, 상기 제어 회로의 출력은 상기 제2 선택 회로의 제어 터미널에 결합되는 회로. - 제1항에 있어서,
상기 데이터 및 클럭 신호를 수신하도록 구성된 레지스터를 더 포함하고, 상기 클럭 신호를 수신하고 상기 선택 회로에 결합된 동기화된 제어 신호를 생성하도록 구성된 동기화 회로를 더 포함하는 회로. - 제9항에 있어서,
상기 제어 회로는 로직 회로를 포함하고, 상기 동기화 회로는 상기 로직 회로의 출력을 수신하고 상기 클럭 신호를 수신하도록 직렬로 결합된 복수의 레지스터를 포함하고, 상기 동기화된 제어 신호는 상기 복수의 레지스터의 출력에서 생성되는 회로. - 집적 회로 장치에서 데이터를 라우팅하기 위한 회로를 구성하는 방법에 있어서,
입출력 포트에 인터페이스 회로를 결합하는 단계 ― 상기 입출력 포트는 데이터를 수신하도록 구성되고, 상기 인터페이스 회로는 상기 데이터 및 미리 결정된 값의 선택을 가능하게 하는 선택 회로를 포함함 ―;
상기 선택 회로를 제어하도록 제어 회로를 구성하는 단계 ― 상기 제어 회로는 초기 구성이 완료된 것을 나타내는 제1 신호 및 상기 집적 회로 장치의 부분 재구성이 요청된 것을 나타내는 제2 신호를 수신하도록 구성됨 ―;
상기 초기 구성이 완료된 후, 상기 부분 재구성 동안 상기 미리 결정된 값으로 상기 입출력 포트를 유지하는 단계; 및
상기 부분 재구성 후 상기 선택 회로로부터 상기 입출력 포트로 데이터를 제공하는 것을 가능하게 하는 단계
를 포함하는 방법. - 제11항에 있어서,
상기 인터페이스 회로를 구성하는 단계는 상기 데이터를 수신하기 위한 제1 입력과 상기 미리 결정된 값을 수신하기 위한 제2 입력을 가지는 멀티플렉서를 구성하는 단계를 포함하는 방법. - 제11항에 있어서,
상기 데이터를 수신하기 위한 데이터 입력과 클럭 신호에 대응하여 상기 데이터를 생성하기 위한 데이터 출력을 가지는 레지스터를 구성하는 단계를 더 포함하는 방법. - 제11항에 있어서,
상기 선택 회로의 출력과 상기 입출력 포트 사이에 3-상태 버퍼를 결합하는 단계를 더 포함하는 방법. - 제11항에 있어서,
상기 데이터와 클럭 신호를 수신하도록 레지스터를 구성하는 단계, 및 상기 클럭 신호를 수신하고 상기 선택 회로에 결합된 동기화된 제어 신호를 생성하도록 동기화 회로를 구성하는 단계를 더 포함하는 방법. - 제11항에 있어서,
상기 입출력 포트에 메모리를 결합하는 단계를 더 포함하고, 상기 입출력 포트에서의 값은 상기 부분 재구성 동안 상기 미리 결정된 값으로 유지되는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/192,053 US10541686B1 (en) | 2018-11-15 | 2018-11-15 | Circuit and method for ensuring a stable IO interface during partial reconfiguration of a reprogrammable integrated circuit device |
US16/192,053 | 2018-11-15 | ||
PCT/US2019/056497 WO2020101834A1 (en) | 2018-11-15 | 2019-10-16 | Circuit and method for ensuring a stable io interface during partial reconfiguration of a reprogrammable integrated circuit device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210084500A KR20210084500A (ko) | 2021-07-07 |
KR102688777B1 true KR102688777B1 (ko) | 2024-07-25 |
Family
ID=69167278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217014634A KR102688777B1 (ko) | 2018-11-15 | 2019-10-16 | 리프로그래밍 가능 집적 회로 장치의 부분 재구성 동안 안정적인 io 인터페이스를 보장하기 위한 회로 및 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10541686B1 (ko) |
EP (1) | EP3850753A1 (ko) |
JP (1) | JP2022513057A (ko) |
KR (1) | KR102688777B1 (ko) |
CN (1) | CN113039722B (ko) |
WO (1) | WO2020101834A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111610732B (zh) * | 2020-04-28 | 2021-09-24 | 同方泰德国际科技(北京)有限公司 | 更换可配置型输入/输出模块的方法、装置及设备 |
US11736107B2 (en) * | 2021-08-19 | 2023-08-22 | Wuxi Esiontech Co., Ltd. | Field-programmable gate array (FPGA) for using configuration shift chain to implement multi-bitstream function |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5869979A (en) * | 1996-04-05 | 1999-02-09 | Altera Corporation | Technique for preconditioning I/Os during reconfiguration |
US6119200A (en) | 1998-08-18 | 2000-09-12 | Mylex Corporation | System and method to protect SDRAM data during warm resets |
US6507211B1 (en) * | 1999-07-29 | 2003-01-14 | Xilinx, Inc. | Programmable logic device capable of preserving user data during partial or complete reconfiguration |
US6836842B1 (en) | 2001-04-24 | 2004-12-28 | Xilinx, Inc. | Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD |
US6810514B1 (en) | 2002-07-03 | 2004-10-26 | Xilinx, Inc. | Controller arrangement for partial reconfiguration of a programmable logic device |
US7804719B1 (en) * | 2005-06-14 | 2010-09-28 | Xilinx, Inc. | Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode |
US7546572B1 (en) | 2005-09-20 | 2009-06-09 | Xilinx, Inc. | Shared memory interface in a programmable logic device using partial reconfiguration |
US7302625B1 (en) | 2005-11-21 | 2007-11-27 | Xilinx, Inc. | Built-in self test (BIST) technology for testing field programmable gate arrays (FPGAs) using partial reconfiguration |
US7538574B1 (en) * | 2005-12-05 | 2009-05-26 | Lattice Semiconductor Corporation | Transparent field reconfiguration for programmable logic devices |
US7477072B1 (en) | 2006-01-17 | 2009-01-13 | Xilinx, Inc. | Circuit for and method of enabling partial reconfiguration of a device having programmable logic |
US7375549B1 (en) * | 2006-02-09 | 2008-05-20 | Lattice Semiconductor Corporation | Reconfiguration of programmable logic devices |
US7640527B1 (en) | 2006-06-29 | 2009-12-29 | Xilinx, Inc. | Method and apparatus for partial reconfiguration circuit design for a programmable device |
US7836331B1 (en) | 2007-05-15 | 2010-11-16 | Netapp, Inc. | System and method for protecting the contents of memory during error conditions |
US8656198B2 (en) | 2010-04-26 | 2014-02-18 | Advanced Micro Devices | Method and apparatus for memory power management |
US8324930B1 (en) * | 2010-09-27 | 2012-12-04 | Xilinx, Inc. | Methods of implementing output ports and an integrated circuit having programmable output ports |
US8358148B1 (en) * | 2010-10-01 | 2013-01-22 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in an integrated circuit |
US8294490B1 (en) * | 2010-10-01 | 2012-10-23 | Xilinx, Inc. | Integrated circuit and method of asynchronously routing data in an integrated circuit |
US8913601B1 (en) * | 2010-10-01 | 2014-12-16 | Xilinx, Inc. | Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit |
US8560996B1 (en) | 2011-02-15 | 2013-10-15 | Xilinx, Inc. | Method and system for preparing modularized circuit designs for dynamic partial reconfiguration of programmable logic |
US8415974B1 (en) * | 2011-03-09 | 2013-04-09 | Xilinx, Inc. | Methods and circuits enabling dynamic reconfiguration |
US8788756B2 (en) * | 2011-11-28 | 2014-07-22 | Xilinx, Inc. | Circuit for and method of enabling the transfer of data by an integrated circuit |
US8476926B1 (en) * | 2012-02-08 | 2013-07-02 | Altera Corporation | Method and apparatus for implementing periphery devices on a programmable circuit using partial reconfiguration |
US8786310B1 (en) | 2012-08-17 | 2014-07-22 | Xilinx, Inc. | Partially programming an integrated circuit using control memory cells |
US9500700B1 (en) * | 2013-11-15 | 2016-11-22 | Xilinx, Inc. | Circuits for and methods of testing the operation of an input/output port |
US9153311B1 (en) | 2014-05-27 | 2015-10-06 | SRC Computers, LLC | System and method for retaining DRAM data when reprogramming reconfigurable devices with DRAM memory controllers |
US9606572B2 (en) * | 2014-10-01 | 2017-03-28 | Xilinx, Inc. | Circuits for and methods of processing data in an integrated circuit device |
US9183339B1 (en) | 2014-11-11 | 2015-11-10 | Xilinx, Inc. | System and method for preparing partially reconfigurable circuit designs |
US9660847B2 (en) * | 2014-11-26 | 2017-05-23 | Rambus Inc. | Equalized multi-signaling mode driver |
US9722613B1 (en) | 2015-09-28 | 2017-08-01 | Xilinx, Inc. | Circuit arrangement for and a method of enabling a partial reconfiguration of a circuit implemented in an integrated circuit device |
US10069497B2 (en) * | 2016-06-23 | 2018-09-04 | Xilinx, Inc. | Circuit for and method of implementing a scan chain in programmable resources of an integrated circuit |
-
2018
- 2018-11-15 US US16/192,053 patent/US10541686B1/en active Active
-
2019
- 2019-10-16 JP JP2021526681A patent/JP2022513057A/ja active Pending
- 2019-10-16 KR KR1020217014634A patent/KR102688777B1/ko active IP Right Grant
- 2019-10-16 EP EP19853274.9A patent/EP3850753A1/en active Pending
- 2019-10-16 CN CN201980075460.1A patent/CN113039722B/zh active Active
- 2019-10-16 WO PCT/US2019/056497 patent/WO2020101834A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
CN113039722B (zh) | 2024-10-29 |
US10541686B1 (en) | 2020-01-21 |
JP2022513057A (ja) | 2022-02-07 |
WO2020101834A1 (en) | 2020-05-22 |
KR20210084500A (ko) | 2021-07-07 |
CN113039722A (zh) | 2021-06-25 |
EP3850753A1 (en) | 2021-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6472904B2 (en) | Double data rate input and output in a programmable logic device | |
US9722613B1 (en) | Circuit arrangement for and a method of enabling a partial reconfiguration of a circuit implemented in an integrated circuit device | |
US8536896B1 (en) | Programmable interconnect element and method of implementing a programmable interconnect element | |
US7548089B1 (en) | Structures and methods to avoiding hold time violations in a programmable logic device | |
US7075333B1 (en) | Programmable circuit optionally configurable as a lookup table or a wide multiplexer | |
US5594367A (en) | Output multiplexer within input/output circuit for time multiplexing and high speed logic | |
US7477072B1 (en) | Circuit for and method of enabling partial reconfiguration of a device having programmable logic | |
US10528513B1 (en) | Circuit for and method of providing a programmable connector of an integrated circuit device | |
US20170005662A1 (en) | Programmable High-Speed I/O Interface | |
US7301824B1 (en) | Method and apparatus for communication within an integrated circuit | |
US6466049B1 (en) | Clock enable control circuit for flip flops | |
JP5123401B2 (ja) | 集積回路装置における消費電力を最小化するための回路および方法 | |
US7268581B1 (en) | FPGA with time-multiplexed interconnect | |
US10069497B2 (en) | Circuit for and method of implementing a scan chain in programmable resources of an integrated circuit | |
KR102400967B1 (ko) | 집적 회로 내에서 파워를 제어하기 위한 회로들 및 방법들 | |
US7589557B1 (en) | Reversible input/output delay line for bidirectional input/output blocks | |
US7062586B2 (en) | Method and apparatus for communication within a programmable logic device using serial transceivers | |
US20150295579A1 (en) | System Reset Controller Replacing Individual Asynchronous Resets | |
KR102688777B1 (ko) | 리프로그래밍 가능 집적 회로 장치의 부분 재구성 동안 안정적인 io 인터페이스를 보장하기 위한 회로 및 방법 | |
US9606572B2 (en) | Circuits for and methods of processing data in an integrated circuit device | |
US7239173B1 (en) | Programmable memory element with power save mode in a programmable logic device | |
US6975154B1 (en) | Reduced power consumption clock network | |
US9007110B1 (en) | Register circuits and methods of storing data in a register circuit | |
US8988125B1 (en) | Circuits for and methods of routing signals in an integrated circuit | |
Smith | Intel's FLEXlogic FPGA architecture |
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 |