KR20170033343A - 상이한 타입들의 구성 메모리를 갖는 프로그래밍 가능 집적 회로 - Google Patents

상이한 타입들의 구성 메모리를 갖는 프로그래밍 가능 집적 회로 Download PDF

Info

Publication number
KR20170033343A
KR20170033343A KR1020177003876A KR20177003876A KR20170033343A KR 20170033343 A KR20170033343 A KR 20170033343A KR 1020177003876 A KR1020177003876 A KR 1020177003876A KR 20177003876 A KR20177003876 A KR 20177003876A KR 20170033343 A KR20170033343 A KR 20170033343A
Authority
KR
South Korea
Prior art keywords
programmable
subset
resources
memory cells
circuit design
Prior art date
Application number
KR1020177003876A
Other languages
English (en)
Other versions
KR102354318B1 (ko
Inventor
제임스 카르프
Original Assignee
자일링크스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 자일링크스 인코포레이티드 filed Critical 자일링크스 인코포레이티드
Publication of KR20170033343A publication Critical patent/KR20170033343A/ko
Application granted granted Critical
Publication of KR102354318B1 publication Critical patent/KR102354318B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/017581Coupling arrangements; Interface arrangements programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F17/5054
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/17764Structural details of configuration resources for reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

프로그래밍 가능 집적 회로(IC)(100) 상에 회로 설계를 구현하기 위해, 회로 설계를 구현하기 위한 제 1 데이터가 생성된다(202). SEU들(single event upsets)에 대한 회로 설계의 중요 및 비-중요 부분들이 결정되고(206), 회로 설계를 구현하기 위해 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위한 제 2 데이터가 생성된다(210, 212). 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들(102)의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들(106)의 제 1 서브세트 상에서 회로 설계의 중요 부분을 구현하기 위해 제 1 타입의 구성 메모리 셀들(118)을 프로그래밍하도록 할당된다. 상기 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 로직 자원들(104)의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들(108)의 제 2 서브세트 상에서 상기 회로 설계의 비-중요 부분을 구현하기 위해 제 2 타입의 구성 메모리 셀들(120)을 프로그래밍하도록 할당된다. 제 2 데이터는 전자적으로 판독 가능한 저장 매체에 저장된다(214). 제 1 타입의 구성 메모리 셀들의 메모리 셀들은 제 2 타입의 구성 메모리 셀들의 메모리 셀들보다 SEU들에 덜 민감하다.

Description

상이한 타입들의 구성 메모리를 갖는 프로그래밍 가능 집적 회로{PROGRAMMABLE INTEGRATED CIRCUIT HAVING DIFFERENT TYPES OF CONFIGURATION MEMORY}
본 개시는 일반적으로 프로그래밍 가능 집적 회로들의 구성 메모리에 관한 것이다.
복합 PLD(CPLD) 및 FPGA(Field Programmable Gate Array)와 같은 기존의 프로그래밍 가능 집적 회로들(IC)은 통상적으로, 구현된 회로의 기능성을 프로그래밍하기 위해 수백만 개의 정적 랜덤 액세스 메모리(SRAM) 구성 메모리 셀들을 사용한다. 구성 메모리 셀들은 예를 들어, 프로그래밍 가능 IC의 상호연결, 로직 또는 메모리 자원들을 프로그래밍하기 위한 것들일 수 있다.
더 작아지는 칩 지오메트리 및 더 낮아지는 공급 전압들과 더불어, 프로그래밍 가능 IC들 내의 점점 더 많은 수의 SRAM 구성 메모리 셀들의 존재는, 외부 공간으로부터의 코스믹 입자들(cosmic particles) 또는 IC 패키징 재료들로부터의 알파 입자들과의 충돌들로 인해 구성 메모리 셀 저장 상태가 업셋(upset)될 가능성을 증가시킨다. 메모리 셀의 상태의 예상되지 않는 변화는 SEU(single event upset)로서 지칭된다. SEU들이 발생할 가능성이 더 높으면, PLD에 대한 특정 프로그램 구성에 대해 평균 고장 시간(mean time to failure)이 감소하고 FIT(failures in time) 레이트는 증가할 것이다.
프로그래밍 가능 집적 회로 상의 회로 설계의 구현을 생성하는 일 방법에 따라, 제 1 데이터가 입력 회로 설계를 구현하기 위해 생성된다. 방법은 상기 회로 설계의 중요 부분 및 비-중요 부분을 결정한다. 제 2 데이터는 회로 설계를 구현하기 위해 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위해 생성된다. 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에서 회로 설계의 중요 부분의 3개 또는 그 초과의 인스턴스들을 구현하기 위해 프로그래밍 가능 IC의 6T 구성 메모리 셀들을 프로그래밍하도록 할당된다. 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에서 보우팅 회로를 구현하기 위해 프로그래밍 가능 IC의 12T 구성 메모리 셀들을 프로그래밍하도록 할당된다. 보우팅 회로는 회로 설계의 제 1 부분의 3개의 인스턴스들로부터 출력 신호들을 수신하도록 커플링된다. 제 2 데이터는 전자적으로 판독 가능한 저장 매체에 저장된다.
프로그래밍 가능 IC 상에 회로 설계의 구현을 생성하는 다른 방법에 따라, 회로 설계가 입력되고, 회로 설계를 구현하기 위한 제 1 데이터가 생성된다. 회로 설계의 중요 부분 및 비-중요 부분이 결정된다. 제 2 방법은 회로 설계를 구현하기 위해 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위한 제 2 데이터를 생성한다. 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에서 회로 설계의 중요 부분을 구현하기 위해 제 1 타입의 구성 메모리 셀들을 프로그래밍하도록 할당된다. 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에서 회로 설계의 비-중요 부분을 구현하기 위해 제 2 타입의 구성 메모리 셀들을 프로그래밍하도록 할당된다. 제 2 데이터는 전자적으로 판독 가능한 저장 매체에 저장된다.
프로그래밍 가능 IC는 복수의 6T 메모리 셀들 및 복수의 12T 메모리 셀들을 갖는 구성 메모리를 포함한다. 프로그래밍 가능 상호연결 자원들이 구성 메모리에 커플링된다. 프로그래밍 가능 상호연결 자원들의 제 1 서브세트는 6T 메모리 셀들의 서브세트에 의해 프로그래밍 가능하고, 프로그래밍 가능 상호연결 자원들의 제 2 서브세트는 12T 메모리 셀들의 서브세트에 의해 프로그래밍 가능하다. 프로그래밍 가능 로직 자원들이 구성 메모리에 커플링된다. 프로그래밍 가능 로직 자원들의 제 1 서브세트는 6T 메모리 셀들의 서브세트에 의해 프로그래밍 가능하고, 프로그래밍 가능 로직 자원들의 제 2 서브세트는 12T 메모리 셀들의 서브세트에 의해 프로그래밍 가능하다. 프로그래밍 가능 입출력(I/O) 자원들이 구성 메모리에 커플링된다.
다른 특징들은 이어지는 상세한 설명 및 청구범위의 고려로부터 인지될 것이다.
개시된 방법들 및 시스템들의 다양한 양상들 및 특징들은 다음의 상세한 설명을 검토하고 도면들을 참조하여 명백해질 것이다.
도 1은 6T SRAM 구성 메모리로 구성 가능한 프로그래밍 가능 자원들의 하나의 부분 및 12T SRAM 구성 메모리로 구성 가능한 프로그래밍 가능 자원의 다른 부분을 갖는 프로그래밍 가능 집적 회로(IC)의 블록도를 도시한다.
도 2는 프로그래밍 가능 IC의 다른 구성 메모리 셀들보다 SEU 업셋들에 대해 덜 민감한 일부 구성 메모리 셀들을 갖는 프로그래밍 가능 IC 상의 회로 설계의 구현을 생성하기 위한 프로세스의 흐름도를 도시한다.
도 3은 12T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 자원들로 구현되는 보우팅 회로와 함께, 6T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 자원들에서 TMR(triple modular redundant)로서 구현되는 회로 설계의 일부의 블록도를 도시한다.
도 4는 본원에서 설명된 프로세스들 및 데이터 구조들을 구현하도록 구성될 수 있는 컴퓨팅 어레인지먼트의 예를 도시한다.
도 5는 예시적인 프로그래밍 가능 IC의 블록도를 도시한다.
이하의 설명에서, 다수의 특정 세부사항들이 본원에서 제시된 특정 예들을 설명하기 위해 기술된다. 그러나 하나 또는 그 초과의 다른 예들 및/또는 이들 예들의 변동들이 이하에 주어진 모든 특정 세부사항들 없이 실시될 수 있다는 것이 당업자에게 자명해져야 한다. 다른 예들에서, 잘 알려진 특징들은 본원의 예들의 설명을 모호하게 하지 않도록 상세히 설명되지 않는다. 예시의 용이함을 위해, 동일한 참조 번호들은 상이한 도면들에서 동일한 엘리먼트들 또는 동일한 엘리먼트의 부가적인 인스턴스들을 지칭하도록 사용될 수 있다.
개시된 방법들 및 회로들은 프로그래밍 가능 IC를 포함하며, 구성 메모리 셀들 중 전부가 아닌 일부는 12T(12-트랜지스터) SRAM 셀들이고 다른 구성 메모리 셀들은 6T(6-트랜지스터) SRAM 셀들이다. 12T SRAM으로 구현되는 구성 메모리 셀들 중 일부를 갖는 프로그래밍 가능 IC를 구현함으로써, 설계의 중요 부분들의 모든 상호연결 및 로직 자원들은 SEU FIT 레이트를 감소시키기 위해 TMR(triple modular redundant)로 제조될 필요가 없다. 회로 설계의 중요 부분들은 12T 셀들에 의해 구성된 자원들 상에 배치 및 라우팅될 수 있으며, 회로 설계의 비-중요 부분들은 6T 셀들에 의해 구성된 자원들 상에 배치 및 라우팅될 수 있다. 대안적으로, 회로 설계의 중요 부분들은 6T 구성 메모리 셀들을 사용하여 TMR로 제조될 수 있고, 보우팅 회로(voting circuit)는 SEU에 대해 복원력 있는 보우팅 회로를 제조하기 위해 12T 구성 메모리 셀들을 사용하여 구현될 수 있다. 모든 구성 메모리 셀이 12T SRAM으로 구현되는 것은 아니기 때문에, 프로그래밍 가능 IC의 풋프린트(footprint)는 6T SRAM으로 구현된 모든 구성 메모리 셀들을 갖는 프로그래밍 가능 IC의 풋프린트보다 상당히 크지 않다.
프로그래밍 가능 IC 상의 회로 설계의 구현을 생성하는 개시된 방법들 중 하나에 따라, 제 1 데이터가 회로 설계를 구현하기 위해 생성된다. 예를 들어, 회로 설계는 컴파일되거나, 또한 초기에 맵핑되고 배치 및 라우팅될 수 있다. 설계자는 회로 설계의 선택된 부분을 SEU에 대해 덜 민감하고 매우 신뢰성 있도록 선택할 수 있다. SEU에 대해 덜 민감하고 매우 신뢰성 있도록 지정된 회로 설계의 일부는 또한 "중요 부분"으로서 지칭될 수 있다. 설계자는 중요 부분들을 지정하거나 설계 툴이 입력 회로 설계의 중요 부분들을 자동으로 결정할 수 있다. 예를 들어, 설계의 중요 부분은 프로그래밍 가능 자원의 원하는 기능을 구성하기 위해 그 프로그래밍 가능 자원의 구성 메모리 셀들의 큰 부분을 사용하는 부분일 수 있다. 예를 들어, 회로 설계에 사용되는 대형 룩업 테이블(LUT)은, 대부분의 입력 핀들이 설계에 의해 사용되는 경우, 중요한 것으로 간주될 수 있는데, 그 이유는 구성 메모리 셀들의 큰 부분이 원하는 기능을 구현하는데 사용될 것이기 때문이다. 대조적으로, 입력 핀들 중 몇 개만이 설계에 의해 사용되는 경우, 구성 메모리 셀들의 작은 부분만이 원하는 기능을 구현하는데 사용될 것이고, 구성 메모리 셀들 대부분은 사용되지 않을 것이기 때문에, 대형 LUT는 중요한 것으로 간주되지 않을 것이다. 사용되지 않는 구성 메모리 셀의 업셋(upset)은 회로의 동작에 영향을 주지 않을 것이다. 방법에 따라, 제 2 데이터는 회로 설계를 구현하기 위해 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위해 생성된다. 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에서 회로 설계의 중요 부분을 구현하기 위해 제 1 타입의 구성 메모리 셀들을 프로그래밍하도록 할당된다. 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에서 회로 설계의 비-중요 부분을 구현하기 위해 제 2 타입의 구성 메모리 셀들을 프로그래밍하도록 할당된다. 예시적인 구현에서, 제 1 타입의 구성 메모리 셀들은 제 2 타입의 구성 메모리 셀들보다 SEU에 대해 더 뛰어난 내성을 갖는다. 즉, 제 1 타입의 구성 메모리 셀들은 제 2 타입의 구성 메모리 셀들보다 SEU들에 대해 덜 민감하고 더 낮은 FIT 레이트를 갖는다. 제 2 데이터는 저장되고, 프로그래밍 가능 IC를 구성하는데 추후에 사용될 수 있다.
프로그래밍 가능 IC 상의 회로 설계의 구현을 생성하는 제 2 방법에 따라, 프로그래밍된 프로세서는 회로 설계를 구현하기 위한 제 1 데이터를 생성하고, 회로 설계의 중요 부분은 위에서 설명된 바와 같이 결정된다. 제 2 데이터는 회로 설계를 구현하기 위해 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위해 생성된다. 제 2 방법의 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에서 회로 설계의 중요 부분의 3개 또는 그 초과의 인스턴스들을 구현하기 위해 프로그래밍 가능 IC의 6T 구성 메모리 셀들을 프로그래밍하도록 할당된다. 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에서 보우팅 회로를 구현하기 위해 프로그래밍 가능 IC의 12T 구성 메모리 셀들을 프로그래밍하도록 할당된다. 보우팅 회로는 회로 설계의 제 1 부분의 3개의 인스턴스들로부터 출력 신호들을 수신하도록 커플링된다. 제 2 데이터는 저장되고, 프로그래밍 가능 IC를 구성하는데 추후에 사용될 수 있다.
12T 및 6T 구성 메모리 셀들 둘 다를 갖는 구성 메모리를 구비한 프로그래밍 가능 IC가 또한 개시된다. 프로그래밍 가능 IC에서, 프로그래밍 가능 상호연결 자원들 및 프로그래밍 가능 로직 자원들은 구성 메모리에 커플링된다. 프로그래밍 가능 상호연결 자원들의 상이한 서브세트들은 6T 및 12T 구성 메모리 셀들에 의해 프로그래밍 가능하다. 유사하게, 프로그래밍 가능 로직 자원들의 상이한 서브세트들은 6T 및 12T 구성 메모리 셀들에 의해 프로그래밍 가능하다. 프로그래밍 가능 IC는 또한 구성 메모리에 커플링된 프로그래밍 가능 입력/출력(I/O) 자원들을 포함한다.
도 1은 6T SRAM 구성 메모리로 구성 가능한 프로그래밍 가능 자원들의 하나의 부분 및 12T SRAM 구성 메모리로 구성 가능한 프로그래밍 가능 자원의 다른 부분을 갖는 프로그래밍 가능 집적 회로(IC)(100)의 블록도를 도시한다. 도 1은 프로그래밍 가능 IC의 회로의 물리적 레이아웃을 도시하지 않는다는 것이 인지될 것이다. 오히려, 도 1은, 일부 프로그래밍 가능 자원들이 12T 구성 메모리 셀들로 구성 가능하고 다른 프로그래밍 가능 자원들이 6T 구성 메모리 셀들로 구성 가능하다는 것을 도시한다. 또한, 프로그래밍 가능 IC들은 예시된 것들 외에도, 프로그래밍 가능 자원들의 타입들을 가질 수 있다.
프로그래밍 가능 IC(100)의 프로그래밍 가능 자원들은 프로그래밍 가능 로직 자원들(102 및 104), 프로그래밍 가능 상호연결 자원들(106 및 108), 프로그래밍 가능 입력/출력(I/O) 자원들(110 및 112) 및 메모리 자원들(114 및 116)을 포함한다. 프로그래밍 가능 IC는 구성 메모리 셀들(118) 및 구성 메모리 셀들(120)을 더 포함한다. 구성 메모리 셀들(118)은 구성 메모리 셀들(120)보다 SEU 업셋들에 대해 덜 민감하다. 예시적인 구현에서, 구성 메모리 셀들(118)은 12T 메모리 셀들이고, 구성 메모리 셀들(120)은 6T 메모리 셀들이다.
프로그래밍 가능 로직, 프로그래밍 가능 상호연결 및 프로그래밍 가능 I/O 자원들의 상이한 서브세트는 상이한 타입들의 구성 메모리로 프로그래밍 가능하다. 예를 들어, 프로그래밍 가능 로직 자원들(102)은 12T SRAM으로 구현되는 구성 메모리(118)로 프로그래밍 가능하고, 프로그래밍 가능 로직 자원들(104)은 6T SRAM으로 구현되는 구성 메모리(120)로 프로그래밍 가능하다. 유사하게, 프로그래밍 가능 상호연결 자원들(106) 및 프로그래밍 가능 I/O 자원들(110)은 구성 메모리(118)로 프로그래밍 가능하고, 프로그래밍 가능 상호연결 자원들(108) 및 프로그래밍 가능 I/O 자원들(112)은 구성 메모리(120)로 프로그래밍 가능하다.
프로그래밍 가능 IC(100)는 프로그래밍 가능 로직 자원들(102 및 104), 프로그래밍 가능 상호연결 자원들(106 및 108), 및 프로그래밍 가능 I/O 자원들(110 및 112) 상에 구현된 애플리케이션 회로에 의한 애플리케이션 데이터의 저장을 위해 사용될 수 있는 메모리 자원들(114 및 116)을 더 포함한다. 메모리 자원들(114)은 12T SRAM으로 구현될 수 있고, 메모리 자원들(116)은 6T SRAM으로 구현될 수 있다. 프로그래밍 가능 IC(100) 상에 구현된 애플리케이션 회로에 대해 중요한 것으로 간주되는 데이터는 SEU에 대한 민감성을 감소시키기 위해 메모리 자원들(114)에 저장될 수 있다. 덜 중요한 데이터는 메모리 자원들(116)에 저장될 수 있다.
프로그래밍 가능 IC의 다른 구성 메모리보다 SEU 업셋들에 대해 덜 민감한 일부 구성 메모리를 갖는 프로그래밍 가능 IC(100)는 프로그래밍 가능 IC 상에 구현된 회로들에 대한 FIT 레이트를 감소시키기 위한 일환으로 유연성(flexibility)을 제공한다. 예를 들어, 회로 설계의 중요 부분들은 12T 메모리 셀들로 구현된 구성 메모리(118)에 의해 구성 가능한 프로그래밍 가능 자원들 상에 구현될 수 있고, 회로 설계의 덜 중요한 부분들은 6T 메모리 셀들로 구현된 구성 메모리(120)에 의해 구성 가능한 프로그래밍 가능 자원들 상에 구현될 수 있다. 대안적으로, 회로 설계의 중요 부분은 6T 메모리 셀들로 구현된 구성 메모리(120)에 의해 구성 가능한 프로그래밍 가능 자원들 상에서 TMR 회로로서 구현될 수 있고, 보우팅 회로는 12T 메모리 셀들로 구현된 구성 메모리(118)에 의해 구성 가능한 프로그래밍 가능 자원들 상에 구현될 수 있다. 프로그래밍 가능 IC가 너무 커지는 것을 방지하기 위해, 6T 구성 메모리 셀들보다 적은 12T 구성 메모리 셀들이 있다. 예를 들어, 구성 메모리 셀들의 5-10%는 12T 구성 메모리 셀들일 수 있고, 잔여 구성 메모리 셀들은 6T 셀들일 수 있다.
도 2는 프로그래밍 가능 IC의 다른 구성 메모리 셀들보다 SEU들에 대해 덜 민감한 일부 구성 메모리 셀들을 갖는 프로그래밍 가능 IC 상의 회로 설계의 구현을 생성하기 위한 프로세스의 흐름도를 도시한다. 회로 설계는 블록(202)에서 프로세싱을 위해 입력되고, 블록(204)에서 초기 구현 데이터가 생성된다. 초기 구현 데이터는 회로 설계를 합성하거나 회로 설계를 추가로 맵핑 및/또는 배치 및 라우팅하는 결과일 수 있다. 설계자 입력에 기초하여, 회로 설계의 부분들은 SEU에 덜 민감하고 매우 신뢰성 있게 제조될 수 있다. 설계자는 매우 신뢰성("중요") 있게 제조될 회로 설계의 특정 부분들을 지정할 수 있거나, 중요 부분들이 자동으로 결정될 수 있다. 블록(206)에서, 프로세스는 회로 설계의 중요 부분 및 비-중요 부분을 결정한다.
자동화된 절차에서, 구현된 회로 설계의 전체 FIT 레이트에서 회로 설계의 부분의 FIT 레이트가 중요한 팩터인 경우, 그 부분이 중요한 것으로 간주될 수 있다. 예를 들어, 회로 설계에 사용되는 대형 룩업 테이블(LUT)은, 대부분의 입력 핀들이 설계에 의해 사용되는 경우 중요한 것으로 간주될 수 있는데, 그 이유는 구성 메모리 셀들의 큰 부분이 원하는 기능을 구현하는데 사용될 것이기 때문이다. 대조적으로, 입력 핀들 중 몇 개만이 설계에 의해 사용되는 경우, 구성 메모리 셀들의 작은 부분만이 원하는 기능을 구현하는데 사용될 것이고, 구성 메모리 셀들 대부분은 사용되지 않을 것이기 때문에, 대형 LUT(LUT는 매우 다수의 입력 핀들을 가짐)는 중요한 것으로 간주되지 않을 것이다. 사용되지 않는 구성 메모리 셀의 업셋(upset)은 회로의 동작에 영향을 주지 않을 것이다. 유사하게, 단지 몇 개의 구성 메모리 셀들만이 작은 LUT 상에 기능을 구현하는데 사용될 것이므로, 그 LUT는 비-중요한 것으로 간주될 수 있다. 예시적인 구현에서, 회로 설계의 부분이 임계수 초과의 입력 핀들을 갖는 LUT 상에서 구현되고 사용되는 입력 핀들의 수가 임계치보다 큰 경우, 그 부분은 중요한 것으로 결정될 수 있다. 예를 들어, 회로 설계의 부분이 적어도 6개의 입력 핀들을 갖는 LUT 상에서 구현되고 입력 핀들 중 적어도 5개가 사용되는 것에 대한 응답으로, 그 부분은 중요한 것으로 결정될 수 있다. 회로 설계의 중요 및 비-중요 부분들의 다른 양상들은, Jain 등에 의해 2014년 4월 30일 출원되고 대리인 문서 번호 X-4399 US를 갖는, 발명의 명칭이 "SELECTION OF LOGIC PATHS FOR REDUNDANCY"인 공동 계류중인 특허 출원 일련 번호 제14/266,547호에서 추가로 설명되며, 이는 그 전체가 본원에 인용에 의해 포함된다.
결정 블록(208)에서, 프로세스는 회로 설계의 중요 부분을 구현하기 위한 접근법을 선택한다. 접근법은 원하는 접근법을 지정하는 설계자 입력에 대한 응답으로 선택될 수 있다. 제 1 접근법에서, 중요 부분은 12T 구성 메모리 셀들로 프로그래밍된 프로그래밍 가능 자원들을 사용하여 구현되고, 제 2 접근법에서, 중요 부분은 TMR 회로로서 구현되며, 12T 구성 메모리 셀들은 보우팅 회로를 구현하는데 사용된다.
제 1 접근법에서, 블록(210)에서, 회로 설계는 중요 부분을 구현하기 위해 12T 구성 메모리 셀들에 의해 프로그래밍된 프로그래밍 가능 자원들을 할당함으로써 맵핑, 배치 및 라우팅된다. 회로 설계가 이전에 맵핑, 배치 및 라우팅된 경우, 프로세스는 상응하게 회로 설계를 재맵핑, 재배치 및 재라우팅할 수 있다.
블록(212)에서, 구성 데이터는 회로 설계를 구현하기 위해 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위해 생성된다. 구성 데이터의 제 1 서브세트는, 프로그래밍 가능 IC의 (블록(210)에서 결정된 바와 같이) 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 (블록(210)에서 결정된 바와 같이) 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에서 회로 설계의 중요 부분을 구현하기 위해 12T 구성 메모리 셀들을 프로그래밍한다. 예를 들어, 구성 데이터는 프로그래밍 가능 로직 자원들(102) 및 프로그래밍 가능 상호연결 자원들(106) 상에서 중요 부분들을 구현하기 위해, 12T 메모리 셀로 구현되는 구성 메모리(118)(도 1)의 부분들을 프로그래밍하기 위한 것일 수 있다. 회로 설계의 비-중요 부분은 프로그래밍 가능 IC의 이용 가능한 프로그래밍 가능 자원들 중 임의의 것 상에서 구현될 수 있다. 예를 들어, 회로 설계의 비-중요 부분은 프로그래밍 가능 IC의 (블록(210)에서 결정된 바와 같은) 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 (블록(210)에서 결정된 바와 같은) 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에서 구현될 수 있으며, 여기서 자원들의 제 2 서브세트들은 단지 6T 구성 메모리 셀들로만 또는 6T 및 12T 구성 메모리 셀들의 조합으로 프로그래밍된다. 비-중요 부분을 구현하기 위한 구성 데이터는 프로그래밍 가능 로직 자원들(104) 및 프로그래밍 가능 상호연결 자원들(108) 상에서 비-중요 부분을 구현하기 위해, 6T 메모리 셀들로 구현되는 구성 메모리(120)(도 1)의 부분들을 프로그래밍하기 위한 것일 수 있다.
회로 설계의 중요 부분은 회로 설계에 의해 액세스되는 데이터를 저장하는 메모리 자원들을 더 포함할 수 있다. 생성된 구성 데이터는, 프로그래밍 가능 로직 자원들(102) 및/또는 프로그래밍 가능 로직 자원들(104)을 12T 메모리 셀들에 의해 구현되는 메모리 자원들(114)에 연결하도록 프로그래밍 가능 상호연결 자원들(106) 및/또는 프로그래밍 가능 상호연결 자원들(108)을 프로그래밍하는 구성 데이터를 더 포함할 수 있다.
회로 설계의 비-중요 부분은 회로 설계에 의해 액세스되는 비-중요 데이터를 저장하는 메모리 자원들을 더 포함할 수 있다. 생성된 구성 데이터는, 프로그래밍 가능 로직 자원들(102) 및/또는 프로그래밍 가능 로직 자원들(104)을 6T 메모리 셀들에 의해 구현되는 메모리 자원들(116)에 연결하도록 프로그래밍 가능 상호연결 자원들(106) 및/또는 프로그래밍 가능 상호연결 자원들(108)을 프로그래밍하는 구성 데이터를 더 포함할 수 있다.
블록(214)에서, 블록(212)에서 생성된 구성 데이터는 전자적으로 판독 가능한 저장 매체에 출력 및/또는 저장된다. 구성 데이터는 플래시 메모리 또는 자기 저장 디바이스와 같은 데이터 저장 디바이스에 출력 및 저장될 수 있다.
회로 설계의 중요 부분이 TMR 회로로서 구현되는 경우, 결정 블록(208)은 프로세스를 블록(222)으로 지향시킨다. 예시적인 접근법에서, 회로 설계의 중요 부분은 6T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 자원들을 갖는 TMR로 제조되고 보우팅 회로는 12T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 자원들에서 구현된다.
블록(222)에서, 회로 설계의 중요 부분의 3개의 인스턴스를 구현하도록 프로그래밍 가능 자원들을 할당함으로써 회로 설계가 맵핑되고, 배치되고, 라우팅된다. 자원들은 단지 6T 구성 메모리 셀들 또는 6T 및 12T 구성 메모리 셀들의 조합에 의해 프로그래밍될 수 있다. 회로 설계가 이전에 맵핑, 배치 및 라우팅된 경우, 프로세스는 상응하게 회로 설계를 재맵핑, 재배치 및 재라우팅할 수 있다.
프로그래밍 가능 자원들은 또한, 보우팅 회로를 구현하고 보우팅 회로를 TMR 회로에 연결하기 위해 블록(222)에서 할당된다. 보우팅 회로를 구현하고 보우팅 회로를 TMR 회로에 연결하는 프로그래밍 가능 자원들은 12T 구성 메모리 셀들로만 프로그래밍되며, 이는 SEU들로부터 보우팅 회로를 보호하는걸 돕는다.
블록(224)에서, 구성 데이터는, TMR 회로 및 보우팅 회로를 구현하는 프로그래밍 가능 자원들을 프로그래밍하는 구성 메모리 셀들을 프로그래밍하기 위해 생성된다. 구성 데이터는, 블록(222)에서 결정된 바와 같이 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들 및 프로그래밍 가능 상호연결 자원들의 서브세트들의 기능을 구성하는 구성 메모리 셀들을 프로그래밍하도록 지정된다. TMR 회로에 대해, 예를 들어, 구성 데이터는 프로그래밍 가능 로직 자원들(104) 및 프로그래밍 가능 상호연결 자원들(108)의 부분들 상에서 중요 부분을 구현하기 위해, 6T 메모리 셀들로 구현되는 구성 메모리(120)(도 1)의 부분들을 프로그래밍하기 위한 것일 수 있다. 보우팅 회로에 대해, 예를 들어, 구성 데이터는 프로그래밍 가능 로직 자원들(102) 및 프로그래밍 가능 상호연결 자원들(106)의 부분들 상에서 보우팅 회로를 구현하기 위해, 12T 메모리 셀들로 구현되는 구성 메모리(118)(도 1)의 부분들을 프로그래밍하기 위한 것일 수 있다. 구성 데이터는 또한, 회로 설계의 중요 부분을 구현하는 TMR 회로(예를 들어, 도 3의 인스턴스들(302, 304, 306))로부터 출력 신호들을 수신하기 위해 보우팅 회로를 연결하도록 프로그래밍 가능 자원들을 구성한다.
블록(226)에서, 블록(224)에서 생성된 구성 데이터는 전자적으로 판독 가능한 저장 매체에 출력 및/또는 저장된다. 구성 데이터는 플래시 메모리 또는 자기 저장 디바이스와 같은 데이터 저장 디바이스에 출력 및 저장될 수 있다.
도 3은 12T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 자원들로 구현되는 보우팅 회로와 함께, 6T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 자원들에서 TMR(triple modular redundant)로서 구현되는 회로 설계의 일부의 블록도를 도시한다. 12T 메모리 셀들을 갖는 구성 메모리로 구성된 프로그래밍 가능 자원들 상에서 회로 설계의 중요 부분들을 구현하는 대신, 중요 부분은 6T 메모리 셀들을 갖는 구성 메모리로 구성된 프로그래밍 가능 자원들 상에서 TMR 회로로서 구현될 수 있다. 보우팅 회로는 12T 메모리 셀들을 갖는 구성 메모리로 구성된 프로그래밍 가능 자원들 상에서 구현될 수 있으며, 이는 SEU에 대한 보우팅 회로의 민감성을 감소시킨다.
회로 설계의 중요 부분은 블록들(302, 304, 306, 308, 310 및 312)로 구현되는 것으로 도시된다. 블록들(302, 304 및 306)은 각각의 프로그래밍 가능 로직(PL) 자원들 및 프로그래밍 가능 상호연결(INT) 자원들 상에서 구현되는 회로 설계의 중요 부분의 3개의 인스턴스들을 나타낸다. 블록들(308, 310 및 312)은 중요 부분의 각각의 인스턴스를 보우팅 회로(314)에 연결하는 상호연결 자원들을 나타낸다. 회로 설계의 중요 부분들의 인스턴스들 및 보우팅 회로의 연결들은, 회로가 3중화(triplicate)되기 때문에, 6T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 자원들 상에서 구현될 수 있다. 보우팅 회로는 12T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 로직 자원들 및 프로그래밍 가능 상호연결 자원들 상에서 구현될 수 있으며, 이는 SEU들에 대한 보우팅 회로의 민감성을 감소시킨다. 보우팅 회로(314)는 인스턴스들(302, 304, 306) 및 상호연결 회로들(308, 310, 및 312) 중 기껏해야 하나가 SEU를 겪는 한 예상되는 결과들을 출력할 것이다.
회로 설계의 비-중요 부분들은 6T 구성 메모리 셀들로 구성 가능한 프로그래밍 가능 로직 자원들 및 프로그래밍 가능 상호연결 자원들 상에서 구현될 수 있다. 예를 들어, 비-중요 부분(316)은 TMR 회로(중요 부분)에 입력을 제공하고, 비-중요 부분(318)은 보우팅 회로(314)를 통해 중요 부분으로부터의 출력을 수신한다. 프로그래밍 가능 상호연결 자원들(309)은 비-중요 부분(316)을 중요 부분의 TMR 인스턴스들(302, 304 및 306)에 연결하고, 프로그래밍 가능 상호연결 자원들(308)은 12T 구성 메모리 셀들로 구성 가능하다.
도 4는 본원에서 설명된 프로세스들 및 데이터 구조들을 구현하도록 구성될 수 있는 컴퓨팅 어레인지먼트의 예를 도시한다. 프로세서 컴퓨팅 어레인지먼트(500)는, 실행 가능한 컴퓨터 코드에 따라 프로그래밍된 하나 또는 그 초과의 프로세서(502), 클록 신호 생성기(504), 메모리 어레인지먼트(506), 저장 어레인지먼트(508) 및 입력/출력 제어 유닛(510)을 포함하며, 모두가 호스트 버스(512)에 커플링된다. 어레인지먼트(500)는 회로 보드 상에 별도의 컴포넌트들로 구현될 수 있거나 집적 회로 내에서 내부적으로 구현될 수 있다. 집적 회로 내에서 내부적으로 구현될 때, 프로세서 컴퓨팅 어레인지먼트는 다르게는, 마이크로제어기로서 알려진다.
컴퓨팅 어레인지먼트의 아키텍처는 당업자에 의해 인지될 바와 같은 구현 요건들에 의존한다. 프로세서(들)(502)는 하나 또는 그 초과의 범용 프로세서들, 또는 하나 또는 그 초과의 범용 프로세서들 및 적합한 보조-프로세서들의 조합, 또는 하나 또는 그 초과의 특수 프로세서들(예를 들어, RISC, CISC, 파이프라인 등)일 수 있다.
메모리 어레인지먼트(506)는 통상적으로 다중 레벨들의 캐시 메모리 및 메인 메모리를 포함한다. 저장 어레인지먼트(508)는 자기 디스크들(도시되지 않음), 플래시, EPROM 또는 다른 비-휘발성 데이터 저장소에 의해 제공되는 것과 같은 로컬 및/또는 원격 영구 저장소를 포함할 수 있다. 저장 유닛은 읽기 또는 읽기/쓰기가 가능할 수 있다. 또한, 메모리 어레인지먼트(506) 및 저장 어레인지먼트(508)는 단일 어레인지먼트에서 결합될 수 있다.
프로세서(들)(502)는 저장 어레인지먼트(508) 및/또는 메모리 어레인지먼트(506)의 소프트웨어를 실행하고, 저장 어레인지먼트(508) 및/또는 메모리 어레인지먼트(506)로부터 데이터를 판독하고 저장 어레인지먼트(508) 및/또는 메모리 어레인지먼트(506)에 데이터를 저장하며, 입/출력 제어 어레인지먼트(510)를 통해 외부 디바이스들과 통신한다. 이들 기능들은 클록 신호 생성기(504)에 의해 동기화된다. 컴퓨팅 어레인지먼트의 자원은 운영 체제(도시되지 않음) 또는 하드웨어 제어 유닛(도시되지 않음) 중 어느 하나에 의해 관리될 수 있다.
도 5는 개시된 회로들이 구현될 수 있는 프로그래밍 가능 집적 회로(IC)(600)를 도시한다. 프로그래밍 가능 IC는 다른 프로그래밍 가능 자원들과 함께 필드 프로그래밍 가능 게이트 어레이 로직(FPGA)을 포함하는 SOC(System On Chip)로서 또한 지칭될 수 있다. FPGA 로직은 몇 개의 상이한 타입들의 프로그래밍 가능 로직 블록들을 어레이로 포함할 수 있다. 예를 들어, 도 5는, 멀티-기가비트 트랜시버들(MGT들)(601), 구성 가능한 로직 블록들(CLB들)(602), 랜덤 액세스 메모리 블록들(BRAM들)(603), 입력/출력 블록들(IOB들)(604), 구성 및 클로킹 로직(CONFIG/CLOCKs)(605), 디지털 신호 프로세싱 블록들(DSP들)(606), 특수 입력/출력 블록들(I/O)(607), 예를 들어, 클록 포트들, 및 디지털 클록 관리자들, 아날로그-디지털 변환기들, 시스템 모니터링 로직 등과 같은 다른 프로그래밍 가능 로직(608) 등을 포함하는 매우 다수의 상이한 프로그래밍 가능 타일들을 포함하는 프로그래밍 가능 IC(600)를 예시한다. FPGA 로직을 갖는 일부 프로그래밍 가능 IC는 또한 전용 프로세서 블록들(PROC)(610) 및 내부 및 외부 재구성 포트들(도시되지 않음)을 포함한다.
일부 FPGA 로직에서, 각각의 프로그래밍 가능 타일들은 각각의 인접한 타일들의 대응하는 상호연결 엘리먼트로의 그리고 이로부터의 표준화된 연결들을 갖는 프로그래밍 가능 상호연결 엘리먼트(INT)(611)를 포함한다. 따라서, 함께 취해진 프로그래밍 가능 상호 연결 엘리먼트들은 예시된 FPGA 로직에 대한 프로그래밍 가능 상호 연결 구조를 구현한다. 프로그래밍 가능 상호 연결 엘리먼트(INT)(611)는 또한 도 5의 상부에 포함된 예들에 의해 도시된 바와 같이, 동일한 타일 내의 프로그래밍 가능 로직 엘리먼트로의 그리고 이로부터의 연결들을 포함한다.
예를 들어, CLB(602)는, 단일 프로그래밍 가능 상호연결 엘리먼트(INT)(611)에 추가로, 사용자 로직을 구현하도록 프로그래밍될 수 있는 구성 가능한 로직 엘리먼트(CLE)(612)를 포함할 수 있다. BRAM(603)은 하나 또는 그 초과의 프로그래밍 가능 상호연결 엘리먼트 외에도, BRAM 로직 엘리먼트(BRL)(613)를 포함할 수 있다. 통상적으로, 타일에 포함된 상호연결 엘리먼트들의 수는 타일의 높이에 의존한다. 도시된 실시예에서, BRAM 타일은 5개의 CLB들과 동일한 높이를 갖지만, 다른 수들(예를 들어, 4)이 또한 사용될 수 있다. DSP 타일(606)은 적절한 수의 프로그래밍 가능 상호연결 엘리먼트들 외에도, DSP 로직 엘리먼트(DSPL)(614)를 포함할 수 있다. IOB(604)는 예를 들어, 프로그래밍 가능 상호연결 엘리먼트(INT)(611)의 하나의 인스턴스 외에도, 입력/출력 로직 엘리먼트(IOL)(615)의 2개의 인스턴스를 포함할 수 있다. 당업자에게 명백한 바와 같이, 예를 들어 I/O 로직 엘리먼트(615)에 연결된 실제 I/O 결합 패드들은 다양한 예시된 로직 블록들 위에 적층되는 금속을 이용하여 제조되고, 통상적으로 입/출력 로직 엘리먼트(615)의 영역으로 국한되지 않는다.
도시된 실시예에서, 다이의 중심 부근의 원주 영역(도 5에 음영지게 도시됨)은 구성, 클록 및 다른 제어 로직을 위해 사용된다. 이 열로부터 연장하는 수평 영역들(609)은 프로그래밍 가능 IC의 폭에 걸쳐 클록들 및 구성 신호들을 분배하는데 사용된다.
도 5에 도시된 아키텍처를 활용하는 일부 프로그래밍 가능 IC들은, 프로그래밍 가능 IC의 큰 부분을 구성하는 정규 원주 구조(columnar structure)를 방해하는 추가 로직 블록들을 포함한다. 추가 로직 블록들은 프로그래밍 가능 블록들 및/또는 전용 로직일 수 있다. 예를 들어, 도 5에 도시된 프로세서 블록(PROC)(610)은 CLB들 및 BRAM들의 여러 열들에 걸쳐있다.
또한, 도 5는 단지 예시적인 프로그래밍 가능 IC 아키텍처를 예시하도록 의도된다는 점에 주의한다. 열에서 로직 블록들의 수, 열들의 상대적인 폭, 열들의 수 및 순서, 열들에 포함된 로직 블록들의 타입들, 로직 블록들의 상대적 크기 및 도 5의 상부에 포함된 상호연결/로직 구현들은 순전히 예시적이다. 예를 들어, 실제 프로그래밍 가능 IC에서, CLB들의 2개 이상의 인접한 열은 통상적으로 CLB가 나타나는 곳마다 포함되어 사용자 로직의 효율적인 구현을 용이하게 한다.
다수의 예들이 제공된다.
일 예에서, 프로그래밍 가능 집적 회로 상의 회로 설계의 구현을 생성하는 방법이 제공된다. 이러한 방법은, 프로그래밍된 프로세서 상에서, 회로 설계를 입력하는 동작; 회로 설계를 구현하기 위한 제 1 데이터를 생성하는 동작; 회로 설계의 중요 부분 및 비-중요 부분을 결정하는 동작; 회로 설계를 구현하기 위해 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위한 제 2 데이터를 생성하는 동작; 그리고 제 2 데이터를 전자적으로 판독 가능한 저장 매체에 저장하는 동작을 수행하는 단계를 포함할 수 있고, 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에서 회로 설계의 중요 부분을 구현하기 위해 제 1 타입의 구성 메모리 셀들을 프로그래밍하도록 할당되고, 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에서 회로 설계의 비-중요 부분을 구현하기 위해 제 2 타입의 구성 메모리 셀들을 프로그래밍하도록 할당된다.
일부 이러한 방법들에서, 제 1 타입의 구성 메모리 셀들은 제 2 타입의 구성 메모리 셀들보다 SEU들(single event upsets)에 대해 더 뛰어난 내성을 가질 수 있다.
일부 이러한 방법들에서, 제 1 타입의 구성 메모리 셀들은 12T 메모리 셀들이고 제 2 타입의 구성 메모리 셀들은 6T 메모리 셀들이다.
일부 이러한 방법들에서, 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함한다.
일부 이러한 방법들에서, 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 로직 자원들의 제 1 서브세트에 의해 프로세싱된 데이터의 저장을 위해 프로그래밍 가능 상호연결 자원들의 제 1 서브세트를 통해, 프로그래밍 가능 로직 자원들의 제 1 서브세트를 프로그래밍 가능 IC의 메모리 자원들의 제 1 서브세트에 연결하는 구성 데이터를 포함하고; 그리고 메모리 자원들의 제 1 서브세트는 12T 메모리 셀들에 의해 구현된다.
일부 이러한 방법들에서, 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 로직 자원들의 제 2 서브세트에 의해 프로세싱된 데이터의 저장을 위해 프로그래밍 가능 상호연결 자원들의 제 2 서브세트를 통해, 프로그래밍 가능 로직 자원들의 제 2 서브세트를 프로그래밍 가능 IC의 메모리 자원들의 제 2 서브세트에 연결하는 구성 데이터를 포함하고; 그리고 메모리 자원들의 제 2 서브세트는 6T 메모리 셀들에 의해 구현된다.
일부 이러한 방법들에서, 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함하고; 그리고 제 1 타입의 구성 메모리 셀들은 제 2 타입의 구성 메모리 셀들보다 SEU들(single event upsets)에 대해 더 뛰어난 내성을 갖는다.
일부 이러한 방법들에서, 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함하고; 그리고 제 1 타입의 구성 메모리 셀들은 12T 메모리 셀들이고 제 2 타입의 구성 메모리 셀들은 6T 메모리 셀들이다.
일부 이러한 방법들에서, 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함하고; 그리고 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 로직 자원들의 제 1 서브세트에 의해 프로세싱된 데이터의 저장을 위해 프로그래밍 가능 상호연결 자원들의 제 1 서브세트를 통해, 프로그래밍 가능 로직 자원들의 제 1 서브세트를 프로그래밍 가능 IC의 메모리 자원들의 제 1 서브세트에 연결하는 구성 데이터를 포함하고, 메모리 자원들의 제 1 서브세트는 12T 메모리 셀들에 의해 구현된다.
다른 예에서, 프로그래밍 가능 집적 회로 상의 회로 설계의 구현을 생성하는 방법이 제공된다. 이러한 방법은, 프로그래밍된 프로세서 상에서, 회로 설계를 입력하는 동작; 회로 설계를 구현하기 위한 제 1 데이터를 생성하는 동작; 회로 설계의 중요 부분 및 비-중요 부분을 결정하는 동작; 회로 설계를 구현하기 위해 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위한 제 2 데이터를 생성하는 동작; 제 2 데이터를 전자적으로 판독 가능한 저장 매체에 저장하는 동작을 수행하는 단계를 포함할 수 있고, 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에서 회로 설계의 중요 부분의 3개 또는 그 초과의 인스턴스들을 구현하기 위해 프로그래밍 가능 IC의 6T 구성 메모리 셀들을 프로그래밍하도록 할당되고; 그리고 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에서 보우팅 회로를 구현하기 위해 프로그래밍 가능 IC의 12T 구성 메모리 셀들을 프로그래밍하도록 할당되고, 보우팅 회로는 회로 설계의 중요 부분의 3개 또는 그 초과의 인스턴스들로부터 출력 신호들을 수신하도록 커플링된다.
일부 이러한 방법들에서, 제 2 데이터는, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 3 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 3 서브세트 상에서 회로 설계의 비-중요 부분을 구현하기 위해 프로그래밍 가능 IC의 6T 구성 메모리 셀들을 프로그래밍하기 위한 제 2 데이터의 제 3 서브세트를 포함한다.
이러한 방법들에서, 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함한다.
프로그래밍 가능 IC가 제공될 수 있다. 이러한 프로그래밍 가능 IC는 복수의 6T 메모리 셀들 및 복수의 12T 메모리 셀들을 포함하는 구성 메모리; 구성 메모리에 커플링된 프로그래밍 가능 상호연결 자원들 - 프로그래밍 가능 상호연결 자원들의 제 1 서브세트는 6T 메모리 셀들의 서브세트에 의해 프로그래밍 가능하고, 프로그래밍 가능 상호연결 자원들의 제 2 서브세트는 12T 메모리 셀들의 서브세트에 의해 프로그래밍 가능함 - ; 구성 메모리에 커플링된 프로그래밍 가능 로직 자원들 - 프로그래밍 가능 로직 자원들의 제 1 서브세트는 6T 메모리 셀들의 서브세트에 의해 프로그래밍 가능하고, 프로그래밍 가능 로직 자원들의 제 2 서브세트는 12T 메모리 셀들의 서브세트에 의해 프로그래밍 가능함 -; 및 구성 메모리에 커플링된 프로그래밍 가능 입출력(I/O) 자원들을 포함할 수 있다.
일부 이러한 IC들은, 프로그래밍 가능 로직 자원들에 의해 프로세싱되는 데이터의 저장을 위한 메모리 자원들을 더 포함할 수 있고, 메모리 자원들은 프로그래밍 가능 상호연결 자원들을 통해 프로그래밍 가능 로직 자원들에 연결 가능하고; 메모리 자원들의 제 1 서브세트는 6T 메모리 셀들이고; 그리고 상기 메모리 자원들의 제 2 서브세트는 12T 메모리 셀들이다.
일부 이러한 IC들은, 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 및 프로그래밍 가능 로직 자원들의 제 1 서브세트에서 구현되는 TMR(triple modular redundant) 회로; 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트에서 구현되는 보우팅 회로를 더 포함할 수 있고, 보우팅 회로는 프로그래밍 가능 상호연결 자원들의 제 1 서브세트를 통해 TMR 회로에 커플링된다.
일부 이러한 IC들은, 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에 구현되는 회로 설계의 제 1 부분; 및 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에 구현되는 회로 설계의 제 2 부분을 더 포함할 수 있다.
일부 이러한 IC들에서, 복수의 6T 메모리 셀들은 복수의 12T 메모리 셀들보다 수적으로 더 많다.
양상들 및 특징들이 일부 경우들에서, 개별 도면들에서 설명될 수 있지만, 하나의 도면으로부터의 특징들은, 그 조합이 명시적으로 도시되지 않거나 조합으로서 명시적으로 설명되지 않더라도 다른 도면의 특징들과 조합될 수 있다는 것이 인지될 것이다.
방법들 및 시스템은 SEU들에 대해 보호하기 위해 회로 설계를 프로세싱하기 위한 다양한 시스템들에 적용 가능하게 되는 것으로 간주된다. 다른 양상들 및 특징들은 명세서의 고려로부터 당업자들에게 명백하게 될 것이다. 명세서 및 도면들은 단지 예시적인 것으로 고려되도록 의도되며, 본 발명의 진정한 범위는 다음의 청구범위에 의해 표시된다.

Claims (14)

  1. 프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법으로서,
    프로그래밍된 프로세서 상에서,
    회로 설계를 입력하는 동작;
    상기 회로 설계를 구현하기 위한 제 1 데이터를 생성하는 동작;
    상기 회로 설계의 중요 부분 및 비-중요 부분을 결정하는 동작;
    상기 회로 설계를 구현하기 위해 상기 프로그래밍 가능 IC의 구성 메모리 셀들을 프로그래밍하기 위한 제 2 데이터를 생성하는 동작;
    상기 제 2 데이터를 전자적으로 판독 가능한 저장 매체에 저장하는 동작을 수행하는 단계를 포함하고,
    상기 제 2 데이터의 제 1 서브세트는, 상기 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에서 상기 회로 설계의 중요 부분을 구현하기 위해 제 1 타입의 구성 메모리 셀들을 프로그래밍하도록 할당되고,
    상기 제 2 데이터의 제 2 서브세트는, 상기 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에서 상기 회로 설계의 비-중요 부분을 구현하기 위해 제 2 타입의 구성 메모리 셀들을 프로그래밍하도록 할당되는,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 타입의 구성 메모리 셀들은 상기 제 2 타입의 구성 메모리 셀들보다 SEU들(single event upsets)에 대해 더 뛰어난 내성을 갖는,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 1 타입의 구성 메모리 셀들은 12T 메모리 셀들이고 상기 제 2 타입의 구성 메모리 셀들은 6T 메모리 셀들인,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함하는,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 로직 자원들의 제 1 서브세트에 의해 프로세싱된 데이터의 저장을 위해 프로그래밍 가능 상호연결 자원들의 제 1 서브세트를 통해, 상기 프로그래밍 가능 로직 자원들의 제 1 서브세트를 상기 프로그래밍 가능 IC의 메모리 자원들의 제 1 서브세트에 연결하는 구성 데이터를 포함하고; 그리고
    상기 메모리 자원들의 제 1 서브세트는 12T 메모리 셀들에 의해 구현되는,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  6. 제 5 항에 있어서,
    상기 제 2 데이터의 제 2 서브세트는, 프로그래밍 가능 로직 자원들의 제 2 서브세트에 의해 프로세싱된 데이터의 저장을 위해 프로그래밍 가능 상호연결 자원들의 제 2 서브세트를 통해, 상기 프로그래밍 가능 로직 자원들의 제 2 서브세트를 상기 프로그래밍 가능 IC의 메모리 자원들의 제 2 서브세트에 연결하는 구성 데이터를 포함하고; 그리고
    상기 메모리 자원들의 제 2 서브세트는 6T 메모리 셀들에 의해 구현되는,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  7. 제 1 항에 있어서,
    상기 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함하고; 그리고
    상기 제 1 타입의 구성 메모리 셀들은 상기 제 2 타입의 구성 메모리 셀들보다 SEU들(single event upsets)에 대해 더 뛰어난 내성을 갖는,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  8. 제 1 항에 있어서,
    상기 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함하고; 그리고
    상기 제 1 타입의 구성 메모리 셀들은 12T 메모리 셀들이고 상기 제 2 타입의 구성 메모리 셀들은 6T 메모리 셀들인,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  9. 제 1 항에 있어서,
    상기 중요 부분을 결정하는 동작은 임계치보다 큰 사용된 입력들의 수를 갖는 룩업 테이블들(LUT들)을 결정하는 동작을 포함하고; 그리고
    상기 제 2 데이터의 제 1 서브세트는, 프로그래밍 가능 로직 자원들의 제 1 서브세트에 의해 프로세싱된 데이터의 저장을 위해 프로그래밍 가능 상호연결 자원들의 제 1 서브세트를 통해, 상기 프로그래밍 가능 로직 자원들의 제 1 서브세트를 상기 프로그래밍 가능 IC의 메모리 자원들의 제 1 서브세트에 연결하는 구성 데이터를 포함하고, 상기 메모리 자원들의 제 1 서브세트는 12T 메모리 셀들에 의해 구현되는,
    프로그래밍 가능 집적 회로(IC) 상의 회로 설계의 구현을 생성하는 방법.
  10. 프로그래밍 가능 집적 회로(IC)로서,
    복수의 6T 메모리 셀들 및 복수의 12T 메모리 셀들을 포함하는 구성 메모리;
    상기 구성 메모리에 커플링된 프로그래밍 가능 상호연결 자원들 ― 상기 프로그래밍 가능 상호연결 자원들의 제 1 서브세트는 상기 6T 메모리 셀들의 서브세트에 의해 프로그래밍 가능하고, 상기 프로그래밍 가능 상호연결 자원들의 제 2 서브세트는 상기 12T 메모리 셀들의 서브세트에 의해 프로그래밍 가능함 ― ;
    상기 구성 메모리에 커플링된 프로그래밍 가능 로직 자원들 ― 상기 프로그래밍 가능 로직 자원들의 제 1 서브세트는 상기 6T 메모리 셀들의 서브세트에 의해 프로그래밍 가능하고, 상기 프로그래밍 가능 로직 자원들의 제 2 서브세트는 상기 12T 메모리 셀들의 서브세트에 의해 프로그래밍 가능함 ― ; 및
    상기 구성 메모리에 커플링된 프로그래밍 가능 입출력(I/O) 자원들을 포함하는,
    프로그래밍 가능 집적 회로(IC).
  11. 제 10 항에 있어서,
    상기 프로그래밍 가능 로직 자원들에 의해 프로세싱되는 데이터의 저장을 위한 메모리 자원들을 더 포함하며,
    상기 메모리 자원들은 상기 프로그래밍 가능 상호 연결 자원들을 통해 프로그래밍 가능 로직 자원들에 연결 가능하고;
    상기 메모리 자원들의 제 1 서브세트는 6T 메모리 셀들이고; 그리고
    상기 메모리 자원들의 제 2 서브세트는 12T 메모리 셀들인,
    프로그래밍 가능 집적 회로(IC).
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 및 상기 프로그래밍 가능 로직 자원들의 제 1 서브세트에서 구현되는 TMR(triple modular redundant) 회로; 및
    상기 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 및 상기 프로그래밍 가능 상호연결 자원들의 제 2 서브세트에서 구현되는 보우팅 회로를 더 포함하고,
    상기 보우팅 회로는 상기 프로그래밍 가능 상호연결 자원들의 제 1 서브세트를 통해 상기 TMR 회로에 커플링되는,
    프로그래밍 가능 집적 회로(IC).
  13. 제 10 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 1 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 1 서브세트 상에 구현되는 회로 설계의 제 1 부분; 및
    상기 프로그래밍 가능 IC의 프로그래밍 가능 로직 자원들의 제 2 서브세트 및 프로그래밍 가능 상호연결 자원들의 제 2 서브세트 상에 구현되는 회로 설계의 제 2 부분을 더 포함하는,
    프로그래밍 가능 집적 회로(IC).
  14. 제 10 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 복수의 6T 메모리 셀들은 상기 복수의 12T 메모리 셀들보다 수적으로 더 많은,
    프로그래밍 가능 집적 회로(IC).
KR1020177003876A 2014-07-14 2015-07-09 상이한 타입들의 구성 메모리를 갖는 프로그래밍 가능 집적 회로 KR102354318B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/330,922 2014-07-14
US14/330,922 US9275180B1 (en) 2014-07-14 2014-07-14 Programmable integrated circuit having different types of configuration memory
PCT/US2015/039673 WO2016010808A1 (en) 2014-07-14 2015-07-09 Programmable integrated circuit having different types of configuration memory

Publications (2)

Publication Number Publication Date
KR20170033343A true KR20170033343A (ko) 2017-03-24
KR102354318B1 KR102354318B1 (ko) 2022-01-20

Family

ID=53716592

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177003876A KR102354318B1 (ko) 2014-07-14 2015-07-09 상이한 타입들의 구성 메모리를 갖는 프로그래밍 가능 집적 회로

Country Status (6)

Country Link
US (1) US9275180B1 (ko)
EP (1) EP3170261B1 (ko)
JP (1) JP6603304B2 (ko)
KR (1) KR102354318B1 (ko)
CN (1) CN106537780B (ko)
WO (1) WO2016010808A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015045135A1 (ja) * 2013-09-30 2015-04-02 株式会社日立製作所 プログラマブルロジックデバイス、及び、論理集積ツール
CN111814207B (zh) * 2020-06-10 2024-09-10 深圳市中网信安技术有限公司 现场可编程门阵列数据处理方法及装置、可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142928A (ja) * 1999-11-16 2001-05-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法
JP2006310869A (ja) * 2005-04-29 2006-11-09 Taiwan Semiconductor Manufacturing Co Ltd 半導体回路、半導体回路設計方法及びsocユニット

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6621325B2 (en) 2001-09-18 2003-09-16 Xilinx, Inc. Structures and methods for selectively applying a well bias to portions of a programmable device
US7249010B1 (en) * 2003-04-03 2007-07-24 Xilinx, Inc. Methods of estimating susceptibility to single event upsets for a design implemented in an FPGA
US8065644B1 (en) 2008-03-14 2011-11-22 Xilinx, Inc. Reducing susceptibility of circuit designs to single event upsets
US8504974B1 (en) * 2011-09-14 2013-08-06 Xilinx, Inc. Analysis of circuit designs
US9001583B2 (en) 2012-10-15 2015-04-07 Aplus Flash Technology, Inc. On-chip HV and LV capacitors acting as the second back-up supplies for NVSRAM auto-store operation
US9236353B2 (en) * 2012-11-27 2016-01-12 Xilinx, Inc. Integrated circuit having improved radiation immunity
CN103323715B (zh) * 2013-06-20 2015-08-05 中国空间技术研究院 大规模集成电路加速器单粒子试验中粒子注量率选择方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142928A (ja) * 1999-11-16 2001-05-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法
JP2006310869A (ja) * 2005-04-29 2006-11-09 Taiwan Semiconductor Manufacturing Co Ltd 半導体回路、半導体回路設計方法及びsocユニット

Also Published As

Publication number Publication date
CN106537780A (zh) 2017-03-22
CN106537780B (zh) 2020-04-07
EP3170261B1 (en) 2019-09-04
KR102354318B1 (ko) 2022-01-20
JP2017524295A (ja) 2017-08-24
JP6603304B2 (ja) 2019-11-06
US9275180B1 (en) 2016-03-01
WO2016010808A1 (en) 2016-01-21
EP3170261A1 (en) 2017-05-24

Similar Documents

Publication Publication Date Title
Cheatham et al. A survey of fault tolerant methodologies for FPGAs
US8099625B1 (en) Self-checking and self-correcting internal configuration port circuitry
US7576557B1 (en) Method and apparatus for mitigating one or more event upsets
US8719750B1 (en) Placement and routing of a circuit design
KR102544392B1 (ko) 이기종 멀티프로세서 시스템에서의 프로세서간 인터럽트를 위한 메커니즘
US7852107B1 (en) Single event upset mitigation
US8786310B1 (en) Partially programming an integrated circuit using control memory cells
US9213866B1 (en) Circuits for and methods of preventing unauthorized access in an integrated circuit
US7298168B1 (en) Method and apparatus for error mitigation of programmable logic device configuration memory
EP1603240A2 (en) Switch methodology for mask-programmable logic devices
KR102415148B1 (ko) 보팅 회로 및 자기 정정 래치
US7650585B1 (en) Implementing a user design in a programmable logic device with single event upset mitigation
US7266020B1 (en) Method and apparatus for address and data line usage in a multiple context programmable logic device
Kyriakoulakos et al. A novel SRAM-based FPGA architecture for efficient TMR fault tolerance support
US20130002287A1 (en) Apparatus for improving reliability of electronic circuitry and associated methods
US7250786B1 (en) Method and apparatus for modular redundancy with alternative mode of operation
Baig et al. An island-style-routing compatible fault-tolerant FPGA architecture with self-repairing capabilities
US9852247B2 (en) Area-efficient memory mapping techniques for programmable logic devices
KR102354318B1 (ko) 상이한 타입들의 구성 메모리를 갖는 프로그래밍 가능 집적 회로
US8922242B1 (en) Single event upset mitigation
US8713409B1 (en) Bit error mitigation
EP2641174B1 (en) Classifying a criticality of a soft error and mitigating the soft error based on the criticality
US9940995B1 (en) Methods and apparatus for reusing lookup table random-access memory (LUTRAM) elements as configuration random-access memory (CRAM) elements
CN109075793B (zh) 减小可编程逻辑器件空间并提高其良率的系统和方法
US9484919B1 (en) Selection of logic paths for redundancy

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant