KR102245385B1 - 자기 소자를 포함하는 lut, 이를 포함하는 fpga 및 기술 매핑 방법 - Google Patents

자기 소자를 포함하는 lut, 이를 포함하는 fpga 및 기술 매핑 방법 Download PDF

Info

Publication number
KR102245385B1
KR102245385B1 KR1020170038994A KR20170038994A KR102245385B1 KR 102245385 B1 KR102245385 B1 KR 102245385B1 KR 1020170038994 A KR1020170038994 A KR 1020170038994A KR 20170038994 A KR20170038994 A KR 20170038994A KR 102245385 B1 KR102245385 B1 KR 102245385B1
Authority
KR
South Korea
Prior art keywords
signal
output
lut
input
storage unit
Prior art date
Application number
KR1020170038994A
Other languages
English (en)
Other versions
KR20180109365A (ko
Inventor
조강욱
김정빈
임민영
유태희
정의영
윤홍일
Original Assignee
에스케이하이닉스 주식회사
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사, 연세대학교 산학협력단 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020170038994A priority Critical patent/KR102245385B1/ko
Priority to US15/802,148 priority patent/US10419001B2/en
Publication of KR20180109365A publication Critical patent/KR20180109365A/ko
Priority to US16/529,669 priority patent/US10615801B2/en
Application granted granted Critical
Publication of KR102245385B1 publication Critical patent/KR102245385B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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]
    • 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]
    • G06F30/343Logical level
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0008Arrangements for reducing power consumption
    • H03K19/0013Arrangements for reducing power consumption in field effect transistor circuits
    • 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/1731Optimisation thereof
    • 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/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods

Abstract

본 기술에 의한 LUT는 입력 신호에 따라 디코딩 신호를 출력하는 디코더, 디코딩 신호에 대응하는 하나 또는 둘 이상의 자기 소자를 선택하는 저장부 및 저장부에서 선택된 자기 소자의 프로그램 상태에 대응하는 신호를 출력하거나 선택된 자기 소자를 프로그램할 신호를 입력받는 신호 입출력부를 포함한다.

Description

자기 소자를 포함하는 LUT, 이를 포함하는 FPGA 및 기술 매핑 방법 {LOOK UP TABLE INCLUDING MAGNETIC ELEMENT, FPGA INCUDINNG THE LOOK UP TABLE AND TECHNOLOGY MAPPING METHOD}
본 발명은 자기 소자를 포함하는 LUT(Look Up Table), 이를 포함하는 FPGA(Field Programmable Gate Array) 및 이에 사용되는 기술 맵핑 방법에 관한 것이다.
보다 구체적으로 본 발명은 스위칭 소자를 공유하여 셀의 면적을 줄이고 스태틱 전류를 줄일 수 있는 LUT, 이를 포함하는 FPGA 및 이에 사용되는 기술 맵핑 방법에 관한 것이다.
FPGA(Field Programmable Gate Array)는 프로그램을 통해 특정 동작을 수행하는 디지털 회로를 설계하는데 널리 사용되는 PLD(Programmable Logic Device)의 일종이다.
FPGA는 CLB(Configurable Logic Block)와 IOB(Input Output Block) 및 둘 사이를 연결하는 구성 가능한 연결 회로를 포함한다. FPGA는 DLL, RAM 등의 구성을 더 포함할 수 있다.
CLB는 적어도 두 종류의 하위 회로를 포함하는데 이 중 하나는 플립플롭과 같은 레지스터 회로이고 나머지 하나는 LUT로 구현될 수 있는 함수 생성 회로이다.
종래에는 다수의 SRAM과 MUX를 포함하여 MUX를 제어하는 입력 신호들의 조합에 따라 SRAM에 프로그램 된 데이터를 출력하여 함수 기능을 수행하는 LUT가 사용되었다.
이러한 종래의 LUT는 조합 논리 회로 및 순차 논리 회로를 구현하기 용이하나 전원이 차단되는 경우 SRAM에 저장된 데이터가 소멸되어 프로그램을 새로 수행해야 하는 문제가 있다.
이에 따라 SRAM 대신 자기 소자 등의 비휘발성 소자를 포함하는 LUT가 제안되었다.
도 1은 종래의 MTJ를 포함하는 LUT(1) 회로를 나타낸다.
종래의 LUT(1)는 MTJ 셀(11, 12, 13, 14), 먹스(20), 센스앰프(30), 기준 저항(41), 제 1 스위치(42), 제 2 스위치(43)를 포함한다.
LUT 회로의 동작 시 제 1 스위치(41)와 제 2 스위치(42)는 턴온 상태가 된다.
먹스(20)는 두 입력 신호(A, B)의 논리 레벨에 따라 MTJ 셀(11 - 14) 중 하나를 선택하여 제 1 노드(N1)에 연결한다.
MTJ 셀(11 - 14)은 저저항 또는 고저항을 가지도록 미리 프로그램 된다. 또한 기준 저항(41)은 MTJ 셀의 저저항과 고저항의 중간값을 가진다.
제 2 노드(N2)는 기준 저항(41)이 연결된다.
센스 앰프(30)는 동작 전에 센스 신호(SEN)를 활성화하여 프리차지 동작을 수행한다.
이후 센스 신호(SEN)가 비활성화되면 센스 앰프(30)는 선택된 MTJ 셀과 기준 저항의 차이에 따라 발생하는 전류 차이를 증폭하여 출력 신호(OUT)를 결정한다.
이러한 종래의 LUT(1)는 입력 신호(A, B)가 바뀔 때마다 센스 신호(SEN)를 활성화 후 비활성화 해야 하므로 입력 신호에 따라 출력 신호가 즉시 바뀌는 조합 논리 회로를 구성하기 곤란하며 클록 신호에 동기되는 순차 조합 논리 회로만을 구성할 수 있는 단점이 있다.
아울러 전류 모드로 동작하는 센스 앰프(30)의 특성 상 동작 속도가 상대적으로 느리다.
도 2는 종래의 또 다른 LUT(2) 회로를 나타낸다.
종래의 LUT(2)는 디코더(50), 다수의 자기 회로(60), 래치(71) 및 인버터(72)를 포함한다.
래치(71)는 다수의 자기 회로(60)의 출력을 반전하여 저장하고 인버터(72)는 래치(71)의 출력을 반전하여 출력한다.
디코더(50)는 N:2N 디코더로 N개의 입력 신호를 디코딩하여 2N 개의 출력 신호를 선택한다.
도 2에서 디코더(50)는 N개의 선택 신호에 따라 2N 개의 자기 회로 중 어느 하나를 활성화시키고 나머지는 비활성화시킨다.
자기 회로(60)가 활성화되는 경우는 PMOS 트랜지스터(P1), NMOS 트랜지스터(N1)가 모두 턴온되는 경우이고 자기 회로(60)가 비활성화되는 경우는 PMOS 트랜지스터(P1), NMOS 트랜지스터(N1)가 모두 턴오프되는 경우이다.
자기 회로(60)가 턴온되는 경우 출력 전압(Vout)은 상위 MTJ 셀과 PMOS 트랜지스터(N1)에 의한 상위 저항과 NMOS 트랜지스터(N1)과 하위 MTJ 셀에 의한 하위 저항의 비에 의해 결정된다.
도 2에서 선택된 자기 회로(60)는 신호 출력을 위하여 지속적으로 정전류가 흘러야 하므로 전력 소모가 큰 문제가 있다.
또한 다수의 자기 회로(60)가 하나의 래치(71)에 공통 연결되므로 자기 회로(60)의 출력 노드에서 기생 커패시턴스가 크게 되고 이에 따라 속도가 저하되는 문제가 있다.
또한 자기 회로(60) 내의 두 트랜지스터(N1, P1) 중 하나는 포화 영역에서 동작하고 나머지 하나는 선형 영역에서 동작해야 하는데 이를 보장하기 위해서는 트랜지스터 자체의 크기가 커야 한다.
도 2에서 두 트랜지스터(N1, P1)는 각각의 자기 회로(60)마다 별도로 포함되므로 전체 회로의 면적이 증가하는 문제가 있다.
이에 따라 LUT 회로의 면적과 소비 전력을 줄일 수 있는 새로운 기술이 요구되고 있다.
US 9437260 B2 US 20100039136 A1
S. Paul, S. Mukhopadhyay, and S. Bhunia, "Hybrid CMOS-STTRAM non-volatile FPGA: design challenges and optimization approaches," in Proceedings of the 2008 IEEE/ACM International Conference on Computer-Aided Design, ser. ICCAD '08. Piscataway, NJ, USA: IEEE Press, 2008, pp. 589-592. W. Zhao, E. Belhaire, C. Chappert, and P. Mazoyer, "Spin transfer torque (STT)-MRAM-based runtime reconfiguration FPGA circuit," ACM Trans. Embed. Comput. Syst., vol. 9, no. 2, pp. 14:1-14:16, Oct. 2009. Valavan Manohararajah, Stephen D. Brown and Zvonko G. Vranesic, "Heuristics for Area Minimization in LUT-Based FPGA Technology Mapping," IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 25, issue. 11, pp. 2331 - 2340, Nov. 2006.
본 발명은 회로 면적을 줄이고 소비 전력을 줄일 수 있는 LUT와 이를 포함하는 FPGA를 제공한다.
아울러 본 발명은 이러한 FPGA 장치를 사용하는데 적용할 수 있는 기술 맵핑 방법을 제공한다.
본 발명의 일 실시예에 의한 LUT는 입력 신호에 따라 디코딩 신호를 출력하는 디코더, 디코딩 신호에 대응하는 하나 또는 둘 이상의 자기 소자를 선택하는 저장부 및 저장부에서 선택된 자기 소자의 프로그램 상태에 대응하는 신호를 출력하거나 선택된 자기 소자를 프로그램할 신호를 입력받는 신호 입출력부를 포함한다.
본 발명의 일 실시예에 의한 FPGA는 제 1 시간 동안 입력 신호에 대응하는 자기 소자의 프로그램 상태에 따라 신호를 출력하는 다수의 제 2 LUT; 및 제 2 시간 동안 입력 신호에 대응하는 자기 소자의 프로그램 상태에 따라 신호를 출력하는 다수의 제 3 LUT를 포함한다.
본 발명의 일 실시예에 의한 FPGA의 기술 맵핑 방법은 입력된 게이트 레벨 넷리스트를 AIG(And-Inverter Graph)로 변환하는 단계; AIG의 노드들을 순차적으로 선택하면서 선택된 매 노드에 대응하는 하나 또는 둘 이상의 컷들을 포함하는 컷 집합을 생성하고 상기 컷 집합에 포함된 컷들을 일정한 기준에 따라 정렬하여 어느 한 컷을 선택하는 단계; 및 매 노드에 대해서 선택된 컷들을 포함하는 LUT 넷리스트를 출력하는 단계를 포함하되, 일정한 기준은 컷에 연결된 하위 컷들의 레벨 수의 최대 차이를 제 1 기준으로 한다.
본 발명에 의한 LUT는 자기 메모리를 포함하므로 전원 재개 시 프로그램을 새로 진행할 필요가 없다.
본 발명에 의한 LUT는 크기가 작은 스위칭 트랜지스터를 자기 소자마다 구비하고 크기가 상대적으로 큰 클램프 트랜지스터를 다수의 자기 소자에 대해서 공통적으로 사용하여 회로의 면적을 줄일 수 있다.
본 발명에 의한 LUT는 클록 신호를 이용하여 일정한 시간 동안만 정전류가 흐르도록 하여 소비 전력을 줄일 수 있다.
도 1은 종래 기술에 의한 LUT 회로도.
도 2는 종래 기술에 의한 LUT 회로도.
도 3은 본 발명의 일 실시예에 의한 LUT 회로도.
도 4는 본 발명의 다른 실시예에 의한 LUT 회로도.
도 5는 본 발명의 다른 실시예에 의한 LUT 회로도.
도 6은 본 발명의 일 실시예에 의한 FPGA에서의 기술 맵핑 방법을 설명하는 순서도.
도 7은 도 6에서 정렬된 컷 집합 생성 방법을 나타낸 순서도.
도 8은 도 6에서 정렬된 컷 집합 생성 방법을 나타낸 다른 순서도.
도 9는 본 발명의 일 실시예에 의한 FPGA에서 LUT 매칭 동작을 설명하는 설명도.
이하에서는 도면을 참조하여 본 발명의 실시예를 개시한다.
도 3은 본 발명의 일 실시예에 의한 LUT의 회로도이다.
본 실시예에서는 2비트 입력 신호를 위한 LUT의 회로를 예시한다. 다른 비트 수의 입력 신호에 대응하는 LUT 회로는 본 개시로부터 통상의 기술자가 용이하게 도출할 수 있을 것이다.
본 발명의 일 실시예에 의한 LUT(1000)는 디코더(100), 제 1 저장부(200), 제 2 저장부(300), 신호 입출력부(400)를 포함한다.
본 실시예에서 디코더(100)는 2:4 디코더로서 2비트 입력 신호(IN)에 따라 4개의 디코딩 신호(D0, D1, D2, D3)를 출력한다. 이때 네 개의 디코딩 신호 중 어느 하나만 활성화되고 나머지는 비활성화된다.
제 1 저장부(200)는 제 1 단(T1)과 제 2 단(T2)을 구비하고 그 사이에서 직렬로 연결된 MTJ 셀과 스위칭 트랜지스터의 쌍을 다수 개 포함한다.
도 3에서 제 1 저장부(200)는 4개의 MTJ 셀(M0, M1, M2, M3)과 이와 직렬 연결된 4 개의 PMOS 트랜지스터(P20, P21, P22, P23)를 포함한다.
4개의 PMOS 트랜지스터(P20, P21, P22, P23)에는 4개의 디코딩 신호(/D0, /D1, /D2, /D3)가 순차적으로 입력된다.
2비트 입력 신호(IN)에 따라 4개의 PMOS 트랜지스터(P20, P21, P22, P23) 중 어느 하나가 턴온되어 대응하는 MTJ 셀이 선택된다.
제 2 저장부(300)는 제 3 단(T3)과 제 4 단(T4)을 구비하고 그 사이에서 직렬로 연결된 MTJ 셀과 스위칭 트랜지스터의 쌍을 다수 개 포함한다.
도 3에서 제 2 저장부(300)는 4개의 MTJ 셀(M4, M5, M6, M7)과 이와 직렬 연결된 4 개의 NMOS 트랜지스터(N20, N21, N22, N23)를 포함한다.
4개의 NMOS 트랜지스터(N20, N21, N22, N23)에는 4개의 디코딩 신호(D0, D1, D2, D3)가 순차적으로 입력된다.
2비트 입력 신호(IN)에 따라 4개의 NMOS 트랜지스터(N20, N21, N22, N23) 중 어느 하나가 턴온되어 대응하는 MTJ 셀이 선택된다.
신호 입출력부(400)는 제 1 저장부(200)의 제 2 단(T2)과 제 2 저장부(300) 의 제 3 단(T3) 사이에 연결된다.
신호 입출력부(400)는 읽기 동작 시 읽기 신호에 따라 제 1 저장부(200)와 제 2 저장부(300)의 대응하는 MTJ 셀의 프로그램 상태에 따라 신호를 출력한다.
본 실시예에서 신호 입출력부(400)는 제 1 저장부(200)와 제 2 저장부(300) 사이에 직렬 연결되며 게이트에 접지 전압(VSS)이 인가되는 제 1 PMOS 트랜지스터(P1)와 게이트에 전원 전압(VDD)이 인가되는 제 1 NMOS 트랜지스터(N1)을 포함한다.
제 1 PMOS 트랜지스터(P1)와 제 1 NMOS 트랜지스터(N1)는 제 1 저장부(200), 제 2 저장부(300)를 통해 흐르는 전류를 고정하는 클램프 트랜지스터로 기능한다.
동작 시 제 1 PMOS 트랜지스터(P1)와 제 1 NMOS 트랜지스터(N1) 중 하나는 포화 영역에서 동작하고 나머지 하나는 선형 영역에서 동작하는 것이 바람직하다.
이에 따라 제 1 PMOS 트랜지스터(P1)와 제 1 NMOS 트랜지스터(N1)의 크기는 제 1 저장부(200)와 제 2 저장부(300)에 포함된 스위칭 트랜지스터(P20 ~ P23, N20 ~ N23)보다는 상대적으로 크게 설계될 수 있다.
제 1 노드(ND1)는 제 1 PMOS 트랜지스터(P1)와 제 1 NMOS 트랜지스터(N1)의 공통 노드로서 제 1 노드(ND1)에서 읽기 신호가 출력된다.
LUT(1000)는 제 1 노드(ND1)의 출력을 버퍼링하여 출력신호(OUT)를 제공하는 2 개의 직렬 연결된 인버터(INV3, INV4)를 더 포함할 수 있다.
신호 입출력부(400)는 쓰기 동작 시 외부에서 인가된 신호를 제 1 저장부(200) 또는 제 2 저장부(300)에 제공한다.
본 실시예에서 LUT(1000)는 쓰기 신호(WE)에 의해 턴온되며 제 1 저장부(200)와 제 2 저장부(300) 사이에 직렬 연결된 제 2 NMOS 트랜지스터(N2)와 제 2 PMOS 트랜지스터(P2)를 더 포함할 수 있다.
제 2 PMOS 트랜지스터(P2)와 제 2 NMOS 트랜지스터(N2)는 쓰기 동작 시 제 1 저장부(200) 또는 제 2 저장부(300)에 쓰기 전류가 추가로 제공될 수 있도록 한다.
제 2 PMOS 트랜지스터(P2)와 제 2 NMOS 트랜지스터(N2)의 공통 노드는 제 1 노드(ND1)와 연결된다.
또한 제 2 NMOS 트랜지스터(N2)는 제 1 PMOS 트랜지스터(P1)와 병렬로 연결되고, 제 2 PMOS 트랜지스터(P2)는 제 1 NMOS 트랜지스터(N1)와 병렬로 연결된다.
LUT(1000)는 제 1 노드(ND1)에 제 1 쓰기 신호(WM)를 인가하는 스위치(SW3)와 인버터(INV2)를 더 포함할 수 있다.
본 실시예에 의한 LUT(1000)는 읽기 신호(RE)가 활성화되는 경우 턴온되어 제 1 저장부(200)에 전원 전압(VDD)을 인가하는 PMOS 트랜지스터(P0)를 더 포함할 수 있다.
이때 PMOS 트랜지스터(P0)는 전원단과 제 1 저장부(200)의 제 1 단(T1) 사이에 연결될 수 있다.
본 실시예에 의한 LUT(1000)는 읽기 신호(RE)가 활성화되는 경우 턴온되어 제 2 저장부(300)에 접지 전압을 인가하는 NMOS 트랜지스터(N0)를 더 포함할 수 있다.
이때 NMOS 트랜지스터(N0)는 접지단과 제 2 저장부(300)의 제 4 단(T4) 사이에 연결될 수 있다.
본 실시예에 의한 LUT(1000)는 쓰기 신호(WE)가 활성화되는 경우 제 2 쓰기 신호(WP)를 제 1 저장부(200)의 제 1 단(T1)에 인가하는 스위치(SW1)와 인버터(INV1)를 더 포함할 수 있다.
본 실시예에 의한 LUT(1000)는 쓰기 신호(WE)가 활성화되는 경우 제 3 쓰기 신호(WN)를 제 2 저장부(300)의 제 4 단(T4)에 인가하는 스위치(SW2)와 인버터(INV5)를 더 포함할 수 있다.
스위치(SW1 - SW3)는 쓰기 신호(WE)가 활성화되는 경우 각각 독립적으로 제어되어 온오프될 수 있다.
도 3의 LUT(1000) 회로에서 읽기 동작을 설명하면 아래와 같다.
예를 들어 입력 신호(IN)가 “00”인 경우 디코딩 신호 중 D0는 활성화되고 나머지 디코딩 신호(D1 ~ D3)는 비활성화된다.
이에 따라 제 1 저장부(200)에서 스위칭 트랜지스터(P20)가 턴온되어 MTJ 셀(M0)이 신호 입출력부(400)에 연결되고 제 2 저장부(300)에서 스위칭 트랜지스터(N20)가 턴온되어 MTJ 셀(M4)이 신호 입출력부(400)에 연결된다.
이때 MTJ 셀(M0, M4)은 서로 반대 저항 상태를 가지도록 미리 프로그램된 상태이다.
예를 들어 MTJ 셀(M0)이 고저항 상태이고 MTJ 셀(M4)이 저저항 상태로 프로그램된 경우 제 1 노드(ND1)는 저항 분배에 의해 저전압 신호를 출력하고, 그 반대로 프로그램된 경우에는 고전압 신호를 출력한다.
도 3의 LUT(1000) 회로에서 쓰기 동작을 설명하면 아래와 같다.
쓰기 동작 시 읽기 신호(RE)가 비활성화되므로 트랜지스터(P0, N0)는 턴오프 상태가 된다.
예를 들어 입력 신호(IN)가 “00”인 경우 디코딩 신호 중 D0는 활성화되고 나머지 디코딩 신호(D1 ~ D3)는 비활성화된다.
이에 따라 제 1 저장부(200)에서 스위칭 트랜지스터(P20)가 턴온되어 MTJ 셀(M0)이 신호 입출력부(400)에 연결되고 제 2 저장부(300)에서 스위칭 트랜지스터(N20)가 턴온되어 MTJ 셀(M4)이 신호 입출력부(400)에 연결된다.
예를 들어 MTJ 셀(M0)을 고저항 상태로 프로그램하고 MTJ 셀(M4)을 저저항 상태로 프로그램하는 경우를 가정한다.
먼저 스위치(SW1, SW3)를 턴온하고, 스위치(SW2)를 턴오프한다.
또한 쓰기 신호(WM)에 하이 레벨을 인가하고 쓰기 신호(WP)에 하이 레벨을 인가한다. 이에 따라 MTJ 셀(M0)은 고저항 상태로 프로그램된다.
제 2 NMOS 트랜지스터(N2)는 쓰기 동작 시 턴온되어 MTJ 셀(M0)에 쓰기 전류를 추가로 제공할 수 있다.
이후 스위치(SW2, SW3)를 턴온하고, 스위치(SW1)를 턴오프한다.
이때 쓰기 신호(WM)에 하이 레벨을 유지하고 쓰기 신호(WN)에 로우 레벨을 인가한다. 이에 따라 MTJ 셀(M4)은 저저항 상태로 프로그램된다.
제 2 PMOS 트랜지스터(P2)는 쓰기 동작 시 턴온되어 MTJ 셀(M4)에 쓰기 전류를 추가로 제공할 수 있다.
이와 같이 본 실시예에서는 클램프 트랜지스터인 제 1 PMOS 트랜지스터 및 제 1 NMOS 트랜지스터(P1, N1)를 다수의 MTJ 셀에 대해서 공유하여 사용하므로 종래의 기술에 비하여 회로 면적을 줄일 수 있는 효과가 있다.
도 3의 LUT(1000)는 입력 신호(IN)의 변화에 의해 출력 신호(OUT)가 실질적으로 즉시 변경되므로 조합 논리 회로를 구성하는데 용이하며 출력 신호(OUT)를 래치하는 회로를 부가함으로써 순차 논리 회로를 구성하는데도 용이하게 사용할 수 있다.
도 4는 본 발명의 다른 실시예에 의한 LUT의 회로도이다.
도 4에 도시된 실시예는 신호 입출력 제어부(500)를 더 포함하는 점에서 도 3의 실시예와 상이하다.
도 3에서 신호 입출력부(400)의 제 1 PMOS 트랜지스터(P1)의 게이트에는 전원 전압(VDD)이 인가되고 제 1 NMOS 트랜지스터(N1)의 게이트에는 접지 전압(VSS)이 인가된다.
도 4의 실시예에서 신호 입출력부(400)의 제 1 PMOS 트랜지스터(P1)와 제 1 NMOS 트랜지스터(N1)의 게이트 전압은 신호 입출력 제어부(500)에 의해 제어된다.
본 실시예에서 신호 입출력 제어부(500)는 클록 신호(CLK)와 출력 신호(OUT)에 따라 제 1 PMOS 트랜지스터와 제 1 NMOS 트랜지스터(P1, N1)의 게이트를 제어한다.
클록 신호(CLK)로부터 제 1 클록 신호(CLKP)와 제 2 클록 신호(CLKN)가 생성된다.
쓰기 신호(WE)가 활성화된 경우에는 제 1 클록 신호(CLKP)는 하이 레벨로 고정되고 제 2 클록 신호(CLKN)는 로우 레벨로 고정된다.
이에 따라 도 3의 실시예에서와 같이 제 1 PMOS 트랜지스터(P1)의 게이트에는 전원 전압(VDD)이 인가되고 제 1 NMOS 트랜지스터(N1)의 게이트에는 접지 전압(VSS)이 인가된다.
쓰기 신호(WE)가 비활성화된 경우 클록 신호(CLK)로부터 클록 신호(CLK)와 실질적으로 동일한 위상을 가지는 제 1 클록 신호(CLKP)와 실질적으로 반대 위상을 가지는 제 2 클록 신호(CLKN)가 생성된다.
이를 위하여 도 4에서 신호 입출력 제어부(500)는 클록 신호(CLK)와 쓰기 신호(WE)를 오어 연산하여 제 1 클록 신호(CLKP)를 출력하는 오어 게이트(510)와 클록 신호(CLK)와 쓰기 신호(WE)를 노어 연산하여 제 2 클록 신호(CLKN)를 출력하는 노어 게이트(520)를 포함한다.
신호 입출력 제어부(500)는 제 1 클록 신호(CLKP)와 출력 신호(OUT)를 노어 연산하여 제 1 PMOS 트랜지스터(P1)의 게이트를 제어하는 노어 게이트(530)와 제 2 클록 신호(CLKN)와 출력 신호(OUT)를 낸드 연산하여 제 1 NMOS 트랜지스터(N1)의 게이트를 제어하는 낸드 게이트(530)를 포함한다.
출력 신호(OUT)가 로우 레벨인 경우 낸드 게이트(540)의 출력은 하이 레벨로 고정되고 노어 게이트(530)의 출력은 제 1 클록 신호(CLKP)의 반대 레벨을 가진다.
이에 따라 제 1 NMOS 트랜지스터(N1)는 턴온 상태를 유지하는데 비하여, 제 1 PMOS 트랜지스터(P1)는 클록 신호(CLK)가 하이 레벨인 경우 턴온 상태가 되고 클록 신호(CLK)가 로우 레벨인 경우 턴오프 상태가 된다.
출력 신호(OUT)가 하이 레벨인 경우 노어 게이트(530)의 출력은 로우 레벨로 고정되고 낸드 게이트(540)의 출력은 제 2 클록 신호(CLKN)의 반대 레벨을 가진다.
이에 따라 제 1 PMOS 트랜지스터(P1)는 턴온 상태를 유지하는데 비하여, 제 1 NMOS 트랜지스터(N1)는 클록 신호(CLK)가 하이 레벨인 경우 턴온 상태가 되고 클록 신호(CLK)가 로우 레벨인 경우 턴오프 상태가 된다.
이와 같이 도 4의 실시예에서 신호 입출력 제어부(500)는 클록 신호가 하이 레벨인 상태에서 제 1 PMOS 트랜지스터 및 제 1 NMOS 트랜지스터(P1, N1)를 모두 턴온하여 정상적인 신호를 출력한다.
클록 신호가 로우 레벨인 경우 출력 신호(OUT)에 따라 제 1 PMOS 및 제 1 NMOS 트랜지스터(P1, N1) 둘 중 하나만 턴온되므로 신호 입출력부(400)를 관통하는 정전류는 차단된다.
예를 들어 출력 신호(OUT)가 하이 레벨인 경우 제 1 PMOS 트랜지스터(P1)만 턴온되어 출력 신호(OUT)가 하이 레벨로 유지되고, 출력 신호(OUT)가 로우 레벨인 경우 제 1 NMOS 트랜지스터(N1)만 턴온되어 출력 신호(OUT)가 로우 레벨로 유지된다.
이에 따라 읽기 동작 시 제 1 저장부(200)와 신호 입출력부(400) 및 제 2 저장부(300)를 관통하여 흐르는 정전류는 클록 신호의 반주기 동안만 흐르게 되어 전력 소비가 줄어들 수 있다.
이와 같이 도 4의 LUT 회로는 입력 신호(IN)의 변화에 의해 출력 신호(OUT)가 실질적으로 즉시 변경되는 조합 논리 회로를 구성할 수 있으나 이것이 클록 신호(CLK)의 반주기 동안으로 제한된다.
도 4에 도시된 LUT 회로는 클록 신호가 하이 레벨인 구간에서 입력 신호에 대응하는 신호를 출력하는데 이로부터 클록 신호가 로우 레벨인 구간에서 입력 신호에 대응하는 신호를 출력하는 LUT 회로를 도출할 수 있다.
예를 들어 도 5와 같이 오어 게이트(510-1)와 노어 게이트(520-1)에 클록 신호(CLK) 대신에 이를 반전한 클록 신호(/CLK)를 인가함으로써 이러한 LUT 회로를 구현할 수 있을 것이다.
도 5의 LUT(3000)는 신호 입력 제어부(520-1)에 클록 신호(CLK)를 반전한 클록 신호(/CLK)가 인가되는 점을 제외하고 도 4의 LUT(2000)와 실질적으로 동일하다.
이하에서는 도 3에 도시된 LUT를 제 1 LUT(1000), 도 4에 도시된 LUT(2000)를 제 2 LUT, 도 5에 도시된 LUT(2000-1)를 제 3 LUT로 지칭할 수 있다.
일반적으로 FPGA는 다수의 LUT를 포함하며 원하는 디지털 논리 회로로 동작하도록 프로그램 된다.
본 발명의 일 실시예에 의한 FPGA는 제 1 LUT(1000), 제 2 LUT(2000), 제 3 LUT(3000) 중 적어도 한 종류의 LUT를 포함할 수 있다.
특히 본 발명의 일 실시예에 의한 FPGA는 제 2 LUT와 제 3 LUT를 동시에 포함할 수 있다.
이는 FPGA가 클록 신호의 반주기 동안 동작하는 LUT와 클록 신호의 나머지 반주기 동안 동작하는 LUT를 모두 포함하는 것을 의미한다.
FPGA가 원하는 디지털 논리 회로로 동작하도록 하기 위해서는 프로그램을 통해 그 내부에 포함된 다수의 LUT를 연결하는 작업이 필요한데 이러한 작업을 기술 맵핑(Technology Mapping)이라고 한다.
보다 구체적으로 기술 맵핑은 디지털 논리 회로를 기술하는 게이트 레벨의 넷리스트를 FPGA의 구성 단위인 LUT 레벨의 넷리스트로 변환하는 작업을 지칭한다.
본 발명의 일 실시예에 의한 FPGA 중에서 제 2 LUT(2000) 및 제 3 LUT(3000)와 같이 클록 신호의 서로 다른 위상에서 동작하는 LUT를 함께 포함하는 실시예에 종래의 기술 맵핑을 그대로 적용하는 경우 제 2 LUT와 제 3 LUT를 균일하게 사용하지 못하여 효율이 떨어지는 문제가 있다. 이에 따라 본 실시예에 적합한 기술 맵핑 방법이 요구된다.
도 6은 본 발명의 일 실시예에 의한 FPGA 장치에서의 기술 맵핑 방법을 설명하는 순서도이다.
먼저 게이트 레벨의 넷리스트(netlist)가 입력된다(S100).
다음으로 게이트 레벨 넷리스트를 앤드-인버터 그래프(AIG: AND-INVERTER GRAPH)로 치환한다(S110).
다음으로 주 입력 노드에 연결된 노드를 선택한다(S120).
AIG에서 각 노드는 낸드 게이트 또는 앤드 게이트 중 어느 하나에 대응하게 되는데 이때 하나의 LUT 를 이용하여 만들 수 있는 하나 또는 둘 이상의 노드들의 집합을 컷으로 지칭할 수 있다.
그래프에서 신호 입력단은 주 입력 노드로 표현되며 신호 출력단은 주 출력 노드로 표현된다. 주 입력 노드와 주 출력 노드는 게이트가 아닌 입력단 또는 출력단 그 자체에 대응한다.
이후 선택된 노드에서 만들 수 있는 모든 컷을 생성하면서 정렬된 컷 집합을 생성한다(S200).
이때 컷이란 하나의 LUT에 포함될 수 있는 노드들의 집합인데 선택된 노드에서 만들 수 있는 컷은 선택된 노드를 포함하여 다른 노드를 더 포함하거나 포함하지 않을 수 있다.
선택된 노드에서 만들 수 있는 컷은 하나 이상이 될 수 있으며 컷 집합은 이들을 포함하는 집합으로서 일정한 기준에 의해 정렬될 수 있다.
예를 들어 해당 컷을 사용하는 경우의 면적, 해당 컷을 사용하는 경우의 지연량 등을 다른 컷을 사용하는 경우의 면적이나 지연량과 비교하여 정렬할 수 있다.
이와 같이 정렬된 컷 집합에서 가장 바람직한 컷을 선택한다(S300).
바람직한 컷은 면적을 가정 적게 소모하도록 하는 컷, 지연량을 최소로 하는 컷 등에 대응할 수 있다.
이후 주 출력 노드를 제외한 모든 노드를 선택하였는지 확인한다(S310).
주 출력 노드를 제외하고 모든 노드가 선택된 상태가 아니라면 다음 노드를 선택하여 단계(S200)로 돌아간다.
만일 주 출력 노드를 제외한 모든 노드를 선택하였다면 모든 노드에 대해서 최선의 컷이 선택된 상태로서 이들 최선의 컷들을 포함하는 LUT 넷리스트를 생성한다(S330).
마지막으로 생성된 LUT 넷리스트를 출력한다(S340).
도 7은 도 6에서 정렬된 컷 집합을 생성하는 단계(S200)를 구체적으로 나타낸 순서도이다.
도 7의 실시예는 FPGA내에 제 1 LUT(1000)만이 포함되는 경우에 유리하게 사용될 수 있다.
도 7의 실시예는 면적, 리프 개수, 지연량 순으로 우선 순위를 가지고 컷 집합 내에서 컷들을 정렬한다.
먼저 컷 집합에 새로운 컷이 추가된다(S210).
새로운 컷에 대응하는 면적을 계산하고 컷 집합에 포함된 다른 컷들 중에 동일한 면적에 대응하는 것이 있는지 판단한다(S211).
이때 면적은 해당 컷이 차지하는 면적으로서 컷의 면적을 산정하여 면적에 따라 정렬하는 기술은 비특허문헌 3과 같이 종래 기술을 통해 산출할 수 있는 것이므로 구체적인 설명은 생략한다.
면적이 동일한 것이 없는 경우 면적을 기준으로 오름 차순이 되도록 새로운 컷을 기존 컷들 사이에 삽입하고(S213), 단계(S216)로 진행한다.
면적이 동일한 것이 있는 경우 새로운 컷에 대응하는 리프 개수를 계산하고 컷 집합에 포함된 면적이 동일한 컷들 중에 리프 개수가 동일한 것이 있는지 판단한다(S212). 이때 리프는 컷에 포함된 노드들을 지칭한다.
리프 개수가 동일한 것이 없는 경우 리프 개수를 기준으로 오름 차순이 되도록 새로운 컷을 기존 컷들 사이에 삽입하고(S214), 단계(S216)로 진행한다.
리프 개수가 동일한 것이 있는 경우 새로운 컷에 대응하는 지연을 계산하고 지연을 기준으로 오름차순이 되도록 새로운 컷을 기존 컷들 사이에 삽입한다(S215). 컷에서의 지연량 계산은 게이트를 통과하는 시간을 산출하는 것인데 이는 종래의 기술을 통해 용이하게 알 수 있는 것이므로 구체적인 설명은 생략한다.
이후 해당 노드에서 생성 가능한 모든 컷을 추가했는지 판단한다(S216).
모든 컷을 추가한 경우 정렬 완료된 컷 집합을 출력하고(S217), 그렇지 않은 경우 단계(S210) 이하의 동작을 반복한다.
도 8은 도 6에서 정렬된 컷 집합을 생성하는 단계(S200)를 구체적으로 나타낸 다른 순서도이다.
도 8의 실시예는 FPGA내에 제 2 LUT(2000)와 제 3 LUT(3000)가 같은 개수로 함께 포함되는 경우에 유리하게 사용될 수 있다.
도 8의 실시예는 홉 카운트 갭, 지연, 면적 순으로 우선 순위를 가지고 컷 집합 내에서 컷들을 정렬한다.
홉 카운트 갭은 현재 컷에 연결된 하위 컷들의 레벨 수의 최대 차이를 나타낸다.
예를 들어 현재 컷이 두 개의 하위 컷들과 연결되는 경우 하나는 하위 레벨 개수가 3이고 나머지 하나는 0인 경우 홉 카운트 갭은 3이 된다.
본 실시예에서는 컷에 대응하는 홉 카운트 갭이 작을수록 바람직한 컷으로 본다.
먼저 컷 집합에 새로운 컷이 추가된다(S210).
새로운 컷에 대해서 홉 카운트 갭을 계산하고 이를 컷 집합 내의 다른 컷들의 합 카운트 갭과 비교하여 동일한 것이 있는지 판단한다(S221).
홉 카운트 갭이 동일한 것이 없으면 홉 카운트 갭을 기준으로 오름 차순이 되도록 현재 컷을 기존 컷들 사이에 끼워 넣고(S223), 단계(S226)로 진행한다.
홉 카운트 갭이 동일한 것이 있으면 새로운 컷에 대응하는 지연을 계산하고 컷 집합에 포함된 홉 카운트 갭이 동일한 컷들 중에 지연이 동일한 것이 있는지 판단한다(S222).
지연이 동일한 것이 없는 경우 지연을 기준으로 오름 차순이 되도록 새로운 컷을 기존 컷들 사이에 삽입하고(S224), 단계(S226)로 진행한다.
지연이 동일한 것이 있는 경우 새로운 컷에 대응하는 면적을 계산하고 면적을 기준으로 오름차순이 되도록 새로운 컷을 기존 컷들 사이에 삽입한다(S225).
이후 해당 노드에서 생성 가능한 모든 컷을 추가했는지 판단한다(S226).
모든 컷을 추가한 경우에는 LUT 넷리스트를 출력하고(S227), 모든 컷을 추가하지 않은 경우 단계(S220) 이하의 동작을 반복한다.
FPGA가 제 2 LUT(2000)와 제 3 LUT(3000)를 동일하게 포함하는 경우 도 6 및 도 8의 순서도에 따라 출력된 LUT 넷리스트에 대해서 각 LUT를 제 2 LUT(2000) 또는 제 3 LUT(3000) 중 어느 하나로 매칭시키는 동작을 추가로 수행할 수 있다.
예를 들어 출력된 LUT 넷리스트에 포함된 각 LUT는 제 2 LUT(2000) 또는 제 3 LUT(3000) 중 어느 하나로 고정되어 매칭될 수도 있고, 제 2 LUT(2000) 또는 제 3 LUT(3000) 중 임의의 하나로 유동적으로 매칭될 수 있다.
도 9는 LUT 넷리스트에 포함된 각 LUT의 종류를 매칭하는 방법을 설명한다.
LUT 넷리스트가 완성되면 도 8과 같이 가장 긴 신호 전달 경로를 기준으로 각 LUT의 레벨을 구분할 수 있다.
도면에서 사각형은 각각의 LUT를 나타내고 화살표는 신호 전달 경로를 나타내며 사각형 내의 숫자는 해당 LUT가 제 2 LUT(2000) 또는 제 3 LUT(3000) 중 어느 것에 매칭되는지를 표시하는데 숫자 2는 제 2 LUT(2000)에 매칭된 것을 나타내고 숫자 3은 제 3 LUT(3000)에 매칭된 것을 나타낸다.
제 2 LUT(2000)는 클록 신호가 하이 레벨이 경우 신호를 출력하고 제 3 LUT(3000)는 클록 신호가 로우 레벨인 경우 신호를 출력한다.
이에 따라 4개의 레벨을 반으로 나누어 하위 레벨에 포함되는 LUT는 제 2 LUT(2000)로 매칭하고 상위 레벨에 포함되는 LUT는 제 3 LUT(3000)로 매칭한다.
이에 따라 도 9에서 LUT(2001, 2002)는 제 2 LUT(2000)로 매칭되고, LUT(3001, 3002)는 제 3 LUT(3000)로 매칭된다.
도 9에서 LUT(2003, 3003)는 레벨 1 내지 3 중 어느 것에 속해도 무방하다.
이러한 LUT들은 제 2 LUT(2000) 또는 제 3 LUT(3000) 중 어느 하나로 유동적으로 매칭될 수 있다.
다만 최종적으로 매칭되는 경우 제 2 LUT(2000)로 매칭된 LUT의 개수와 제 3 LUT(3000)로 매칭된 LUT의 개수는 1:1에 가까울수록 바람직하다.
도 9의 예에서는 LUT(2003)를 제 2 LUT(2000)로 매칭시키고, LUT(3003)를 제 3 LUT(3000)로 매칭시켰다.
이에 따라 전체 LUT 6개 중에서 3개는 제 2 LUT(2000)로 매칭되고 나머지 3개는 제 3 LUT(3000)로 매칭될 수 있다.
본 발명의 발명자들은 제 2 LUT(2000)와 제 3 LUT(3000)가 균등한 개수로 포함되는 FPGA에서 기술 맵핑을 수행하는 경우 전술한 홉 카운트 갭이 작은 순서로 최선의 컷을 선택하는 경우 최종적으로 제 2 LUT(2000)와 제 3 LUT(3000)를 균등하게 사용하는데 유리함을 발견하였다.
이상에서 도면을 참조하여 본 발명의 실시예를 개시하였으나 이상의 개시가 본 발명의 권리범위를 한정하는 것은 아니다. 본 발명의 권리범위는 아래의 특허청구범위에 문언적으로 기재된 범위와 그 균등 범위로 정해질 수 있다.
1, 2: 종래의 LUT
10: 먹스
30: 센스 앰프
50, 100: 디코더
60: 자기 회로
200: 제 1 저장부
300: 제 2 저장부
400: 신호 입출력부
500, 500-1: 신호 입출력 제어부
1000: 제 1 LUT
2000: 제 2 LUT
3000: 제 3 LUT

