KR101823281B1 - 금속/비아 프로그램 가능한 게이트 어레이 집적 회로를 위한 프로그램 가능한 매크로 - Google Patents

금속/비아 프로그램 가능한 게이트 어레이 집적 회로를 위한 프로그램 가능한 매크로 Download PDF

Info

Publication number
KR101823281B1
KR101823281B1 KR1020167017787A KR20167017787A KR101823281B1 KR 101823281 B1 KR101823281 B1 KR 101823281B1 KR 1020167017787 A KR1020167017787 A KR 1020167017787A KR 20167017787 A KR20167017787 A KR 20167017787A KR 101823281 B1 KR101823281 B1 KR 101823281B1
Authority
KR
South Korea
Prior art keywords
metal
circuit
programmable
switches
computer
Prior art date
Application number
KR1020167017787A
Other languages
English (en)
Other versions
KR20160093695A (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 KR20160093695A publication Critical patent/KR20160093695A/ko
Application granted granted Critical
Publication of KR101823281B1 publication Critical patent/KR101823281B1/ko

Links

Images

Classifications

    • G06F17/5045
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

금속/비아 프로그램 가능한 IC에서의 사용을 위한 복수의-개별화 프로그램 가능한 매크로의 생성을 완전히 자동화하기 위한 설계 방법론이 제공된다. 프로그램 가능성은 프로그램 가능한 스위치를 사용하여 달성되는데, 이들 각각은, 직렬, 병렬 또는 조합으로 구성된 하나 이상의 층 상의 하나 이상의 금속 트레이스 및/또는 비아를 포함할 수 있다. 복수의 오버랩핑 스위치는 동일한 장소에 존재할 수 있다. 즉, 스위치는 동일한 리소스(resource)의 일부를 사용하도록 형성될 수 있다. 특정 리소스를 공유하는 스위치의 임의의 하나는 "턴온"되는 반면, 다른 스위치들은 턴오프될 수 있다. 설계 방법론의 일부에 관하여, 전기 회로 설계의 다양한 네트(net) 또는 부분은 스위치를, 회로를 닫는 하드 연결부(hard connection) 또는 회로를 개방하기 위해, 또는 회로를 개방하여 유지하기 위해 연결부를 사용하지 않는 것으로, 대체함에 의해 프로그램될 수 있다. 방법론은 라우팅 또는 프로그래밍 리소스를 공유하도록 하여서, 최적의 레이아웃 면적 사용을 달성한다.

Description

금속/비아 프로그램 가능한 게이트 어레이 집적 회로를 위한 프로그램 가능한 매크로{PROGRAMMABLE MACROS FOR METAL/VIA PROGRAMMABLE GATE ARRAY INTEGRATED CIRCUITS}
금속/비아 프로그램 가능한 게이트 어레이 집적 회로(IC)는 매크로셀 또는 "매크로"를 사용하여, IC의 기능을 정의한다. 이러한 매크로는 가령, 10개의 버퍼, PLL, DLL, 메모리 셀 등을 포함한다. 이러한 매크로는 전형적으로, 프로그램 불가능하였다. 결과적으로, 기존 금속/비아 프로그램 가능한 게이트 어레이 IC로부터 파생한 IC를 만드는 것은 전형적으로, 광대한 재설계가 요구되었다. 프로그램 가능성의 부재에 대한 하나의 가능한 이유는 프로그램 가능한 층을 사용하기 위한 적절한 설계 방법론의 부재이다.
본 발명은 첨부된 도면과 함께 이하의 상세한 설명에 의해 이해될 수 있다.
도 1a는 매크로셀의 주문제작(프로그래밍, 개별화)를 가능하게 하는 소프트 스위치를 포함하는 기본(중립의) 매크로셀의 일부의 회로도이다.
도 1b 내지 도 1d는 도 1a의 매크로셀의 다양한 주문제작의 회로도이다.
도 2a는 주문제작된 흐름을 포함하는 집적 회로 설계 흐름의 순서도이다.
도 2b는 주문제작된 흐름을 포함하는 또 다른 집적 회로 설계 흐름의 순서도이다.
도 3a는 도 2a 및 도 2b의 주문제작된 흐름에서 사용될 수 있는 스위치의 하나의 예시의 단면도이다.
도 3b는 도 2a 및 도 2b의 주문제작된 흐름에서 사용될 수 있는 스위치의 또 다른 예시의 단면도이다.
도 4a는 매크로셀의 주문제작(프로그래밍, 개별화)를 가능하게 하는 소프트 스위치를 포함하는 기본(중립의) 매크로셀의 회로도이다.
도 4b 및 4c는 도 4a의 매크로셀의 다양한 주문제작의 회로도이다.
도 5a-5c는 도 4a-4c의 매크로셀의 레이아웃도이다.
도 6a-6c는 도 4a-4c의 매크로셀의 단면도이다.
도 7a는 매크로셀의 일부의 레이아웃도인데, 여기서, 스위치는 라우팅 트랙을 막는다.
도 7b는 도 7a의 매크로셀의 레이아웃도인데, 여기서, 매크로셀이 사용되지 않기 때문에, 스위치 또는 내부 신호 금속은 제거되었다.
도 7c는 도 7b의 매크로셀의 레이아웃도인데, 여기서, 프리드 라우팅 트랙은 소스 신호와 신호 타겟을 연결하는데 사용되었다.
도 8a-8c는 도 7a-7c의 매크로셀의 단면도이다.
도 9a는 매크로 A 및 B를 포함하는 제1 회로 컨피규레이션의 개략도이다.
도 9b는 제2 회로 컨피규레이션의 회로도인데, 여기서, 도 9a의 매크로 A로부터의 장치는 매크로 B로 재할당되어서, 새로운 매크로 X 및 Y를 초래한다.
도 10a는 도 9a의 회로 컨피규레이션의 확산 및 폴리층의 레이아웃도이다.
도 10b는 도 9b의 회로 컨피규레이션의 확산 및 폴리층의 레이아웃도이다.
도 11은 매크로 치환 또는 재설계 및 매크로 프로그래밍을 나타내는 회로도이다.
도 12a는 중립 회로의 회로도 및 레이아웃도이다.
도 12b는 도 12a의 회로의 제1 주문제작의 회로도 및 레이아웃도이다.
도 12c는 도 12a의 회로의 제2 주문제작의 회로도 및 레이아웃도이다.
요약
금속/비아 프로그램 가능한 IC에서의 사용을 위한 복수의-개별화 프로그램 가능한 매크로의 생성을 완전히 자동화하기 위한 설계 방법론이 제공된다. 프로그램 가능성(programmability)은 프로그램 가능한 스위치를 사용하여 달성되는데, 이들 각각은, 직렬, 병렬 또는 직렬과 병렬 컨피규레이션의 조합으로 구성된 하나 이상의 층 상의 하나 이상의 금속 트레이스 및/또는 비아를 포함할 수 있다. 더구나, 복수의 오버랩핑 스위치는 동일한 장소에 존재할 수 있다. 즉, 스위치는 동일한 리소스(resource)의 일부를 사용하도록 형성될 수 있다. 특정 리소스를 공유하는 스위치의 임의의 하나는 턴온되는 반면, 다른 스위치들은 턴오프될 수 있다. 설계 방법론의 일부에 관하여, 전기 회로 설계의 다양한 네트(net) 또는 부분은 스위치를, 회로를 닫는 하드 연결부(hard connection) 또는 회로를 개방하기 위해, 또는 회로를 개방하여 유지하기 위해 연결부를 사용하지 않는 것으로, 대체함에 의해 프로그램될 수 있다. 방법론은 라우팅 또는 프로그래밍 리소스를 공유하도록 하여서, 최적의 레이아웃 면적 사용을 달성한다.
다양한 개별화 매크로를 위한 회로도 및 레이아웃의 생성은 단일 회로도 및 레이아웃에 기초하여 완전히 자동화될 수 있다. 하드 스위칭 장치는 최종 프로그램된 회로도 또는 네트리스트(netlist) 및 회로 설계 레이아웃에서 완전히 제거될 수 있다. 이들은 설계의 더 우수한 물리적 및 행동의 표현을 낳고, 기존의 EDA 툴과 완전히 호환된다. 전기적 규칙을 확인하는 동안에, 스위치 장치가 없어도 연결성은 더욱 정확하게 추출될 수 있다. 기생 추출(parasitic extraction) 동안에, 유사한 이익이 실현되는데, 추출 결과 정확성은 스위치 장치를 모델링할 필요 없이 개선된다.
일 실시예에서, 적어도 하나의 소프트웨어-기반의 설계 툴을 사용하여 매크로-기반의 금속-프로그램 가능한 집적 회로를 디자인하는 것이 컴퓨터로-실행되는 방법에 제공된다. 본 방법에 따르면, 각각의 복수의 매크로는 비-맞춤제작된 회로도 및 비-맞춤제작된 레이아웃도에 의해 표현된다. 소프트웨어 설계 툴로의 사용자 입력은 수신되고, 사용자 입력에 기초하여, 소프트웨어-기반의 설계 툴은 맞춤제작된 회로도 및 맞춤제작된 레이아웃도에 의해 표현된 적어도 하나의 개별화된 매크로를 자동으로 생성한다.
또 다른 실시예에서, 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드를 프로그램 가능하게 상호연결하는 방법이 제공된다. 설계 단계 동안에, 복수의 잠재적인 상호연결부의 각각은 스위치로 나타나며, 이는 적어도 두 개의 회로 노드를 연결하는 라인 심볼(line symbol)로 표현될 수 있다. 잠재적인 상호연결부의 각각에 대해, 물리적 리소스는 회로 노드를 연결하기 위해 준비되고, 물리적 리소스는 하나 이상의 비아, 하나 이상의 금속 라인 또는 하나 이상의 비아 및 하나 이상의 라인 둘 다를 포함한다. 잠재적인 상호연결부의 다양한 것들은 다양한 물리적 레이아웃을 가진다. 물리적 레이아웃 단계 동안에, 물리적 상호연결부의 각각의 상태는 명시되고, 잠재적인 상호연결부의 각각에 대해, 레이아웃은 하나 이상의 비아, 하나 이상의 금속 라인 또는 하나 이상의 비아 및 하나 이상의 라인 둘 다로 수행된다.
또 다른 실시예에서, 매크로 설계 A는, 특정 레벨에서, 프로그램 가능한 모든 상호연결 스위치와 기존의 상호연결부를 제거한 후에, 새로운 세트의 프로그램 가능한 상호연결 스위치와 상호연결부로 대체함에 의해, 매크로 설계 B(서로 다른 회로 설계)로 변환될 수 있다. 각각의 매크로 A 및 매크로 B는 스위치 프로그래밍 흐름을 통해, 다양한 개별화 회로 내로 더욱 프로그램될 수 있다.
상세한 설명
이제 도 1a를 참조하면, 도면에는 회로 노드 N1, N2, N3 및 N4를 포함하는 회로도의 일부가 도시된다. 이러한 예시에서, 노드 N1 및 N2는 수평 금속 라인이고, 노드 N3 및 N4는 수직 금속 라인이다. 또한, 회로도는 "소프트" 프로그램 가능한 스위치 S1, S2, S3 및 S4를 포함한다. 각각의 스위치는 두 개의 회로 노드 사이의 라인에 의해 표현되고, 속이 차지 않은 원에 의해 회로 노드에 연결된다. 이러한 표현은 프로그램되지 않은 상태에 있는 스위치를 나타낸다. (스위치는 다른 회로 소자와 구별되기만 한다면 임의의 다른 심볼로 표현될 수 있다는 점에 주목한다.) 도 1a의 회로는, 중립 또는 프로그램되지 않은 기본 매크로의 일부 회로 노드를 표현할 수 있다.
스위치 S1-S4는 도 1b-1d에 도시된 바와 같이, 기본 매크로의 다양한 주문제작에 도달하기 위해 다양한 조합과 컨피규레이션으로 프로그램될 수 있다. 코미티드(committed) 상태에서, 스위치가 턴온되면, 스위치의 원이 채워진다. 도 1b에서, 스위치 S1 및 S4가 턴온되는 반면, 스위치 S2 및 S3이 턴오프된다. 이들이 턴오프되기 때문에, 이들은 회로도에서 생략된다. 도 1c에서, 스위치 S2 및 S3만 턴온된다. 도 1d에서, 스위치 S1 및 S2만 턴온된다.
도 2a를 참조하면, 도 1의 것과 유사한 프로그램 가능한 매크로와 스위치를 사용하는 설계 방법론의 일부가 도시된 순서도이다. 종래의 설계 방법론에서, 논리적(회로) 및 물리적(레이아웃) 설계(201)는 표준 ASIC 또는 종래의 게이트 어레이 설계 흐름(220)으로 입력된다. 종래의 설계 흐름에서, 다양한 기능을 가진 매크로의 각각의 주문제작을 위해 많은 논리적(회로) 및 물리적(레이아웃) 설계(201)가 있을 수 있다. 전형적인 ASIC 설계 흐름 단계는 가령, 물리적 검증, 설계 규칙 확인, 레이아웃 대 회로도 확인, RC 기생 추출등을 포함할 수 있다. 일 실시예에 따르면, 도 2a의 설계 흐름은 추가적인 주문제작된 흐름 단계(210)를 포함하여, 도 1의 것과 같이 소프트 스위치를 사용하여 프로그램 가능한 매크로를 가능하게 하여, 개발 및 검증 시간의 감소를 초래할 수 있는 하나의 논리적(회로) 및 물리적(레이아웃) 설계(201)로부터 매크로의 다양한 개별화 또는 기능을 생성할 수 있다.
단계 211에서, 다양한 매크로(201)의 회로도 및 레이아웃도가 프로그램된다. 이러한 단계에서, 개방된(오프) 스위치가 제거되고, 닫힌(온) 스위치는 와이어로 단락된다. 프로그래밍은 각각의 스위치의 상태(개방/닫힘)를 결정하는 하나 이상의 스위치 스펙(213)에 따라 수행된다. 그리고 나서, 결과적으로 수정된 회로 및 레이아웃 설계(215)는 단계 220으로 입력된다.
도 2a의 설계 방법론에 따르면, 매크로의 프로그램된 다양한 인스턴스(즉, 다양한 개별화 매크로)를 위한 회로 및 레이아웃의 생성은 단일의, 비맞춤제작된 회로 및 레이아웃에 기초하여 완전히 자동화될 수 있다.
도 2b를 참조하면, 순서도는 도 1의 것과 같이 프로그램 가능한 매크로와 스위치를 사용하는 설계 방법론의 일부를 도시한다. 도 2a와 비교하면, 표준 ASIC 설계 흐름의 단계(도 2a에서의 220)가 분리된다. 단계 220-1의 제1 그룹은, 일 실시예에서, 레이아웃 대 회로도 확인(layout versus schematic checking, LVS) 및 설계 규칙 확인(design rule checking, DRC)을 포함한다. 이들 단계는 추가적인 주문제작된 흐름 단계 210 이전에 수행된다. 즉, LVS 및 DRC 단계는 중립의 레이아웃에 대해 수행된다. 주문제작된 흐름 단계 210 이후에, ASIC 설계 흐름의 나머지 그룹의 단계 220-2가 수행된다.
중립의 레이아웃에 LVS 및 DRC를 수행함에 의해, 매크로의 서로 다른 프로그램된 인스턴스(즉, 서로 다른 개별화 매크로)의 생성된 레이아웃은 항상 "LVS 및 DRC 클린"이고, 서로 다른 개별화 매크로의 개발 및 검증 시간을 줄인다.
도 3a 및 3b를 참조하면, 서로 다른 잠재적인 스위치 레이아웃의 예시가 단면도로 도시된다. 스위치는 하나 이상의 프로그램 가능한 레이아웃 층(가령, 금속 또는 비아)으로 직렬 또는 병렬로 맵핑된다. 도 3a의 예시에서, 스위치는 V23-M3-V23 컨피규레이션을 가진다. 다시 말해, 스위치에 의해 결합된 회로 노드는, 비아, 금속 트레이스 및 또 다른 비아의 조합에 의해 결합된다. 이러한 예시에서, 금속 트레이스는 금속3 층(M3)에 속하고, 비아는 금속3 층 아래에 있고, 금속2 층 위에 있는 비아 층(V23)에 속한다. 도 3b의 예시에서, 스위치는 V23-M3-V34-M4 컨피규레이션을 가지고, 동일한 표시를 관측한다.
도 4a-4c, 5a-5c 및 6a-6c를 참조하면, 서로 다른 스위치는 금속/비아 프로그래밍 리소스의 동일한 콜렉션의 일부를 공유할 수 있다. 도 4a의 예시에서, 노드 N1, N2, N3는, 수평 및 수직 라인과 같이 논리적으로 나타나는 수직 금속 트레이스이다. 스위치(S12)는 잠재적으로 결합하는 노드(N1 및 N2)를 형성한다. 스위치(S13)는 잠재적로 결합하는 노드(N1 및 N3)를 형성한다. 도 4a의 회로도는 현재 중립인 기본 매크로 설계의 일부를 나타낸다. 대응되는 레이아웃 표현이 도 5a에 도시되는데, 이는 각각의 노드(N1, N2 및 N3)에 해당하는 금속 트레이스의 일부를 도시하고, 금속 트레이스가 금속 층(M3)에 형성될 수 있는 트랙(T1)의 일부를 대시 라인으로 도시한다. 트랙(T1)은 스위치(S12 및 S13)에 의해 공유된다. 대응되는 단면도는 도 6a에 도시된다. 기본 설계에서, 각각의 노드(N1, N2 및 N3)에 해당하는 금속 트레이스는 금속 층(M2)를 차지할 수 있다. 비아 층(V23) 및 금속 층(M3) 내에 어떠한 구조물도 존재하지 않는다.
도 4b, 5b 및 6b를 참조하면, 첫번째 주문제작에 따르면, 도 4b의 속이 찬 원에 의해 표시된 바와 같이, 스위치(S12)는 턴온되고, 스위치(S13)은 턴오프(따라서, 삭제)된다. 도 5b에서 볼 수 있는 바와 같이, 스위치(S12)는, 노드(N1)의 금속과 접촉하는 비아, 트랙(T1) 내에 형성된 금속 세그먼트, 및 노드(N2)의 금속과 접촉하는 비아의 조합에 의해 실현된다. 해당되는 단면도는 도 6b에 도시된다.
도 4c, 5c 및 6c를 참조하면, 두번째 주문제작에 따르면, 도 4c의 속이 찬 원에 의해 표시된 바와 같이, 스위치(S13)는 턴온되고, 스위치(S12)은 턴오프(따라서, 삭제)된다. 도 5c에서 볼 수 있는 바와 같이, 스위치(S13)는, 노드(N1)의 금속과 접촉하는 비아, 트랙(T1) 내에 형성된 더 긴 금속 세그먼트, 및 노드(N3)의 금속과 접촉하는 비아의 조합에 의해 실현된다. 해당되는 단면도는 도 6c에 도시된다.
이전에 기술된 바와 같이, 스위치가 턴오프되면, 결과적인 회로도에서 제거된다. 동시에, 이전에 스위치를 위해 준비(reserve)된 리소스가 프리드 업(freed up)된다. 이들 프리드-업 리소스는 가령, 추가적인 라우팅 리소스에서와 같이, 레이아웃 동안에 사용될 수 있다. 이러한 개념은 도 7a-7c 및 8a-8c에 도시된다. 도 7a를 참조하면, M2-V23-M3-V23 스위치 구조물에 의해 결합된 두 개의 금속 트레이스를 가진 매크로의 일부가 상면도로 도시된다. 스위치 구조물(S)은 트랙(T2)의 일부를 차지한다. 또한, 신호 소스에 연결된 금속 트레이스 세그먼트(M3A) 및 신호 타겟에 연결된 금속 트레이스 세그먼트(M3B)도 도시되는데, 여기서, 두 금속 트레이스 세그먼트(M3A 및 M3B)는 트랙(T2)를 차지한다. 트랙(T2)의 일부가 스위치(S)를 위해 준비되기 때문에, 소스와 타겟 사이의 라우팅은 막힌다. 해당 단면도는 도 8a에 도시된다.
스위치(S)가 턴오프될 것으로 결정되면, 스위치(S)를 위해 이전에 준비된 트랙(T2)의 일부(NS)는, 도 7b 및 도 8b에 도시된 바와 같이, 비준비될 수 있다. 결과적으로, 금속 세그먼트(M3A 및 M3B)는, 도 7c 및 도 8c에 도시된 바와 같이, 신호 소스 및 신호 타겟을 연결하는 단이 금속 세그먼트(M)으로, 함께 결합될 수 있다. 즉, 금속/비아-프로그램 가능한 기본 어레이 장치내에 할당되었는 매크로 리소스가 사용되지 않을 때, 리소스에 속하는 프로그램 가능한 금속 및 비아(들)은 제거될 수 있어서, 사용하는 장소 및 라우트 흐름의 일부로서 신호 라우팅을 위한 방법을 만든다. 그리고 나서, 프리드-업 리소스는 (이전에 기술된 예시에서 금속 세그먼트(M3A 및 M3B)를 결합하는 금속의 경우에서와 같이) "매크로-필-인(macro-fill-in)" 특징부에 의해 사용될 수 있다.
이제까지 기술된 예시에서, 특정한 매크로에 속하는 장치(즉, 트랜지스터)의 수는 스위치의 프로그래밍과 무관하게 변하지 않고 유지된다고 가정하였다. 다른 실시예에서, 장치(비프로그램 가능한 층)는 매크로들 사이에 재할당될 수 있어서, 다양한 범위의 재프로그램 가능성을 가능하게 한다. 이러한 재할당은 가령, 새로운 매크로의 새로운 회로 설계를 생성함에 의해 달성될 수 있는데, 여기서, 설계자는 최종 레이아웃의 기본 층이 원래의 레이아웃의 기본 층(가령, 폴리실리콘 및 확산)과 일치하는 한, 회로를 재구성하기 위해 완전한 유연성을 가진다. 도 9a를 참조하면, 각각 두 개의 장치를 가진 두 개의 매크로셀(A 및 B)의 일부가 상면도로 도시된다. 도 10a에 도시된 바와 같이, 가령, 장치는 확산 영역 및 확산 영역 위에 있는 폴리실리콘 게이트를 각각 가진 MOS 트랜지스터일 수 있다. 매크로들(A 및 B) 사이의 장치의 할당을 변경하는 것이 바람직할 수 있다. 도 9b를 참조하면, 일 예시에서, 두 개의 장치ㄹㄹ 가진 두 매크로 대신에, 장치는 매크로들 사이에 재할당되어서, 매크로 X가 이제 단일 장치를 가지고, 매크로 Y가 세 개의 장치를 가진다. 확산 및 폴리 층에서의 할당을 나타내는 해당 도면은 도 10b에 도시된다. 확산 및 폴리 층 자체는 변경되지 않음을 주목한다.
재할당의 추가적인 예시는 도 11에 도시된다. 원래의 회로는, P 트랜지스터(P1 및 P2)를 가진 비프로그램된 매크로(A)의 인스턴스, N 트랜지스터(N1 및 N2)의 어레인지먼트, 스위치(S1 및 S2)의 어레인지먼트 및 관련된 상호연결부를 포함한다. 이전에 기술된 바와 같이, 스위치 프로그래밍을 통해, 매크로(A)는 프로그램되어서, 다양한 개별화 회로를 얻는데, 이들은 도 11의 두 개의 예시이다. 회로 재설계 및 분리를 통해, 매크로(A)는 서로 다른 매크로(B)로 변환될 수 있다. 매크로(B)에 사용가능한 장치는 매크로(A)의 것, 즉, P 트랜지스터(P1 및 P2) 및 N 트랜지스터(N1 및 N2)와 동일하다. 이러한 예시에서, 매크로(B)도 두 개의 스위치(S1 및 S2)를 사용한다. 그러나, 이들 회로 소자는 매크로(B)에서, 매크로(A)와 서로 다르게 배치되어서, 서로 다른 회로 기능을 달성한다. 이전에 기술된 바와 같이, 스위치 프로그래밍을 통해, 매크로(B)는 프로그램되어서 서로 다른 개별화 회로를 얻는데, 이들은 도 11의 두 개의 예시이다. 도 10 및 도 11에서, 대시-라인 박스는 서로 다른 매크로들 사이에 재사용될 수 있는 서브-매크로를 표현한다.
프로그램 가능한 스위치를 사용하는 회로 주문제작의 추가적인 예시가 도 12a 내지 도 12c에 도시된다. 도 12a를 참조하면, 회로는 중립 상태로 도시된다. 트랜지스터(MP3 및 MP3A)가 제공된다. 트랜지스터(MP3)의 게이트 전극은 입력부(IN)에 연결된다. 트랜지스터(MP3A)의 게이트 전극의 연결은 스위치(SW12-1 및 SW12-2)의 프로그래밍에 의존한다. 도 12a의 아래 부분에 도시된 바와 같이, 스위치(SW12-1)의 물리적 실현은 트레이스(n_5)의 불연속성 또는 연속성이다. 스위치(SW12-2)의 물리적 실현은 트레이스(n_5)을 공급 버스(VCCIO)에 연결하는 비아의 부존재의 존재이다.
도 12b를 참조하면, 첫번째 주문제작에 따르면, 스위치(SW12-1)는 닫히는 것으로 프로그램되고, 스위치(SW12-2)는 개방되는 것으로 프로그램된다. 회로도에서, 스위치(SW12-1)는 연결 라인에 의해 대체된다. 레이아웃도에서, 트레이스(n_5)의 금속은 연속적인 것을 야기한다. 스위치(SW12-2)의 경우에, 회로도에서, 트레이스(n_5)와 공급 버스(VCCIO)를 연결하는 접촉부를 가진 속이 빈 박스에 의해 계속 표현된다(트레이스(n_5)는 스위치(SW12-2)를 통해 연장되고, 스위치(SW12-2)의 프로그래밍과 무관하게 스위치(SW12-1)에 연결된다는 점을 주목함). 레이아웃도에서, 트레이스(n_5)가 공급 버스에 연결하도록 하는 스위치의 닫힌 상태에 있는 스위치(SW12-2)에 대응되는 비아는 비장착(unpopulated)으로 남는다.
도 12c를 참조하면, 두번째 주문제작에 따르면, 스위칭(SW12-2)는 닫히는 것으로 프로그램되고, 스위치(SW12-1)는 개방되는 것으로 프로그램된다. 회로도에서, 스위치(SW12-2)는 연결 라인에 의해 대체된다. 레이아웃도에서, 스위치(SW12-2)에 대응되는 비아는, 트레이스(n_5)을 공급 버스에 연결하기 위해, 장착(populated)된다. 스위치(SW12-1)의 경우에, 회로도에서, 트레이스(n_5)와 입력부(IN)를 연결하는 접촉부를 가진 속이 빈 박스에 의해 계속 표현된다. 레이아웃도에서, 트레이스(n_5)의 금속은 불연속이도록 야기된다.
본 발명은 본 발명의 사상 또는 본질적인 특징으로부터 벗어나지 않으면서 다른 구체적인 형태로 구현될 수 있다는 것을 기술 분야의 당업자에 의해 인식될 것이다. 그러므로, 상기 설명은 모든 양태에 대해 제한적이지 않고 설명적인 것으로 의도된다. 본 발명의 범위는 상기 설명이 아닌 첨부된 청구항에 의해 표시되고, 본 발명의 등가예의 의미와 범위 내에 있는 모든 변경예는 청구항에 포함되는 것으로 의도된다.

Claims (6)

  1. 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드들을 프로그램적으로 상호연결하는 컴퓨터 실행되는 방법에 있어서, 상기 방법은,
    설계 단계 동안에,
    컴퓨터 메모리에서, 복수의 잠재적인 상호연결부의 각각을 적어도 두 개의 회로 노드를 연결하는 그래픽적인 특징부로 표시하고, 그래픽적인 특징부의 인스턴스를 나타내는 금속 프로그램 가능한 집적 회로의 설계의 적어도 일부를 디스플레이하는 단계와,
    복수의 잠재적인 상호연결부의 각각에 대해, 적어도 두 개의 회로 노드를 연결하기 위한 물리적 리소스를 준비하는 단계 - 물리적 리소스는 전도체로 구성되고 하나 이상의 비아, 하나 이상의 금속 라인, 또는 하나 이상의 비아와 하나 이상의 금속 라인 모두를 포함함 - 를 포함하되, 복수의 잠재적인 상호연결부의 서로 다른 것은 서로 치환될 수 없는 서로 다른 물리적 레이아웃을 가지며,
    물리적 레이아웃 단계 동안에,
    컴퓨터 메모리에서, 복수의 잠재적인 상호연결부의 각각의 상태는 연결되거나 분리되는 것으로 명시하는 단계 - 복수의 잠재적인 상호연결부의 일부는 연결되는 것으로 명시되고, 복수의 잠재적인 상호연결부의 일부는 분리되는 것으로 명시됨 - 와,
    연결되는 것으로 명시된 복수의 잠재적인 상호연결부의 각각에 대해, 하나 이상의 비아, 하나 이상의 금속 라인, 또는 잠재적인 상호연결부의 각각의 것을 포함하는 하나 이상의 비아와 하나 이상의 금속 라인 모두를 레이아웃하는 단계를 포함하는 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드들을 프로그램적으로 상호연결하는 컴퓨터 실행되는 방법.
  2. 제 1 항에 있어서, 분리되는 것으로 명시된 잠재적인 상호연결부의 서브세트에 대하여, 금속 프로그램 가능한 집적 회로의 표현에서 잠재적인 상호연결부의 서브세트를 제거하는 단계를 포함하는 것을 특징으로 하는 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드들을 프로그램적으로 상호연결하는 컴퓨터 실행되는 방법.
  3. 제 2 항에 있어서, 잠재적인 상호연결부의 서브세트를 제거하는 단계는, 프리드(freed) 물리적 리소스를 초래하고, 라우팅 프로세스 동안에 프리드(free) 물리적 리소스를 사용하는 것을 포함하는 것을 특징으로 하는 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드들을 프로그램적으로 상호연결하는 컴퓨터 실행되는 방법.
  4. 제 1 항에 있어서, 하나 이상의 비아, 하나 이상의 금속 라인, 또는 하나 이상의 비아와 하나 이상의 금속 라인 모두를 레이아웃하는 단계는, 제1 매크로셀로부터 제2 매크로셀로 장치를 재할당하도록 하는 것을 특징으로 하는 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드들을 프로그램적으로 상호연결하는 컴퓨터 실행되는 방법.
  5. 제 1 항에 있어서, 복수의 잠재적인 상호연결부의 서로 다른 것은 물리적 리소스를 공유하는 것을 특징으로 하는 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드들을 프로그램적으로 상호연결하는 컴퓨터 실행되는 방법.
  6. 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드들을 프로그램적으로 상호연결하는 컴퓨터 실행되는 방법에 있어서, 상기 방법은,
    설계 단계 동안에,
    컴퓨터 메모리에서, 복수의 프로그램 가능한 스위치의 각각을 적어도 두 개의 회로 노드를 연결하는 라인으로 표시하고, 라인의 인스턴스를 나타내는 금속 프로그램 가능한 집적 회로의 설계의 적어도 일부를 디스플레이하는 단계와,
    복수의 프로그램 가능한 스위치의 각각에 대해, 적어도 두 개의 회로 노드를 연결하기 위한 물리적 리소스를 준비하는 단계 - 물리적 리소스는 전도체로 구성되고 하나 이상의 비아, 하나 이상의 금속 라인, 또는 하나 이상의 비아와 하나 이상의 금속 라인 모두를 포함함 - 를 포함하되, 복수의 프로그램 가능한 스위치의 서로 다른 것은 서로 치환될 수 없는 서로 다른 물리적 레이아웃을 가지며,
    물리적 레이아웃 단계 동안에,
    컴퓨터 메모리에서, 복수의 프로그램 가능한 스위치의 각각의 상태는 연결되거나 분리되는 것으로 명시하는 단계 - 복수의 프로그램 가능한 스위치의 일부는 분리되는 것으로 명시되고, 복수의 프로그램 가능한 스위치의 일부는 분리되는 것으로 명시됨 - 와,
    연결되는 것으로 명시된 복수의 프로그램 가능한 스위치의 각각에 대해, 하나 이상의 비아, 하나 이상의 금속 라인, 또는 프로그램 가능한 스위치의 각각의 것을 포함하는 하나 이상의 비아와 하나 이상의 금속 라인 모두를 레이아웃하는 단계를 포함하는 금속 프로그램 가능한 집적 회로의 매크로셀의 회로 노드들을 프로그램적으로 상호연결하는 컴퓨터 실행되는 방법.
KR1020167017787A 2013-12-04 2014-12-04 금속/비아 프로그램 가능한 게이트 어레이 집적 회로를 위한 프로그램 가능한 매크로 KR101823281B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/096,292 2013-12-04
US14/096,292 US8875080B1 (en) 2013-12-04 2013-12-04 Programmable macros for metal/via programmable gate array integrated circuits
PCT/US2014/068511 WO2015085036A2 (en) 2013-12-04 2014-12-04 Programmable macros for metal/via programmable gate array integrated circuits

Publications (2)

Publication Number Publication Date
KR20160093695A KR20160093695A (ko) 2016-08-08
KR101823281B1 true KR101823281B1 (ko) 2018-01-29

Family

ID=51752918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167017787A KR101823281B1 (ko) 2013-12-04 2014-12-04 금속/비아 프로그램 가능한 게이트 어레이 집적 회로를 위한 프로그램 가능한 매크로

Country Status (5)

Country Link
US (1) US8875080B1 (ko)
JP (1) JP2017501487A (ko)
KR (1) KR101823281B1 (ko)
CN (1) CN106030582A (ko)
WO (1) WO2015085036A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9893731B1 (en) * 2012-12-11 2018-02-13 Lockheed Martin Corporation Programmable application-specific integrated circuit
US8875080B1 (en) * 2013-12-04 2014-10-28 Baysand Inc. Programmable macros for metal/via programmable gate array integrated circuits
US9590634B1 (en) 2016-06-13 2017-03-07 Baysand Inc. Metal configurable hybrid memory
US9811628B1 (en) 2016-10-14 2017-11-07 Baysand Inc. Metal configurable register file
US11867419B2 (en) * 2017-07-27 2024-01-09 Johnson Controls Technology Company Systems and methods to automatically link availability of series devices in a plant

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7030651B2 (en) 2003-12-04 2006-04-18 Viciciv Technology Programmable structured arrays
US7051313B1 (en) 1999-10-29 2006-05-23 Altera Toronto Co. Automatic generation of programmable logic device architectures
US7337422B1 (en) 2005-05-10 2008-02-26 Xilinx, Inc. Programmably configurable logic-based macro
US8352899B1 (en) 2010-08-20 2013-01-08 Altera Corporation Method to modify an integrated circuit (IC) design

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367208A (en) * 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
US5850564A (en) * 1995-05-03 1998-12-15 Btr, Inc, Scalable multiple level tab oriented interconnect architecture
US6462579B1 (en) * 2001-04-26 2002-10-08 Xilinx, Inc. Partial reconfiguration of a programmable gate array using a bus macro
US6992503B2 (en) * 2002-07-08 2006-01-31 Viciciv Technology Programmable devices with convertibility to customizable devices
US7673273B2 (en) * 2002-07-08 2010-03-02 Tier Logic, Inc. MPGA products based on a prototype FPGA
US7129744B2 (en) * 2003-10-23 2006-10-31 Viciciv Technology Programmable interconnect structures
CN1280892C (zh) * 2003-12-16 2006-10-18 复旦大学 可编程逻辑器件结构
US7404154B1 (en) * 2005-07-25 2008-07-22 Lsi Corporation Basic cell architecture for structured application-specific integrated circuits
US7600210B1 (en) * 2005-09-28 2009-10-06 Xilinx, Inc. Method and apparatus for modular circuit design for a programmable logic device
US7689960B2 (en) * 2006-01-25 2010-03-30 Easic Corporation Programmable via modeling
US8230375B2 (en) * 2008-09-14 2012-07-24 Raminda Udaya Madurawe Automated metal pattern generation for integrated circuits
CN101504599A (zh) * 2009-03-16 2009-08-12 西安电子科技大学 适于数字信号处理应用的专用指令集微处理系统
US8843865B2 (en) * 2012-02-26 2014-09-23 Synopsys, Inc. Data flow analyzer
US8875080B1 (en) * 2013-12-04 2014-10-28 Baysand Inc. Programmable macros for metal/via programmable gate array integrated circuits

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051313B1 (en) 1999-10-29 2006-05-23 Altera Toronto Co. Automatic generation of programmable logic device architectures
US7030651B2 (en) 2003-12-04 2006-04-18 Viciciv Technology Programmable structured arrays
US7337422B1 (en) 2005-05-10 2008-02-26 Xilinx, Inc. Programmably configurable logic-based macro
US8352899B1 (en) 2010-08-20 2013-01-08 Altera Corporation Method to modify an integrated circuit (IC) design

Also Published As

Publication number Publication date
WO2015085036A3 (en) 2015-11-05
CN106030582A (zh) 2016-10-12
WO2015085036A2 (en) 2015-06-11
US8875080B1 (en) 2014-10-28
KR20160093695A (ko) 2016-08-08
JP2017501487A (ja) 2017-01-12

Similar Documents

Publication Publication Date Title
KR101823281B1 (ko) 금속/비아 프로그램 가능한 게이트 어레이 집적 회로를 위한 프로그램 가능한 매크로
JP4833023B2 (ja) 半導体デバイスの製造適合性を向上させるための方法、システム及びプログラム
US10553574B2 (en) Standard cell for removing routing interference between adjacent pins and device including the same
US20210406439A1 (en) Metal zero power ground stub route to reduce cell area and improve cell placement at the chip level
Ghazy et al. Openlane: The open-source digital asic implementation flow
KR101460448B1 (ko) 이중 패터닝 기술들을 위한 물리 결정 경계 상호접속 피처들을 생성하기 위한 시스템 및 방법
US20060195811A1 (en) System and method for reducing design cycle time for designing input/output cells
US6938236B1 (en) Method of creating a mask-programmed logic device from a pre-existing circuit design
US20220188496A1 (en) Cell Architecture with Backside Power Rails
JP4141322B2 (ja) 半導体集積回路の自動配線方法及び半導体集積回路の設計のプログラム
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
CN107180791A (zh) 半导体装置及其设计方法
US20200395938A1 (en) Multiplexer
US7100142B2 (en) Method and apparatus for creating a mask-programmable architecture from standard cells
Moon et al. Design and allocation of loosely coupled multi-bit flip-flops for power reduction in post-placement optimization
US7260807B2 (en) Method and apparatus for designing an integrated circuit using a mask-programmable fabric
US20080263493A1 (en) Method and Apparatus for Tie Net Routing
JP2008123458A (ja) 半導体集積回路の設計方法
TW202131218A (zh) 提高佈局設計的設計效能的方法
Tian Transistor-Level Programmable Fabric
US6957401B2 (en) Integrated circuit (IC) having IC floorplan silhouette-like power supply net, and sea of supply (SoS) electronic design automation (EDA) tool for designing same
Golshan Physical Design
Moreira Physical Design Implementation and Engineering Change Order Flow
Anagnostopoulos et al. Application-Specific Integrated Circuits
Karapetyan IC Synthesis and Optimization Challenges and Solutions

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant