KR20030057487A - 강유전체 구성 메모리를 갖는 프로그램 가능한 논리 소자 - Google Patents

강유전체 구성 메모리를 갖는 프로그램 가능한 논리 소자 Download PDF

Info

Publication number
KR20030057487A
KR20030057487A KR1020020085896A KR20020085896A KR20030057487A KR 20030057487 A KR20030057487 A KR 20030057487A KR 1020020085896 A KR1020020085896 A KR 1020020085896A KR 20020085896 A KR20020085896 A KR 20020085896A KR 20030057487 A KR20030057487 A KR 20030057487A
Authority
KR
South Korea
Prior art keywords
configuration
programmable logic
memory
configuration data
data
Prior art date
Application number
KR1020020085896A
Other languages
English (en)
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
Priority claimed from JP2001399326A external-priority patent/JP3938308B2/ja
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20030057487A publication Critical patent/KR20030057487A/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access
    • 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
    • H03K19/17752Structural details of configuration resources for hot reconfiguration
    • 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
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • 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
    • H03K19/17758Structural details of configuration resources for speeding up configuration or reconfiguration
    • 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
    • H03K19/1776Structural details of configuration resources for memories
    • 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
    • H03K19/17768Structural details of configuration resources for security
    • 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
    • H03K19/17772Structural details of configuration resources for powering on or off
    • 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/1778Structural details for adapting physical parameters

Abstract

본 발명은 다수의 구성 데이터 세트를 저장하는 강유전체 구성 메모리를 갖는 프로그램 가능한 논리 소자에 관한 것이다. 상기 소자는 희망하는 논리 기능을 제공할 수 있는 프로그램 가능한 논리 블록, 인터커넥션 및 I/O 블록을 갖는다. 이러한 빌딩 블록들은 상기 소자의 통합 구성 메모리에 저장되는 구성 데이터의 선택을 변경함으로써 동적으로 재구성될 수 있다. 구성 메모리들은 그룹들로 나누어져, 다수의 구성 데이터 스트림이 동시에 로드될 수 있다. 불법 접근으로부터 구성 메모리의 내용을 보호하기 위해서, 상기 소자는 구성 메모리에 저장되는 보안 ID를 사용하는 인증 매커니즘을 채용한다. 상기 소자는 강유전체 메모리 셀이 상기 소자의 파워 업 또는 셧다운시 확실하게 데이터를 유지할 수 있도록 적절한 전력 공급 시퀀스를 제공하는 메모리 컨트롤러를 갖는다.

Description