Claims (21)

  1. 입력 신호에 따라 디코딩 신호를 출력하는 디코더;
    제 1 단과 제 2 단 사이에 연결되며 다수의 자기 소자를 포함하며 상기 디코딩 신호를 반전한 신호에 따라 대응하는 자기 소자를 선택하는 제 1 저장부;
    제 3 단과 제 4 단 사이에 연결되며 다수의 자기 소자를 포함하며 상기 디코딩 신호에 따라 대응하는 자기 소자를 선택하는 제 2 저장부; 및
    상기 제 2 단과 상기 제 3 단 사이에 연결되며, 상기 제 1 저장부에서 선택된 자기 소자의 상태에 대응하는 신호를 출력하거나, 상기 제 1 저장부에서 선택된 자기 소자 또는 상기 제 2 저장부에서 선택된 자기 소자의 상태를 변경할 신호를 입력받는 신호 입출력부;
    를 포함하는 LUT(Look Up Table) 회로.
  2. 청구항 1에 있어서, 제 1 시간 동안 상기 디코딩 신호에 따라 상기 제 1 저장부 및 상기 제 2 저장부에서 선택된 자기 소자의 상태에 대응하는 신호를 출력하고, 상기 제 1 시간 경과 후 상기 제 1 저장부, 상기 제 2 저장부, 및 상기 신호 입출력부를 통해 전원단에서 접지단으로 흐르는 전류 경로를 차단하도록 상기 신호 입출력부를 제어하는 신호 입출력 제어부를 더 포함하는 LUT 회로.
  3. 청구항 2에 있어서, 상기 신호 입출력 제어부는 상기 제 1 시간 동안 상기 신호 입출력부에서 출력된 신호가 상기 제 1 시간 경과 후에도 유지되도록 상기 신호 입출력부를 제어하는 LUT 회로.
  4. 삭제
  5. 청구항 1에 있어서, 상기 제 1 단에 전원단이 연결되고 상기 제 4 단에 접지단이 연결되는 LUT 회로.
  6. 청구항 5에 있어서, 상기 신호 입출력부는 상기 제 2단과 상기 제 3단 사이에서 직렬 연결되는 제 1 PMOS 트랜지스터와 제 1 NMOS 트랜지스터를 포함하되, 상기 제 1 PMOS 트랜지스터와 제 1 NMOS 트랜지스터의 공통 드레인이 제 1 노드에 연결되어 상기 제 1 노드를 통해 신호가 입출력되는 LUT 회로.
  7. 청구항 6에 있어서, 제 1 시간 동안 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터는 모두 턴온되고, 상기 제 1 시간 경과 후 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터 중 적어도 하나는 턴오프되도록 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터의 게이트를 제어하는 신호 입출력 제어부를 더 포함하는 LUT 회로.
  8. 청구항 7에 있어서, 상기 신호 입출력 제어부는 상기 제 1 시간 동안 상기 신호 입출력부에서 출력된 출력 신호가 상기 제 1 시간 경과 후에도 유지되도록 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터의 게이트를 제어하는 LUT 회로.
  9. 청구항 8에 있어서, 상기 신호 입출력 제어부는 제 1 클록 신호와 상기 출력 신호를 노어 연산하여 상기 제 1 PMOS 트랜지스터의 게이트를 제어하는 노어 게이트와 상기 제 1 클록 신호와 위상이 반대인 제 2 클록 신호와 상기 출력 신호를 낸드 연산하여 상기 제 1 NMOS 트랜지스터의 게이트를 제어하는 낸드 게이트를 포함하는 LUT 회로.
  10. 청구항 9에 있어서, 상기 신호 입출력 제어부는 클록 신호와 쓰기 활성화 신호를 오어 연산하여 상기 제 1 클록 신호를 출력하는 오어 게이트와 상기 클록 신호와 상기 쓰기 활성화 신호를 노어 연산하여 상기 제 2 클록 신호를 출력하는 노어 게이트를 더 포함하는 LUT 회로.
  11. 청구항 6에 있어서, 상기 신호 입출력부는 쓰기 동작 시 턴온되며 상기 제 1 PMOS 트랜지스터와 병렬 연결되는 제 2 NMOS 트랜지스터와 쓰기 동작 시 턴온되며 상기 제 1 NMOS 트랜지스터와 병렬 연결되는 제 2 PMOS 트랜지스터를 더 포함하는 LUT 회로.
  12. 청구항 6에 있어서, 쓰기 동작 시 상기 제 1 노드에 제 1 쓰기 신호를 제공하는 스위치, 상기 제 1 단에 제 2 쓰기 신호를 제공하는 스위치, 및 상기 제 4 단에 제 3 쓰기 신호를 제공하는 스위치를 더 포함하는 LUT 회로.
  13. 제 1 시간 동안 입력 신호에 대응하는 자기 소자의 상태에 따라 신호를 출력하는 다수의 제 2 LUT 회로; 및
    상기 제 1 시간과 중첩되지 않는 제 2 시간 동안 상기 입력 신호에 대응하는 자기 소자의 상태에 따라 신호를 출력하는 다수의 제 3 LUT 회로
    를 포함하는 FPGA.
  14. 청구항 13에 있어서, 상기 제 2 LUT 회로는 상기 제 1 시간 동안 출력된 신호를 상기 제 1 시간 경과 후에도 유지하고 상기 제 3 LUT 회로는 상기 제 2 시간 동안 출력된 신호를 상기 제 2 시간 경과 후에도 유지하는 FPGA.
  15. 청구항 13에 있어서, 상기 제 2 LUT 회로는
    입력 신호에 따라 디코딩 신호를 출력하는 디코더;
    상기 디코딩 신호에 대응하는 하나 또는 둘 이상의 자기 소자를 선택하는 저장부;
    상기 저장부에서 선택된 자기 소자의 상태에 대응하는 신호를 출력하거나 상기 선택된 자기 소자의 상태를 변경할 신호를 입력받는 신호 입출력부; 및
    상기 제 1 시간 동안 상기 디코딩 신호에 따라 선택된 자기 소자의 상태에 대응하는 신호를 출력하고, 상기 제 1 시간 경과 후 상기 저장부와 상기 신호 입출력부를 통해 전원단에서 접지단으로 흐르는 전류 경로를 차단하도록 상기 신호 입출력부를 제어하는 신호 입출력 제어부
    를 포함하는 FPGA.
  16. 청구항 15에 있어서,
    상기 저장부는
    제 1 단과 제 2 단 사이에 연결되며 다수의 자기 소자를 포함하며 상기 디코딩 신호를 반전한 신호에 따라 대응하는 자기 소자를 선택하는 제 1 저장부; 및
    제 3 단과 제 4 단 사이에 연결되며 다수의 자기 소자를 포함하며 상기 디코딩 신호에 따라 대응하는 자기 소자를 선택하는 제 2 저장부
    를 포함하고,
    상기 신호 입출력부는
    상기 제 2단과 상기 제 3단 사이에서 직렬 연결되는 제 1 PMOS 트랜지스터와 제 1 NMOS 트랜지스터를 포함하되, 상기 제 1 PMOS 트랜지스터와 제 1 NMOS 트랜지스터의 공통 드레인이 제 1 노드에 연결되어 상기 제 1 노드를 통해 신호가 입출력되고,
    상기 신호 입출력 제어부는
    상기 제 1 시간 동안 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터는 모두 턴온되고, 상기 제 1 시간 경과 후 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터 중 적어도 하나는 턴오프되도록 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터의 게이트를 제어하는 FPGA.
  17. 청구항 13에 있어서, 상기 제 3 LUT 회로는
    입력 신호에 따라 디코딩 신호를 출력하는 디코더;
    상기 디코딩 신호에 대응하는 하나 또는 둘 이상의 자기 소자를 선택하는 저장부;
    상기 저장부에서 선택된 자기 소자의 상태에 대응하는 신호를 출력하거나 상기 선택된 자기 소자의 상태를 변경할 신호를 입력받는 신호 입출력부; 및
    상기 제 2 시간 동안 상기 디코딩 신호에 따라 선택된 자기 소자의 상태에 대응하는 신호를 출력하고, 상기 제 2 시간 경과 후 상기 저장부와 상기 신호 입출력부를 통해 전원단에서 접지단으로 흐르는 전류 경로를 차단하도록 상기 신호 입출력부를 제어하는 신호 입출력 제어부
    를 포함하는 FPGA.
  18. 청구항 17에 있어서,
    상기 저장부는
    제 1 단과 제 2 단 사이에 연결되며 다수의 자기 소자를 포함하며 상기 디코딩 신호를 반전한 신호에 따라 대응하는 자기 소자를 선택하는 제 1 저장부; 및
    제 3 단과 제 4 단 사이에 연결되며 다수의 자기 소자를 포함하며 상기 디코딩 신호에 따라 대응하는 자기 소자를 선택하는 제 2 저장부
    를 포함하고,
    상기 신호 입출력부는
    상기 제 2단과 상기 제 3단 사이에서 직렬 연결되는 제 1 PMOS 트랜지스터와 제 1 NMOS 트랜지스터를 포함하되, 상기 제 1 PMOS 트랜지스터와 제 1 NMOS 트랜지스터의 공통 드레인이 제 1 노드에 연결되어 상기 제 1 노드를 통해 신호가 입출력되고,
    상기 신호 입출력 제어부는
    상기 제 2 시간 동안 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터는 모두 턴온되고, 상기 제 2 시간 경과 후 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터 중 적어도 하나는 턴오프되도록 상기 제 1 PMOS 트랜지스터와 상기 제 1 NMOS 트랜지스터의 게이트를 제어하는 FPGA.
  19. 청구항 13에 있어서, 상기 제 1 시간은 클록 신호가 하이 레벨인 구간에 대응하고 상기 제 2 시간은 상기 클록 신호가 로우 레벨인 구간에 대응하는 FPGA.
  20. 제 1 시간 동안 입력 신호에 대응하는 자기 소자의 상태에 따라 신호를 출력하는 다수의 제 2 LUT 회로; 및 상기 제 1 시간과 중첩하지 않는 제 2 시간 동안 상기 입력 신호에 대응하는 자기 소자의 상태에 따라 신호를 출력하는 다수의 제 3 LUT 회로를 포함하는 FPGA의 기술 맵핑 방법으로서,
    입력된 게이트 레벨 넷리스트를 AIG(And-Inverter Graph)로 변환하는 단계;
    AIG의 노드들을 순차적으로 선택하면서 선택된 매 노드에 대응하는 하나 또는 둘 이상의 컷들을 포함하는 컷 집합을 생성하고 상기 컷 집합에 포함된 컷들을 일정한 기준에 따라 정렬하여 어느 한 컷을 선택하는 단계; 및
    상기 매 노드에 대해서 선택된 컷들을 포함하는 LUT 레벨 넷리스트를 출력하는 단계를 포함하되,
    컷은 하나의 제 2 LUT 회로 또는 하나의 제 3 LUT 회로에 대응하는 하나 또는 둘 이상의 AIG의 노드들의 집합을 의미하고,
    컷의 레벨 수는 컷과 AIG의 주 입력 노드 사이에 일렬로 연결된 컷들의 개수에 연관된 값이고,
    상기 일정한 기준은 컷에 연결된 하위 컷들의 레벨 수의 최대 차이를 제 1 기준으로 하는 FPGA의 기술 맵핑 방법.
  21. 청구항 20에 있어서, 상기 일정한 기준은 상기 제 1 기준에 의한 값이 동일한 컷이 존재하는 경우 컷에 대응하는 지연량을 제 2 기준으로 적용하고, 상기 제 2 기준에 의한 값이 동일한 컷이 존재하는 경우 상기 컷이 차지하는 면적을 제 3 기준으로 적용하는 FPGA의 기술 맵핑 방법.
KR1020170038994A 2017-03-28 2017-03-28 자기 소자를 포함하는 lut, 이를 포함하는 fpga 및 기술 매핑 방법 KR102245385B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170038994A KR102245385B1 (ko) 2017-03-28 2017-03-28 자기 소자를 포함하는 lut, 이를 포함하는 fpga 및 기술 매핑 방법
US15/802,148 US10419001B2 (en) 2017-03-28 2017-11-02 Look up table including magnetic element, FPGA including the look up table, and technology mapping method of the FPGA
US16/529,669 US10615801B2 (en) 2017-03-28 2019-08-01 Technology mapping method of an FPGA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170038994A KR102245385B1 (ko) 2017-03-28 2017-03-28 자기 소자를 포함하는 lut, 이를 포함하는 fpga 및 기술 매핑 방법

Publications (2)

Publication Number Publication Date
KR20180109365A KR20180109365A (ko) 2018-10-08
KR102245385B1 true KR102245385B1 (ko) 2021-04-27

Family

ID=63671055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170038994A KR102245385B1 (ko) 2017-03-28 2017-03-28 자기 소자를 포함하는 lut, 이를 포함하는 fpga 및 기술 매핑 방법

Country Status (2)

Country Link
US (2) US10419001B2 (ko)
KR (1) KR102245385B1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625523B2 (en) 2016-12-14 2023-04-11 iCometrue Company Ltd. Logic drive based on standard commodity FPGA IC chips
US10489544B2 (en) 2016-12-14 2019-11-26 iCometrue Company Ltd. Logic drive based on standard commodity FPGA IC chips
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
US20190229734A1 (en) * 2018-01-24 2019-07-25 Microsemi Soc Corp. Vertical resistor buffered multiplexer buskeeper
US10714180B2 (en) 2018-02-01 2020-07-14 Microsemi Soc Corp. Hybrid configuration memory cell
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
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
US10924112B2 (en) * 2019-04-11 2021-02-16 Ememory Technology Inc. Bandgap reference circuit
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
CN112947282B (zh) * 2021-03-08 2023-06-20 电子科技大学 一种应用于电源门控fpga结构中的新型隔离单元
CN116997965A (zh) 2021-03-08 2023-11-03 微芯片技术股份有限公司 选择性交叉耦合反相器以及相关设备、系统和方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050256485A1 (en) * 2004-05-14 2005-11-17 Samuel Carasso Method of using intravaginal device with fluid transport plates
US7406668B1 (en) * 2005-03-03 2008-07-29 Altera Corporation Methods for producing mappings of logic suitable for FPGA and structured ASIC implementations
US7418690B1 (en) * 2005-04-29 2008-08-26 Altera Corporation Local searching techniques for technology mapping
US7448005B2 (en) * 2006-01-26 2008-11-04 International Business Machines Corporation Method and system for performing utilization of traces for incremental refinement in coupling a structural overapproximation algorithm and a satisfiability solver
US7356792B2 (en) * 2006-01-26 2008-04-08 International Business Machines Corporation Method and system for enhanced verification by closely coupling a structural overapproximation algorithm and a structural satisfiability solver
US7728622B2 (en) * 2007-03-29 2010-06-01 Qualcomm Incorporated Software programmable logic using spin transfer torque magnetoresistive random access memory
US8295082B2 (en) 2008-08-15 2012-10-23 Qualcomm Incorporated Gate level reconfigurable magnetic logic
JP6201259B2 (ja) * 2012-01-01 2017-09-27 国立大学法人東北大学 集積回路
FR2990089B1 (fr) 2012-04-27 2014-04-11 Commissariat Energie Atomique Dispositif logique reprogrammable resistant aux rayonnements.
US9306151B2 (en) * 2012-05-25 2016-04-05 Arizona Board Of Regents, A Body Corporate Of The State Of Arizona, Acting For And On Behalf Of Arizona State University Threshold gate and threshold logic array
US8841739B2 (en) * 2012-09-08 2014-09-23 The Regents Of The University Of California Systems and methods for implementing magnetoelectric junctions
TWI493548B (zh) * 2013-01-31 2015-07-21 Ind Tech Res Inst 可組態邏輯區塊及其操作方法
JP2015026901A (ja) * 2013-07-24 2015-02-05 株式会社東芝 リコンフィギュラブル論理回路
US9954533B2 (en) * 2014-12-16 2018-04-24 Samsung Electronics Co., Ltd. DRAM-based reconfigurable logic
JP2018120992A (ja) * 2017-01-26 2018-08-02 株式会社東芝 集積回路および電子機器