강유전체 구성 메모리를 갖는 프로그램 가능한 논리 소자{PROGRAMMABLE LOGIC DEVICE WITH FERROELECTRIC CONFIGURATION MEMORIES}
본 발명은 프로그램 가능한 논리 소자에 관한 것이다. 더 구체적으로, 본 발명은 논리 기능의 정의를 저장하는 비휘발성 구성 메모리로서 강유전체 메모리 셀을 갖는 프로그램 가능한 논리 소자에 관한 것이다.
프로그램 가능한 논리 소자는 사용자가 특정한 용도의 기능을 구현할 수 있도록 논리 게이트를 포함하는 구성 가능한 빌딩 블록의 방대한 어레이를 제공하는 일종의 집적 회로이다. 그 기본 구성 요소로는 (때때로 룩업 테이블로 구현되는) 기본 논리 게이트와 플립플롭을 포함하는 논리 블록; 멀티플렉서; 내부 구성 요소들간의 배선을 위한 프로그램 가능한 인터커넥션; 각종 I/O 포트 구성을 구현하기 위한 프로그램 가능한 입력/출력(I/O) 블록이 있다. 또한, 논리 블록 기능, 프로그램 가능한 인터커넥션 및 프로그램 가능한 I/O 블록 구성의 정의를 저장하는 구성 메모리도 있다. 이러한 정보를 "구성 데이터"라고 한다.
프로그램 가능한 논리 소자는 일반적으로 다음과 같이 3개의 그룹으로 분류된다. 제1 분류의 소자는 프로그램 가능한 논리 블록, 인터커넥션 및 I/O 블록을 가지며, 그 구성 메모리는 휘발성이다. 즉, 전력 셧다운(shutdown)시 데이터가 날아가 버린다. 제2 분류의 소자는 기능 구조면에서 제1 분류의 소자와 유사하나, 그 구성 데이터는 비휘발성이다. 제3 분류의 소자는 그 논리 블록이 프로그램 가능한 논리 어레이 아키텍처에 기초해서 설계되며, 비휘발성 구성 저장소를 갖는다.
제1 분류의 특정예로서, 미국 특허 제4,642,487호에는 SRAM이 구성 데이터를 저장하도록 채택된 프로그램 가능한 논리 소자가 개시되어 있다. 이러한 소자에 사용되는 SRAM 셀은 휘발성이므로, 전력 제거시 칩상의 구성 데이터가 날아가 버린다. 그러므로, 이러한 타입의 소자에 대한 구성 데이터를 저장하기 위해서는 추가의 비휘발성 메모리, 예컨대 PROM, EPROM 등이 필요하다. 소자가 다시 파워 업되면, 그 구성 데이터는 외부 메모리 소자로부터 내부 SRAM 셀로 복원되어야 한다. 이러한 오프 칩 비휘발성 메모리의 사용은 제품 비용을 증가시키며, 또한 귀중한 보드 공간을 소비한다.
상기 제1 분류의 소자의 결점은 비휘발성 구성 데이터 저장소를 포함하는 제2 분류의 프로그램 가능한 논리 소자에서 해결된다. 제2 분류에서, 각 소자는 그 통합 강유전체 메모리나 MRAM(양쪽 모두 비휘발성)에 구성 데이터를 포함한다. 하나의 특정예로서, 일본 특허 제3,121,862호에는 강유전체 메모리를 갖는 프로그램 가능한 논리 소자가 개시되어 있다. 강유전체 메모리는 특히 프로그램 가능한 논리 소자 응용에 적합한데, 그 이유는 동작 속도에서의 이점 때문이다. 다른 타입의 비휘발성 메모리, 예컨대 PROM, EPROM, EEPROM, 플래시 메모리 등은 제2 분류의 소자에는 사용되지 않는데, 그 이유는 고전압 트랜지스터를 필요로 한다는 점과, 그 속도가 프로그램 가능한 논리 소자의 요구를 충족시키기에 충분하지 못하다는 점 때문이다.
제3 분류에 속한 프로그램 가능한 논리 소자는 제2 분류에서와 같이, 비휘발성 구성 데이터 저장소로서 EPROM, EEPROM, 플래시 메모리 등을 사용한다. 이러한 소자를 제2 분류의 소자와 구별하여 "고집적 프로그램 가능한 논리 소자(CPLD ; Complex Programmable Logic Devices"라고도 하는데, 이러한 명칭은 스티븐 디 브라운(Stephen D. Brown) 등이 "현장 프로그램 가능한 게이트 어레이(Field Programmable Gate Arrays)"란 제목의 간행물[클루어 아카데믹 출판사(Kluwar Academic Publishers)]에서 사용한 명칭이다.
본 발명은 전술한 제1 및 제2 분류에 속한 프로그램 가능한 논리 소자를 목표로 하며, 이러한 소자를 "현장 프로그램 가능한 게이트 어레이(FPGA ; Field Programmable Gate Arrays)"로 통칭한다. 그러나, 종래의 FPGA는 다소의 문제점을 가지고 있는데, 그 가운데 하나가 단위 칩 면적 당 논리 게이트의 수에 대한 제한이다. 이러한 결점을 극복하기 위해서, 연구원들은 다수의 구성 데이터 세트를 저장할 수 있는 소자를 연구해 왔다. 이러한 아키텍처를 FPGA와 구별하여 "동적으로 프로그램 가능한 게이트 어레이(DPGA ; Dynamically Programmable Gate Array)"라고 한다. 이에 대한 상세한 설명은 A. DeHon의 "Dynamically Programmable Gate Arrays: A Step Toward Increased Computational Density"(Fourth Canadian Workshop of Field-Programmable Devices, 1996)에 개시되어 있다.
전술한 DPGA는 그 구성 데이터가 휘발성 DRAM에 저장되므로 제1 분류의 프로그램 가능한 논리 소자 가운데 하나이다. DPGA 아키텍처의 경우, 단일 소자상에 구현되는 논리 게이트의 수를 실질적으로 증가시킬 수 있다. 그러나, 한가지 문제점은 상기 간행물에서 구성 데이터 전환 방법에 관한 것이 거의 언급되지 않았다는 점이다. 물론, 또 다른 문제점은 그 구성 메모리가 휘발성이라는 점이다. 이것은 외부 비휘발성 메모리를 필요로 하므로써, 구성 요소의 수, 비용 및 보드 공간 소비를 증가시켜, 보드 설계를 더 어렵게 만든다는 것을 의미한다. 게다가, DPGA에 관한 또 다른 어려움은 특정한 구성 전환 방법이 전혀 개시되어 있지 않다는 것이다.
프로그램 가능한 논리 소자의 일반적인 문제점은 구성 메모리가 데이터로 로드되지 않은 경우에 파워 업시 일부 부적절한 내부 연결이 발생할 수 있다는 점이다. 만일 2개의 구동기 출력이 상반되는 논리 상태로 함께 배선으로 전달된다면, 그 충돌로 인해서 규정되지 않은 전압 레벨을 생성할 수 있고, 그 결과 소자내에 커다란 전류 흐름이 생성될 수 있다. 가능한 대책은 구성 데이터가 준비될 때까지, 소자가 파워 업될 때마다 논리 블록의 출력 구동기의 기능을 억제하는 것이다(P. Chow et al., IEEE Transaction on Very Large Scale Integration Systems, vol. 7, No. 3, pp. 321-330, September 1999). 이렇게 출력 구동기의 기능을 억제하는 방법은 소자가 파업 업후에 즉시 동작을 개시할 수 없다는 부작용을 갖는다.
또한, 종래의 프로그램 가능한 논리 소자에서는, 그 구성 데이터의 로드 동작의 완료시까지 오랜 시간이 걸린다. 이러한 이유로, 사용자는 개선된 데이터 로드 매커니즘을 요구한다.
프로그램 가능한 논리 소자의 구성 데이터는 그것을 개발한 회사의 자산이다. 그러나, 종래의 소자는 그러한 자산을 도난, 조작 또는 다른 불법 접근으로부터 보호하기 위한 보안책을 거의 제공하지 않는다. 그러므로, 데이터 보호 매커니즘을 프로그램 가능한 논리 소자에 도입하는 것이 요구된다.
일본 특허 제3,121,862호에는 강유전체 RAM을 사용하는 프로그램 가능한 논리 소자가 개시되어 있다. 그러나, 이 프로그램 가능한 논리 소자는 파워 업시 강유전체 메모리 밖으로 데이터를 불러내지 못하거나, 파워 다운시 강유전체 메모리에 데이터를 저장하지 못한다. T. Tamura 등은 강유전체 커패시터의 일부 동적 행동을 밝힌 보고서를 썼다(T. Tamur et al., ISIF Digest, p. 1.2.2, 2001). 이러한커패시터의 성질은 파워 업시 급속한 상승 전압의 인가로 인해서, 각 강유전체 커패시터의 분극 상태로부터 데이터를 복원함에 있어서, 어떤 문제점을 초래할 수 있다. 즉, 강유전체 메모리에 저장된 구성 데이터는 비휘발성이어야 함에도 불구하고, 파워 업시 소실될 수 있다.
또한, 저장된 데이터의 확실한 유지를 보장하기 위해서는, 전력 제거전에 강유전체 SRAM 셀에 공급 전압을 충분히 인가하는 것이 바람직하다고 생각된다. 그러나, 강유전체 커패시터는 충분한 공급 전압이 오랜 기간 동안 인가되는 경우 어느 한 상태를 다른 상태보다 선호하는 경향이 있다고 알려져 있다. 이러한 "임프린트(imprint)" 효과, 즉 이력 곡선(hysteresis loop)의 변화로 인한 현상은 강유전체 메모리 셀에 데이터를 기록하는 것을 어렵게 만든다.
전술한 관점에서, 본 발명의 목적은 단위 칩 면적 당 유효한 논리 게이트의 수를 증가시킬 수 있는, 더 효율적인 아키텍처를 갖는 프로그램 가능한 논리 소자를 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명은 주어진 구성 데이터에 따라 논리 기능을 수행하는 프로그램 가능한 논리 소자를 제공한다. 이러한 소자는 프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과; 각각 비휘발성 강유전체 메모리 셀들로 구성되고, 복수의 구성 데이터 세트를 저장하는 복수의 구성 메모리와; 상기 논리 기능을 정의하기 위해서 상기 프로그램 가능한 논리 블록에서 사용되는 상기 복수의 구성 데이터 세트 중 하나를 선택하는 데이터 선택기를 포함한다. 상기 소자는 구성 데이터 세트의 선택을 전환함으로써 단일 칩으로 각종 논리 기능을 제공한다.
본 발명의 다른 목적은 구성 데이터가 로드되기 전에 예상치 못한 행동이나 내부 신호 충돌을 방지할 수 있는 프로그램 가능한 논리 소자를 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명은 프로그램 가능한 인터커넥션에서의 충돌을 방지할 수 있는 매커니즘을 갖는 프로그램 가능한 논리 소자를 제공한다. 이러한 소자는 프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과; 비휘발성 강유전체 메모리 셀들로 구성되고, 구성 데이터를 저장하는 구성 메모리와; 적어도 하나의 비휘발성 강유전체 메모리 셀로 구성되고, 상기 구성 메모리가 이미 상기 구성 데이터로 로드되어 있는지의 여부를 나타내는 정보를 저장하는 메모리와; 상기 메모리에 저장된 정보가 상기 구성 메모리가 로드되어 있지 않다고 나타내는 경우에 상기 프로그램 가능한 논리 블록의 출력을 디스에이블하는 제어 회로를 포함한다.
본 발명의 또 다른 목적은 구성 데이터가 더 짧은 시간에 기록될 수 있는 프로그램 가능한 논리 소자를 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명은 복수의 구성 메모리를 갖는 프로그램 가능한 논리 소자를 제공한다. 이러한 소자에 있어서, 상기 복수의 구성 메모리는 복수의 그룹으로 나누어지며, 상기 복수의 그룹의 구성 메모리는 복수의 구성 데이터 스트림을 동시에 수신한다.
본 발명의 또 다른 목적은 역가공, 조작 또는 다른 불법 접근이나 사용에 대해 자신의 구성 데이터를 보호할 수 있는 프로그램 가능한 논리 소자를 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명은 보안책을 가진 프로그램 가능한 논리 소자를 제공한다. 이러한 소자는 프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과; 비휘발성 강유전체 메모리 셀들로 구성되고, 상기 프로그램 가능한 논리 블록의 논리 기능을 정의하는 구성 데이터를 저장하는 구성 메모리와; 보안 ID를 저장하기 위해서 상기 구성 메모리의 일부로서 제공되는 보안 데이터 저장 영역과; 상기 보안 데이터 저장 영역에 저장되는 보안 데이터를 사용함으로써 상기 구성 메모리에 관한 요구를 인증 확인하는 인증 프로세서를 포함한다.
본 발명의 또 다른 목적은 프로그램 가능한 논리 소자가 파워 업 또는 셧다운시 통합 강유전체 구성 메모리의 확실한 데이터 유지 특성을 보장하는 매커니즘을 갖는 프로그램 가능한 논리 소자를 제공하는 것이다.
상기 목적을 달성하기 위해서, 본 발명은 파워 업 시퀀스를 제어하는 회로를 갖는 프로그램 가능한 논리 소자를 제공한다. 이러한 소자는 프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과; 비휘발성 강유전체 메모리 셀들로 구성되고, 상기 프로그램 가능한 논리 블록의 논리 기능을 정의하는 구성 데이터를 저장하는 구성 메모리와; 공급 전압이 미리 결정된 임계 전압에 도달할 때 검출 신호를 생성하는 공급 전압 모니터와; 상기 공급 전압 모니터로부터의 검출 신호에 응답하여 상기 강유전체 메모리 셀들의 플레이트선에 하이 레벨 전압을 인가한 후에 상기 강유전체 메모리 셀들에게 전력을 공급하는 메모리 컨트롤러를 포함한다.
본 발명의 상기 목적들 및 다른 목적들과, 본 발명의 특징들 및 이점들은 본 발명의 바람직한 실시예를 예로서 도시한 첨부된 도면을 참조하여 다음의 설명을 읽는다면 보다 명백하게 이해될 수 있을 것이다.
도 1은 본 발명에 따른 프로그램 가능한 논리 소자의 기본 구조를 보여주는 도면.
도 2는 강유전체 메모리를 갖는 프로그램 가능한 논리 소자의 전체 구조를 보여주는 간략한 평면도.
도 3은 논리 블록 어레이를 상세하게 보여주는 블록도.
도 4는 4 입력 룩업 테이블의 일례를 보여주는 도면.
도 5는 로드 회로 및 구성 메모리의 일례를 보여주는 도면.
도 6은 강유전체 메모리 셀의 제1 타입을 보여주는 개략도.
도 7은 강유전체 메모리 셀의 제2 타입을 보여주는 개략도.
도 8은 강유전체 메모리의 각 동작 모드에서의 제어 신호의 상태를 보여주는 도면.
도 9는 프로그램 가능한 인터커넥션의 기본 구성 요소를 보여주는 도면.
도 10은 프로그램 가능한 I/O 블록의 기본 구성 요소를 보여주는 도면.
도 11은 구성 데이터 세트 전환 동작을 보여주는 도면.
도 12는 종래의 논리 블록의 구조를 보여주는 개략도.
도 13은 본 발명의 프로그램 가능한 논리 소자에 사용되는 논리 블록의 구조를 보여주는 개략도.
도 14는 강유전체 구성 메모리를 갖는 종래의 프로그램 가능한 인터커넥션을 보여주는 도면.
도 15는 본 발명에 따른 프로그램 가능한 인터커넥션의 일례를 보여주는 도면.
도 16은 구성 메모리로 실현되는 ROM의 일례를 보여주는 도면.
도 17은 구성 데이터가 외부 소스로부터 통합 구성 메모리로 다운로드되는 동작을 보여주는 도면.
도 18은 오프 칩 소스로부터 공급되는 구성 데이터 스트림의 일례를 보여주는 도면.
도 19는 구성 데이터의 기록 동작을 보여주는 도면.
도 20은 보안 회로의 일례를 보여주는 도면.
도 21은 구성 데이터의 확실한 기록 및 판독을 위한 구성 데이터 스트림의 일례를 보여주는 도면.
도 22는 강유전체 메모리용 공급 전력 제어 시스템의 일례를 보여주는 도면.
도 23은 강유전체 구성 메모리용 전력선 및 제어 신호를 보여주는 도면.
도 24는 전력 공급/전압 모니터에 포함되는 소스 전압 모니터 회로의 개략도.
도 25는 강유전체 메모리용 공급 전력 제어 시스템의 또 다른 예를 보여주는도면.
도 26은 전력 공급 회로의 개략도.
도 27은 파워 업 제어 시퀀스의 일례를 보여주는 도면.
도 28은 강유전체 메모리 셀이 가동되기 전의 제어 신호의 상태를 보여주는 도면.
도 29는 파워 다운 제어 시퀀스의 일례를 보여주는 도면.
도 30은 강유전체 메모리 셀이 파워 다운될 때의 제어 신호의 상태를 보여주는 도면.
<도면의 주요 부분에 대한 부호의 설명>
1 : 프로그램 가능한 논리 블록
2 : 프로그램 가능한 인터커넥션
3 : 프로그램 가능한 I/O 블록
4, 5, 6 : 강유전체 메모리
7, 8, 9 : 데이터 선택기(SEL)
10 : 프로그램 가능한 논리 소자
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다. 도면에 전체에 걸쳐 동일한 구성 요소에는 동일한 참조 번호를 부여하였다.
도 1을 참조해서, 본 발명의 개념의 설명을 시작한다. 도 1은 본 발명에 따른 프로그램 가능한 논리 소자(10)의 기본 구조를 보여준다. 이 프로그램 가능한 논리 소자(10)는 다음과 같은 통합 기능 블록을 갖는다. 프로그램 가능한 논리 블록(1); 프로그램 가능한 인터커넥션(2); 프로그램 가능한 I/O 블록(3); 강유전체 메모리(4, 5, 6); 데이터 선택기(SEL)(7, 8, 9). 프로그램 가능한 논리 블록(1)은 주어진 구성 데이터에 따라 각종 논리 기능을 제공할 수 있도록 구성 가능하다. 프로그램 가능한 인터커넥션(2)은 다양한 방식으로 프로그램 가능한 논리 블록(1)과 프로그램 가능한 I/O 블록(3)간의 연결을 제공한다. 프로그램 가능한 I/O 블록(3)은 구성 가능한 I/O 포트 기능을 제공한다. 강유전체 메모리(4, 5, 6)는 각각 프로그램 가능한 논리 블록(1), 프로그램 가능한 인터커넥션(2) 및 프로그램 가능한 I/O 블록(3)을 구성하는 방법을 정의하는 정보를 저장한다. 데이터 선택기(SEL)(7, 8, 9)는 각각 대응하는 강유전체 메모리(4, 5, 6)에 저장되는 복수의 구성 데이터 세트 중 하나를 빌딩 블록(1, 2, 3)에 공급한다. 상기 기본 빌딩 블록들은 DPGA 소자나 FPGA 소자로서 기능하도록 희망하는 대로 결합된다.
강유전체 메모리(4, 5, 6)는 비휘발성 구성 메모리로서 사용된다. 종래의 FPGA는 그 구성 데이터를 저장함에 있어서 외부 PROM 또는 EEPROM을 필요로 하나, 제안된 프로그램 가능한 논리 소자(10)는 그 내부에 비휘발성 구성 메모리를 포함함으로써 그러한 외부 구성 요소를 필요로 하지 않으며, 따라서 저비용 보드 시스템을 실현하는 데 기여한다.
본 발명에 따르면, 각 강유전체 메모리(4, 5, 6)는 복수의 구성 데이터 세트를 포함하며, 그 가운데 하나가 데이터 선택기(7, 8, 9)에 의해 선택되어, 프로그램 가능한 블록(1), 프로그램 가능한 인터커넥션(2) 및 프로그램 가능한 I/O 블록(3)에 사용된다. 이러한 선택에 있어서, 데이터 선택기(7, 8, 9)는 프로그램 가능한 논리 블록(1) 및/또는 프로그램 가능한 논리 소자(10) 밖의 어떤 외부 소스로부터 제어 신호를 공급받는다. 다수의 구성 데이터 세트가 단일 소자에 포함됨으로써, 프로그램 가능한 논리 소자(10)는 단일 세트의 프로그램 가능한 논리 블록(1), 프로그램 가능한 인터커넥션(2) 및 프로그램 가능한 I/O 블록(3)으로 각종 논리 기능을 제공할 수 있다. 단위 칩 면적 당 논리 게이트의 수가 실질적으로 증가되는데, 이것은 본 발명이 제한된 칩 면적을 더 효율적으로 사용할 수 있다는 것을 의미한다.
프로그램 가능한 논리 블록(1)은 조합 논리 회로 블록["룩업 테이블(look-up table)"이라고도 함], 플립플롭 및 멀티플렉서로 구성된다. 각 플립플롭은 인에이블 입력을 가지며, 그 상태는 후술하는 바와 같이, 대응하는 멀티플렉서에 공급되는 선택 신호와 함께 제어된다. 이러한 구조에 의해서, 프로그램 가능한 논리블록(1)을 더 효과적으로 사용할 수 있다.
본 발명에 따르면, 강유전체 메모리(4, 5, 6)의 일부는 프로그램된 논리 블록이 ROM으로서 참고할 수 있도록 접근 가능하게 이루어진다. 이러한 특징에 의해서, 칩 면적이 전용 ROM을 통합하기에는 너무 타이트한 경우에도, 필요에 따라 고정된 데이터를 프로그램 가능한 논리 블록(1)에 공급할 수 있다. 다소의 회로를 부가함으로써, 상이한 콘텍스트(context)에서도 이러한 가상 ROM의 어드레스 공간에 접근할 수 있어, 더 유연한 논리 설계가 가능하다. 이러한 특징에 대해서는 이하 상세하게 설명할 것이다.
본 발명은 또한 파워 업 및 파워 다운을 포함하는 과도 상태에서 강유전체 메모리(4, 5, 6)에 저장되는 구성 데이터의 내구성을 강화시킨다. 즉, 제안된 프로그램 가능한 논리 소자는 강유전체 메모리(4, 5, 6)가 시스템 전력이 턴온될 때, 정확하게 데이터 복원 동작을 개시하기에, 또는 제어 신호를 수신하기에 충분히 높은 전압을 검출하는 소스 전압 모니터 회로를 사용한다. 이렇게 미리 결정된 임계 전압 레벨에 도달할 때, 프로그램 가능한 논리 소자(10)는 관련 제어 신호 및 공급 전압을 강유전체 메모리(4, 5, 6)에 인가함으로써, 프로그램된 논리 동작 개시를 준비한다.
한편, 전력 제거시, 소스 전압 모니터 회로는 전압이 또 다른 미리 결정된 임계치 아래로 떨어졌음을 발견한다. 강유전체 메모리(4, 5, 6)는 전력이 완전히 소모되기 전에 적절한 제어 신호를 수신하여, 단기간 및 장기간 조건에서 그 내용을 유지한다. 이와 같이, 제안된 프로그램 가능한 논리 소자(10)는 적절한 순서로강유전체 메모리(4, 5, 6)의 전압 및 신호를 제어함으로써 안정된 동작이 보장되어 그곳에 저장된 구성 데이터가 소실되지 않도록 설계된다.
또한, 본 발명에 따르면, 프로그램 가능한 논리 소자(10)는 그 구성 메모리가 이미 프로그램되어 있는지의 여부에 관한 정보를 저장하는 또 다른 강유전체 메모리를 갖는다. 이러한 특징에 의해서, 구성 데이터가 기록되기 전에, 주위 논리 회로의 불안정성을 피하고, 상이한 신호들이 함께 상반되는 방식으로 연결되는 것을 방지한다.
제안된 프로그램 가능한 논리 소자(10)는 강유전체 메모리(4, 5, 6)에 다수의 구성 데이터를 기록하기 위한 향상된 데이터 기록 매커니즘을 가짐으로써, 소자의 진행중인 논리 동작과 병행하여 복수의 구성 데이터 스트림을 동시에 전달할 수 있다. 제안된 프로그램 가능한 논리 소자(10)는 구성 데이터 스트림을 위한 다수의 데이터 경로를 가짐으로써, 더 빨리 프로그램될 수 있다. 또한, 동시 백그라운드(background) 재구성 기능은 사용자가 진행중에 소자 구성을 변경함으로써 유효한 논리 게이트의 수를 증가시킬 수 있도록 해준다.
또한, 본 발명은 사용자가 보안 관리 목적상 고유한 정보("보안 ID"라고 함)를 비휘발성 강유전체 메모리에 기록할 수 있도록 해준다. 프로그램 가능한 논리 소자에 데이터를 기록하거나 프로그램 가능한 논리 소자로부터 데이터를 판독하기 전에, 특정 소자 정보를 참고하여 요구 당사자를 인증 확인함으로써, 구성 데이터가 도난되거나 조작되는 것을 방지한다. 보안 ID는 또한 프로그램된 논리 기능의 시동 여부를 결정하는 데 사용될 수도 있다. 이러한 보안 매커니즘은 불법 사용자로부터 소자를 보호한다.
프로그램 가능한 논리 소자
이 절에서는, 본 발명의 실시예로서 프로그램 가능한 논리 소자의 특정예를 제시할 것이다. 도 2는 강유전체 통합 구성 메모리를 갖는 프로그램 가능한 논리 소자(10)의 전체 구조를 보여주는 간략한 평면도이다. 도시한 소자(10)의 중앙 부분은 각각 희망하는 조합 논리 회로를 제공하는 논리 블록 어레이(11) 매트릭스이다. 이러한 논리 블록 어레이(11)는 희망하는 배선을 제공할 수 있도록 복수의 프로그램 가능한 인터커넥션(PIC)(12)에 의해 둘러싸여 있다. 칩의 외부 영역에는 외부 연결 단자 또는 리드에 배선하기 위해서 I/O 패드(도시하지 않음)에 대응하는 복수의 프로그램 가능한 I/O 블록(13)이 있다. 소자(10)의 입력 또는 출력으로서 각 단자를 프로그램할 수 있다. 프로그램 가능한 I/O 블록(13)과 논리 블록 어레이(11) 사이에는 사실상 강유전체 구성 메모리의 일부인 ROM(14)이 배치된다.
프로그램 가능한 논리 소자(10)의 각 구성 요소에 대해서는 이하 상세하게 설명한다. 도 3은 논리 블록 어레이를 상세하게 보여주는 블록도이다. 도시한 논리 블록 어레이(11)는 16개의 논리 블록(21)과 하나의 메모리 컨트롤러(22)를 포함한다. 도 3의 좌반부는 하나의 논리 블록(21)을 상세하게 보여준다. 하나의 논리 블록(21)은 강유전체 메모리 셀로 이루어진 8 워드 구성 메모리(23)(8개의 구성 메모리 워드 23-0 내지 23-7을 포함함)와, 각 구성 메모리 워드(23-0 내지 23-7)에 구성 데이터를 기록하기 위한 로드 회로(24)와, 조합 논리 기능을 생성하기 위한 4 입력 룩업 테이블(25)과, 플립플롭 & 출력 멀티플렉서(26)를 포함한다.
로드 회로(24)는 길이가 예컨대 17 비트인 시프트 레지스터를 포함한다. 로드 회로(24)는 외부 소스로부터 직렬 구성 데이터 스트림을 수신하여 비트별 방식으로 시프트하며, 모든 데이터 비트가 시프트되면, 그 결과 데이터 워드를 제1 구성 메모리 워드(23-0)에 기록한다. 이러한 메모리 로드 사이클은 제8 구성 메모리 워드(23-7)가 완료될 때까지 반복된다.
8개의 모든 구성 메모리 워드(23-0 내지 23-7) 중 첫번째 로드되는 워드(23-0)는 시동시 논리 블록(21)이 첫번째로 사용할 것으로 추측되는 초기 구성 데이터를 포함하는 것이 바람직하다. 그렇게 설정함으로써, 소자는 제1 구성 메모리 워드(23-0)가 채워지자마자, 백그라운드에서 남은 워드(23-1 내지 23-7)에 대한 로드 동작을 계속하면서, 논리 동작을 개시할 수 있다. 이와 같이, 메모리 로드 시간을 줄이고 소자를 신속하게 시동시킬 수 있다.
도 4는 16 비트 폭의 단일 워드 메모리(27)와 16:1 멀티플렉서(28)로 구성되는 4 입력 룩업 테이블(25)의 일례를 보여준다. 메모리(27)는 보통의 SRAM 셀이나 강유전체 메모리 셀로 이루어지며, 도 3에 도시한 구성 메모리로부터 한 번에 8개의 상이한 데이터 패턴 중 하나를 수신할 수 있다. 멀티플렉서(28)는 4 비트 논리 블록 입력(A, B, C, D)에 따라 메모리(27)의 16개의 출력 중 하나를 선택한다. 메모리(27) 내의 데이터 패턴을 변경함으로써, 도 4의 룩업 테이블(25)은 다음의 기능, 예컨대 AND 게이트, NAND 게이트, 반전 입력을 가진 AND 게이트, OR 게이트, NOR 게이트, exclusive-OR 게이트, AND-OR 게이트 등 4개에 달하는 입력으로 각종 조합 논리를 생성할 수 있다.
예컨대, 제1 구성 메모리 워드(23-0)의 데이터 패턴은 하나의 비트만이 1이고 나머지는 0으로 설정되어 있고, 그 비트는 논리 블록 입력들이 모두 1일 경우에 선택된다고 가정하자. 이렇게 설정하면, 이제 룩업 테이블(25)은 4 입력 AND 게이트로서 기능한다. 이와 유사하게, 룩업 테이블(25)은 또한 다음 구성 메모리 워드(23-1)를 적절하게 프로그램하여 구성 데이터를 그 워드(23-1)로 전환함으로써 4 입력 OR 게이트의 역할을 하도록 구성될 수 있다. 또한, 제3 구성 메모리 워드(23-2)를 적절하게 프로그램하여 구성 데이터를 그 워드(23-2)로 전환한다면, 룩업 테이블(25)은 예컨대 (A+B)의 2 입력 논리 OR 기능을 제공할 것이다.
일반적으로, 구성 메모리 셀은 칩 공간의 대부분을 차지하는 배선 면적에 비해, 프로그램 가능한 논리 소자(10)상의 작은 면적만을 차지한다. 이러한 지각으로부터 알 수 있듯이, 구성 메모리를 더 부가하더라도 칩 크기에 그렇게 크게 영향을 미치지 않을 것이다. 더 명확하게 말하자면, 프로그램 가능한 논리 소자(10)가 실질적으로 제공할 수 있는 유효한 논리 게이트의 수를 증가시킬 목적으로 더 많은 구성 메모리를 통합하는 것은 매우 정당하다.
도 5는 로드 회로(24)와 구성 메모리(23)의 더 상세한 구조를 보여준다. 논리 블록 어레이(11)의 이 부분은 시프트 레지스터(30), 기록 회로(31), 강유전체 메모리 셀 어레이(32) 및 출력 버퍼(33)를 갖는다. 여기서, 시프트 레지스터(30)는 구성 데이터 스트림을 수신하여 병렬 방식으로 전달한다. 기록 회로(31)는 그 데이터를 강유전체 메모리 셀 어레이(32)에 기록한다. 강유전체 메모리 셀 어레이(32)에 기록된 데이터는 출력 버퍼(33)를 통해 4 입력 룩업 테이블(25)의 멀티플렉서에공급된다. 메모리 데이터를 시프트 레지스터(33)로 다시 라우팅하는 데이터 판독 경로(34)가 있다. 요구에 따라, 출력 버퍼(33)는 메모리 내용을 판독하기 위한 감지 증폭기를 포함할 수도 있다.
구성 메모리를 제어하고 그것을 구성하는 강유전체 메모리 셀에의 기록 동작을 제어하기 위해서, 논리 블록 어레이(11)(도 3)내의 메모리 컨트롤러(22)는 기록 회로(31)에 기록 인에이블 신호 WE를 공급하고, 강유전체 메모리 셀 어레이(22)에 플레이트선 PL과 워드선 WL(0:7)을 공급한다. 워드선 WL의 수는 구성 데이터 세트의 수에 따라 달라지며, 이 예에서는 8개이다.
로드 회로(24) 및 구성 메모리(23)의 상기 구조는 논리 블록(21)에 뿐만 아니라, 프로그램 가능한 인터커넥션(12) 및 프로그램 가능한 I/O 블록(13)을 포함하는 다른 빌딩 블록에도 적용될 수 있다. 구성 데이터는 프로그램 가능한 인터커넥션(12)에서 어떤 배선들이 서로 연결되고, 프로그램 가능한 I/O 블록(13)에서의 I/O 포트 구성 방법을 정의한다.
구성 메모리에 적합한 강유전체 메모리 셀로는 2가지 타입이 있다. 도 6은 강유전체 메모리 셀의 제1 타입을 보여주는 개략도이다. 이 메모리 셀은 2개의 p채널 트랜지스터(M1, M3), 4개의 n채널 트랜지스터(M2, M4, M5, M6) 및 2개의 강유전체 커패시터(FC1, FC2)로 구성된다. 2쌍의 트랜지스터 (M1, M2) 및 (M3, M4)는 각각 인버터로서 구성되고, 그 출력들이 각각의 다른 입력에 교차 연결되어, SRAM 메모리 셀을 형성한다. 트랜지스터 M1 및 M3의 소스 단자는 공급 전압선 PWR에 연결되고, 트랜지스터 M2 및 M4의 소스 단자는 접지선 VSS에 연결된다.
2개의 인버터 (M1, M2) 및 (M3, M4)의 출력 노드들을 "저장 노드"라고 하고, 각각 S1, S2로 표시한다. 트랜지스터 M5 및 M6은 저장 노드 S1 및 S2에 연결되어, 메모리 셀에 대한 판독 및 기록 동작시 상보 비트선 BL 및 XBL과 데이터 신호를 주고 받는 액세스 트랜지스터로서의 역할을 한다. 액세스 트랜지스터 M5 및 M6의 게이터 단자는 8개의 워드선 WL(x) 중 하나에 의해 제어되며, 여기서 x는 0 내지 7의 정수이다. 트랜지스터 M6은 차동 액세스가 요구되지 않는 경우에는 생략될 수 있다.
강유전체 커패시터 FC1 및 FC2는 플레이트선 PL과 각각의 저장 노드 S1 및 S2 사이에 각각 연결된다. 플레이트선 PL은 메모리 셀의 기록 사이클을 제어하는 데 사용된다. 또한, 메모리 셀이 저장 상태에 있을 때 인가되는 고전압으로 인한 강유전체 약화 방지를 제어한다. 강유전체 커패시터 FC1 및 FC2는 예컨대 주로 PZT(lead zirconate titanate)로 이루어진 강유전체 재료나, SBT(strontium bismuth tantalate)를 포함하는, bismuth-layered perovskite 구조를 갖는 다른 강유전체 재료로 만들어진다.
도 7은 강유전체 메모리 셀의 제2 타입을 보여주는 개략도이다. 도 7의 제2 타입은 도 6의 제1 타입과 유사하므로, 동일한 구성 요소는 동일한 참조 부호로 표시하였다. 그러나, 강유전체 메모리 셀의 제2 타입은 추가의 강유전체 커패시터 FC3 및 FC4가 각각 저장 노드 S1 및 S2에 연결되어 있다는 점에서 제1 타입과 다르다. FC3 및 FC4의 다른 종단은 PL1과는 별도로 제공되는 제2 플레이트선 PL2에 연결된다. 추가의 강유전체 커패시터 FC3 및 FC4 덕분에, 제2 타입의 강유전체 메모리 셀은 제1 타입보다 양호한 데이터 복원 특성을 보여준다. 즉, 소자가 다시 파워 업될 때 더 확실하게 저장된 데이터가 메모리 셀로부터 판독될 수 있다.
도 8은 강유전체 메모리의 각 동작 모드에서의 제어 신호의 상태를 표 형식으로 보여준다. 이 표는 전술한 강유전체 메모리 셀의 제1 타입과 제2 타입 모두에 적용된다. 플레이트선 PL(또는 도 7의 PL1, PL2)을 필요로 한다는 것을 제외하고는, 보통의 SRAM 셀에서와 동일한 방식으로 신호가 제어된다.
기록 동작은 메모리 컨트롤러(22)에 연결된 기록 인에이블선 WE에 인가되는 하이 레벨 신호에 의해 발생된다. 메모리 컨트롤러(22)는 먼저 특정 워드선 WL(x)를 하이 레벨로 구동시킨 다음에 하이 →로우 펄스를 플레이트선 PL에 인가한다. 플레이트선 제어 단계는 강유전체 메모리 사이클 특유의 것이다. 강유전체 커패시터는 비트선 BL 및 XBL의 상태에 따라 분극화된다. 메모리 컨트롤러(22)는 하나씩 서로 다른 워드선 WL(x)를 활성화시켜, 도 3에 도시한 8개의 구성 메모리 워드(23-0 내지 23-7)에 데이터를 기록한다.
기록 인에이블선 WE에 인가되는 로우 레벨 신호로 표시되는 판독 동작은 보통의 SRAM 판독 사이클에서와 동일한 방식으로 진행된다. 메모리 컨트롤러(22)는 특정 워드선 WL(x)를 하이 레벨로 구동시키는 동시에, 공급 전압의 반(Vdd/2)을 플레이트선 PL에 인가한다. 이러한 플레이트 전위 Vdd/2는 임프린트 효과로서 알려진 바와 같이, 강유전체 메모리의 어떤 특성이 원하지 않게 변화되는 것을 방지한다.
소자가 논리 회로로서 기능하기 시작하면, 구성 메모리는 데이터 유지 모드로 된다. 이러한 데이터 유지 모드에서는, 기록 인에이블선 WE와 워드선 WL(x)는모두 로우 레벨을 유지하고, 플레이트선 PL은 임프린트 효과 방지를 위해서 Vdd/2를 유지한다.
전술한 바와 같이, 메모리 컨트롤러(22)는 공급 전압의 반(Vdd/2)을 사용하여 플레이트선 PL을 구동시킴으로써, 구성 메모리가 판독 모드나 유지 모드에 있을 때 일어날 수 있는 임프린트 효과를 방지한다. 도시하진 않았지만, 프로그램 가능한 논리 소자는 종래의 DRAM에서 사용되는 것과 유사한 Vdd/2 전압 발생 회로를 포함한다. 이와 달리, 프로그램 가능한 논리 소자는 외부 전압원으로부터 Vdd/2를 공급받도록 설계될 수도 있다.
프로그램 가능한 인터커넥션 및 I/O 블록
도 9는 프로그램 가능한 인터커넥션(12)의 기본 구성 요소를 보여준다. 이 구성 요소로는 강유전체 구성 메모리 셀(40)과 패스 트랜지스터(41)가 있다. 구성 메모리 셀(40)의 출력(더욱 정확하게는, 대응하는 출력 버퍼의 출력)은 패스 트랜지스터(41)의 게이트에 연결된다. 프로그램 가능한 인터커넥션(12)은 그러한 구성 요소들의 결합체이고, 그 메모리 셀은 도 5에서 전술한 논리 블록(21)의 구조와 동일한 구조로 배열된다. 프로그램 가능한 인터커넥션(12)은 서로 교차하는 복수의 배선간의 연결을 제공하며, 그 배선간의 교차점마다 패스 트랜지스터(41)가 위치하고 있다. 각 패스 트랜지스터(41)는 그 대응하는 구성 메모리 셀(40)의 출력에 따라 드레인과 소스 사이의 전도 채널을 활성화시키거나 비활성화시킴으로써 회로의 연결을 제어한다.
그러나, 프로그램 가능한 인터커넥션(12)은 전술한 구성으로 제한되지 않는다. 대안으로서, 프로그램 가능한 인터커넥션(12)은 A. DeHon이 "Dynamically Programmable Gate Array : A Step Toward Increased Computational Density"(Fourth Canadian Workshop of Field-Programmable Devices, 1996)에서 제안한 멀티플렉서 기반의 크로스바 디자인을 이용할 수도 있다. 이 방법을 사용하면 구성 메모리의 수를 감소시킬 수 있다.
도 10은 프로그램 가능한 I/O 블록의 일례를 보여준다. 이 프로그램 가능한 I/O 블록(13)은 다음과 같이 구성된다. 입력 버퍼(43)는 패드(42)에 연결되어 입력 신호를 수신하고, 제1 플립플롭(44)은 입력 신호를 캡처링한다. 제2 플립플롭은(45)은 논리 블록의 출력 신호를 래치하여 비반전 3 상태 버퍼(48)를 통해 패드(42)에 전송한다. 3 상태 버퍼(48)의 출력 인에이블(액티브 로우)은 강유전체 구성 메모리 셀(47)의 출력을 캐치하는 제3 플립플롭(46)에 연결된다. 구성 메모리 셀(47)은 도 5에 나타낸 논리 블록(21)에 대한 구성과 동일한 구성을 갖고 있다. 3개의 플립플롭(44∼46) 모두는 클록 신호에 동기하여 동작한다.
특히, 상기 프로그램 가능한 I/O 블록(13)은 다음과 같이 동작한다. 제3 플립플롭(46)은 클록 신호에 동기하여 구성 메모리 셀(47)의 출력을 3 상태 버퍼(48)의 액티브-로우 출력 인에이블 단자에 공급한다. 이 출력 인에이블 신호가 하이인 경우, 3 상태 버퍼(48)의 출력은 하이 임피던스 상태가 되는데, 이것은 프로그램 가능한 I/O 블록(13)이 데이터 입력 포트로서 구성되어 있다는 것을 의미한다. 따라서, 패드(42) 상의 입력 신호는 입력 버퍼(43)를 통해 제1 플립플롭(44)에 공급되고, 제1 플립플롭(44)은 프로그램 가능한 논리 소자(10)에 대한 입력으로서 클록신호에 동기하여 상기 입력 신호를 포착한다.
한편, 출력 인에이블 신호가 로우인 경우, 3 상태 버퍼(48)는 액티브 상태가 되는데, 이것은 프로그램 가능한 I/O 블록(13)이 데이터 출력 포트로서 구성되어 있다는 것을 의미한다. 그러므로, 프로그램 가능한 논리 소자(10)의 출력 신호는 클록 신호에 동기하여 제2 플립플롭(45)에 래치되는 패드(42)에 공급된다. 예시된 프로그램 가능한 I/O 블록(13)은 대응하는 구성 메모리 셀(47)에 저장된 데이터에 따라 입력 포트 또는 출력 포트로서 지정될 수 있다.
구성 전환
제시된 프로그램 가능한 논리 소자(10)는 구성 데이터의 복수의 세트를 서로 전환하면서 저장하고 이용하도록 설계된다. 도 11을 참조하면, 상기 구성을 어떻게 전환하는지를 알 수 있을 것이다.
프로그램 가능한 논리 소자(10)는 이 프로그램 가능한 논리 소자(10)의 외부 및 내부의 양쪽 모두로부터 구성 전환 커맨드를 처리하도록 하기 위해 구성 식별자(ID)/커맨드 분배기(50)를 구비하고 있다. 즉, 구성 식별자(ID)/커맨드 분배기(50)는 몇몇의 소스로부터 외부 커맨드(CIDEXT)를 수신하고 이 수신한 외부 커맨드를 강유전체 구성 메모리를 각각 포함하는 논리 블록(21), 프로그램 가능한 인터커넥션(12) 및 프로그램 가능한 I/O 블록(13)을 포함하는 각 수신지에 공급한다. 또한, 구성 식별자(ID)/커맨드 분배기(50)는 논리 블록(21)으로부터 내부 커맨드(CIDINT)를 수신하고 이 수신한 내부 커맨드를 상기와 동일한 방식으로 각 각의 수신지에 공급한다. 내부 커맨드(CIDINT)는 논리 블록(21) 내에 내장된 시퀀서에 의해 생성되고, 때때로 프로그램 가능한 인터커넥션(12)을 통해 구성 식별자(ID)/커맨드 분배기(50)에 공급된다.
본 실시예에서, 논리 블록(21), 프로그램 가능한 인터커넥션(12) 및 프로그램 가능한 I/O 블록(13)에는 8개의 구성 메모리가 이용된다. 어떠한 구성 데이터 세트를 사용할지를 특정하기 위해, 3 비트의 구성 식별자(CID)(0 : 2)가 각각의 세트에 할당된다. 따라서, 전술한 커맨드(CIDEXT, CIDINT)는 구성 ID 필드와 구성 전환 커맨드 코드를 갖고 있다. 커맨드(CIDEXT, CIDINT)의 수신 후에, 구성 ID/커맨드 분배기(50)는 CID(0:2) 및 커맨드 코드의 값을 빌딩 블록(21, 12, 13) 내의 관련된 메모리 컨트롤러에 전송한다. 모든 수신 메모리 컨트롤러는 CID(0:2)에 의해 특정된 8개의 메모리 워드 중의 하나를 선택함으로써, 논리 블록(21), 프로그램 가능한 인터커넥션(12) 및 프로그램 가능한 I/O 블록(13) 내의 기능을 정의하는 구성 데이터를 전환한다.
논리 블록 구조의 특정 실시예
도 12는 종래의 논리 블록의 구성도이고, 이와 대조적으로 도 13은 본 발명에 따른 논리 블록(21)에 관한 도면이다. 도 12의 종래의 논리 블록 모델은 단일-워드 구성 데이터를 유지하는 구성 메모리(51)와, 소정의 논리 블록 입력 세트에 의해 특정되는 바와 같이 구성 데이터 워드의 1 비트를 선택하기 위한 멀티플렉서(52)와, D 타입의 플립플롭(53)과, 멀티플렉서(52)의 출력 또는 플립플롭(53)의 출력 중의 어느 하나를 선택하기 위한 2 : 1 멀티플렉서(54)를 포함하고 있다. 도 12에서, 구성 메모리(51)는 원하는 결합 논리를 구현하는 룩업 테이블로서 기능하도록 멀티플렉서(52)에 결합된다. 이러한 논리 블록의 구조는 종래의 FPGA 설계에서 일반적인 구조이다.
한편, 본 발명은 도 13에 나타낸 논리 블록을 사용한다. 예시된 논리 블록(21)은 복수의 구성 데이터 세트를 갖는 구성 메모리(51)와, 소정의 논리 블록 입력에 따라 현재 선택된 구성 데이터로부터 하나의 비트를 선택하기 위한 멀티플렉서(52)와, 인에이블 입력(EN)을 갖는 D 타입의 플립플롭(55)과, 멀티플렉서(52)의 출력 또는 플립플롭(55)의 출력 중의 어느 하나를 선택하기 위한 2 : 1 출력 멀티플렉서(54)를 포함하고 있다. 도 13에서, 구성 메모리(51)는 원하는 결합 논리를 구현하는 룩업 테이블로서 기능하기 위해 멀티플렉서(52)에 결합된다. 출력 멀티플렉서(54)의 선택 제어 입력은 구성 데이터 비트에 연결되고, 이와 동일한 비트는 또한 플립플롭(55)의 인에이블 입력(EN)을 제어하는데 이용된다. 플립플롭(55)은 EN 입력이 하이로 설정되는 경우에만 클록 신호에 의해 타이밍되고, EN 입력이 로우로 설정되는 경우에는 플립플롭(55)은 이전의 상태를 유지한다. 또한, 도 13의 실시예는 다른 논리 블록에서 사용하기 위해 제1 출력(논리 블록 출력)에 추가하여 다이렉트 플립플롭 출력을 제공한다.
인에이블 입력(EN)으로, 플립플롭(55)은 구성 데이터가 변경되기 전에 이전의 논리 상태를 저장하는 메모리로서 작용할 수 있고, 통상의 플립플롭으로서의 기능을 제공한다. 특히, 본 구성 데이터는 출력 멀티플렉서(54)가 플립플롭(55)의 출력을 선택하도록 정의된다고 가정하자. 이것은 하이 레벨 신호가 출력 멀티플렉서(54)의 선택 제어 입력에 인가되어 출력 멀티플렉서(54)는 플립플롭(55)의 인에이블 입력(EN)을 활성화시킨다는 것을 의미한다. 플립플롭(55)은 인에이블되어 클록 신호의 액티브 에지에서의 현재의 데이터 입력 상태를 포착한다. 플립플롭(55)의 출력은 출력 멀티플렉서(54)를 통해 바로 논리 블록 출력 단자에 제공된다. 여기서 알 수 있는 바와 같이, 제시된 논리 블록(21)은 도 12에 나타낸 종래의 논리 블록과 동일한 방식으로 작용한다.
구성 데이터는 출력 멀티플렉서(54)가 룩업 테이블 출력을 선택하도록 하기 위해 다른 구성 데이터 세트로 변경된다고 가정하자. 출력 멀티플렉서(54)의 선택 제어 입력은 로우로 변경되어서 플립플롭(55)의 인에이블 입력(EN)을 부정한다. 플립플롭(55)이 비활성화되기 때문에, 그 출력 상태는 그대로 유지되는데, 이것은 이전의 논리 출력 상태가 플립플롭(55)에 기억되어 있는 상태를 그대로 유지한다는 것을 의미한다. 이러한 특징으로 새롭게 구성된 프로그램 가능한 논리 블록이 구성 데이터가 전환되기 전에 수행된 이전의 논리 동작 결과를 이용하도록 할 수 있다.
필요한 경우, 도 13의 논리 블록(21)은 플립플롭(55)의 출력이 룩업 테이블에 피드백되는 방식(예컨대, 멀티플렉서(52)에 제공된 4개의 논리 블록 입력 중의 하나에 배선됨)으로 변경될 수 있다. 이러한 셋업으로, 논리 블록(21)은 상기 목적을 위해 전용 메모리를 필요로 하지 않고서, 이전의 구성의 결과를 이용하여 결합성의 논리 동작을 수행할 수 있다.
정의되지 않은 구성 데이터의 처리
도 14는 강유전체 구성 메모리를 갖는 종래의 프로그램 가능한 인터커넥션의 일례를 보여준다. 프로그램 가능한 논리 소자는 일반적으로 상기 프로그램 가능한인터커넥션을 이용하고, 이 프로그램 가능한 인터커넥션은 룩업 테이블의 출력을 공급하기 위해 패스 트랜지스터(72∼75)를 갖는 복수의 배선 트랙(70, 71)을 구비하고 있다. 특히, 2개의 패스 트랜지스터(72, 74)는 하위 배선 트랙(70)에 연결되고, 또 다른 2개의 패스 트랜지스터(73, 75)는 상위 배선 트랙(71)에 연결된다. 제1 내지 제4 구성 메모리 출력에 따르면, 패스 트랜지스터(72∼75)는 출력 버퍼(76∼79)를 통해 공급되는 제1 내지 제4 룩업 테이블 출력의 각각을 통과시킬지 또는 차단할지의 여부를 결정한다.
그러나, 구성 메모리 출력은 대응하는 강유전체 메모리 셀에 유효 구성 데이터가 로딩될 때까지 무한정하다. 이러한 이유로, 예컨대, 제1 및 제3 구성 메모리 출력은 패스 트랜지스터(72, 74)가 동시에 온되도록 하여 대응하는 룩업 테이블 출력이 하위 배선 트랙(70) 상에서 서로 결합되도록 할 수 있다. 또한, 룩업 테이블은 유효 구성 데이터가 정의될 때까지 무한정 상태에 있기 때문에, 제1 및 제3 룩업 테이블 출력은 예컨대, 각각 하이 및 로우가 될 가능성이 있다. 이러한 충돌 신호 레벨로 인하여 배선 트랙(70)에 걸쳐 큰 전류가 발생됨과 동시에 그 전위가 불안정한 중간 전압 상태가 되도록 한다.
전술한 문제점을 해결하기 위해, 종래의 SRAM형 프로그램 가능한 논리 소자는 구성 메모리가 공백 상태이기 때문에 상기 논리 소자에 전원이 인가될 때마다 룩업 테이블의 출력을 디스에이블하도록 설계된다. 그러나, 강유전체 메모리형 프로그램 가능한 논리 소자의 경우에, 상기 논리 소자에 전원이 인가될 때마다 그 룩업 테이블의 출력을 디스에이블할 필요는 없다. 그 이유는 구성 데이터가 기록되는경우 룩업 테이블 출력은 안정화되기 때문이다.
도 15는 신호의 충돌을 방지하기 위한 메커니즘을 갖는 본 발명에 따른 프로그램 가능한 인터커넥션의 일례를 보여준다. 예시된 프로그램 가능한 인터커넥션에서, AND 게이트(80∼83)는 각각의 패스 트랜지스터(72∼75)의 게이트에 배치된다. 상기 AND 게이트(80∼83)는 하나의 입력 상의 제1 내지 제4 구성 메모리 출력이 공급되고 다른 입력 상의 제5 구성 메모리 출력이 공급된다. 도 15에서, 예컨대 제5 구성 메모리는 유효 구성 데이터가 이미 기록되었는지의 여부에 관한 정보를 저장하기 위해 제공된 강유전체 SRAM 셀이다.
제시된 프로그램 가능한 논리 소자는 전원이 인가되는 경우, 제5 구성 메모리 내에 저장된 정보를 고려하면서 패스 트랜지스터(72∼75)를 제어하는데 있어서 제1 내지 제4 구성 메모리 출력을 신뢰할지의 여부를 결정한다. 제5 구성 메모리가 유효 구성 데이터의 부재를 나타내는 경우, 모든 AND 게이트(80∼83)는 그 대응하는 구성 메모리 출력을 디스에이블한다. 구성 데이터의 준비를 차례로 나타내는 경우, AND 게이트(80∼83)는 제1 내지 제4 구성 메모리 출력으로 배선 트랙(70, 71)의 사용을 정의하도록 할 수 있다. 이와 같은 방식으로, 버스 충돌의 위험을 방지할 수 있다.
제5 구성 메모리용의 강유전체 SRAM 셀의 사용을 전술하였다. 그러나, 본 발명은 상기 특정 타입의 메모리로 제한되지 않을 것이다. 또한, 제5 구성 메모리는 통상적으로 사용되는 2개의 트랜지스터와 2개의 커패시터(2T2C) 구조 또는 하나의 트랜지스터와 하나의 커패시터(1T1C) 구조를 갖는 강유전체 메모리 셀로 구성될 수있다.
또한, 전술한 충돌 방지 메커니즘이 유사한 방식으로 프로그램 가능한 I/O 블록 내에서 이용될 수 있다. 세부 사항을 나타내지는 않았지만, 제5 구성 메모리(또는 그 유사물)는 구성 데이터가 준비될 때까지 I/O 포트를 디스에이블한다.
정의되지 않은 구성 데이터의 전술한 문제점은 프로그램 가능한 인터커넥션 뿐만 아니라 예컨대 도 11에서 전술한 구성 전환 메커니즘과도 관련된다. 유효 구성 데이터의 부재로, 프로그램 가능한 논리 소자는 내부 논리 블록이 정의되지 않았기 때문에 구성 전환 커맨드(CIDINT)를 연속적으로 생성시킬 수 있다. 이러한 이유로, 구성 ID/커맨드 분배기(50)는 몇몇의 추가 보호 회로를 가져야 하기 때문에, 구성 메모리에 유효 데이터가 로딩될 때까지 내부 구성 전환 커맨드를 무시할 것이다.
제시된 프로그램 가능한 논리 소자는 복수의 구성 데이터 세트를 저장하도록 설계되기 때문에, 각각의 구성 메모리의 준비를 나타내는 전술한 강유전체 메모리는 구성 데이터 세트의 수만큼 많은 비트를 제공해야 할 것이다. 특히, 프로그램 가능한 논리 소자는 각각의 상이한 구성 ID(CID)에 대해 하나의 비트를 갖고 있고, "준비되지 않은" 비트들은 고객에게 출하되기 프로그램 가능한 논리 소자의 제조업자에 의해 초기화된다. 결론적으로, 프로그램 가능한 논리 소자는 논리 블록 및 프로그램 가능한 인터커넥션이 오류로 활성화되거나 원하지 않는 신호의 충돌을 발생시키는 것을 억제하기 위한 시험 입력을 갖고 있다. 제조업자는 전술한 준비되지 않은 비트를 초기화하는 경우에 시험 입력을 활성화시킨다.
구성 메모리를 ROM으로 이용
일반적인 논리 회로의 설계에서, ROM(read-only memory)은 상수값 등의 기억 소자로서 이용된다. ROM은 셀 크기가 비교적 작기 때문에, ROM 블록을 제공함으로써 제한된 칩 면적에서 더 많은 논리 게이트를 통합할 수 있는 공간을 절감할 수 있다. 본 발명은 논리 설계자가 전용의 ROM 셀을 구현하거나 동등한 기능을 논리 셀로 실현하기 보다는 구성 메모리를 ROM으로 사용하도록 할 수 있다. 제안된 프로그램 가능한 논리 소자(10) 내의 ROM(14)(도 2)은 이러한 종류의 구성 메모리형 ROM이다.
도 16은 구성 메모리로 실현되는 ROM 기능의 일례를 보여준다. 구성 메모리(90)의 출력은 어드레스선 및 데이터선을 갖는 논리 블록(92)에 결합된 멀티플렉서(91)에 연결된다. 구성 메모리(90)는 ROM 컨트롤러(93)에 의해 제어된다. 이 컨트롤러(93)는 구성 데이터의 특정 세트를 특정하는 구성 ID/커맨드 분배기(50)(도 11)로부터 3 비트의 구성 식별자(CID)(0 : 2)를 수신한다. 컨트롤러(93)는 또한 논리 블록(92)으로부터의 3 비트의 어드레스 신호를 갖는 ROM 선택 모드 신호를 수신한다. 구성 메모리(90)는 예컨대 32 비트의 폭을 갖는 8개의 데이터 워드를 저장한다.
논리 블록(92)으로부터의 ROM 선택 모드 신호는 ROM 컨트롤러(93)가 ROM 데이터 워드로서 사용하기 위해 "ROM 선택 모드"로 구성 데이터를 선택하는지의 여부를 결정한다. 여기서 이러한 신호는 현재 로우로 설정되어 있다고 가정하자. 논리 블록(92)은 현재의 CID와 관련된 구성 데이터의 특정 세트로 동작하고, ROM 컨트롤러(93)는 구성 메모리(90)가 동일한 CID를 갖는 데이터 워드를 출력하도록 할 수 있다. 그후, 멀티플렉서(91)는 논리 블록(92)으로부터 공급된 어드레스선의 상태에 따라 논리 블록(92)내에서 사용하기 위해 32 비트의 데이터 워드의 일부를 추출한다. ROM 선택 모드내의 멀티플렉서(91)에 대한 소스 데이터는 현재의 구성 ID에 의해 식별되는 구성 메모리(90) 내의 특정 데이터 워드이다는 점에 다시 유의해야 한다.
한편, ROM 선택 모드 신호가 하이가 되는 경우, 논리 블록(92)으로부터의 3 비트 어드레스 코드는 ROM 컨트롤러(93)를 제어한다. 즉, 어드레스 신호는 구성 메모리(90) 내에 저장된 8개의 데이터 워드 중의 하나를 선택하기 위한 ROM 컨트롤러(93)용 신호이다. 이러한 ROM 선택 모드에서, ROM 컨트롤러(93)는 다른 모드내의 현재의 CID와 대조적으로 3 비트의 코드를 구성 메모리(90)에 제공하여 논리 블록(92)은 원하는 데이터 워드를 특정할 수 있다. 선택된 32 비트 데이터 워드는 멀티플렉서(91)에 공급된다. 논리 블록(92)으로부터의 어드레스선에 따라, 멀티플렉서(91)는 논리 블록(92) 내에 사용하기 위해 워드의 특정 부분을 추출한다.
도 16의 시스템은 전술한 방식으로 2개의 ROM 액세스 방법을 제공한다. ROM 선택 모드 신호가 로우인 경우, 논리 블록(92)은 현재 사용되는 구성 데이터 세트에 속하는 구성 데이터 워드를 판독할 수 있다. ROM 선택 모드 신호가 하이인 경우, 논리 블록(92)은 3 비트 코드로 특정함으로써 구성 메모리(90) 내의 임의의 워드를 판독할 수 있다. 도 16에 나타낸 배열은 단지 예시적이고, 구성 데이터 워드의 수, 데이터 워드의 폭, 코드 비트의 수 및 다른 파라미터는 구현 방식에 따라변경될 수 있다는 점에 유의해야 한다.
구성 데이터 판독 및 기록
도 17은 구성 데이터가 외부 소스로부터 완전한 구성 메모리로 어떻게 다운로드되는지를 나타내고 있다. 프로그램 가능한 논리 소자는 도 1에서 나타낸 바와 같이 구성 데이터를 저장하기 위한 구성 메모리를 각각 갖고 있는 복수의 프로그램 가능한 논리 블록, 프로그램 가능한 인터커넥션 및 프로그램 가능한 I/O 블록을 포함하고 있다. 본 발명에 따르면, 프로그램 가능한 논리 소자내의 빌딩 블록은 그 구성 데이터의 기록 및 판독시의 편의 목적으로 복수의 그룹으로 분리된다.
특히, 도 17은 하나의 그룹은 왼쪽에 있고 다른 하나의 그룹은 오른쪽에 있는 2개의 그룹을 예시하고 있다. 제1 그룹은 제1 논리 블록(100), 제1 프로그램 가능한 인터커넥션(101), 제2 논리 블록(102) 및 제1 프로그램 가능한 I/O 블록(103)으로 구성되어 있다. 구성 회로(104)는 빌딩 블록의 제1 그룹을 담당하는데 이용된다. 이와 마찬가지로, 제2 그룹은 제3 논리 블록(105), 제2 프로그램 가능한 인터커넥션(106), 제4 논리 블록(107) 및 제2 프로그램 가능한 I/O 블록(108)으로 구성되어 있다. 제2 구성 회로(109)는 빌딩 블록의 제2 그룹의 전용 회로이다.
제1 그룹내의 빌딩 블록(100∼103)은 각각의 완전한 구성 메모리와의 구성 데이터의 전송을 위해 완전한 시프트 레지스터(100a∼103a)를 갖고 있다. 상기 시프트 레지스터는 도 5의 시프트 레지스터(30)와 동일하다. 구성 회로(104) 및 시프트 레지스터(100a∼103a)는 그 순서대로 직렬로 결합된다. 최종 시프트 레지스터(103a)의 끝은 판독 경로로 이용되는 구성 회로(104)에 피드백된다.
제1 그룹과 유사하게, 제2 그룹의 빌딩 블록(105∼108)은 각각의 완전한 구성 메모리와의 구성 데이터의 전송을 위해 각각 자신의 시프트 레지스터(105a∼108a)를 갖고 있다. 제2 그룹의 구성 회로(109) 및 시프트 레지스터(105a∼108a)는 그 순서대로 직렬 결합된다. 최종 시프트 레지스터(108a)의 끝은 판독 경로로 이용되는 구성 회로(109)에 피드백된다.
도 17이 단지 2개의 그룹만을 예시하고 있지만, 프로그램 가능한 논리 소자내의 구성 메모리는 더욱 많은 그룹으로 분리될 수 있다. 우리의 목적은 모든 그룹이 동시에 구성 데이터를 판독하거나 기록하도록 하는데 있다. 본 발명의 이러한 그룹화된 메모리 구조는 프로그램 가능한 논리 소자와의 구성 데이터의 빠른 적재 및 판독을 가능하게 한다.
구성 회로(104, 109)는 구성 데이터를 판독하거나 기록하기 위한 소정의 커맨드를 파싱한다. 기록 동작에서, 구성 데이터 스트림은 프로그램 가능한 논리 소자의 몇몇의 미리 할당된 단자를 통해 외부 소스로부터 각각의 구성 회로(104, 109)에 공급된다. 제1 그룹의 구성 회로(104)는 수신된 구성 데이터 스트림을 그 자신의 그룹내의 시프트 레지스터(100a∼103a)에 공급한다. 그후, 각각의 수신 블록내의 기록 회로(예컨대, 메모리 컨트롤러)는 로컬 시프트 레지스터(100a∼103a)로부터의 데이터를 그 자신의 블록내의 강유전체 메모리 셀 어레이에 전송한다. 이와 유사하게, 제2 그룹의 구성 회로(109)는 수신된 구성 데이터 스트림을 그 자신의 그룹내의 시프트 레지스터(105a∼108a)에 공급한다. 이와 같은 방식으로, 프로그램 가능한 논리 소자내의 모든 구성 메모리는 구성 데이터로 채워진다.
도 18은 오프 칩 소스로부터 공급되는 구성 데이터 스트림의 일례를 보여준다. 도 18에서 알 수 있는 바와 같이, 입력되는 구성 데이터 스트림은 동기화 시퀀스, 커맨드, 기록 데이터 및 순환 잉여 검사 코드(CRC) 등과 같은 필드로 구성되어 있다. 구성 회로(104∼109)는 상기 필드로부터 필요한 구성 데이터를 추출하여 시프트 레지스터(100a∼108a)에 전송한다. CRC는 오류 검사 코드이고, 구성 회로(104∼109)는 CRC 오류가 발견되는 경우 데이터 스트림을 재전송하도록 오프칩 데이터 소스에 요청한다.
그러나, 시프트 레지스터(100a∼108a)는 통과될 준비가 되어 있는 경우에도 데이터를 즉시 대응하는 구성 메모리에 통과시키기 않는다. 이에 대한 하나의 이유는 프로그램 가능한 논리 소자는 수신된 데이터내의 전송 오류를 처리하도록 준비 상태에 있어야만 하기 때문이다. 또 다른 이유는 프로그램 가능한 논리 소자가 동작 중에 논리 구성을 변경시킬 수 있는 경우에 프로그램 가능한 논리 소자가 메모리 용량(예컨대, 8개의 세트)이 허용하는 것보다 더욱 많은 논리 기능을 제공할 수 있기 때문이다.
도 19는 구성 데이터가 커맨드 처리의 측면에서 구성 메모리(111)에 어떻게 기록되는지를 나타내고 있다. 이 구성 메모리(111)는 기록 데이터 스트림을 수신하기 위해 시프트 레지스터(112)를 갖고 있고 수신된 기록 데이터 스트림을 기록 회로(113)를 통해 강유전체 메모리 셀 어레이(114)에 출력한다. 계속되는 논리 동작의 중간에, 구성 ID/커맨드 분배기(110)는 온칩 논리 블록(117)으로부터의 구성 전환 커맨드 뿐만 아니라 오프칩 소스로부터의 구성 전환 커맨드 및/또는 구성 데이터 기록 커맨드를 수신하며, 양쪽 모두는 구성 ID를 수반하고 있다. 상기와 같은 방식으로 제공된 커맨드로, 메모리 제어기(116)는 시프트 레지스터(112)로부터의 구성 데이터를 강유전체 메모리 셀 어레이(114)의 특정 부분에 전송한다.
메모리 기록 사이클에서, 비트선(BL, XBL)(도 6 및 도 7의 메모리 셀 구조 참조)은 기록 데이터로 구동된다. 그러나, 기록 데이터는 계속되는 논리 동작에 영향을 주지 않을 것이다. 왜냐하면, 출력 버퍼(115)는 논리 동작 중에 비트선(BL, XBL)과 분리되어 있기 때문이다. 이것은 새로운 구성 데이터 세트가 본 구성의 실행과 병행하여 구성 메모리내에 적재될 수 있다는 것을 의미한다. 전술한 회로 구조는 프로그램 가능한 논리 소자가 배경(예컨대, 계속되는 동작과 병행하여)하에서 그 자신의 논리 구성을 변경하도록 할 수 있어서, 단위 칩 영역 당 유효 게이트 수를 극적으로 증가시킬 수 있다.
프로그램 가능한 논리 소자에 대한 보안 고려
이제, 우리는 프로그램 가능한 논리 소자의 보안 문제에 대해 고려한다. 빈약한 데이터 보호 메커니즘으로, 휘발성 메모리를 갖는 종래의 FPGA는 회사가 개발을 위해 회사의 자원을 투자한 구성 데이터에 대해 이를 알고 있는 어느 누구도 액세스 가능하다. 이것은 귀중한 구성 데이터가 경쟁사에 의해 역 가공되거나 일부 사악한 해커들에 의해 재기록될 위험에 노출되어 있다는 것을 의미한다.
상기 문제점을 해결하기 위해, 본 발명에 따르면, 각각의 소자는 경쟁사에 의해 역가공되고 사악한 해커에 의해 재기록되는 것을 포함하는 불법 접근에 대해 구성 데이터를 보호하기 위한 특별한 코드를 저장하기 위해서 비휘발성 강유전체메모리를 갖고 있다. 보안책은 구성 데이터의 판독 및 기록을 제어하는 회로와 관련되어야 한다. 도 20은 도 17의 좌측에 있는 블록 그룹에 제공된 보안 회로의 일례를 보여준다. 이 예에서, "보안 회로"라는 용어는 비휘발성 메모리(121), 시동 인증 회로(122), 리셋 회로(123) 및 구성 회로(104)의 일부의 결합체를 나타내는 용어이다.
비휘발성 메모리(121)는 각각의 소자 또는 각각의 사용자와만 관련된 보안 ID를 저장한다. 이러한 비휘발성 메모리(121)의 하나의 구현으로서, 도 3에 나타낸 구성 메모리의 일부는 보안 ID를 저장하도록 할당될 수 있다. 다양한 방식의 가변적인 구성 성능을 갖는 프로그램 가능한 논리 소자는 2개 이상의 보안 ID를 가질 수 있다. 즉, 상이한 보안 ID가 각각의 구성 ID에 할당될 수 있다. 이 경우에, 상기 구성-특정 보안 ID를 저장하기 위해 프로그램 가능한 논리 소자의 구성 메모리를 사용하는 것이 바람직하다.
시동 인증 회로(122)는 비휘발성 메모리(121)내의 보안 ID를 소정의 동작 요구의 보안 ID와 비교한다. 이 리셋 회로(123)는 시동 인증 회로(122)가 동작을 허용할 때까지 동작을 개시하지 않도록 프로그램 가능한 논리 소자를 제어하기 위해 리셋 신호의 선언을 유지한다.
도 21은 구성 데이터의 기록 및 판독을 확고히 하기 위한 구성 데이터 스트림의 일례를 보여준다. 이러한 구성 데이터 스트림은 요구자가 자신의 인증을 주장하는 보안 ID를 포함하고 있다. 상기 구성 데이터 스트림의 수신시에, 구성 회로(104)는 수신된 데이터 스트림내의 보안 ID가 비휘발성 메모리(121) 내에 저장된 보안 ID와 일치하는지의 여부를 확인한다. 상기 2개의 보안 ID가 서로 일치하지 않는 경우에는 구성 회로(104)가 수신된 기록 또는 판독 커맨드를 거부한다. 이와 같은 방식으로, 보안 회로는 저장된 구성 데이터가 사악한 제3 자에 의해 판독되거나 기록되는 것을 방지한다.
전술한 바와 같이, 시동 인증 회로(122)는 오프칩 소스로부터 전송된 동작 요구 커맨드를 처리한다. 시동 인증 회로(122)는 수신된 요구 메시지내의 보안 ID가 비휘발성 메모리(121) 내의 보안 ID와 일치하는 경우에만 해제 커맨드를 리셋 회로(123)에 전송한다. 이러한 해제 커맨드는 리셋 회로(123)가 리셋 신호를 부정하도록 하게 함으로써, 프로그램 가능한 논리 소자가 동작을 개시하도록 할 수 있다. 프로그램 가능한 논리 소자가 복수의 구성 데이터 세트를 갖고 있는 경우, 상이한 보안 ID는 각각의 구성 ID에 대해 할당될 수 있다. 상기 보안 ID들은 프로그램 가능한 논리 소자의 구성 메모리 내에 저장되고, 프로그램 가능한 논리 소자는 보안 ID들의 비교를 통해서 사용이 인증된 구성으로만 동작할 수 있다. 이와 같은 방식으로, 제시된 보안 메커니즘은 허가되지 않은 사용에 대해 프로그램 가능한 논리 소자를 보호한다.
강유전체 메모리에 대한 전원 제어
이 부분은 전원 인가 또는 전원 해제시에 본 발명은 강유전체 메모리 내의 구성 데이터의 데이터 손상을 어떻게 보호하는지를 설명하고 있다. 본 명세서의 종래 기술부에서 전술한 바와 같이, 도 6에 나타낸 강유전체 메모리 셀내에 저장된 데이터의 성공적인 재호출은 전원 시스템이 단순한 온/오프 제어만을 제공하는 한보증될 수 없다. 도 6을 다시 참조하면, 래치 회로는 4개의 NMOS 트랜지스터(M1∼M4)로 구성되어 있다. 프로그램 가능한 논리 소자에 전원이 인가되는 경우, 저장 노드(S1, S2)에서의 전압은 2개의 n채널 트랜지스터(M2, M4) 중의 어떠한 채널이 다른 채널에 비해 먼저 온되는지에 의해 결정된다. 그러나, 이때 강유전체 커패시터(FC1, FC2)의 양단의 전압은 많아야 0.5 V이고, 2개의 커패시터(FC1, FC2)의 전하의 차이는 거의 없다. 따라서, 메모리 셀내의 래치는 고유 상태를 회복(예컨대, 데이터 손실시)하는 것이 가능하다.
강유전체 메모리 셀의 플레이트 선(도 6의 PL, 도 7의 PL1 및 PL2)은 도 8에 전술한 바와 같이, 통상적인 동작 동안에 Vdd/2에서 구동된다. 오랜 기간 동안 데이터 유지를 보증하기 위해, 전원이 제거되기 전에 강유전체 커패시터(FC1, FC2)는 공칭 공급 전압으로 완전히 충전되어 데이터가 안정되게 저장되도록 하는 것이 바람직하다. 다음에는 제시된 프로그램 가능한 논리 소자가 어떻게 데이터 재호출 및 저장 동작을 자동으로 수행하는지를 설명할 것이다.
도 22는 강유전체 메모리에 대한 공급 전력 제어 시스템의 일례를 나타내고, 도 23은 강유전체 구성 메모리에 대한 전력선 및 제어 신호를 보여준다. 예시된 공급 전력 제어 시스템은 입력부에서 평활 커패시터(200)를 갖는 전력 공급/전압 모니터(210)를 갖고 있고, 전원/전압 모니터(210)에는 외부 전원으로부터 소스 전압(Vdd)이 제공된다. 이 전력 공급/전압 모니터(210)는 소스 전압(Vdd)으로부터의 공급 전압(PWR)을 생성하고, 게다가 소스 전압(Vdd)의 상승 및 하강 에지를 검출함으로써 전력 검출 신호(PDET)를 생성한다. PWR 및 PDET는 메모리 제어기(220)에 전송된다. 메모리 제어기(220)는 강유전체 구성 메모리(230)에 전력 공급 제어 신호(ENX), 접지 제어 신호(EN), 공급 전압(PWR) 및 다른 강유전체 메모리 셀 제어 신호를 공급한다. 도 22에서의 메모리 제어기(220) 및 구성 메모리(230)는 각각 도 3에서의 메모리 제어기(22) 및 구성 메모리 워드(23-0 내지 23-7)에 해당한다.
구성 메모리(230)는 도 23에 나타낸 바와 같이 강유전체 메모리 셀(도 6 및 도 7)의 어레이이다. 구성 메모리(230)의 전력선은 p채널 트랜지스터(PT1)를 통해 PWR에 연결되고, 그 접지선(VSS)은 n채널 트랜지스터(NT1)를 통해 접지된다. 프로그램 가능한 논리 소자가 파워 업되는 경우, 메모리 제어기(220)는 초기에 양쪽 트랜지스터(PT1, NT1)를 오프한다. 프로그램 가능한 논리 소자는 전력 공급/전압 모니터(210)에서의 Vdd의 충분한 전압 레벨의 확인 후 PWR을 인가하기 전에 적절한 방식으로 강유전체 커패시터의 플레이트선을 제어한다. 특히, 강유전체 메모리 셀의 제1 타입(도 6)에서, 메모리 제어기(220)는 플레이트선(PL)을 로우에서 하이로 구동시킨다. 강유전체 메모리 셀의 제2 타입(도 7)에서, 메모리 컨트롤러(220)는 제1 플레이트선(PL1)을 로우에서 하이로 구동시키고, 제2 플레이트선(PL2)을 접지 레벨(GND)에 유지시킨다. 그 결과, 각각의 강유전체 메모리 셀의 저장 노드(S1, S2)는 전력이 손실되기 전에 이전의 셀 상태를 반영하는 적절한 전압 레벨로 설정된다.
예컨대, S1에서는 0 V의 고유 저장 노드의 전위를 갖고 S2에서는 3.3 V의 최초의 저장 노드 전위를 갖는 제1 타입의 메모리 셀(도 6)을 고려한다. 플레이트선(PL)을 로우에서 하이로 구동시킴으로써, 예컨대, S1에서는 3.00 V의 전압이 생성되고 S2에서는 3.22 V의 전압이 생성된다. 또 다른 예에서, S1에서는 0 V의 저장 노드 전위를 갖고 S2에서는 3.3 V의 저장 노드 전위를 갖는 제2 타입의 메모리 셀(도 7)을 고려한다. 제1 플레이트선(PL1)을 로우에서 하이로 구동함으로써, S1에서는 0.65 V의 전압이 생성되고 S2에서는 2.59 V의 전압이 생성된다. 그후, 메모리 컨트롤러(220)는 구성 메모리(230)에 공급 전압(PWR)을 공급하는 2개의 트랜지스터(PT1, NT1)을 온하도록 전력 공급 제어 신호(ENX)와 접지 제어 신호(EN)를 선언한다. 각각의 강유전체 메모리 셀내의 래치는 활성화되어 고유 상태를 회복한다. 구성 데이터가 준비되어 있으므로, 프로그램 가능한 논리 소자(10)는 칩에 대한 리셋 신호의 부정 후에 프로그래밍된 논리 기능을 개시할 수 있다.
전력 공급/전압 모니터(210)는 셧다운 후에 공급 전압의 강하를 검출하여, 모든 강유전체 메모리 셀내의 데이터를 저장하기 위해 메모리 컨트롤러(220)가 플레이트선[PL(PL1, PL2)]을 완전히 구동하도록 한다. 특히, 플레이트선은 정상 레벨(Vdd/2)에서 하이 레벨(Vdd)로 구동된 후 로우 레벨(Vss)로 구동된다. 또한, 플레이트선은 정상 레벨(Vdd/2)에서 로우 레벨(Vss)로 구동된 후 하이 레벨(Vdd)로 구동된 후 다시 로우 레벨(Vss)로 구동된다. 그후, 메모리 컨트롤러(220)는 셀에 전원을 해제하기 위해 트랜지스터(PT1, NT1)를 오프시킨다. (단지 하나의 워드선만이 선택되더라도 해롭지 않지만) 모든 워드선(WL)이 상기 동작 중에 로우로 설정되는 것이 바람직하다.
도 24는 전력 공급/전압 모니터(210) 내에 포함된 소스 전압 모니터 회로의 구성도이다. 상기 회로는 공급 전압의 상승 에지를 검출하는 파워 업 검출기(212),공급 전압의 하강 에지를 검출하는 파워 다운 검출기(213) 및 RS 플립플롭을 구성하는 2개의 NAND 게이트(214, 215)로 구성된다. 소스 전압 모니터 회로는 예컨대, 공칭 공급 전압(Vdd)보다 충분히 낮은 1 V에서 동작할 필요가 있다.
파워 업 검출기(212)는 직렬 연결된 2개의 저항[(212a; 1.7 ×r1), (212b; r1)와 비교기(212c)로 구성되어 있다. 저항(212a, 212b)은 주어진 소스 전압(Vdd)을 1.7 : 1의 비율로 분리하고, 비교기(212c)는 분리된 전압을 소정의 기준 전압(Vref)과 비교한다. 소스 전압(Vdd)이 3.0 V에 도달하는 경우, 비교기(212c)는 로우 레벨 출력을 생성시킴으로써 RS 플립플롭을 세트하고 PDET가 하이가 되도록 한다. 이와 유사하게, 파워 다운 검출기(213)는 직렬 연결된 2개의 저항[(213a; 1.5 ×r1), (213b; r1)과 비교기(213c)로 구성되어 있다. 저항(213a, 213b)은 주어진 소스 전압(Vdd)을 1.5 : 1의 비율로 분리하고, 비교기(213c)는 분리된 전압을 기준 전압(Vref)과 비교한다. 소스 전압(Vdd)이 2.7 V 이하로 떨어지는 경우, 비교기(213c)는 로우 레벨 출력을 생성시킴으로써 RS 플립플롭을 리셋하고 PDET가 로우가 되도록 한다. 기준 전압(Vref)은 예컨대, 공급 전압에서의 변동 또는 주위 온도에서의 변동에도 불구하고 1.1 V의 매우 안정된 전압을 생성시키는 밴드갭 기준 회로에 의해 공급된다.
전술한 설명에 의해 알 수 있는 바와 같이, 소스 전압 모니터 회로는 소스 전압이 3.0 V에 도달하고 소스 전압이 2.7 V 이하로 떨어질 때까지 PDET의 상태를 유지하는 경우 전력 검출 신호(PDET)를 하이로 선언한다. 이러한 히스테리시스로 소스 전압 모니터 회로는 전력 부하의 증가로 인한 순간적인 전압 강하에 더욱 탄력적일 수 있다.
전력 공급/전압 모니터(210)는 도 22에 나타낸 장치에서의 공급 전압(Vdd)을 감시하고, 소스 전압 모니터 회로는 도 25에 나타낸 바와 같이 약간 변경될 수 있다. 이러한 다른 전력 공급/전압 모니터(211)는 전용의 전압 모니터 입력(Vdet)을 갖고 있고, 공급 전압은 원소스로부터 전용의 전압 모니터 입력(Vdet)에 직접 전달되어 평활 커패시터(200)의 효과를 방지한다. 전력 공급/전압 모니터(211)는 도 24에서 설명한 것과 유사한 소스 전압 모니터 회로를 포함하고 있다. 이 경우, 소스 전압 모니터 회로는 Vdd 대신에 Vdet를 감시한다. 전력 공급/전압 모니터(211)는 메모리 제어기(220)에 전력 검출 신호(PDET)를 공급한다.
도 26은 전력 공급/전압 모니터(210, 211)에 사용하기 위한 슬루레이트(slew rate) 제어 성능을 갖는 전력 공급 회로의 구성도이다. 도 26에는 전압 추종자로서 구성된 연산 증폭기(216a)가 있고, 출력은 반전 입력으로 직접 피드백된다. 이 연산 증폭기(216a)는 완전한 레일 투 레일(rail-to-rail) 동작을 제공하도록 설계된다. 연산 증폭기의 비반전 입력은 커패시터(C)(216c)와 저항(R)(216b)의 CR 네트워크를 통해 소스 전압 단자(216e)(Vdd)에 연결된다. CR 네트워크가 입력에 배치되어, 연산 증폭기(216a)는 소스의 속도보다 더 낮은 속도로 SRAM 셀 구동 전압(PWR)을 출력한다. 연산 증폭기의 출력에 나타낸 커패시터, 즉 PWR 단자(216f)는 부하 커패시턴스(216d)이다.
도 26의 예에서, 전력 공급 회로는 c = 10 pF와 R = 10 ㏀의 회로 파라미터와 함께 공급 전압 제어용으로 100 ㎱의 시상수를 제공한다. 이 파워 업 시상수는메모리 셀 내의 강유전체 커패시터의 특성에 달려있고, 적절한 값이 어떠한 강유전체 물질이 사용되는지에 따라 선택되어야 할 것이다. 100 ㎱의 시상수는 PZT에 대한 전형적인 동작 조건이다.
도 27은 도 6 및 도 7에서 설명된 강유전체 메모리 셀의 파워 업 시의 제어 시퀀스의 일례를 보여준다. 이 제어 시퀀스는 각종 제어 신호의 셋업으로 개시된다. 도 28은 강유전체 메모리가 파워 업되기 전에 제어 신호의 상태를 보여준다. 도 28에서 알 수 있는 바와 같이, 공급 전압(PWR)은 초기에 오프되고, 기록 인에이블 신호(WE), 워드선 제어 신호(WL) 및 플레이트선 제어 신호(PL)는 모두 안전을 위해 로우로 설정된다. 도 27을 다시 참조하면, 시퀀스는 40 ㎒의 클록 주파수로 진행한다. 후속하는 4개의 클록(예컨대, 100 ㎱)은 구성 메모리의 전력선에 전원을 인가하는데 사용된다. 공급 전압이 공칭 레벨에 도달한 후에, 구성 데이터는 구성 메모리로부터 판독되고, 룩업 테이블, 프로그램 가능한 인터커넥션 및 프로그램 가능한 I/O 블록은 구성 메모리로 동작하도록 준비된다. 그후, 상기 소자는 리셋 상태로부터 해제되어 의도된 논리 동작을 개시한다. 도 27의 파워업 시퀀스는 단순한 일례일 뿐이고, 전력 공급을 가능하게 하는데 필요한 클록 주파수 및 클록 사이클의 수는 어떠한 종류의 강유전체 물질이 사용되는가에 달려있다는 점에 유의해야 한다.
도 29는 강유전체 메모리에 대한 파워 다운 제어 시퀀스의 일례를 보여준다. 파워 다운의 검출 후에, 상기 소자는 그 구성 메모리에 모든 데이터를 저장한 후 셧다운을 위한 대기 상태에 들어간다. 특히, 이전의 파워 다운 모니터는 전압 모니터 입력(Vdet)에서의 소스 전압(Vdd)이 소정의 임계치(예컨대, 2.7 V) 이하인 경우에 파워 다운 이벤트를 검출한다. 도 25의 시스템은 소스 전압(Vdd)에 결합된 평활 커패시터(200) 주변을 우회하면서 파워 업/파워 다운 검출 목적으로 외부 전원으로부터 원래의(raw) 소스 공급 전압을 수신한다. 파워 다운 상황에서, Vdet의 전위는 평활 커패시터(200)의 효과로 인해 느리게 저하되는 전력선(201)의 전위와는 대조적으로, 즉시 저하된다. 즉, Vdet를 감시하기 때문에, 소스 전압 모니터 회로는 공급 전압(Vdd)이 실제로 강하되기 전에 파워 다운 이벤트를 식별할 수 있다. 예컨대, 평활 커패시터(200)의 커패시턴스는 0.1 ㎌이고 상기 소자는 100 ㎃를 소비하는 경우, 전압 강하가 0.2 V에 도달하는데는 200 ㎱가 걸린다. 이 시간 길이는 상기 소자가 강유전체 커패시터 내의 모든 구성 데이터를 저장는데 충분히 긴 40 ㎒ 클록의 8개의 사이클과 동등하다.
도 30은 도 29의 파워 다운 시퀀스의 각각의 단계에서의 제어 신호의 상태를 보여주는 표이다. 전력 검출 신호(PDET)의 부정 후에, 상기 소자는 플레이트선 제어 신호(PL)를 하이에서 로우로 변경함으로써 구성 메모리 내에 모든 데이터를 저장하고, 기록 제어 신호(WE) 및 워드선 제어 신호(WL)을 로우 레벨로 유지하며 강유전체 SRAM 셀 용의 전력은 온된다. 이러한 동작으로 완전한 공급 전압을 강유전체 커패시터에 제공한다. 다음의 대기 상태에서, 플레이트선(PL)은 전력(PWR)이 손실될 때까지 다른 제어 신호(WE)와 같이 로우 레벨을 유지한다.
도 22 내지 도 30에 나타낸 메모리 제어 메커니즘으로, 제시된 프로그램 가능한 논리 소자는 강유전체 커패시터의 특성에 따라 결정되는 적절한 시상수를 갖는 구성 메모리 내의 강유전체 SRAM 셀 용의 공급 전압(PWR)에 대한 지연을 제공한다. 이 지연으로 상기 소자가 파워 업 후에 강유전체 메모리 셀의 플레이트선을 제어하도록 하여, 각각의 강유전체 커패시터 내에 저장된 데이터의 성공적인 재호출을 보증할 수 있다. 또한, 제시된 메커니즘은 전원 전압의 강하를 검출한 후에 완전한 공급 전압(PWR)을 강유전체 메모리 셀에 공급함으로써 저장된 데이터의 단기간의 신뢰성 및 장기간의 신뢰성을 보증할 수 있다.
전술한 설명은 본 발명의 원리에 대한 단지 예시적인 설명이다. 또한, 당업자라면 다양하게 변형 및 변경할 수 있기 때문에 본 발명을 전술한 구성 및 응용으로 제한하는 것은 바람직하지 않으며, 각종 변형예 및 균등예는 첨부된 청구의 범위의 기술적 범위 내에서 이루어질 수 있다.
본 발명에 의하면, 단위 칩 면적 당 유효한 논리 게이트의 수를 증가시킬 수 있는, 더 효율적인 아키텍처를 갖는 프로그램 가능한 논리 소자를 제공할 수 있다.
또한, 구성 데이터가 로드되기 전에 예상치 못한 행동이나 내부 신호 충돌을 방지할 수 있는 프로그램 가능한 논리 소자를 제공할 수 있다.
또한, 구성 데이터가 더 짧은 시간에 기록될 수 있는 프로그램 가능한 논리 소자를 제공할 수 있다.
또한, 역가공, 조작 또는 다른 불법 접근이나 사용에 대해 자신의 구성 데이터를 보호할 수 있는 프로그램 가능한 논리 소자를 제공할 수 있다.
또한, 프로그램 가능한 논리 소자가 파워 업 또는 셧다운시 통합 강유전체구성 메모리의 확실한 데이터 유지 특성을 보장하는 매커니즘을 갖는 프로그램 가능한 논리 소자를 제공할 수 있다.

Claims (27)

  1. 주어진 구성 데이터에 따라 논리 기능을 수행하는 프로그램 가능한 논리 소자에 있어서,
    프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과;
    각각 비휘발성 강유전체 메모리 셀들로 구성되고, 복수의 구성 데이터 세트를 저장하는 복수의 구성 메모리와;
    상기 논리 기능을 정의하기 위해서 상기 프로그램 가능한 논리 블록에서 사용되는 상기 복수의 구성 데이터 세트 중 하나를 선택하는 데이터 선택기
    를 포함하며,
    상기 프로그램 가능한 논리 블록은 선택되는 구성 데이터에 따라 다양한 방식으로 동작하는 것인 프로그램 가능한 논리 소자.
  2. 제1항에 있어서, 상기 데이터 선택기는 상기 선택된 구성 데이터 세트를, 동작중인 상기 프로그램 가능한 논리 블록에 의해 생성되는 이벤트 신호에 응답하여 또 다른 구성 데이터 세트로 변경하는 것인 프로그램 가능한 논리 소자.
  3. 제1항에 있어서, 상기 데이터 선택기는 상기 선택된 구성 데이터 세트를, 상기 프로그램 가능한 논리 블록이 동작하는 동안에 외부 소스로부터 공급되는 이벤트 신호에 응답하여 또 다른 구성 데이터 세트로 변경하는 것인 프로그램 가능한논리 소자.
  4. 제1항에 있어서, 상기 데이터 선택기는 상기 선택된 구성 데이터 세트를, 시간 경과에 따라 또 다른 구성 데이터 세트로 변경하는 것인 프로그램 가능한 논리 소자.
  5. 제1항에 있어서, 상기 프로그램 가능한 논리 블록이 ROM으로서 참고하기 위해서 상기 복수의 구성 메모리 중 하나에 접근할 수 있도록 해주는 ROM 컨트롤러를 더 포함하는 프로그램 가능한 논리 소자.
  6. 제5항에 있어서, 상기 ROM 컨트롤러는 상기 프로그램 가능한 논리 블록이 상기 프로그램 가능한 논리 블록으로부터 공급되는 제어 신호에 응답하여, 상기 데이터 선택기에 의해 현재 선택되는 구성 메모리와 다른 구성 메모리에 접근할 수 있도록 해주는 것인 프로그램 가능한 논리 소자.
  7. 제1항에 있어서,
    상기 복수의 구성 메모리는 복수의 그룹으로 나누어지며,
    상기 복수의 그룹의 구성 메모리는 복수의 구성 데이터 스트림을 동시에 수신하는 것인 프로그램 가능한 논리 소자.
  8. 제1항에 있어서,
    상기 복수의 구성 메모리는 복수의 그룹으로 나누어지며,
    상기 복수의 그룹의 구성 메모리는 복수의 구성 데이터 스트림을 동시에 출력하는 것인 프로그램 가능한 논리 소자.
  9. 제1항에 있어서,
    상기 복수의 구성 메모리는 복수의 그룹으로 나누어지며,
    상기 복수의 그룹의 구성 메모리 중 적어도 하나는 백그라운드에서 외부 소스로부터 구성 데이터 스트림을 수신하는 것인 프로그램 가능한 논리 소자.
  10. 제1항에 있어서,
    보안 ID를 저장하기 위해서 상기 복수의 구성 메모리의 일부로서 제공되는 보안 데이터 저장 영역과;
    상기 보안 데이터 저장 영역에 저장되는 보안 ID를 사용함으로써 상기 복수의 구성 메모리에 관한 요구를 인증 확인하는 인증 프로세서를 더 포함하는 프로그램 가능한 논리 소자.
  11. 제10항에 있어서, 상기 요구는 상기 복수의 구성 메모리에 대한 판독 접근 요구인 것인 프로그램 가능한 논리 소자.
  12. 제10항에 있어서, 상기 요구는 상기 복수의 구성 메모리에 대한 기록 접근 요구인 것인 프로그램 가능한 논리 소자.
  13. 제10항에 있어서, 상기 요구는 상기 프로그램 가능한 논리 소자를 시동하기 위한 상기 복수의 구성 메모리에 대한 사용 요구인 것인 프로그램 가능한 논리 소자.
  14. 제10항에 있어서,
    상기 복수의 구성 메모리는 복수의 그룹으로 나누어지며,
    상기 보안 ID는 각 그룹의 구성 메모리마다 할당되는 것인 프로그램 가능한 논리 소자.
  15. 주어진 구성 데이터에 따라 논리 기능을 수행하는 프로그램 가능한 논리 소자에 있어서,
    상기 주어진 구성 데이터에 따라 구성되는 조합 논리 블록과;
    인에이블 입력을 갖고, 상기 인에이블 입력이 어서트될 때 상기 조합 논리 블록의 출력을 래치하는 플립플롭과;
    상기 주어진 구성 데이터의 일부에 따라 상기 조합 논리 블록의 출력이나 상기 플립플롭의 출력을 선택하는 멀티플렉서와;
    상기 멀티플렉서가 상기 플롭플롭의 출력을 선택하는 경우에는 상기 플립플롭의 인에이블 입력을 어서트하고, 상기 멀티플렉서가 상기 조합 논리 블록의 출력을 선택하는 경우에는 상기 인에이블 입력을 니게이트하는 회로
    를 포함하는 프로그램 가능한 논리 소자.
  16. 제15항에 있어서, 상기 플립플롭의 출력은 상기 조합 논리 블록으로 그 입력 신호로서 피드백되는 것인 프로그램 가능한 논리 소자.
  17. 주어진 구성 데이터에 따라 논리 기능을 수행하는 프로그램 가능한 논리 소자에 있어서,
    프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과;
    비휘발성 강유전체 메모리 셀들로 구성되고, 구성 데이터를 저장하는 구성 메모리와;
    적어도 하나의 비휘발성 강유전체 메모리 셀로 구성되고, 상기 구성 메모리가 이미 상기 구성 데이터로 로드되어 있는지의 여부를 나타내는 정보를 저장하는 메모리와;
    상기 메모리에 저장된 정보가 상기 구성 메모리가 로드되어 있지 않다고 나타내는 경우에 상기 프로그램 가능한 논리 블록의 출력을 디스에이블하는 제어 회로
    를 포함하는 프로그램 가능한 논리 소자.
  18. 프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과;
    비휘발성 강유전체 메모리 셀들로 구성되고, 상기 프로그램 가능한 논리 블록의 논리 기능을 정의하는 구성 데이터를 저장하는 구성 메모리와;
    보안 ID를 저장하기 위해서 상기 구성 메모리의 일부로서 제공되는 보안 데이터 저장 영역과;
    상기 보안 데이터 저장 영역에 저장되는 보안 데이터를 사용함으로써 상기 구성 메모리에 관한 요구를 인증 확인하는 인증 프로세서
    를 포함하는 프로그램 가능한 논리 소자.
  19. 제18항에 있어서, 상기 요구는 상기 구성 메모리내의 구성 데이터를 판독 또는 기록하기 위한 요구인 것인 프로그램 가능한 논리 소자.
  20. 제18항에 있어서, 상기 요구는 상기 프로그램 가능한 논리 블록을 상기 구성 메모리내의 구성 데이터의 정의에 따라 동작 개시시키기 위한 요구인 것인 프로그램 가능한 논리 소자.
  21. 프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과;
    비휘발성 강유전체 메모리 셀들로 구성되고, 상기 프로그램 가능한 논리 블록의 논리 기능을 정의하는 구성 데이터를 저장하는 구성 메모리와;
    공급 전압이 미리 결정된 임계 전압에 도달할 때 검출 신호를 생성하는 공급전압 모니터와;
    상기 공급 전압 모니터로부터의 검출 신호에 응답하여 상기 강유전체 메모리 셀들의 플레이트선에 하이 레벨 전압을 인가한 후에 상기 강유전체 메모리 셀들에게 전력을 공급하는 메모리 컨트롤러
    를 포함하는 프로그램 가능한 논리 소자.
  22. 프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과;
    비휘발성 강유전체 메모리 셀들로 구성되고, 상기 프로그램 가능한 논리 블록의 논리 기능을 정의하는 구성 데이터를 저장하는 구성 메모리와;
    상기 강유전체 메모리 셀들에 적합한 시상수로 주어진 공급 전압을 지연시킴으로써 상기 강유전체 메모리 셀들에게 전력을 공급하는 전력 공급 회로
    를 포함하는 프로그램 가능한 논리 소자.
  23. 제22항에 있어서, 상기 전력 공급 회로는,
    저항 및 커패시터를 갖는 CR망과;
    상기 CR망에 연결되어, 상기 메모리 셀들을 동작시키기 위한 전압을 생성하는 연산 증폭기를 포함하는 것인 프로그램 가능한 논리 소자.
  24. 프로그램에 따라 논리 기능을 제공하는 프로그램 가능한 논리 블록과;
    비휘발성 강유전체 메모리 셀들로 구성되고, 상기 프로그램 가능한 논리 블록의 논리 기능을 정의하는 구성 데이터를 저장하는 구성 메모리와;
    공급 전압이 미리 결정된 임계 전압 아래로 떨어질 때 검출 신호를 생성하는 공급 전압 모니터와;
    상기 강유전체 메모리 셀들에 상기 구성 데이터를 저장할 수 있도록, 상기 공급 전압 모니터로부터의 검출 신호에 응답하여 상기 강유전체 메모리 셀들의 플레이트선에 제1 플레이트선 전압을 인가하고 다음에 제2 플레이트선 전압을 인가한 후에, 상기 강유전체 메모리 셀들로부터 전력을 제거하는 메모리 컨트롤러
    를 포함하는 프로그램 가능한 논리 소자.
  25. 제24항에 있어서, 상기 제1 플레이트선 전압은 상기 제2 플레이트선 전압보다 높은 것인 프로그램 가능한 논리 소자.
  26. 제24항에 있어서, 상기 제2 플레이트선 전압은 상기 제1 플레이트선 전압보다 높은 것인 프로그램 가능한 논리 소자.
  27. 제24항에 있어서,
    상기 공급 전압은 외부 소스로부터 평활 커패시터가 연결된 제1 공급 경로와 평활 커패시터가 없는 제2 공급 경로를 통해 상기 프로그램 가능한 논리 소자로 공급되고,
    상기 메모리 컨트롤러는 상기 제1 공급 경로를 통해 공급되는 공급 전압을스위칭함으로써 상기 강유전체 메모리 셀들에 대한 전력을 제어하며,
    상기 공급 전압 모니터는 상기 제2 공급 경로를 통해 공급되는 공급 전압을 감시하는 것인 프로그램 가능한 논리 소자.
KR1020020085896A 2001-12-28 2002-12-28 강유전체 구성 메모리를 갖는 프로그램 가능한 논리 소자 KR20030057487A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2001-00399390 2001-12-28
JPJP-P-2001-00399326 2001-12-28
JP2001399390 2001-12-28
JP2001399326A JP3938308B2 (ja) 2001-12-28 2001-12-28 プログラマブル論理デバイス

Publications (1)

Publication Number Publication Date
KR20030057487A true KR20030057487A (ko) 2003-07-04

Family

ID=26625365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020085896A KR20030057487A (ko) 2001-12-28 2002-12-28 강유전체 구성 메모리를 갖는 프로그램 가능한 논리 소자

Country Status (4)

Country Link
US (1) US6924663B2 (ko)
EP (1) EP1324495B1 (ko)
KR (1) KR20030057487A (ko)
DE (1) DE60239588D1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100785938B1 (ko) * 2005-06-02 2007-12-14 가부시끼가이샤 도시바 반도체 집적 회로 장치
US9148150B2 (en) 2012-11-05 2015-09-29 Samsung Electronics Co., Ltd. Logic device and operating method thereof

Families Citing this family (228)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100516693B1 (ko) * 2003-04-02 2005-09-22 주식회사 하이닉스반도체 불휘발성 프로그래머블 로직 회로
US6864711B2 (en) * 2000-01-21 2005-03-08 Richard M. Lienau Programmable array logic circuit whose product and input line junctions employ single bit non-volatile ferromagnetic cells
US7123050B2 (en) * 2002-09-19 2006-10-17 Lienau Richard M Programmable array logic circuit employing non-volatile ferromagnetic memory cells
EP1471643B1 (en) * 2002-01-28 2006-08-09 Rohm Co., Ltd. Logical operation circuit and logical operation method
US6781408B1 (en) 2002-04-24 2004-08-24 Altera Corporation Programmable logic device with routing channels
US7142011B1 (en) 2002-04-24 2006-11-28 Altera Corporation Programmable logic device with routing channels
DE10313389A1 (de) * 2003-03-25 2004-10-07 Endress + Hauser Process Solutions Ag Verfahren zur Übertragung von Softwarecode von einer Steuereinheit zu einem Feldgerät der Prozessautomatisierungstechnik
JP4294307B2 (ja) * 2002-12-26 2009-07-08 株式会社ルネサステクノロジ 不揮発性記憶装置
US20050007812A1 (en) * 2003-06-03 2005-01-13 Seiko Epson Corporation Image forming apparatus and method of forming image
US7237106B1 (en) * 2003-07-18 2007-06-26 Altera Corporation System for loading configuration data into a configuration word register by independently loading a plurality of configuration blocks through a plurality of configuration inputs
JP3853766B2 (ja) * 2003-07-25 2006-12-06 ローム株式会社 論理演算回路および論理演算装置
US7030646B1 (en) * 2003-09-02 2006-04-18 Altera Corporation Functional pre-configuration of a programmable logic device
DE102004045527B4 (de) * 2003-10-08 2009-12-03 Siemens Ag Konfigurierbare Logikschaltungsanordnung
JP3966873B2 (ja) * 2003-10-08 2007-08-29 株式会社東芝 論理回路装置、動作電圧変更方法
US7177199B2 (en) * 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7167025B1 (en) 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7284222B1 (en) 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US7145361B1 (en) * 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
US7282950B1 (en) 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7312630B2 (en) * 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
JP4528044B2 (ja) * 2004-07-13 2010-08-18 富士通セミコンダクター株式会社 半導体装置
JP3967737B2 (ja) * 2004-07-20 2007-08-29 株式会社東芝 プログラマブル論理回路装置およびプログラマブル論理回路の再構築方法
US7298646B1 (en) * 2004-08-11 2007-11-20 Altera Corporation Apparatus for configuring programmable logic devices and associated methods
US7284229B1 (en) 2004-10-01 2007-10-16 Xilinx, Inc. Multiple bitstreams enabling the use of partially defective programmable integrated circuits while avoiding localized defects therein
US7424655B1 (en) 2004-10-01 2008-09-09 Xilinx, Inc. Utilizing multiple test bitstreams to avoid localized defects in partially defective programmable integrated circuits
US7412635B1 (en) * 2004-10-01 2008-08-12 Xilinx, Inc. Utilizing multiple bitstreams to avoid localized defects in partially defective programmable integrated circuits
US7573296B2 (en) * 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7224181B1 (en) * 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7268586B1 (en) 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7276933B1 (en) 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US7295037B2 (en) * 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US7259587B1 (en) 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7342415B2 (en) * 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7330050B2 (en) 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US7743085B2 (en) * 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7038932B1 (en) * 2004-11-10 2006-05-02 Texas Instruments Incorporated High reliability area efficient non-volatile configuration data storage for ferroelectric memories
JP4469708B2 (ja) 2004-11-30 2010-05-26 パナソニック株式会社 プログラマブルデバイス
US7236009B1 (en) 2004-12-01 2007-06-26 Andre Rohe Operational time extension
US7443198B1 (en) 2004-12-29 2008-10-28 Actal Corporation Non-volatile look-up table for an FPGA
US7129748B1 (en) * 2004-12-29 2006-10-31 Actel Corporation Non-volatile look-up table for an FPGA
US7310003B2 (en) * 2005-03-15 2007-12-18 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US20070244959A1 (en) * 2005-03-15 2007-10-18 Steven Teig Configurable IC's with dual carry chains
US7230869B1 (en) 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7224182B1 (en) * 2005-03-15 2007-05-29 Brad Hutchings Hybrid configurable circuit for a configurable IC
DE102005023118B3 (de) * 2005-05-19 2006-12-21 Infineon Technologies Ag Schaltungsanordnung zum Zuführen von Konfigurationsdaten in FPGA-Einrichtungen
US7443196B2 (en) * 2005-07-15 2008-10-28 Tabula, Inc. Configuration network for a configurable IC
US7430697B1 (en) * 2005-07-21 2008-09-30 Xilinx, Inc. Method of testing circuit blocks of a programmable logic device
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US7933419B2 (en) * 2005-10-05 2011-04-26 Phonak Ag In-situ-fitted hearing device
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7538574B1 (en) * 2005-12-05 2009-05-26 Lattice Semiconductor Corporation Transparent field reconfiguration for programmable logic devices
US7656184B2 (en) 2005-12-30 2010-02-02 Intel Corporation Detecting counterfeit products
US7420390B1 (en) * 2006-01-09 2008-09-02 Altera Corporation Method and apparatus for implementing additional registers in field programmable gate arrays to reduce design size
TWI312153B (en) * 2006-01-20 2009-07-11 Ind Tech Res Inst Power source for magnetic random access memory and magnetic random access memory using the same
US7375549B1 (en) * 2006-02-09 2008-05-20 Lattice Semiconductor Corporation Reconfiguration of programmable logic devices
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US7609085B1 (en) 2006-03-08 2009-10-27 Tabula, Inc. Configurable integrated circuit with a 4-to-1 multiplexer
US7694083B1 (en) 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
JP5035239B2 (ja) * 2006-03-15 2012-09-26 日本電気株式会社 再構成可能デバイスのテストシステム及びその方法並びにそれに用いる再構成可能デバイス
JP4705496B2 (ja) * 2006-03-24 2011-06-22 富士通株式会社 給電ライン監視装置
US8488474B2 (en) * 2006-03-24 2013-07-16 Fujitsu Limited Feed line monitor apparatus
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
CA2648896A1 (en) * 2006-04-19 2007-11-01 Queen's University At Kingston A hybrid nanotube/cmos dynamically reconfigurable architecture and an integrated design optimization method and system therefor
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US7570520B2 (en) * 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
EP1967973A1 (en) * 2007-03-07 2008-09-10 Matsushita Electric Industrial Co., Ltd. A method of configuring embedded application-specific functional blocks
EP2140548A4 (en) * 2007-03-20 2010-06-09 Tabula Inc CONFIGURABLE IC WITH A COUPLING AREA WITH MEMORY ELEMENTS
US8112468B1 (en) 2007-03-22 2012-02-07 Tabula, Inc. Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC
US7839162B2 (en) 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US7508715B2 (en) 2007-07-03 2009-03-24 Sandisk Corporation Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US7599224B2 (en) 2007-07-03 2009-10-06 Sandisk Corporation Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US20090033359A1 (en) * 2007-07-31 2009-02-05 Broadcom Corporation Programmable logic device with millimeter wave interface and method for use therewith
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
EP2201569A4 (en) 2007-09-06 2011-07-13 Tabula Inc CONFIGURATION CONTEXT SWITCH
WO2009039462A1 (en) * 2007-09-19 2009-03-26 Tabula, Inc. Method and system for reporting on a primary circuit structure of an integrated circuit (ic) using a secondary circuit structure of the ic
US20090092805A1 (en) * 2007-10-03 2009-04-09 Seagate Technology Llc Ferroelectric Material With Polarization Pattern
US7853916B1 (en) 2007-10-11 2010-12-14 Xilinx, Inc. Methods of using one of a plurality of configuration bitstreams for an integrated circuit
US7810059B1 (en) 2007-10-11 2010-10-05 Xilinx, Inc. Methods of enabling the validation of an integrated circuit adapted to receive one of a plurality of configuration bitstreams
US7619438B1 (en) 2007-10-11 2009-11-17 Xilinx, Inc. Methods of enabling the use of a defective programmable device
US7652502B2 (en) * 2007-12-29 2010-01-26 Unity Semiconductor Corporation Field programmable gate arrays using resistivity sensitive memories
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US7831415B1 (en) * 2008-02-21 2010-11-09 Xilinx, Inc. Circuit for testing input signals and a method of testing input signals coupled to a circuit
GB2457912A (en) * 2008-02-27 2009-09-02 Silicon Basis Ltd An FPGA which is reconfigured between each clock cycle
JP5251171B2 (ja) * 2008-03-06 2013-07-31 富士通セミコンダクター株式会社 論理回路装置
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US7816947B1 (en) 2008-03-31 2010-10-19 Man Wang Method and apparatus for providing a non-volatile programmable transistor
US8166435B2 (en) * 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US7616517B1 (en) * 2008-07-03 2009-11-10 Lsi Corporation Config logic power saving method
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8525548B2 (en) * 2008-08-04 2013-09-03 Tabula, Inc. Trigger circuits and event counters for an IC
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US7683663B1 (en) * 2009-01-13 2010-03-23 Xilinx, Inc. Authorization of an implementation of a user design in a programmable integrated circuit
US8239590B1 (en) 2009-01-31 2012-08-07 Xilinx, Inc. Method and apparatus for transferring data between two different interfaces
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
JP5201041B2 (ja) 2009-03-19 2013-06-05 株式会社デンソー パルス遅延回路の構成方法
US8390035B2 (en) * 2009-05-06 2013-03-05 Majid Bemanian Massively parallel interconnect fabric for complex semiconductor devices
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
IN2012DN05920A (ko) 2010-01-20 2015-09-18 Semiconductor Energy Lab
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
WO2011123151A1 (en) 2010-04-02 2011-10-06 Tabula Inc. System and method for reducing reconfiguration power usage
US8687403B1 (en) * 2010-06-10 2014-04-01 Adesto Technologies Corporation Circuits having programmable impedance elements
US8650514B2 (en) 2010-06-23 2014-02-11 Tabula, Inc. Rescaling
US8788987B2 (en) 2010-06-23 2014-07-22 Tabula, Inc. Rescaling
US8381019B2 (en) 2010-06-24 2013-02-19 International Business Machines Corporation EDRAM macro disablement in cache memory
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US8878174B2 (en) 2011-04-15 2014-11-04 Semiconductor Energy Laboratory Co., Ltd. Semiconductor element, memory circuit, integrated circuit, and driving method of the integrated circuit
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US9543956B2 (en) 2011-05-09 2017-01-10 Intel Corporation Systems and methods for configuring an SOPC without a need to use an external memory
CN103534950B (zh) 2011-05-16 2017-07-04 株式会社半导体能源研究所 可编程逻辑装置
US8779799B2 (en) 2011-05-19 2014-07-15 Semiconductor Energy Laboratory Co., Ltd. Logic circuit
JP5892852B2 (ja) 2011-05-20 2016-03-23 株式会社半導体エネルギー研究所 プログラマブルロジックデバイス
US8669781B2 (en) 2011-05-31 2014-03-11 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP5912844B2 (ja) 2011-05-31 2016-04-27 株式会社半導体エネルギー研究所 プログラマブルロジックデバイス
KR101802945B1 (ko) * 2011-06-27 2017-12-29 삼성전자주식회사 논리 장치 및 이를 포함하는 반도체 패키지
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US8581626B2 (en) * 2011-08-25 2013-11-12 Kabushiki Kaisha Toshiba Control system, logic module substrate, and logic FPGA
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US9203397B1 (en) 2011-12-16 2015-12-01 Altera Corporation Delaying start of user design execution
JP2013190893A (ja) * 2012-03-13 2013-09-26 Rohm Co Ltd マルチタスク処理装置
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
FR2990089B1 (fr) * 2012-04-27 2014-04-11 Commissariat Energie Atomique Dispositif logique reprogrammable resistant aux rayonnements.
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
CN103021456A (zh) * 2012-12-19 2013-04-03 电子科技大学 非易失高抗单粒子的配置存储器单元
WO2014125979A1 (en) 2013-02-13 2014-08-21 Semiconductor Energy Laboratory Co., Ltd. Programmable logic device and semiconductor device
US9000801B1 (en) 2013-02-27 2015-04-07 Tabula, Inc. Implementation of related clocks
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
CN105191139B (zh) 2013-04-02 2018-12-07 太阳诱电株式会社 可重构逻辑器件
FR3004577A1 (ko) 2013-04-15 2014-10-17 Commissariat Energie Atomique
FR3004576B1 (fr) 2013-04-15 2019-11-29 Commissariat A L'energie Atomique Et Aux Energies Alternatives Cellule memoire avec memorisation de donnees non volatile
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US8982655B1 (en) 2013-08-21 2015-03-17 Via Technologies, Inc. Apparatus and method for compression and decompression of microprocessor configuration data
US9223715B2 (en) 2013-08-21 2015-12-29 Via Alliance Semiconductor Co., Ltd. Microprocessor mechanism for decompression of cache correction data
US9348690B2 (en) * 2013-08-21 2016-05-24 Via Alliance Semiconductor Co., Ltd. Correctable configuration data compression and decompression system
JP2015061238A (ja) 2013-09-19 2015-03-30 株式会社東芝 再構成可能な半導体集積回路および電子機器
WO2015045135A1 (ja) * 2013-09-30 2015-04-02 株式会社日立製作所 プログラマブルロジックデバイス、及び、論理集積ツール
JP6483402B2 (ja) * 2013-11-01 2019-03-13 株式会社半導体エネルギー研究所 記憶装置、及び記憶装置を有する電子機器
JP6488541B2 (ja) * 2013-12-18 2019-03-27 富士通株式会社 論理回路及び論理回路の制御方法
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9665490B2 (en) 2014-05-22 2017-05-30 Via Alliance Semiconductor Co., Ltd. Apparatus and method for repairing cache arrays in a multi-core microprocessor
US9524241B2 (en) 2014-05-22 2016-12-20 Via Alliance Semiconductor Co., Ltd. Multi-core microprocessor power gating cache restoral mechanism
US9606933B2 (en) 2014-05-22 2017-03-28 Via Alliance Semiconductor Co., Ltd. Multi-core apparatus and method for restoring data arrays following a power gating event
US9395802B2 (en) 2014-05-22 2016-07-19 Via Alliance Semiconductor Co., Ltd. Multi-core data array power gating restoral mechanism
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10430618B2 (en) * 2015-10-09 2019-10-01 George Mason University Vanishable logic to enhance circuit security
US9711211B2 (en) 2015-10-29 2017-07-18 Sandisk Technologies Llc Dynamic threshold voltage compaction for non-volatile memory
US10236888B2 (en) * 2016-03-29 2019-03-19 Arm Ltd. Correlated electron switch device
US9613676B1 (en) 2016-06-29 2017-04-04 Micron Technology, Inc. Writing to cross-point non-volatile memory
CN107561950B (zh) * 2016-06-30 2020-11-27 西门子瑞士有限公司 楼宇中控制器的编程方法及提供控制器编程工具的服务器
CN106293843B (zh) * 2016-08-15 2019-11-26 华为技术有限公司 一种数据加载系统
DE112017004148T5 (de) 2016-08-19 2019-05-23 Semiconductor Energy Laboratory Co., Ltd. Verfahren zum Steuern der Stromzufuhr in einer Halbleitervorrichtung
US10452974B1 (en) 2016-11-02 2019-10-22 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using a device's circumstances for autonomous device operation
US11625523B2 (en) 2016-12-14 2023-04-11 iCometrue Company Ltd. Logic drive based on standard commodity FPGA IC chips
CN108288616B (zh) 2016-12-14 2023-04-07 成真股份有限公司 芯片封装
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10447274B2 (en) 2017-07-11 2019-10-15 iCometrue Company Ltd. Logic drive based on standard commodity FPGA IC chips using non-volatile memory cells
US10957679B2 (en) 2017-08-08 2021-03-23 iCometrue Company Ltd. Logic drive based on standardized commodity programmable logic semiconductor IC chips
US10630296B2 (en) 2017-09-12 2020-04-21 iCometrue Company Ltd. Logic drive with brain-like elasticity and integrality based on standard commodity FPGA IC chips using non-volatile memory cells
US10474934B1 (en) 2017-11-26 2019-11-12 Jasmin Cosic Machine learning for computing enabled systems and/or devices
EP3499324B1 (de) * 2017-12-12 2021-01-27 Sick Ag Verfahren zur modularen verifikation einer konfiguration eines geräts
US10608642B2 (en) * 2018-02-01 2020-03-31 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile radom access memory cells
US10623000B2 (en) 2018-02-14 2020-04-14 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips
US10608638B2 (en) * 2018-05-24 2020-03-31 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips
US10892011B2 (en) 2018-09-11 2021-01-12 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells
US11309334B2 (en) 2018-09-11 2022-04-19 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells
US10754993B2 (en) * 2018-09-25 2020-08-25 Northrop Grumman Systems Corporation Architecture to mitigate configuration memory imprinting in programmable logic
US10747909B2 (en) 2018-09-25 2020-08-18 Northrop Grumman Systems Corporation System architecture to mitigate memory imprinting
US10937762B2 (en) 2018-10-04 2021-03-02 iCometrue Company Ltd. Logic drive based on multichip package using interconnection bridge
US11616046B2 (en) 2018-11-02 2023-03-28 iCometrue Company Ltd. Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip
US11211334B2 (en) 2018-11-18 2021-12-28 iCometrue Company Ltd. Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip
US10680615B1 (en) * 2019-03-27 2020-06-09 Xilinx, Inc. Circuit for and method of configuring and partially reconfiguring function blocks of an integrated circuit device
US10985154B2 (en) 2019-07-02 2021-04-20 iCometrue Company Ltd. Logic drive based on multichip package comprising standard commodity FPGA IC chip with cryptography circuits
US11227838B2 (en) 2019-07-02 2022-01-18 iCometrue Company Ltd. Logic drive based on multichip package comprising standard commodity FPGA IC chip with cooperating or supporting circuits
US11887930B2 (en) 2019-08-05 2024-01-30 iCometrue Company Ltd. Vertical interconnect elevator based on through silicon vias
US11637056B2 (en) 2019-09-20 2023-04-25 iCometrue Company Ltd. 3D chip package based on through-silicon-via interconnection elevator
US11600526B2 (en) 2020-01-22 2023-03-07 iCometrue Company Ltd. Chip package based on through-silicon-via connector and silicon interconnection bridge
CN113312207B (zh) * 2021-05-07 2023-12-05 埃森智能科技(深圳)有限公司 一种采用铁电存储器的数据存储方法及其可编程逻辑控制器
KR102537392B1 (ko) 2021-05-31 2023-05-26 연세대학교 산학협력단 강유전체 메모리 소자를 포함하는 감지 증폭기 기반 비휘발성 플립플롭

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4543155A (en) * 1983-01-31 1985-09-24 The Boc Group, Inc. Method for bleaching wood pulp including dissolving oxygen into the dilution water of an extraction stage
US4642487A (en) 1984-09-26 1987-02-10 Xilinx, Inc. Special interconnect for configurable logic array
JP3121862B2 (ja) 1991-06-14 2001-01-09 川崎製鉄株式会社 強誘電体メモリを利用したプログラマブルロジックデバイス
US5426378A (en) * 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
JP3518936B2 (ja) * 1995-08-23 2004-04-12 ローム株式会社 プログラム可能な機能装置
US6025735A (en) * 1996-12-23 2000-02-15 Motorola, Inc. Programmable switch matrix and method of programming
US5898317A (en) * 1996-12-23 1999-04-27 Motorola, Inc. Configurable monolithic semiconductor circuit and method for configuring
US6011744A (en) * 1997-07-16 2000-01-04 Altera Corporation Programmable logic device with multi-port memory
JPH11110297A (ja) * 1997-10-03 1999-04-23 Hitachi Ltd メモリ内蔵型1チップコンピュータ
US6157979A (en) 1998-03-14 2000-12-05 Advanced Technology Materials, Inc. Programmable controlling device with non-volatile ferroelectric state-machines for restarting processor when power is restored with execution states retained in said non-volatile state-machines on power down
US6145020A (en) * 1998-05-14 2000-11-07 Advanced Technology Materials, Inc. Microcontroller incorporating an enhanced peripheral controller for automatic updating the configuration date of multiple peripherals by using a ferroelectric memory array
JP3425100B2 (ja) * 1999-03-08 2003-07-07 松下電器産業株式会社 フィールドプログラマブルゲートアレイおよびその製造方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100785938B1 (ko) * 2005-06-02 2007-12-14 가부시끼가이샤 도시바 반도체 집적 회로 장치
US9148150B2 (en) 2012-11-05 2015-09-29 Samsung Electronics Co., Ltd. Logic device and operating method thereof

Also Published As

Publication number Publication date
EP1324495A1 (en) 2003-07-02
EP1324495B1 (en) 2011-03-30
US20030122578A1 (en) 2003-07-03
US6924663B2 (en) 2005-08-02
DE60239588D1 (de) 2011-05-12

Similar Documents

Publication Publication Date Title
KR20030057487A (ko) 강유전체 구성 메모리를 갖는 프로그램 가능한 논리 소자
JP3938308B2 (ja) プログラマブル論理デバイス
US5226137A (en) Electronic key with multiple password protected sub-keys using address and translation to implement a block data move between public and protected sub-keys
US5206905A (en) Password protected device using incorrect passwords as seed values for pseudo-random number generator for outputting random data to thwart unauthorized accesses
US7710147B1 (en) Techniques for configuring programmable logic using on-chip nonvolatile memory
KR101852115B1 (ko) 개선된 시동 작동을 갖는 물리적 복제 불가 기능부
US6118869A (en) System and method for PLD bitstream encryption
US7340596B1 (en) Embedded processor with watchdog timer for programmable logic
US20200336146A1 (en) Selectively disabled output
US7919979B1 (en) Field programmable gate array including a non-volatile user memory and method for programming
US8159259B1 (en) Self-modifying FPGA for anti-tamper applications
US5306961A (en) Low-power integrated circuit with selectable battery modes
US5787498A (en) Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells
JP2003198361A5 (ko)
US8896346B1 (en) Self-modifying FPGA for anti-tamper applications
US7683663B1 (en) Authorization of an implementation of a user design in a programmable integrated circuit
JP4467587B2 (ja) プログラマブル論理デバイス
JPH03254499A (ja) 半導体記憶装置
US6304100B1 (en) Programmable semiconductor device providing security of circuit information
US5134384A (en) Data coincidence detecting circuit
US6680871B1 (en) Method and apparatus for testing memory embedded in mask-programmable logic device
US20030120941A1 (en) Apparatus for protecting code ROM data in code ROM test
WO1991019067A1 (en) Electronic key integrated circuit
US20080155151A1 (en) Programmable Locking Mechanism For Secure Applications In An Integrated Circuit
EP1266379B1 (en) Method and apparatus for an improved reset and power-on arrangement for a dram generator controller

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application