Also Published As

Publication number Publication date
US10615801B2 (en) 2020-04-07
KR20180109365A (ko) 2018-10-08
US10419001B2 (en) 2019-09-17
US20180287614A1 (en) 2018-10-04
US20190356316A1 (en) 2019-11-21

Similar Documents

Publication Publication Date Title
KR102245385B1 (ko) 자기 소자를 포함하는 lut, 이를 포함하는 fpga 및 기술 매핑 방법
US7196942B2 (en) Configuration memory structure
US7116131B1 (en) High performance programmable logic devices utilizing dynamic circuitry
US7864620B1 (en) Partially reconfigurable memory cell arrays
KR102304087B1 (ko) 다중 모드들을 갖는 에스램 워드라인 드라이버 공급 블록
JP6517626B2 (ja) 再構成可能な半導体装置
WO2010039896A2 (en) Volatile memory elements with soft error upset immunity
KR102268023B1 (ko) 집적 회로 디바이스에서 전압 레벨 시프팅을 제공하는 회로들 및 방법들
KR101468897B1 (ko) 도미도 로직 회로 및 파이프라인 도미노 로직 회로
US7932745B2 (en) Inverting flip-flop for use in field programmable gate arrays
WO2012122521A2 (en) Memory cell system and method
US7319619B1 (en) Programmable logic device memory blocks with adjustable timing
JP6751442B2 (ja) プログラマブルロジックデバイス内のフットプリントを削減し、ファブリック多重度を向上させるシステムおよび方法
US9576625B1 (en) Register initialization using multi-pass configuration
US5373203A (en) Decoder and latching circuit with differential outputs
US9729154B2 (en) Reconfigurable logic device configured as a logic element or a connection element
US9628084B2 (en) Reconfigurable logic device
KR102409505B1 (ko) 비휘발성 메모리 소자를 포함하는 lut, lut를 포함하는 fpga 및 fpga 디자인 방법
EP2382713B1 (en) A circuit for and method of reducing power consumption in input ports of an integrated circuit
US20160180922A1 (en) Multi-state configuration ram cell
US9721649B1 (en) Circuit for and method of implementing a write operation of a memory
US8373437B2 (en) Look-up table circuits and field programmable gate array
Parajuli A custom layout of a 8 bit RISC microcontroller

Legal Events

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