KR102401602B1 - 셀들의 전원 전압 변화 및 셀들간 영향을 고려하는 집적 회로의 설계 방법 - Google Patents
셀들의 전원 전압 변화 및 셀들간 영향을 고려하는 집적 회로의 설계 방법 Download PDFInfo
- Publication number
- KR102401602B1 KR102401602B1 KR1020170057525A KR20170057525A KR102401602B1 KR 102401602 B1 KR102401602 B1 KR 102401602B1 KR 1020170057525 A KR1020170057525 A KR 1020170057525A KR 20170057525 A KR20170057525 A KR 20170057525A KR 102401602 B1 KR102401602 B1 KR 102401602B1
- Authority
- KR
- South Korea
- Prior art keywords
- cell
- cells
- timing
- power supply
- calculating
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004458 analytical method Methods 0.000 claims abstract description 55
- 230000001934 delay Effects 0.000 claims abstract description 25
- 230000003068 static effect Effects 0.000 claims abstract description 23
- 238000011017 operating method Methods 0.000 claims 1
- 230000000630 rising effect Effects 0.000 description 53
- 238000010586 diagram Methods 0.000 description 18
- 239000003990 capacitor Substances 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- OVGWMUWIRHGGJP-WVDJAODQSA-N (z)-7-[(1s,3r,4r,5s)-3-[(e,3r)-3-hydroxyoct-1-enyl]-6-thiabicyclo[3.1.1]heptan-4-yl]hept-5-enoic acid Chemical compound OC(=O)CCC\C=C/C[C@@H]1[C@@H](/C=C/[C@H](O)CCCCC)C[C@@H]2S[C@H]1C2 OVGWMUWIRHGGJP-WVDJAODQSA-N 0.000 description 2
- 101000988961 Escherichia coli Heat-stable enterotoxin A2 Proteins 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L27/00—Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
- H01L27/02—Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
- H01L27/0203—Particular design considerations for integrated circuits
- H01L27/0207—Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Power Engineering (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
본 발명의 실시 예에 따른 집적 회로의 설계 방법은, 복수의 셀 각각에 전력을 공급하기 위한 복수의 경로의 복수의 전원 저항을 추출하는 단계, 상기 복수의 전원 저항에 의해 발생되는 상기 복수의 셀의 복수의 제 1 지연을 나타내는 복수의 제 1 타이밍 디레이트를 계산하는 단계, 상기 복수의 제 1 타이밍 디레이트를 이용하여 제 1 정적 타이밍 분석을 수행하는 단계, 상기 제 1 정적 타이밍 분석의 결과를 이용하여 상기 복수의 셀 각각이 입력 신호를 수신하는 복수의 도착 타이밍 윈도우를 결정하고, 상기 복수의 도착 타이밍 윈도우가 서로 겹침에 따라 발생되는 상기 복수의 셀의 복수의 제 2 지연을 나타내는 복수의 제 2 타이밍 디레이트를 계산하는 단계, 및 상기 복수의 제 1 타이밍 디레이트 및 상기 복수의 제 2 타이밍 디레이트를 이용하여 제 2 정적 타이밍 분석을 수행하는 단계를 포함할 수 있다.
Description
본 발명은 집적 회로의 설계 방법에 관한 것으로, 좀 더 자세하게는 셀들의 전원 전압 변화 및 셀들간 영향을 고려하는 집적 회로의 설계 방법에 관한 것이다.
SoC(system on chip), ASIC(application specific integrated circuit), 메모리 등과 같은 집적 회로를 설계함에 있어서, 정적 타이밍 분석(static timing analysis; STA)이 사용될 수 있다. 정적 타이밍 분석은 집적 회로에 특정한 입력 신호를 인가하는 대신에 집적 회로 내 셀들의 지연을 계산하여 타이밍 위반(예를 들면, 플립 플롭(flip-flop)의 셋업 타이밍 위반(setup time violation) 또는 홀드 타이밍 위반(hold time violation))이 발생하였는지 여부를 확인하는 과정이다.
최근 공정 미세화로 인해, 집적 회로 내 라인(line)의 폭이 좁아지고, 집적 회로의 동작 전원이 감소하고 있다. 또한, 집적 회로 내 셀들간 영향이 증가하고 있다. 기존의 정적 타이밍 분석에서는 전력을 전달하기 위한 라인들의 저항과 셀들간의 영향으로 인해 발생할 수 있는 동적 전압 변동(dynamic voltage variation)이 고려되지 않은 문제점이 있다.
본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 본 발명은 셀들의 전원 전압 변화 및 셀들간 영향을 고려하는 집적 회로의 설계 방법을 제공할 수 있다.
본 발명의 실시 예에 따른 집적 회로의 설계 방법은, 복수의 셀 각각에 전력을 공급하기 위한 복수의 경로의 복수의 전원 저항을 추출하는 단계, 상기 복수의 전원 저항에 의해 발생되는 상기 복수의 셀의 복수의 제 1 지연을 나타내는 복수의 제 1 타이밍 디레이트를 계산하는 단계, 상기 복수의 제 1 타이밍 디레이트를 이용하여 제 1 정적 타이밍 분석을 수행하는 단계, 상기 제 1 정적 타이밍 분석의 결과를 이용하여 상기 복수의 셀 각각이 입력 신호를 수신하는 복수의 도착 타이밍 윈도우를 결정하고, 상기 복수의 도착 타이밍 윈도우가 서로 겹침에 따라 발생되는 상기 복수의 셀의 복수의 제 2 지연을 나타내는 복수의 제 2 타이밍 디레이트를 계산하는 단계, 및 상기 복수의 제 1 타이밍 디레이트 및 상기 복수의 제 2 타이밍 디레이트를 이용하여 제 2 정적 타이밍 분석을 수행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 집적 회로의 설계 방법은 셀들의 전원 저항 및 셀들간 영향을 고려하여 정적 타이밍 분석을 수행할 수 있다. 따라서, 집적 회로에서 발생하는 타이밍 위반 여부가 정확하게 판단될 수 있다.
본 발명의 실시 예에 따른 EDA(electronic design automation) 프로그램은 전원 라인의 배치에 기초하여 저항 영역 또는 전압 영역을 설정할 수 있다. 따라서, EDA 프로그램은 영역 단위로 셀들의 전원 저항을 추출하고, 전원 저항으로 인한 지연 정도 및 셀들간 영향으로 인한 지연 정도를 계산할 수 있으므로, 런타임을 단축시킬 수 있다.
도 1은 전원 라인들 및 전원 라인들에 연결된 셀들을 포함하는 집적 회로를 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따라 설정된 저항 그리드를 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따라 설정된 다른 저항 그리드를 예시적으로 보여주는 도면이다.
도 4는 집적 회로 내 복수의 셀의 지연 평균을 나타내기 위한 예시적인 딜레이 체인이다.
도 5 및 도 6은 각각 도 4에서 도시된 기준 셀의 동작을 예시적으로 보여주는 도면이다.
도 7은 다양한 전원 저항을 갖는 복수의 셀을 포함하는 집적 회로의 일부를 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따라 설정된 전압 그리드를 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따라 설정된 전압 그리드를 예시적으로 보여주는 도면이다.
도 10은 도 8 및 도 9에 도시된 피해 셀의 도착 타이밍 윈도우가 예시적으로 도시된 도면이다.
도 11은 도 8에서 도시된 전압 영역을 좀 더 자세하게 보여주는 도면이다.
도 12는 도 11의 피해 셀의 도착 타이밍 윈도우 및 분석 구간에 따른 가중 전압 변동을 예시적으로 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 집적 회로의 설계 방법을 예시적으로 보여주는 순서도이다.
도 14는 도 13에서 도시된 S100 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
도 15는 도 13에서 도시된 S240 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
도 16은 도 13에서 도시된 S250 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
도 17은 도 13에서 도시된 S270 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
도 18은 본 발명의 실시 예에 따른 집적 회로의 설계 방법을 수행하기 위한 컴퓨팅 시스템 및 본 발명의 실시 예에 따른 EDA 프로그램을 예시적으로 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따라 설정된 저항 그리드를 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따라 설정된 다른 저항 그리드를 예시적으로 보여주는 도면이다.
도 4는 집적 회로 내 복수의 셀의 지연 평균을 나타내기 위한 예시적인 딜레이 체인이다.
도 5 및 도 6은 각각 도 4에서 도시된 기준 셀의 동작을 예시적으로 보여주는 도면이다.
도 7은 다양한 전원 저항을 갖는 복수의 셀을 포함하는 집적 회로의 일부를 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따라 설정된 전압 그리드를 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따라 설정된 전압 그리드를 예시적으로 보여주는 도면이다.
도 10은 도 8 및 도 9에 도시된 피해 셀의 도착 타이밍 윈도우가 예시적으로 도시된 도면이다.
도 11은 도 8에서 도시된 전압 영역을 좀 더 자세하게 보여주는 도면이다.
도 12는 도 11의 피해 셀의 도착 타이밍 윈도우 및 분석 구간에 따른 가중 전압 변동을 예시적으로 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 집적 회로의 설계 방법을 예시적으로 보여주는 순서도이다.
도 14는 도 13에서 도시된 S100 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
도 15는 도 13에서 도시된 S240 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
도 16은 도 13에서 도시된 S250 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
도 17은 도 13에서 도시된 S270 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
도 18은 본 발명의 실시 예에 따른 집적 회로의 설계 방법을 수행하기 위한 컴퓨팅 시스템 및 본 발명의 실시 예에 따른 EDA 프로그램을 예시적으로 보여주는 블록도이다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 전원 라인들 및 전원 라인들에 연결된 셀들을 포함하는 집적 회로를 예시적으로 보여주는 도면이다. 도 1을 참조하면, 집적 회로(100)는 제 1 전원 라인들(111~114), 제 2 전원 라인들(121, 122), 및 제 1 및 제 2 셀들(131, 132)을 포함할 수 있다.
제 1 전원 라인들(111~114)은 Y축을 따라 일정한 간격으로 배치될 수 있다. 제 1 전원 라인들(111, 113)은 VSS를 집적 회로(100) 내 셀들에 공급하고, 제 1 전원 라인들(112, 114)은 VDD를 집적 회로(100) 내 셀들에 공급한다. 유사하게, 제 2 전원 라인들(121, 122)은 X축을 따라 일정한 간격으로 배치될 수 있다. 제 2 전원 라인(121)은 VDD를 셀들에 공급하고, 제 2 전원 라인(122)은 VSS를 셀들에 공급한다.
실시 예에 있어서, 제 1 전원 라인들(111~114)은 셀들에 직접 VDD 또는 VSS를 공급할 수 있고, 제 2 전원 라인들(121, 122)은 제 1 전원 라인들(111~114)에 VDD 또는 VSS를 공급할 수 있다. 제 1 전원 라인들(111~114)은 동일한 평면 상에 배치될 수 있고, 제 2 전원 라인들(121, 122)은 제 1 전원 라인들(111~114)이 배치된 평면보다 더 높은 평면 상에 배치될 수 있다. 제 2 전원 라인들(121, 122) 사이의 간격은 제 1 전원 라인들(111~114) 사이의 간격보다 클 수 있다.
실시 예에 있어서, 제 1 전원 라인들(111~114) 및 제 2 전원 라인들(121, 122)의 교차점에는 제 1 전원 라인들(111~114) 및 제 2 전원 라인들(121, 122)의 연결을 위한 비아(via, 미도시)가 배치될 수 있다. 예를 들면, 제 1 전원 라인(112, VDD) 및 제 2 전원 라인(121, VDD)의 교차점에 비아가 배치될 수 있고, 제 1 전원 라인(113, VSS) 및 제 2 전원 라인(122, VSS)의 교차점에 비아가 배치될 수 있다.
제 1 셀(131)은 제 1 전원 라인(112, VDD)을 통해 VDD를 공급받을 수 있고, 제 1 전원 라인(113, VSS)을 통해 VSS를 공급받을 수 있다. 유사하게, 제 2 셀(132)은 제 1 전원 라인(112, VDD)을 통해 VDD를 공급받을 수 있고, 제 1 전원 라인(111, VSS)을 통해 VSS를 공급받을 수 있다. 여기서, 제 1 및 제 2 셀들(131, 132)은 다양한 논리 연산(예를 들면, INV, NAND, AND, NOR, OR, XNOR, XOR, Flip-flop 등)을 수행하는 논리 게이트(logic gate) 또는 논리 게이트의 집합일 수 있다. 제 1 및 제 2 셀들(131, 132)은 데이터를 저장할 수 있는 다양한 메모리 셀(예를 들면, DRAM 셀, SRAM 셀, NAND 셀, NOR 셀, PRAM 셀, FRAM 셀, MRAM 셀, TRAM 셀, RRAM 셀 등)일 수도 있다. 실시 예에 있어서, 제 1 및 제 2 셀들(131, 132) 외 다른 셀들(미도시)이 제 1 전원 라인들(111~114) 사이에 더 배치될 수 있고, 제 1 전원 라인들(111~114)의 수 및 제 2 전원 라인들(121, 122)의 수는 도시된 바에 한정되지 않는다.
제 1 및 제 2 셀들(131, 132) 각각에서는 지연(delay, 즉 셀의 입력 신호와 출력 신호간의 시간 차이인 전달 지연(propagation delay))이 발생할 수 있다. 지연은 셀의 크기, 부하 셀(load cell)의 크기, 입력 신호의 기울기(slope), 구동 전원 등에 의해 결정될 수 있다. 셀의 지연은 상술한 결정된 크기보다 PVT 변동(process, voltage, temperature variation)에 의해 더 증가하거나 사용 빈도가 높아질수록 더 증가할 수 있다. PVT 변동 중 전압 변동은 제 1 및 제 2 셀들(131, 132)에 연결된 제 1 전원 라인들(111~113) 및 제 2 전원 라인들(121, 122)의 저항에 의해 발생할 수 있다.
좀 더 구체적으로, 제 1 셀(131)이 스위칭(switching) 동작을 수행하는 경우를 가정한다. 스위칭 동작은 제 1 셀(131)에서 입력 신호에 응답하여 출력 신호가 생성되는 동작을 의미할 수 있다. 제 1 셀(131)은 제 1 경로(141)를 따라 스위칭 동작에 필요한 전력을 공급받을 수 있다. 다만, 제 1 경로(141)의 저항(즉, 제 1 전원 라인(112, VDD)의 저항 및 제 2 전원 라인(121, VDD)의 저항)에서 전압 드롭(drop, 즉, 제 1 경로(141)의 저항 및 제 1 경로(141)를 통해 흐르는 전류의 곱)이 발생하기 때문에, 제 1 셀(131)은 VDD보다 낮은 구동 전압을 공급받을 수 있다. 제 1 셀(131)과 제 1 전원 라인(112, VDD) 사이에 연결된 전원 저항(RVDD)은 제 1 경로(141)의 저항을 나타낼 수 있다. 유사하게, 제 1 셀(131)과 제 1 전원 라인(113, VSS) 사이에 연결된 전원 저항(RVSS)은 제 1 셀(131)이 VSS를 공급받는 경로의 저항을 나타낼 수 있다. 전원 저항(RVSS)으로 인하여, 제 1 셀(131)은 VSS보다 높은 구동 전압을 공급받을 수 있다. 여기서, 전원 저항(RVDD, RVSS)은 셀에 연결된 전원 라인의 저항을 의미하고, 도시된 것과 같이 특정한 물리적인 소자가 배치된 것은 아니다. 정리하면, 전원 저항들(RVDD, RVSS)은 셀에 전압 변동(즉, 전압 드롭(voltage drop) 또는 전압 바운스(voltage bounce))을 일으킬 수 있다. 상술한 전압 변동으로 인해, 셀의 지연은 더 증가할 수 있다.
제 1 셀(131)이 스위칭 동작을 수행하는 동안, 제 2 셀(132)도 스위칭 동작을 수행할 수 있다. 제 2 셀(132)은 제 2 경로(142)를 따라 스위칭 동작에 필요한 전력을 공급받을 수 있다. 제 1 셀(131)에만 전력을 공급하는 경우에 비해 제 1 및 제 2 셀들(131, 132) 모두에 전력을 공급하는 경우, 제 2 전원 라인(121, VDD) 및 제 1 전원 라인(112, VDD)을 통해 흐르는 전류량이 더 크다. 따라서, 제 1 셀(131)의 전원 저항(RVDD)에서 발생하는 전압 드롭도 증가한다. 즉, 제 2 셀(132)의 스위칭 동작으로 인해 제 1 셀(131)의 지연이 더 증가한다. 이 경우, 제 1 셀(131)은 피해 셀(victim cell)이고, 제 2 셀(132)은 공격 셀(addressor cell)이다. 따라서, 제 1 셀(131)의 지연을 정확하게 결정하기 위해서, 제 1 셀(131) 자체의 스위칭 동작으로 인해 발생하는 전압 변동뿐만 아니라 제 2 셀(132, 공격 셀)의 스위칭 동작으로 인해 발생하는 전압 변동도 고려되어야 한다.
본 발명은 셀 자체의 스위칭 동작으로 인해 발생하는 전압 변동(SIVD(self-induced voltage drop) 및 SIVB(self-induced voltage bounce)) 및 공격 셀의 스위칭 동작으로 인해 발생하는 전압 변동(AIVD(aggressor-induced voltage drop) 및 AIVB(aggressor-induced voltage bounce))을 모두 고려하는 집적 회로의 설계 방법 및 이를 수행하는 EDA(electronic design automation) 프로그램을 제공할 수 있다. 이하, 본 발명의 실시 예에 따라, 집적 회로(100) 내 셀들의 전원 저항을 추출하는 방법에 대해 설명한다.
도 2는 본 발명의 실시 예에 따라 설정된 저항 그리드를 예시적으로 보여주는 도면이다. 도 2를 참조하면, 집적 회로(200)는 Y축을 따라 배치된 제 1 전원 라인들(211~219) 및 X축을 따라 배치된 제 2 전원 라인들(221~225)을 포함할 수 있다. 제 1 전원 라인들(211~219) 및 제 2 전원 라인들(221~225)은 격자 형상으로 배치될 수 있다. 여기서, 격자 형상으로 배치된 제 1 전원 라인들(211~219) 및 제 2 전원 라인들(221~225)은 파워 그리드(power grid)이다.
도 1의 집적 회로(100)와 같이 집적 회로(200)에서도 제 1 전원 라인들(211~219) 사이에 셀들이 배치되지만, 도면의 간략화를 위해 셀들의 도시는 생략되었다.
제 1 전원 라인들(211~219)은 제 2 전원 라인들(221~225)에 비해 촘촘히 배치될 수 있다. 따라서, Y축 방향으로 일렬로 배치된 셀들의 전원 저항(RVDD, RVSS)은 거의 일정할 수 있다. 반면에, 제 2 전원 라인들(221~225) 사이의 간격은 제 1 전원 라인들(211~219) 사이의 간격보다 크다. 따라서, X축 방향으로 일렬로 배치된 셀들의 전원 저항(RVDD, RVSS)은 X축 상의 위치에 따라 도시된 바와 같이 분포할 수 있다. 좀 더 구체적으로, X축 상의 전원 저항(RVDD)은 VDD를 공급하는 제 2 전원 라인들(221, 223, 225)이 배치된 곳에서 최소일 수 있고, VSS를 공급하는 제 2 전원 라인들(222, 224)이 배치된 곳에서 최대일 수 있다. 제 2 전원 라인들(221, 223, 225) 및 제 2 전원 라인들(222, 224)이 교대로 배치되므로, 전원 저항(RVSS)의 분포는 전원 저항(RVDD)의 분포와 상이할 수 있다(즉, 전원 저항(RVDD)이 최소일 때 전원 저항(RVSS)은 최대이고, 전원 저항(RVDD)이 최대일 때 전원 저항(RVSS)은 최소). 집적 회로(200) 내 배치된 수많은 셀들의 전원 저항(RVDD, RVSS)을 일일이 추출하는 것은 많은 시간이 필요하므로, 본 발명의 실시 예에 따른 집적 회로 설계 방법은 빠르게 전원 저항(RVDD, RVSS)을 추출할 수 있는 방법을 제공한다.
우선 제 1 전원 라인들(211~219) 및 제 2 전원 라인들(221~225)에 따라 저항 그리드(resistance grid, 일점쇄선으로 도시)가 설정될 수 있다. 저항 그리드는 파워 그리드와 유사하게 격자 형상으로 설정될 수 있다. 저항 그리드는 제 1 내지 제 4 저항 영역(resistance area)을 포함할 수 있다. 다만, 도 1에서 전술한대로, 제 1 전원 라인들(211~219) 및 제 2 전원 라인들(221~225)의 수는 도시된 바에 제한되지 않으므로, 저항 영역의 수는 도시된 바와 같이 한정되지 않는다. 제 1 내지 제 4 저항 영역 각각에서, 셀들의 전원 저항(RVDD, RVSS)이 계산될 수 있다.
제 1 저항 영역(음영으로 표시됨)의 높이는 제 1 전원 라인들(211~219) 사이의 간격의 8배로 설정될 수 있고, 제 1 저항 영역의 폭은 제 2 전원 라인들(221~225) 사이의 간격으로 설정될 수 있다. 제 1 저항 영역에서, 제 2 전원 라인(221, VDD)에 가깝고 제 2 전원 라인(222, VSS)으로부터 먼 셀(251)의 전원 저항(RVDD, RVSS)과 제 2 전원 라인(221, VDD)으로부터 멀고 제 2 전원 라인(222, VSS)에 가까운 셀(252)의 전원 저항(RVDD, RVSS)이 각각 추출될 수 있다. 제 1 저항 영역에서 X축에 따라 배치된 셀들의 전원 저항(RVDD, RVSS)의 분포는 도시된 바와 같이 선형성을 갖고 있다. 따라서, 셀들(251, 252)을 제외한 제 1 저항 영역 내 나머지 셀들(미도시)의 전원 저항(RVDD, RVSS)은 선형 보간법(linear interpolation)을 이용해 계산될 수 있다. 실시 예에 있어서, 셀들(251, 252)은 반드시 제 2 전원 라인에 가깝거나 멀 필요는 없다. 셀들(251, 252)은 선형 보간법을 이용할 수 있도록, 저항 영역 내 X축에 따라 임의의 두 지점에 배치된 셀들일 수 있다.
전술한대로, 제 1 저항 영역에서 Y축에 따라 배치된 셀들의 전원 저항(RVDD, RVSS)의 분포는 도시된 바와 같이 거의 일정하다. 따라서, 셀(251)과 동일한 X축 상의 좌표를 갖고 Y축에 따라 배치된 셀들(미도시)의 전원 저항(RVDD, RVSS)은 셀(251)의 전원 저항(RVDD, RVSS)과 동일하게 설정될 수 있다.
저항 영역의 폭과 높이는 셀들의 전원 저항(RVDD, RVSS)의 분포의 선형성, 균일성, 정확도, 추출 시간 등이 고려되어 결정될 수 있다. 도 2에서 도시된 바와 같이, 저항 영역의 폭은 X축을 따라 전원 저항(RVDD, RVSS)의 분포가 선형성을 갖는 구간에 대응하여 설정될 수 있다. 저항 영역의 높이가 클수록 전원 저항(RVDD, RVSS)의 추출 및 계산 시간은 감소하지만, 정확도도 감소할 수 있다. 도 2에서, 저항 영역의 높이는 예시적으로 제 1 전원 라인들(211~219) 사이의 간격의 8배로 설정되었으나, 균일성, 정확도, 및 추출 시간이 고려되어 변경될 수도 있다.
도 3은 본 발명의 실시 예에 따라 설정된 다른 저항 그리드를 예시적으로 보여주는 도면이다. 도 3을 참조하면, 집적 회로(300)는 Y축을 따라 배치된 제 1 전원 라인들(311~319) 및 X축을 따라 배치된 제 2 전원 라인들(321~326)을 포함할 수 있다. 도 2의 집적 회로(200)와 달리, 제 2 전원 라인(321, VDD)과 제 2 전원 라인(322, VSS)은 서로 인접할 수 있다. 즉, 집적 회로(300)에서는 제 2 전원 라인들(321~326) 중 VDD를 공급하는 제 2 전원 라인들(321, 323, 325)과 VSS를 공급하는 제 2 전원 라인들(322, 324, 326)이 서로 인접하게 배치될 수 있다.
도 2의 집적 회로(200)와 유사하게, 집적 회로(300) 내 Y축 방향으로 일렬로 배치된 셀들의 전원 저항(RVDD, RVSS)은 Y축 상의 위치와 관계 없이 거의 일정할 수 있다. 반면에, X축 방향으로 일렬로 배치된 셀들의 전원 저항(RVDD, RVSS)은 X축 상의 위치에 따라 도시된 바와 같이 분포할 수 있다. X축 상의 전원 저항(RVDD)은 VDD를 공급하는 제 2 전원 라인들(321, 323, 325)이 배치된 곳에서 최소일 수 있고, 제 2 전원 라인들(321, 323)의 중간 지점 및 제 2 전원 라인들(323, 325)의 중간 지점에서 최대일 수 있다. 유사하게, 전원 저항(RVSS)은 VSS를 공급하는 제 2 전원 라인들(322, 324, 326)이 배치된 곳에서 최소일 수 있고, 제 2 전원 라인들(322, 324)의 중간 지점 및 제 2 전원 라인들(324, 326)의 중간 지점에서 최대일 수 있다. VDD를 공급하는 제 2 전원 라인들(321, 323, 325)과 VSS를 공급하는 제 2 전원 라인들(322, 324, 326)이 서로 인접하므로, X축과 평행하게 배치된 셀들의 전원 저항(RVDD)의 분포와 전원 저항(RVSS)의 분포는 서로 유사할 수 있다.
도 2에서 전술한 것과 유사하게, 제 1 전원 라인들(311~319) 및 제 2 전원 라인들(321~326)에 따라 저항 그리드(resistance grid, 일점쇄선으로 도시)가 설정될 수 있다. 저항 그리드는 파워 그리드와 유사하게 격자 형상으로 설정될 수 있다. 저항 그리드는 제 1 내지 제 4 저항 영역(Resistance area)을 포함할 수 있다. 다만, 저항 영역의 수는 도시된 바와 같이 한정되지 않고, 저항 그리드에 따라 결정될 수 있다. 도 2에서 전술한 것과 유사한 방식으로, 제 1 내지 제 4 저항 영역 각각에서 셀들의 전원 저항(RVDD, RVSS)이 계산될 수 있다.
도 3을 참조하면, 제 1 저항 영역(음영으로 표시됨)의 높이는 제 1 전원 라인들(311~319) 사이의 간격의 8배로 설정될 수 있고, 제 1 저항 영역의 폭은 제 2 전원 라인들(321, 323) 사이의 간격의 절반으로 설정될 수 있다. 즉, 저항 영역의 폭은 전원 저항(RVDD, RVSS)의 분포가 선형성을 갖는 구간에 대응하여 설정될 수 있다.
제 1 저항 영역에서, 제 2 전원 라인(321, VDD) 및 제 2 전원 라인(322, VSS)에 가까운 셀(351)의 전원 저항(RVDD, RVSS)과 제 2 전원 라인들(321, 323, VDD) 및 제 2 전원 라인(322, 324, VSS)으로부터 먼 셀(352)의 전원 저항(RVDD, RVSS)이 추출될 수 있다. 제 1 저항 영역에서 X축에 따라 배치된 셀들의 전원 저항(RVDD, RVSS)의 분포는 도시된 바와 같이 선형성을 갖고 있다. 따라서, 셀들(351, 352)을 제외한 제 1 저항 영역 내 나머지 셀들(미도시)의 전원 저항(RVDD, RVSS)은 선형 보간법(linear interpolation)을 이용해 계산할 수 있다. 그리고, 셀(351)과 동일한 X축 상의 좌표를 갖고 Y축에 따라 배치된 셀들(미도시)의 전원 저항(RVDD, RVSS)은 셀(351)의 전원 저항(RVDD, RVSS)과 동일하게 설정될 수 있다.
본 발명의 실시 예에 따르면, 집적 회로(200 또는 300) 내 복수의 셀은 복수의 저항 영역에 따라 구분될 수 있다. 각 저항 영역에서, 제 2 전원 라인에 가깝거나 제 2 전원 라인에서 먼 셀들의 전원 저항(RVDD, RVSS)이 추출될 수 있다. 나머지 셀들의 전원 저항(RVDD, RVSS)은 추출된 전원 저항(RVDD, RVSS)을 이용하는 선형 보간법에 의해 계산될 수 있다. 이하, 복수의 셀의 전원 저항(RVDD, RVSS)에 의해 발생되는 복수의 셀의 지연을 계산하는 방법에 대해 설명한다.
도 4는 집적 회로 내 복수의 셀의 지연 평균을 나타내기 위한 예시적인 딜레이 체인이다. 집적 회로 내 복수의 셀 각각은 다양한 지연을 가질 수 있다. 복수의 셀 각각에 대해 일일이 지연을 계산하게 되면 계산 시간(예를 들면, EDA 프로그램의 런타임(run-time))이 길어지는 단점이 있다. 복수의 셀의 지연 분포는 다양할 것이다. 따라서, 복수의 셀의 지연 평균을 나타내는 기준 셀(reference cell)에 대해 지연을 측정하고, 측정된 지연으로부터 나머지 셀들의 지연을 계산 또는 추정하는 방식이 효율적이다.
도 4를 참조하면, 딜레이 체인(400)은 지연 단들(delay stages, 450_1~450_11)을 포함할 수 있다. 딜레이 체인(400)은 집적 회로 내 복수의 셀의 지연의 평균을 나타내기 위해 캐드툴(CAD Tool)의 데이터베이스에 저장된 가상의 회로이다. 예시적으로, 지연 단들(450_1~450_11)의 수는 11개로 도시되었다.
제 1 지연 단(450_1)은 구동 셀(drive cell, 451_1) 및 부하 셀들(load cells, 452_1, 453_1, 454_1)을 포함할 수 있다. 여기서 부하 커패시터(load capacitor, CLOAD)는 구동 셀(451_1)의 출력 단자에 연결된 커패시터(예를 들면, 구동 셀(451_1), 부하 셀들(452_1, 453_1, 454_1) 및 제 2 지연 단(450_2, 미도시)을 연결하는 라인의 커패시터, 부하 셀들(452_1, 453_1, 454_1) 및 제 2 지연 단(450_2, 미도시) 각각의 입력 커패시터, 등)를 모델링(modeling)한 소자이다. 부하 셀들(452_1, 453_1, 454_1)의 수는 구동 셀(451_1)의 팬 아웃(fan out)에 의해 결정될 수 있다. 예시적으로, 구동 셀(451_1)의 팬 아웃은 4이다(부하 셀들(452_1, 453_1, 454_1) 및 제 2 지연 단(450_2, 미도시)의 구동 셀(451_2, 미도시)).
실시 예에 있어서, 집적 회로는 하나 이상의 셀들로 구성되는 복수의 딜레이 체인을 포함하고, 복수의 딜레이 체인 각각의 지연 단들의 수는 서로 상이할 수 있다. 또한, 집적 회로 내 복수의 셀 각각의 팬 아웃도 서로 상이할 수 있다. 딜레이 체인(400)은 집적 회로 내 복수의 셀의 지연 평균을 나타내기 위해 모델링된 회로이다. 따라서, 기준 셀은 집적 회로 내 딜레이 체인의 지연 단들의 수 및 복수의 셀 각각의 팬 아웃에 기초하여 결정될 수 있다.
실시 예에 있어서, 제 2 내지 제 11 지연 단들(450_2~450_11)은 제 1 지연 단(450_1)과 동일하게 구현될 수 있다. 그리고, 구동 셀들(451_1~451_11) 및 부하 셀들(452_1~452_11, 453_1~453_11, 454_1~454_11)도 서로 동일하게 구현될 수 있다.
기준 셀이 집적 회로 내 복수의 셀의 지연 평균을 나타낼 수 있도록, 기준 셀은 딜레이 체인(400)의 가운데에 위치한 제 6 지연 단(450_6)의 구동 셀(451_6)이 선정될 수 있다. 실시 예에 있어서, 기준 셀(451_6)은 이전 지연 단에서 출력된 신호를 다음 지연 단으로 전달하는 버퍼(buffer) 역할을 수행할 수 있다. 다른 실시 예에 있어서, 기준 셀(451_6)은 버퍼 이외의 다양한 논리게이트들(예를 들면, INV, NAND, AND, NOR, OR, XNOR, XOR, Flip-flop 등)일 수도 있다.
타이밍 디레이트(timing derate)는 전원 저항(RVDD, RVSS)이 고려되지 않은 경우(즉, 전원 저항(RVDD, RVSS)을 0으로 가정한 경우)의 셀의 지연에 대한 전원 저항(RVDD, RVSS)이 고려된 경우의 셀의 지연의 비율에 기초하여 결정될 수 있다. 타이밍 디레이트가 계산되는 구체적인 과정은 도 5 및 도 6을 참조하여 설명될 것이다.
도 5 및 도 6은 각각 도 4에서 도시된 기준 셀의 동작을 예시적으로 보여주는 도면이다. 도 5 및 도 6은 도 4를 참조하여 설명될 것이고, 기준 셀(451_6)은 버퍼이다. 타이밍 디레이트를 계산하기 위해, 기준 셀(451_6)의 전원 저항(RVDD, RVSS)이 50Ω인 경우의 지연과 기준 셀(451_6)의 전원 저항(RVDD, RVSS)이 0Ω인 경우의 지연이 측정될 것이다.
도 5는 기준 셀(451_6)의 출력(VOUT)이 로우(low)에서 하이(high)로 상승(rising)하는 경우에 관한 것이고, 반대로 도 6은 기준 셀(451_6)의 출력(VOUT)이 하이(high)에서 로우(low)로 하강(falling)하는 경우에 관한 것이다.
도 5를 참조하면, 입력(VIN)의 변화에 따라, 출력(VOUT) 및 전원들(VDD, VSS)의 파형들이 도시되어 있다. 입력(VIN)과 출력(VOUT) 사이의 상승 지연(D50rise), 피크 전압 드롭(peak voltage drop; PVD50rise), 피크 전압 바운스(peak voltage bounce; PVB50rise), 전압 드롭 구간(voltage drop duration; VDDDU50rise), 및 전압 바운스 구간(voltage bounce duration; VSSDU50rise)이 측정될 수 있다. 여기서, 상승 지연(D50rise)의 경우, 입력(VIN) 변화의 50% 지점과 출력(VOUT) 상승의 50% 지점 사이의 시간 차이를 의미할 수 있다(도 5에서 기준 셀(451_6)이 버퍼이므로 입력(VIN)이 상승하는 것으로 도시되었으나, 기준 셀(451_6)이 버퍼 외 다른 논리 게이트인 경우 입력(VIN)은 하강할 수도 있다). 그리고, D50rise, PVD50rise, PVB50rise, VDDDU50rise, VSSDU50rise 각각에서 50은 기준 셀의 전원 저항(RVDD, RVSS)이 50Ω임을 의미한다. 다만, 본 발명에서 기준 셀의 전원 저항(RVDD, RVSS)의 값은 상술한 수치로 한정되지 않는다.
상승 타이밍 디레이트(rise timing derate; TSIVD50rise)는 수학식 1과 같이 계산될 수 있다.
수학식 1에서, D50rise는 전원 저항(RVDD, RVSS)이 50Ω인 경우에 대한 기준 셀(451_6)의 상승 지연을 의미하고, D0rise는 전원 저항(RVDD, RVSS)이 0Ω인 경우에 대한 기준 셀(451_6)의 상승 지연을 의미한다. 따라서, 상승 타이밍 디레이트(TSIVD50rise)는 전원 저항(RVDD, RVSS)으로 인해 발생되는 기준 셀(451_6)의 상승 지연 정도를 나타낼 수 있다.
도 6을 참조하면, 입력(VIN)의 변화에 따라, 출력(VOUT) 및 전원들(VDD, VSS)의 파형들이 도시되어 있다. 입력(VIN)과 출력(VOUT) 사이의 하강 지연(D50fall), 피크 전압 드롭(peak voltage drop; PVD50fall), 피크 전압 바운스(peak voltage bounce; PVB50fall), 전압 드롭 구간(voltage drop duration; VDDDU50fall), 및 전압 바운스 구간(voltage bounce duration; VSSDU50fall)이 측정될 수 있다. 여기서, 하강 지연(D50fall)의 경우, 입력(VIN) 변화의 50% 지점과 출력(VOUT) 하강의 50% 지점 사이의 시간 차이를 의미할 수 있다.
기준 셀(451_6)의 하강 타이밍 디레이트(fall timing derate; TSIVD50fall)는 수학식 2와 같이 계산될 수 있다.
수학식 2에서, D50fall은 전원 저항(RVDD, RVSS)이 50Ω인 경우에 대한 기준 셀(451_6)의 하강 지연을 의미하고, D0fall은 전원 저항(RVDD, RVSS)이 0Ω인 경우에 대한 기준 셀(451_6)의 하강 지연을 의미한다. 따라서, 하강 타이밍 디레이트(TSIVD50fall)는 전원 저항(RVDD, RVSS)으로 인해 발생되는 셀의 하강 지연 정도를 나타낼 수 있다.
표 1 및 표 2는 기준 셀(451_6)의 사이즈에 따른 상술한 특성들이 각각 측정되거나 계산된 결과를 보여준다.
Cell | TSIVD50rise | PVD50rise | VDDDU50rise | PVB50rise | VSSDU50rise |
BUF_X1 | +1% | 5mV | 5ps | 1mV | 2ps |
BUF_X2 | +3% | 10mV | 10ps | 2mV | 4ps |
BUF_X3 | +4% | 12mV | 12ps | 2mV | 4ps |
BUF_X4 | +5% | 14mV | 15ps | 3mV | 5ps |
… | … | … | … | … | … |
Cell | TSIVD50fall | PVD50fall | VDDDU50fall | PVB50fall | VSSDU50fall |
BUF_X1 | +2% | 2mV | 2ps | 6mV | 6ps |
BUF_X2 | +3% | 3mV | 3ps | 11mV | 10ps |
BUF_X3 | +4% | 3mV | 4ps | 12mV | 12ps |
BUF_X4 | +6% | 4mV | 5ps | 13mV | 15ps |
… | … | … | … | … | … |
기준 셀(451_6)의 사이즈가 증가함에 따라(X1, X2, X3, X4, …), 기준 셀(451_6)에서 필요한 스위칭 동작의 전류가 증가하고, 기준 셀(451_6)의 전압 변동(PVD50rise, PVB50rise, PVD50fall, PVB50fall)이 커지게 된다. 따라서, 기준 셀(451_6)의 사이즈가 증가할수록, 상승 타이밍 디레이트(TSIVD50rise) 및 하강 타이밍 디레이트(TSIVD50fall)가 증가하는 것을 표 1 및 표 2에서 확인할 수 있다.
표 1 및 표 2의 데이터는 기준 셀(451_6)이 버퍼인 경우에 관한 것이다. 전술한대로, 기준 셀(451_6)은 도 4에서 도시된 버퍼에 한정되지 않는다. 기준 셀(451_6)은 집적 회로에서 사용되는 복수의 셀의 다양한 종류에 따라 결정될 수 있다. 예를 들어, 집적 회로에서 2-input NAND가 사용된 경우, 표 1 및 표 2의 데이터는 기준 셀이 2-input NAND인 경우의 특성들(TSIVD50rise, PVD50rise, VDDDU50rise, PVB50rise, VSSDU50rise, TSIVD50fall, PVD50fall, VDDDU50fall, PVB50fall, VSSDU50fall)을 더 포함할 수 있다. 즉, 표 1 및 표 2는 기준 셀(451_6)이 다양한 논리게이트들인 경우에 대한 데이터를 더 포함할 수 있다.
표 1 및 표 2에서 캐릭터라이제이션된 기준 셀(451_6)의 정보는 라이브러리(library)에 저장될 수 있다(라이브러리 캐릭터라이제이션(library characterization)). 이하, 기준 셀에 대한 라이브러리를 이용하여 집적 회로 내 복수의 셀 각각에 대해 전원 저항(RVDD, RVSS)으로 인한 타이밍 디레이트를 계산하는 방법에 대해 설명한다.
일반적으로, 전원 저항(RVDD, RVSS)이 클수록 셀에서 발생하는 전압 변동(PVD50rise, PVB50rise, PVD50fall, PVB50fall)이 증가한다. 따라서, 기준 셀(451_6)의 전원 저항(RVDD, RVSS)에 대한 집적 회로 내 임의의 셀의 전원 저항(RVDD, RVSS)의 비율에 기초하여, 임의의 셀의 PVDrise, PVBrise, PVDfall, 및 PVBfall이 다음의 수식들과 같이 계산될 수 있다.
수학식 3 내지 수학식 6에서, 50은 기준 셀(451_6)의 전원 저항(RVDD, RVSS) 값을 의미한다. 따라서, 임의의 셀의 피크 전압 드롭(PVDrise, PVDfall) 또는 피크 전압 바운스(PVBrise, PVBfall)와 같은 전압 변동은 기준 셀(451_6)의 전압 변동을 기준 셀(451_6)의 전원 저항(RVDD, RVSS)에 대한 임의의 셀의 전원 저항(RVDD, RVSS) 비율에 따라 조정한 값으로 계산될 수 있다. 수학식 3 내지 수학식 6의 결과에 따라, 임의의 셀의 상승 타이밍 디레이트(TSIVDrise) 및 하강 타이밍 디레이트(TSIVDfall)는 다음의 수식들과 같이 계산될 수 있다.
이하, 집적 회로 내 임의의 셀에 대한 타이밍 디레이트를 계산하는 구체적인 예시에 대해 설명한다.
도 7은 다양한 전원 저항을 갖는 복수의 셀을 포함하는 집적 회로의 일부를 예시적으로 보여주는 도면이다. 도 7을 참조하면, 집적 회로(500)에 포함된 다양한 사이즈(X1, X2, X3, X4)를 갖는 5개의 셀이 도시되어 있다. 5개의 셀 중, 사이즈가 X1이고 전원 저항(RVDD, RVSS)이 각각 40Ω, 20Ω인 셀(550)에 대한 타이밍 디레이트 계산 결과에 대해 설명한다.
셀(550)의 PVDrise는 수학식 3에 따라 4mV(=40Ω/50Ω X 5mV)로 계산되고, PVBrise는 수학식 4에 따라 0.4mV(=20Ω/50Ω X 1mV)로 계산되고, 그리고, TSIVDrise는 수학식 7에 따라 +0.7%(=(4mV+0.4mV)/(5mV+1mV) X (+1%))로 계산된다. 여기서, 5mV(기준 셀의 PVD50rise), 1mV(기준 셀의 PVBrise), +1%(기준 셀의 TSIVD50rise)는 표 1에서 사전에 측정되거나 계산된 값이다.
셀(550)의 PVDfall은 수학식 5에 따라 1.6mV(=40Ω/50Ω X 2mV)로 계산되고, PVBfall은 수학식 6에 따라 2.4mV(=20Ω/50Ω X 6mV)로 계산되고, 그리고, TSIVDfall는 수학식 8에 따라 +1%(=(1.6mV+2.4mV)/(2mV+6mV) X (+2%))로 계산될 수 있다. 여기서, 2mV(기준 셀의 PVD50fall), 6mV(기준 셀의 PVBfall), +2%(기준 셀의 TSIVD50fall)는 표 1에서 사전에 측정되거나 계산된 값이다.
정리하면, 집적 회로(500)내 복수의 셀 각각에서 입력 파형 및 출력 파형 등을 분석하여 타이밍 디레이트를 계산하는 것은 비효율적이다. 본 발명의 실시 예에 따르면, 먼저 기준 셀의 입력 파형 및 출력 파형 등을 분석하여 타이밍 디레이트가 계산되면, 기준 셀의 전원 저항에 대한 집적 회로 내 임의의 셀(즉, 기준 셀과 다른 셀)의 전원 저항의 비율을 이용하여, 임의의 셀의 타이밍 디레이트가 계산될 수 있다.
추가로, 셀의 전원 저항(RVDD, RVSS)으로 인한 상승 전압 변동(SIVDrise) 및 하강 전압 변동(SIVDfall)은 다음의 수식들과 같이 각각 계산될 수 있다.
수학식 9 및 수학식 10에서 정의된 셀의 전원 저항(RVDD, RVSS)으로 인한 전압 변동(SIVDrise, SIVDfall)은 수학식 7 및 수학식 8에서 각각 사용되고, 후술할 공격 셀로 인한 피해 셀의 타이밍 디레이트를 계산하는 과정에서도 사용된다.
도 7에서는, 셀의 전원 저항(RVDD, RVSS)으로 인한 셀 자체의 타이밍 디레이트를 계산하는 방법에 대해 설명되었다. 이하, 공격 셀에 의한 피해 셀의 타이밍 디레이트를 계산하는 방법에 대해 설명한다.
도 8은 본 발명의 실시 예에 따라 설정된 전압 그리드를 예시적으로 보여주는 도면이다. 도 8을 참조하면, 집적 회로(600)는 제 1 전원 라인들(611~615), 제 2 전원 라인들(621~625), 피해 셀(670), 및 공격 셀들(681~684, 691~694)을 포함할 수 있다.
이론적으로, 피해 셀(670)을 제외한 집적 회로(600) 내 나머지 셀들 전부는 피해 셀(670)의 지연을 증가시킬 수 있다. 그러나, 피해 셀(670)과 멀리 떨어진 셀들이 피해 셀(670)의 지연을 증가시키는 정도는 미미할 것이다. 따라서, 피해 셀(670)의 지연을 유효하게 증가시킬 수 있는 잠재적인 공격 셀들(681~684, 691~694)이 위치하는 영역을 설정하는 것이 필요하다. 상술한 영역 내의 셀들은 지연에 서로 영향을 줄 수 있지만, 영역 외 셀들은 영역 내 셀들의 지연에 영향을 줄 수 없다고 가정한다. 따라서, 영역이 클수록 분석 정확도는 증가하지만 분석 시간도 증가할 수 있다.
예시적으로, 도 8에서, 제 1 전원 라인들(611~615) 및 제 2 전원 라인들(621~625)에 따라 VDD 그리드(VDD grid, 이점쇄선으로 도시)가 설정될 수 있다. VDD 그리드는 파워 그리드와 유사하게 격자 형상으로 설정될 수 있다. VDD 그리드는 복수의 VDD 영역(VDD area, 음영으로 표시)을 포함할 수 있다. VDD 영역의 높이는 제 1 전원 라인들(611~615) 사이의 간격의 두 배로 설정될 수 있고, VDD 영역의 폭은 제 2 전원 라인들(621~625) 사이의 간격의 두 배로 설정될 수 있다. VDD 영역의 중심은 제 2 전원 라인(623, VDD)과 제 1 전원 라인(613, VDD)의 교차점에 배치될 수 있다. 실시 예에 있어서, VDD 영역의 면적은 도 2 및 도 3에서 전술한 저항 영역의 면적보다 작을 수 있고, VDD 영역의 수는 VDD 그리드에 따라 결정될 수 있다.
도 8을 참조하면, 피해 셀(670)은 상승 스위칭 동작을 수행할 수 있다. 여기서, 상승 스위칭 동작은 셀이 입력 신호에 응답하여 상승하는 출력 신호(예를 들면, 로우에서 하이로 상승하는 신호)를 생성하는 동작이고, 하강 스위칭 동작은 셀이 입력 신호에 응답하여 하강하는 출력 신호(예를 들면, 하이에서 로우로 하강하는 신호)를 생성하는 동작이다. 피해 셀(670)과 동일하게 공격 셀들(681~684)은 상승 스위칭 동작을 수행할 수 있고, 피해 셀(670)과 반대로 공격 셀들(691~694)은 하강 스위칭 동작을 수행할 수 있다. 상승 스위칭 동작을 수행하는 피해 셀(670) 및 공격 셀들(681~684)은 VDD로부터 대부분의 전류를 공급받고, 하강 스위칭 동작을 수행하는 공격 셀들(691~694)은 VSS로부터 대부분의 전류를 공급받는다. 공격 셀들(691~694)에 비해 공격 셀들(681~684)이 피해 셀(670)의 상승 지연을 더 증가시킬 수 있다. 도 8은 피해 셀(670)이 상승 스위칭 동작을 수행하는 경우에 관한 것이다. 이하, 피해 셀(670)이 하강 스위칭 동작을 수행하는 경우에 대해 설명한다.
도 9는 본 발명의 실시 예에 따라 설정된 전압 그리드를 예시적으로 보여주는 도면이다. 도 9를 참조하면, 집적 회로(700)는 제 1 전원 라인들(711~715), 제 2 전원 라인들(721~725), 피해 셀(770), 및 공격 셀들(781~784, 791~794)을 포함할 수 있다.
도 8의 경우와 유사하게, 도 9에서도 VSS 그리드가 설정될 수 있다. 제 1 전원 라인들(711~715) 및 제 2 전원 라인들(721~725)에 따라 VSS 그리드(VSS grid, 이점쇄선으로 도시)가 설정될 수 있다. VSS 그리드는 파워 그리드와 유사하게 격자 형상으로 설정될 수 있다. VSS 그리드는 복수의 VSS 영역(VSS area, 음영으로 표시)을 포함할 수 있다. VSS 영역의 높이는 제 1 전원 라인들(711~715) 사이의 간격의 두 배로 설정될 수 있고, VSS 영역의 폭은 제 2 전원 라인들(721~725) 사이의 간격의 두 배로 설정될 수 있다. VSS 영역의 중심은 제 2 전원 라인(723, VSS)과 제 1 전원 라인(713, VSS)의 교차점에 배치될 수 있다. 실시 예에 있어서, VSS 영역의 면적은 도 2 및 도 3에서 전술한 저항 영역의 면적보다 작을 수 있고, VSS 영역의 수는 VSS 그리드에 따라 결정될 수 있다.
도 9를 참조하면, 피해 셀(770)은 하강 스위칭 동작을 수행할 수 있다. 피해 셀(770)과 동일하게 공격 셀들(781~784)은 하강 스위칭 동작을 수행할 수 있고, 피해 셀(770)과 반대로 공격 셀들(791~794)은 상승 스위칭 동작을 수행할 수 있다. 따라서, 공격 셀들(791~794)에 비해 공격 셀들(781~784)이 피해 셀(770)의 하강 지연을 더 증가시킬 수 있다.
도 10은 도 8 및 도 9에 도시된 피해 셀의 도착 타이밍 윈도우가 예시적으로 도시된 도면이다. 도 10을 참조하면, 집적 회로(800)는 복수의 셀(810~840)을 포함할 수 있다. 복수의 셀(810~840) 중 NOR 연산을 수행하는 셀(840)을 전술한 피해 셀(도 8의 피해 셀(670) 또는 도 9의 피해 셀(770))이라 가정한다.
도착 타이밍 윈도우는 입력 신호가 가장 빠르게 도달할 수 있는 시점부터 출력 신호가 가장 늦게 출력되는 시점 사이의 시간 차이를 의미할 수 있다. 도 10에서, 피해 셀(840)은 제 1 내지 제 4 경로들(path1~path4)을 통해 입력 신호들(input1~input2)을 수신할 수 있다. 이전 단(즉, 셀들(810~830) 또는 그 이전의 단들)을 통해 피해 셀(840)에 도달하는 입력 신호들(input1~input2)의 윈도우들은 도 10에서 도시된 것과 같이 다양할 수 있다. 여기서, 입력 신호들(input1~input2)의 윈도우들은 정적 타이밍 분석(static timing analysis; STA)에 의해 계산될 수 있다. 도 10에서는 입력 신호들(input1~input2)의 윈도우들에 이어서 피해 셀(840)의 자체 지연(입력 신호들(input1~input2)과 출력 신호(output)간의 시간 차이)에 의해 발생되는 윈도우들(Cell(840) delays)이 도시되었다. 피해 셀(840)의 자체 지연으로 인해 발생되는 윈도우의 크기는 피해 셀(840)의 크기, 부하 셀(load cell)의 크기, 입력 신호들(input1~input2)의 기울기들, 구동 전원 등에 의해 결정된다. 따라서, 피해 셀(840)의 자체 지연으로 인해 발생되는 윈도우들의 크기는 서로 상이할 수 있다.
피해 셀(840)의 도착 타이밍 윈도우는 입력 신호들(input1~input2)의 윈도우들 및 피해 셀(840)의 자체 지연에 의해 발생되는 윈도우들을 모두 포함할 수 있다. 피해 셀(840)의 도착 타이밍 윈도우에서 스위칭 동작을 수행하는 공격 셀이 고려되어야 한다. 이하, 피해 셀의 도착 타이밍 윈도우와 겹치는 공격 셀에 의한 피해 셀의 타이밍 디레이트를 계산하는 방법에 대해 설명한다.
도 11은 도 8에서 도시된 전압 영역을 좀 더 자세하게 보여주는 도면이다. 도 12는 도 11의 피해 셀의 도착 타이밍 윈도우 및 분석 구간에 따른 가중 전압 변동을 예시적으로 보여주는 도면이다. 도 11과 도 12는 같이 설명될 것이다.
도 11 및 도 12는 피해 셀(970)이 상승 스위칭 동작을 수행하는 경우에 관한 것이다. 도 11을 참조하면, 집적 회로(900)는 제 1 전원 라인들(911~913), 제 2 전원 라인들(921~923), 피해 셀(970), 및 공격 셀들(981~984, 991~994)을 포함할 수 있다. 집적 회로(900) 내 VDD 그리드(이점쇄선으로 도시) 및 VDD 영역이 설정될 수 있다.
도 12를 참조하면, 피해 셀(970) 및 공격 셀들(981~983)의 도착 타이밍 윈도우가 도시되어 있다. 다른 공격 셀들(984, 991~994)의 도착 타이밍 윈도우는 피해 셀(970)의 도착 타이밍 윈도우와 겹치지 않는다고 가정한다. 피해 셀(970) 및 공격 셀들(981~983)의 도착 타이밍 윈도우는 분석 구간(analysis interval)에 의해 나뉘어질 수 있다. 예시적으로, 분석 구간에 대한 피해 셀(970)의 도착 타이밍 윈도우의 비율은 4고, 분석 구간에 대한 공격 셀(981)의 도착 타이밍 윈도우의 비율은 3이고, 분석 구간에 대한 공격 셀(982)의 도착 타이밍 윈도우의 비율은 5이고, 분석 구간에 대한 공격 셀(983)의 도착 타이밍 윈도우의 비율은 4이다.
분석 구간은 도 5 및 도 6에서 전술한 기준 셀(451_6)의 전압 드롭 구간(VDDDU50rise, VDDDU50fall) 및 전압 바운스 구간(VSSDU50rise, VSSDU50fall)에 기초하여 결정될 수 있다. 예시적으로, 분석 구간은 기준 셀(451_6)의 전압 드롭 구간(VDDDU50rise, VDDDU50fall) 및 전압 바운스 구간(VSSDU50rise, VSSDU50fall) 중 최소 구간의 절반으로 설정될 수 있다. 분석 구간이 짧을수록 분석 정확도는 증가하지만 분석 시간도 증가할 수 있다.
공격 셀들(981~983)의 평균 피크 전압 드롭(average peak voltage drop; PVDavg) 및 평균 피크 전압 바운스(average peak voltage bounce; PVBavg)는 다음의 수식들과 같이 계산될 수 있다.
공격 셀(981)의 전원 저항(RVDD)이 40Ω이고, 공격 셀(981)은 표 1에서의 BUF_X1 특성에 대응한다고 가정한다. 수학식 3 및 수학식 5에 따라, 공격 셀(981)의 PVDrise는 4mV(=40Ω/50Ω X 5mV), PVDfall은 1.6mV(=40Ω/50Ω X 2mV)로 계산될 수 있다. 수학식 11에 따라, 공격 셀(981)의 PVDavg는 2.8mV(=(4mV+1.6mV)/2)로 계산될 수 있다. 유사하게, 전술한 수학식 4 및 수학식 6에 따라, PVBrise, PVBfall이 각각 계산될 수 있고, 수학식 12에 따라, PVBavg도 계산될 수 있다(도 12를 참조하면, PVBavg는 1.75mV). 유사하게, 도 12에서, 공격 셀(982)의 PVDavg는 5.20mV로 그리고 PVBavg는 3.25mV로 계산될 수 있고, 공격 셀(983)의 PVDavg는 6.00mV로 그리고 PVBavg는 3.50mV로 계산될 수 있다.
공격 셀들(981~983)의 PVDavg 및 PVBavg가 계산된 후, 각 분석 구간에서 피해 셀(970)이 상승 스위칭 동작을 수행하는 경우의 가중 전압 변동(weighted voltage variation)이 계산될 수 있다. 여기서, 가중 전압 변동은 공격 셀들(981~983)에 의한 전압 변동을 합한 값을 의미한다. 가중 전압 변동은 VDD 드롭에 대응하는 상승 가중 전압 드롭(weighted voltage drop; WVDrise) 및 VSS 바운스에 대응하는 상승 가중 전압 바운스(weighted voltage bounce; WVBrise)를 포함할 수 있다. 상승 가중 전압 드롭(WVDrise) 및 상승 가중 전압 바운스(WVBrise)는 다음의 수식들과 같이 계산될 수 있다.
피해 셀(970)이 하강 스위칭 동작을 수행하는 경우의 하강 가중 전압 드롭(WVDfall) 및 하강 가중 전압 바운스(WVBfall)도 수학식 13 및 수학식 14와 실질적으로 동일한 방식으로 계산될 수 있다. 수학식 13 및 수학식 14를 참조하면, 도착 타이밍 윈도우는 공격 셀에 관한 것이고, N은 전압 영역 내 피해 셀의 도착 타이밍 윈도우와 겹치는 공격 셀들의 개수를 나타낸다. 각 분석 구간에서의 전압 변동을 수치화하기 위해, PVDavg 및 PVBavg는 분석 구간에 대한 공격 셀의 도착 타이밍 윈도우의 비율로 나누어질 수 있다. 예를 들면, 도 12에서 3번째 분석 구간에서, 수학식 13에 따라 상승 가중 전압 드롭(WVDrise)은 2.54mV(=5.20mV/5 + 6.00mV/4)로 계산될 수 있고, 수학식 14에 따라 상승 가중 전압 바운스(WVBrise)는 1.53mV(=3.25mV/5 + 3.50mV/4)로 계산될 수 있다. 3번째 분석 구간에서, 공격 셀(981)의 도착 타이밍 윈도우가 위치하지 않으므로, 공격 셀(981)의 전압 변동은 고려되지 않는다(즉, 3번째 분석 구간에서 N은 2고, 5번째 분석 구간에서 N은 1이다). 다른 분석 구간에서도 상술한 방법으로 상승 가중 전압 드롭(WVDrise) 및 상승 가중 전압 바운스(WVBrise)가 계산될 수 있다.
각 분석 구간에서 상승 가중 전압 드롭(WVDrise) 및 상승 가중 전압 바운스(WVBrise)가 계산된 후, 공격 셀들로 인한 피해 셀(970)의 유효 전압 변동(effective voltage variation)이 계산될 수 있다. 유효 전압 변동은 피해 셀(970)의 도착 타이밍 윈도우에서 공격 셀들로 인해 발생할 수 있는 전압 변동을 수치화한 값을 의미할 수 있다. 상승 유효 전압 변동은 각 분석 구간에서 계산된 상승 가중 전압 드롭(WVDrise) 및 상승 가중 전압 바운스(WVBrise), 피해 셀(970)의 전원 저항(RVDD, RVSS), 및 전압 변동 구간(전술한 전압 드롭 구간 및 전압 바운스 구간)이 고려되어 계산될 수 있다. 상승 유효 전압 변동은 상승 유효 전압 드롭(effective voltage drop; EVDrise) 및 상승 유효 전압 바운스(effective voltage bounce; EVBrise)를 포함할 수 있다.
우선, 도 5에서 측정된 기준 셀의 전압 드롭 구간(VDDDU50rise, 5ps, 표 1 참조), 기준 셀의 전압 바운스 구간(VSSDU50rise, 2ps, 표 1 참조), 기준 셀의 전원 저항(RVDD, RVSS), 및 피해 셀(970)의 전원 저항(RVDD, RVSS)을 이용하여, 피해 셀(970)의 전압 드롭 구간(VDDDUrise) 및 전압 바운스 구간(VSSDU50rise)이 다음의 수식들과 같이 계산될 수 있다.
수학식 15 및 수학식 16에서 기준 셀의 전원 저항(RVDD, RVSS)은 모두 50Ω이다. 도 12를 참조하면, 피해 셀(970)의 도착 타이밍 윈도우 내의 전압 드롭 구간(VDDDUrise) 및 전압 바운스 구간(VSSDU50rise)이 도시된다. 피해 셀(970)의 전압 드롭 구간(VDDDUrise)은 도착 타이밍 윈도우 내 두 개의 분석 구간에 대응하고, 피해 셀(970)의 전압 바운스 구간(VSSDU50rise)은 도착 타이밍 도착 타이밍 윈도우 내 한 개의 분석 구간에 대응한다. 다만 상술한 수치들은 모두 예시적인 것에 불과하다.
상승 유효 전압 드롭(EVDrise) 및 상승 유효 전압 바운스(EVBrise)는 다음의 수식들과 같이 계산될 수 있다.
상승 유효 전압 드롭(EVDrise) 및 상승 유효 전압 바운스(EVBrise)는 도착 타이밍 윈도우 내의 모든 상승 가중 전압 드롭(WVDrise) 및 상승 가중 전압 바운스(WVBrise)를 합산한 후, 합산된 결과가 도착 타이밍 윈도우에 대한 전압 드롭 구간(VDDDUrise) 및 전압 바운스 구간(VSSDU50rise)의 비율에 따라 조정되어 계산될 수 있다. 피해 셀(970)이 하강 스위칭 동작을 수행하는 경우의 하강 유효 전압 드롭(EVDfall) 및 하강 유효 전압 바운스(EVBfall)도 수학식 17 및 수학식 18과 실질적으로 동일한 방식으로 계산될 수 있다.
예시적으로, 수학식 17 및 수학식 18에 따라, 상승 유효 전압 드롭(EVDrise)은 3.58mV(=(2/4)*(2.54mV+2.54mV+1.04mV+1.04mV)로 계산될 수 있고, 상승 유효 전압 바운스(EVBrise)는 1.09mV(=(1/4)*(1.53mV+1.53mV+0.65mV+0.65mV)로 계산될 수 있다.
유효 전압 드롭(EVDrise) 및 유효 전압 바운스(EVBrise)를 이용해 공격 셀들(981~983)로 인한 피해 셀(970)의 상승 타이밍 디레이트(TAIVDrise) 및 하강 타이밍 디레이트(TAIVDfall)가 계산될 수 있다. 다만, 상술한 계산 과정에는 공격 셀들(981~983)과 피해 셀(970)의 공통 저항 비율이 고려되어야 한다. 이하, 공통 저항 비율에 대해 도 11을 참조하여 설명한다.
다시 도 11을 참조하면, VDD 소스로부터 셀들(970, 981~984, 991~994)까지 경로에 대한 저항들이 도시되어 있다.
도 11을 참조하면, VDD 영역 내 모든 셀들(970, 981~984, 991~994)은 공통 경로를 통해 VDD 소스로부터 VDD를 공급받는다. 이 경우, 공통 경로의 공통 저항(common resistance)은 R3가 될 수 있다. 공통 저항 비율(common resistance ratio; CR)은 피해 셀의 전원 저항에 대한 공통 저항의 비율이다. 좀 더 구체적으로, 도 12의 경우, 피해 셀(970)의 공통 저항 비율은 R3/(R1+R2+R3)가 될 수 있다.
상술한 공통 저항 비율(CR), 상승 유효 전압 드롭(EVDrise), 상승 유효 전압 바운스(EVBrise), 하강 유효 전압 드롭(EVDfall), 및 하강 유효 전압 바운스(EVBfall)을 이용하여, 공격 셀로 인한 상승 전압 변동(AIVDrise) 및 하강 전압 변동(AIVDfall)은 다음의 수식들과 같이 계산될 수 있다.
즉, 상승 유효 전압 드롭(EVDrise), 상승 유효 전압 바운스(EVBrise), 하강 유효 전압 드롭(EVDfall), 및 하강 유효 전압 바운스(EVBfall)는 공통 저항 비율(CR)에 따라 축소 또는 조정될 수 있다.
공격 셀로 인한 상승 전압 변동(AIVDrise) 및 하강 전압 변동(AIVDfall), 셀의 전원 저항(RVDD, RVSS)으로 인한 피해 셀의 상승 전압 변동(SIVDrise) 및 하강 전압 변동(SIVDfall), 그리고 셀의 전원 저항(RVDD, RVSS)으로 인한 피해 셀의 상승 타이밍 디레이트(TSIVDrise) 및 하강 타이밍 디레이트(TSIVDfall)를 이용하여, 공격 셀로 인한 피해 셀의 상승 타이밍 디레이트(TAIVDrise) 및 하강 타이밍 디레이트(TAIVDfall)는 다음의 수식들과 같이 각각 계산될 수 있다.
피해 셀의 상승 타이밍 디레이트(TSIVDrise)는 피해 셀의 상승 전압 변동(SIVDrise)에 대한 공격 셀로 인한 상승 전압 변동(AIVDrise)의 비율로 조정될 수 있고, 피해 셀의 하강 타이밍 디레이트(TSIVDfall)는 피해 셀의 하강 전압 변동(SIVDfall)에 대한 공격 셀로 인한 하강 전압 변동(AIVDfall)의 비율로 조정될 수 있다.
셀의 전원 저항(RVDD, RVSS)으로 인한 피해 셀의 상승 타이밍 디레이트(TSIVDrise) 및 하강 타이밍 디레이트(TSIVDfall)와 공격 셀로 인한 피해 셀의 상승 타이밍 디레이트(TAIVDrise) 및 하강 타이밍 디레이트(TAIVDfall)를 합치면, 피해 셀의 총 상승 타이밍 디레이트(TDVDrise) 및 총 하강 타이밍 디레이트(TDVDfall)가 다음의 수식들과 같이 각각 계산될 수 있다.
도 7에서 셀(550)에 대해 구체적으로 계산한 PVDrise(4mV), PVBrise(0.4mV), 및 TSIVDrise(+0.7%)에 이어서, TDVDrise의 구체적인 계산 예에 대해 설명한다. 상승 유효 전압 드롭(EVDrise) 및 상승 유효 전압 바운스(EVBrise)는 각각 3.58mV, 1.09mV로 계산되었고, 공통 저항 비율은 0.8로 가정한다.
우선, 수학식 9에 따라 SIVDrise는 4.4mV(=4mV + 0.4mV)로 계산될 수 있다. 다음, 수학식 19에 따라 AIVDrise는 3.74mV(=(3.58mV + 1.09mV) X 0.8)로 계산될 수 있다. 수학식 21에 따라, TAIVDrise는 +0.56%(=(3.74mV/4.4mV) X (+0.7%))로 계산될 수 있다. 수학식 23에 따라, TDVDrise는 +1.26%(=0.7%+0.56%)로 계산될 수 있다. 본 발명의 실시 예에 따르면, 셀의 전원 저항(RVDD, RVSS) 및 공격 셀로 인한 피해 셀의 지연이 모두 고려되어, 피해 셀의 총 상승 타이밍 디레이트(TDVDrise) 및 총 하강 타이밍 디레이트(TDVDfall)가 계산될 수 있다.
도 13은 본 발명의 실시 예에 따른 집적 회로의 설계 방법을 예시적으로 보여주는 순서도이다.
S100 단계에서, 기준 셀에 대한 라이브러리 캐릭터라이제이션이 수행될 수 있다. 라이브러리 캐릭터라이제이션은 집적 회로 내 복수의 셀의 지연 평균을 나타내기 위한 기준 셀의 정보를 생성하고, 생성된 정보를 라이브러리에 저장하는 과정을 나타낸다(표 1 및 표 2 참조). S100 단계에서 라이브러리 내에 캐릭터라이제이션된 기준 셀의 정보(표 1 및 표 2 참조)는 후술할 S250 단계에서 사용될 수 있다. S100 단계는 S210 단계 내지 S290 단계, 또는 S300 단계와 독립적으로 수행되고, 반복적으로 수행되지 않는다. S100 단계에 대한 상세한 설명은 도 14에서 후술한다.
S210 단계에서, 게이트 레벨(gate-level)의 넷리스트(netlist)가 생성될 수 있다. 일반적으로 집적 회로의 설계 방법은 크게 프론트 엔드(front end) 과정 및 백 엔드(back end) 과정으로 나뉘어진다. 요구되는 스펙(specification)에 따라, Verilog, VHDL 등과 같은 HDL(hardware description language)을 통해 프로그래밍이 수행될 수 있고, 이후 합성(synthesis)이 수행될 수 있다. 합성에는 EDA 프로그램에 해당하는 디자인 컴파일러(design compiler)가 사용될 수 있다. 합성에 따라 게이트 레벨의 넷리스트가 생성될 수 있다. 게이트 레벨의 넷리스트가 나오기까지의 설계 과정은 프론트 엔드 과정에 포함될 수 있다. S220 내지 S300 단계는 백 엔드 과정에 포함될 수 있다.
S220 단계에서, 플로어 플랜(floor plan) 및 파워 플랜(power plan)이 수행될 수 있다. 플로어 플랜은 집적 회로 내 게이트들의 개략적인 배치 정보를 의미할 수 있고, 파워 플랜은 게이트들에 전력을 공급하기 위한 파워 그리드의 개략적인 배치 정보를 의미할 수 있다.
S230 단계에서, PNR(place and routing)이 수행될 수 있다. S210 단계에서 생성된 넷리스트는 단지 집적 회로 내 게이트들(혹은 셀들)이 어떻게 연결되는지를 나타낸다. 따라서, 이러한 게이트들을 어디에 배치(place)할지 그리고 게이트들을 연결하는 와이어(wire)를 어떻게 놓을지(routing)가 수행될 수 있다.
S240 단계에서, 집적 회로 내 셀에 대한 전원 저항(RVDD, RVSS)이 추출될 수 있다. 전원 저항(RVDD, RVSS)은 셀에 연결되는 전원 라인들의 폭과 길이에 의해 결정되는 저항 성분을 의미할 수 있다. 전원 저항(RVDD, RVSS)의 추출 과정은 도 15에서 상세하게 후술한다.
S250 단계에서, S240 단계에서 추출된 전원 저항(RVDD, RVSS)으로 인해 셀 자체에서 발생되는 셀의 지연을 나타내는 제 1 타이밍 디레이트(수학식 7 및 수학식 8 참조)가 계산될 수 있다. 제 1 타이밍 디레이트의 계산 과정에는 S100 단계에서 라이브러리 내에 캐릭터라이제이션된 기준 셀의 정보(표 1 및 표 2 참조)가 사용될 수 있다.
S260 단계에서, 집적 회로에 대한 제 1 정적 타이밍 분석(STA1)이 수행될 수 있다. 제 1 정적 타이밍 분석에서는 전원 저항(RVDD, RVSS)으로 인해 셀 자체에서 발생되는 셀의 지연을 나타내는 제 1 타이밍 디레이트만이 이용된다. 제 1 정적 타이밍 분석을 통해, 집적 회로 내 셀들 각각의 도착 타이밍 윈도우(도 11 참조)가 도출될 수 있다. 실시 예에 있어서, S260 단계는 일반적인 정적 타이밍 분석 단계 중 타이밍을 업데이트 하는 단계(update timing)를 의미할 수 있다.
S270 단계에서, 공격 셀에 의해 발생하는 피해 셀의 지연을 나타내는 제 2 타이밍 디레이트(수학식 21 및 수학식 22 참조)가 계산될 수 있다. 제 2 타이밍 디레이트의 계산 과정은 도 17에서 상세하게 후술한다.
S280 단계에서, 집적 회로에 대한 제 2 정적 타이밍 분석(STA2)이 수행될 수 있다. 제 2 정적 타이밍 분석에는 전원 저항(RVDD, RVSS)으로 인해 셀 자체에서 발생되는 셀의 지연을 나타내는 제 1 타이밍 디레이트 및 공격 셀에 의해 발생하는 피해 셀의 지연을 나타내는 제 2 타이밍 디레이트가 모두 이용된다. 실시 예에 있어서, S280 단계는 일반적인 정적 타이밍 분석 단계 중 타이밍을 업데이트 하는 단계(update timing)를 의미할 수 있다.
S290 단계에서, 제 2 정적 타이밍 분석(STA2) 결과를 참조하여, 타이밍 위반(timing violation)이 있는지 여부가 판단될 수 있다. 예를 들면, 플립 플롭(flip-flop)의 셋업 타이밍 위반(setup time violation) 또는 홀드 타이밍 위반(hold time violation)이 있는지 여부가 판단될 수 있다. 타이밍 위반이 없는 경우(No), 집적 회로의 설계 과정이 종료되고 집적 회로가 제작될 수 있다. 타이밍 위반이 있는 경우(Yes), S300 단계가 수행된다.
S300 단계에서, Timing ECO(engineering change order) 과정이 수행될 수 있다. Timing ECO 과정은 S290 단계에서 발견된 타이밍 위반을 해결하기 위해, 셀들의 사이즈, 위치를 조정하는 과정, 버퍼를 삽입하는 과정, 집적 회로 내 전원 라인들을 수정하는 과정 등을 의미할 수 있다.
S300 단계가 수행된 후, S230 내지 S290 단계가 다시 반복될 수 있다. 다만, S300 단계에서 집적 회로 내 전원 라인들이 수정된 경우 S240 단계는 재수행될 수 있지만, 집적 회로 내 전원 라인들이 수정되지 않은 경우 S240 단계는 수행되지 않는다.
도 14는 도 13에서 도시된 S100 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
S110 단계에서, 기준 셀의 지연이 측정될 수 있다. 전술한대로, 기준 셀은 집적 회로 내 복수의 셀의 지연 평균을 나타내기 위한 셀이다(도 4 참조). 예시적으로, 기준 셀의 전원 저항(RVDD, RVSS)이 50Ω인 경우와 0Ω인 경우 각각에 대한 기준 셀의 지연이 측정될 수 있다. 여기서, 상술한 기준 셀의 전원 저항(RVDD, RVSS)의 수치는 예시적인 것이고, 복수의 셀의 지연 평균을 나타내기 위해 변경될 수 있다.
S120 단계에서, 기준 셀의 전압 변동이 측정될 수 있다. S110 단계와 유사하게, 기준 셀의 전원 저항(RVDD, RVSS)이 50Ω인 경우와 0Ω인 경우 각각에 대한 기준 셀의 전압 변동이 측정될 수 있다. 실시 예에 있어서, S110 단계 및 S120 단계는 동시에 수행될 수 있다(도 5 및 도 6 참조).
S130 단계에서, S110 단계 및 S120 단계에서 측정된 기준 셀의 지연 및 기준 셀의 전압 변동을 이용하여 기준 셀의 제 1 타이밍 디레이트가 계산될 수 있다(수학식 1 및 수학식 2 참조). 제 1 타이밍 디레이트는 전원 저항(RVDD, RVSS)에 인해 발생되는 셀의 지연 정도를 나타낼 수 있다.
S140 단계에서, S110 단계 내지 S130 단계에서 측정되거나 계산된 기준 셀의 정보는 라이브러리에 할당된 데이터베이스에 저장될 수 있다. 좀 더 구체적으로, 기준 셀의 정보는 전술한 표 1 및 표 2의 데이터일 수 있다. S110 단계 내지 S140 단계를 통해 생성된 기준 셀에 대한 라이브러리는 집적 회로 내 복수의 셀 각각의 지연을 계산하기 위해 사용될 수 있다.
도 15는 도 13에서 도시된 S240 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
S241 단계에서, 집적 회로에서 저항 그리드에 따라 저항 영역이 설정될 수 있다. 도 2 및 도 3을 참조하면, 저항 그리드는 집적 회로 내 전원 라인들의 배치(즉, 파워 그리드)에 따라 설정될 수 있다. 저항 그리드가 설정됨에 따라 저항 영역이 설정될 수 있고, 집적 회로 내 복수의 셀은 설정된 저항 영역에 의해 구분될 수 있다. 전술한대로, 저항 영역은 영역은 전원 저항(RVDD, RVSS)의 분포가 선형성을 갖는 범위 내에서 설정될 수 있다.
S242 단계에서, 각 저항 영역에서, 전원 라인에 인접한 셀의 전원 저항(RVDD, RVSS)과 전원 라인으로부터 먼 셀의 전원 저항(RVDD, RVSS)이 각각 추출될 수 있다. 전원 라인으로부터 먼 셀은 전원 라인들의 중간 지점에 배치된 셀을 의미할 수 있다.
S243 단계에서, 각 저항 영역에서, S242 단계에서 추출된 저항들에 기초하는 선형 보간법에 의해 셀들의 전원 저항(RVDD, RVSS)이 계산될 수 있다. 복수의 셀 각각의 전원 저항(RVDD, RVSS)이 일일이 추출되는 대신에, 본 발명의 실시 예에 의하면, 저항 영역 내 추출된 두 지점의 셀들의 전원 저항(RVDD, RVSS)을 이용하는 선형 보간법에 의해 셀들의 전원 저항(RVDD, RVSS)이 계산될 수 있다.
도 16은 도 13에서 도시된 S250 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
S251 단계에서, 기준 셀의 전원 저항(예를 들면, 50Ω)에 대한 S240 단계에서 추출된 집적 회로 내 임의의 셀의 전원 저항(RVDD, RVSS)의 비율에 따라, 임의의 셀의 전압 변동들(PVDrise, PVBrise, PVDfall, 및 PVBfall)이 스케일(scale)될 수 있다(수학식 3 내지 수학식 6 참조). 이후 임의의 셀의 제 1 타이밍 디레이트(수학식 7 및 수학식 8 참조)가 계산될 수 있다.
S252 단계에서, 임의의 셀에 대한 제 1 타이밍 디레이트가 설정될 수 있다(set timing derate 1). 이후, 설정된 임의의 셀에 대한 제 1 타이밍 디레이트는 도 13의 S260 단계의 정적 타이밍 분석에서 사용될 수 있다.
도 17은 도 13에서 도시된 S270 단계의 상세한 과정을 예시적으로 보여주는 순서도이다.
S271 단계에서, 집적 회로에서 전압 그리드에 따라 전압 영역이 설정될 수 있다. 도 8 및 도 9를 참조하면, 전압 그리드는 집적 회로 내 전원 라인들의 배치(즉, 파워 그리드)에 따라 설정될 수 있다. 전압 그리드가 설정됨에 따라 전압 영역이 설정될 수 있다. 전압 영역 내 임의의 셀이 피해 셀로 선정되면, 전압 영역 내 다른 셀들은 모두 공격 셀들이 된다.
S272 단계에서, 분석 구간(도 12 참조)이 설정될 수 있다. 분석 구간은 기준 셀의 전압 변동이 발생하는 구간(예를 들면, 전압 드롭 구간 또는 전압 바운스 구간)보다 짧게 설정될 수 있다. 실시 예에 있어서 분석 구간은 기준 셀의 전압 변동이 발생하는 구간 및 기준 셀 이외의 셀들의 전압 변동들이 발생하는 구간들보다 짧게 설정될 수 있다.
S273 단계에서, 피해 셀의 도착 타이밍 윈도우가 결정될 수 있다. 피해 셀의 도착 타이밍 윈도우는 S260 단계에서 수행된 제 1 정적 타이밍 분석(STA1) 결과를 이용하여 결정될 수 있다.
S274 단계에서, 공격 셀의 평균 피크 전압 드롭 및 평균 피크 전압 바운스를 이용하여, 각 분석 구간에 따른 공격 셀의 가중 전압 변동이 계산될 수 있다. 좀 더 구체적으로, 도 12에서 도시된 가중 전압 드롭 또는 가중 전압 바운스를 포함하는 가중 전압 변동이 계산될 수 있다(수학식 13 및 수학식 14 참조).
S275 단계에서, 공격 셀의 가중 전압 변동 및 피해 셀의 도착 타이밍 윈도우 내 전압 변동 구간을 이용하여 피해 셀의 유효 전압 변동이 계산될 수 있다(수학식 17 및 수학식 18 참조).
S276 단계에서, S275 단계에서 계산된 피해 셀의 유효 전압 변동, 피해 셀의 전원 저항, 및 S250 단계에서 계산된 제 1 타이밍 디레이트를 이용하여 피해 셀의 제 2 타이밍 디레이트가 계산될 수 있다.
S277 단계에서, 피해 셀의 제 2 타이밍 디레이트가 설정될 수 있다(set timing derate 2). 이후, 설정된 피해 셀에 대한 제 2 타이밍 디레이트는 도 13의 S280 단계의 정적 타이밍 분석에서 사용될 수 있다.
도 18은 본 발명의 실시 예에 따른 집적 회로의 설계 방법을 수행하기 위한 컴퓨팅 시스템 및 본 발명의 실시 예에 따른 EDA 프로그램을 예시적으로 보여주는 블록도이다. 도 18을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1100) 및 메모리 장치(1200)를 포함할 수 있다.
프로세서(1100)는 메모리 장치(1200)와 연결될 수 있고, 메모리 장치(1200)에 데이터를 쓰거나 메모리 장치(1200)로부터 데이터를 읽기 위한 명령을 메모리 장치(1200)에 제공할 수 있다. 예시적으로, 프로세서(1100)는 CPU, GPU, AP(application processor) 등을 포함할 수 있다.
메모리 장치(1200)에는 본 발명의 실시 예에 따른 EDA 프로그램(electronic design automation program; EDA program, 1210)이 저장될 수 있다. 실시 예에 있어서, 메모리 장치(1200)는 EPROM(erasable programmable read-only memory), EERROM(electrically erasable programmable read-only memory), 낸드 플래시 메모리(nand flash memory), 노어 플래시 메모리(nor flash memory), PRAM(phase-change random access memory), RRAM(resistive random access memory), FRAM(ferroelectric random access memory), TRAM(thyristor random access memory) 등과 같은 불휘발성 반도체 메모리 소자로 구현될 수 있다
EDA 프로그램(1210)은 메모리 장치(1200)와 결합하여 도 13에서 도시된 S240 단계 내지 S290 단계, 도 14에서 도시된 S110 단계 내지 S140 단계, 도 15에서 도시된 S241 단계 내지 S243 단계, 도 17에서 도시된 S271 단계 내지 S276 단계 각각을 수행할 수 있다. 실시 예에 있어서, EDA 프로그램(1210)은 S260 단계 및 S280 단계의 정적 타이밍 분석들은 기존의 EDA 프로그램에 연동되어 같이 실행될 수 있다.
EDA 프로그램(1210)은 도 13의 S240 단계 및 도 15의 S241 단계 내지 S243 단계에 따라 수행된 집적 회로 내 복수의 셀 각각에 대해 계산된 전원 저항 정보(RVDD, RVSS information, 1211)를 메모리 장치(1200)에 저장할 수 있다. EDA 프로그램(1210)은 표 1 및 표 2에서 측정되거나 계산된 기준 셀에 대한 라이브러리를 메모리 장치(1200)에 저장할 수 있다. EDA 프로그램(1210)은 전술한 수학식 1 내지 수학식 24까지의 모든 계산 결과를 메모리 장치(1200)에 저장할 수 있고, 다른 EDA 프로그램이나 유저에게 제공할 수 있다. 좀 더 구체적으로, EDA 프로그램(1210)은 전원 저항으로 인한 타이밍 디레이트, 공격 셀로 인한 타이밍 디레이트, 총 타이밍 디레이트에 대한 정보(TSIVD, TAIVD, TDVD information, 1213)를 메모리 장치(1200)에 저장할 수 있다.
EDA 프로그램(1210)은 전원 라인의 배치에 기초하여 저항 영역 또는 전압 영역을 설정할 수 있다. 따라서, EDA 프로그램(1210)은 영역 단위로 셀들의 전원 저항을 추출하고, 전원 저항으로 인한 지연 정도 및 셀들간 영향으로 인한 지연 정도를 계산할 수 있으므로, 런타임을 단축시킬 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
100, 900: 집적 회로
111~114, 911~913: 제 1 전원 라인
121, 122, 921~923: 제 2 전원 라인
131: 제 1 셀
132: 제 2 셀
970: 피해 셀
981~984, 991~994: 공격 셀
1210: EDA 프로그램
111~114, 911~913: 제 1 전원 라인
121, 122, 921~923: 제 2 전원 라인
131: 제 1 셀
132: 제 2 셀
970: 피해 셀
981~984, 991~994: 공격 셀
1210: EDA 프로그램
Claims (10)
- 집적 회로 설계를 위한 컴퓨팅 시스템의 동작 방법에 있어서,
복수의 셀 각각에 전력을 공급하기 위한 복수의 경로의 복수의 전원 저항을 추출하는 단계;
상기 복수의 전원 저항에 의해 발생되는 상기 복수의 셀의 복수의 제 1 지연을 나타내는 복수의 제 1 타이밍 디레이트(timing derate)를 계산하는 단계;
상기 복수의 제 1 타이밍 디레이트를 이용하여 제 1 정적 타이밍 분석(static timing analysis)을 수행하는 단계;
상기 제 1 정적 타이밍 분석의 결과를 이용하여 상기 복수의 셀 각각이 입력 신호를 수신하는 복수의 도착 타이밍 윈도우(arrival timing window)를 결정하고, 상기 복수의 도착 타이밍 윈도우가 서로 겹침에 따라 발생되는 상기 복수의 셀의 복수의 제 2 지연을 나타내는 복수의 제 2 타이밍 디레이트를 계산하는 단계; 및
상기 복수의 제 1 타이밍 디레이트 및 상기 복수의 제 2 타이밍 디레이트를 이용하여 제 2 정적 타이밍 분석을 수행하는 단계를 포함하고,
상기 복수의 전원 저항을 추출하는 단계는:
상기 복수의 경로를 구성하는 복수의 전원 라인의 배치에 기초하는 저항 그리드(resistance grid)에 따라, 상기 복수의 셀을 구분하기 위한 복수의 저항 영역을 설정하는 단계;
상기 복수의 저항 영역 각각에서, 제 1 셀에 전력을 공급하기 위한 제 1 경로의 제 1 전원 저항 및 상기 제 1 셀과 동일한 저항 영역에 위치하는 제 2 셀에 전력을 공급하기 위한 제 2 경로의 제 2 전원 저항을 추출하는 단계; 및
상기 복수의 저항 영역 각각에서, 상기 제 1 전원 저항 및 상기 제 2 전원 저항에 기초하는 선형 보간법(linear interpolation)을 이용하여 상기 제 1 및 제 2 셀들과 동일한 저항 영역에 위치하는 상기 제 1 및 제 2 셀들 이외의 셀들에 전력을 공급하기 위한 경로들의 전원 저항들을 계산하는 단계를 포함하는 동작 방법. - 삭제
- 제 1 항에 있어서,
상기 복수의 제 1 타이밍 디레이트를 계산하는 단계는:
상기 집적 회로 내 복수의 딜레이 체인(delay chain) 각각의 지연 단들의 수 및 상기 복수의 셀 각각의 팬 아웃(fan out)에 기초하여 결정되는 기준 셀에 전력을 공급하기 위한 경로의 전원 저항에 의한 지연과 상기 기준 셀에 전력을 공급하기 위한 상기 경로의 상기 전원 저항이 0인 경우의 지연의 차이에 기초하여 상기 기준 셀의 제 1 타이밍 디레이트를 계산하는 단계; 및
상기 복수의 전원 저항 및 상기 기준 셀의 상기 제 1 타이밍 디레이트를 이용하여, 상기 복수의 셀의 상기 복수의 제 1 타이밍 디레이트를 계산하는 단계를 포함하는 동작 방법. - 제 3 항에 있어서,
상기 복수의 셀의 상기 복수의 제 1 타이밍 디레이트를 계산하는 단계는:
상기 기준 셀에 전력을 공급하기 위한 상기 경로의 상기 전원 저항에 의해 발생하는 상기 기준 셀의 전압 변동 및 전압 변동 구간을 측정하는 단계; 및
상기 기준 셀에 전력을 공급하기 위한 상기 경로의 상기 전원 저항, 상기 기준 셀의 상기 전압 변동 및 상기 전압 변동 구간, 및 상기 복수의 전원 저항을 이용하여, 상기 복수의 셀의 복수의 전압 변동 및 복수의 전압 변동 구간을 계산하는 단계를 포함하는 동작 방법. - 제 4 항에 있어서,
상기 복수의 제 2 타이밍 디레이트를 계산하는 단계는:
상기 배치에 기초하는 전압 그리드(voltage grid)에 따라, 상기 복수의 셀을 구분하기 위한 복수의 전압 영역을 설정하는 단계;
상기 기준 셀의 상기 전압 변동 구간 및 상기 복수의 셀의 상기 복수의 전압 변동 구간보다 짧은 분석 구간을 설정하는 단계;
상기 분석 구간에 대응하는, 상기 복수의 전압 영역 각각에 위치하는 공격 셀의 가중 전압 변동(weighted voltage variation)을 계산하는 단계;
상기 가중 전압 변동을 이용하여, 상기 복수의 전압 영역 각각에 위치하고 상기 공격 셀의 도착 타이밍 윈도우와 겹치는 도착 타이밍 윈도우를 갖는 피해 셀의 유효 전압 변동(effective voltage variation)을 계산하는 단계; 및
상기 유효 전압 변동을 이용하여, 상기 피해 셀의 제 2 타이밍 디레이트를 계산하는 단계를 포함하는 동작 방법. - 제 5 항에 있어서,
상기 복수의 셀의 상기 복수의 전압 변동 및 상기 복수의 전압 변동 구간을 계산하는 단계는,
상기 공격 셀의 전압 변동을 계산하는 단계를 포함하고,
상기 공격 셀의 가중 전압 변동을 계산하는 단계는,
상기 공격 셀의 상기 전압 변동을, 상기 분석 구간에 대한 상기 공격 셀의 상기 도착 타이밍 윈도우의 비율로 나누는 단계를 포함하는 동작 방법. - 제 6 항에 있어서,
상기 복수의 셀의 상기 복수의 전압 변동 및 상기 복수의 전압 변동 구간을 계산하는 단계는,
상기 피해 셀의 전압 변동 구간을 계산하는 단계를 더 포함하고,
상기 피해 셀의 상기 유효 전압 변동을 계산하는 단계는,
상기 피해 셀의 상기 도착 타이밍 윈도우에 대한 상기 피해 셀의 상기 전압 변동 구간의 비율에 따라, 상기 가중 전압 변동을 조정하는 단계를 포함하는 동작 방법. - 제 7 항에 있어서
상기 피해 셀의 제 2 타이밍 디레이트를 계산하는 단계는,
상기 피해 셀에 전력을 공급하기 위한 경로의 전원 저항에 대한 상기 피해 셀 및 상기 공격 셀에 전력을 공급하기 위한 공통 경로의 전원 저항의 비율에 따라, 상기 피해 셀의 상기 유효 전압 변동을 조정하는 단계를 포함하는 동작 방법. - 제 8 항에 있어서
상기 복수의 셀의 상기 복수의 제 1 타이밍 디레이트를 계산하는 단계는,
상기 피해 셀의 제 1 타이밍 디레이트를 계산하는 단계를 더 포함하고,
상기 복수의 셀의 상기 복수의 전압 변동 및 상기 복수의 전압 변동 구간을 계산하는 단계는,
상기 피해 셀의 전압 변동을 계산하는 단계를 더 포함하고,
상기 피해 셀의 제 2 타이밍 디레이트를 계산하는 단계는,
상기 피해 셀의 상기 전압 변동에 대한 상기 조정된 유효 전압 변동의 비율에 따라, 상기 피해 셀의 상기 제 1 타이밍 디레이트를 조정하는 단계를 포함하는 동작 방법. - 제 1 항에 있어서,
상기 제 2 정적 타이밍 분석의 결과를 이용하여 타이밍 위반이 발생하였는지를 판단하는 단계를 더 포함하는 동작 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170057525A KR102401602B1 (ko) | 2017-05-08 | 2017-05-08 | 셀들의 전원 전압 변화 및 셀들간 영향을 고려하는 집적 회로의 설계 방법 |
US15/968,979 US10430537B2 (en) | 2017-05-08 | 2018-05-02 | Integrated circuit including cells/gates arranged based on supply voltage variations of cells and influence between cells, and design method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170057525A KR102401602B1 (ko) | 2017-05-08 | 2017-05-08 | 셀들의 전원 전압 변화 및 셀들간 영향을 고려하는 집적 회로의 설계 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180123609A KR20180123609A (ko) | 2018-11-19 |
KR102401602B1 true KR102401602B1 (ko) | 2022-05-25 |
Family
ID=64014182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170057525A KR102401602B1 (ko) | 2017-05-08 | 2017-05-08 | 셀들의 전원 전압 변화 및 셀들간 영향을 고려하는 집적 회로의 설계 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10430537B2 (ko) |
KR (1) | KR102401602B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI689835B (zh) * | 2018-06-13 | 2020-04-01 | 瑞昱半導體股份有限公司 | 用於適應性電壓縮放以消除整體設計之延遲變異的方法與裝置 |
US10839123B1 (en) * | 2018-08-02 | 2020-11-17 | Ansys, Inc. | Systems and methods for accurate voltage impact on integrated timing simulation |
CN115130421A (zh) * | 2021-05-20 | 2022-09-30 | 台湾积体电路制造股份有限公司 | 集成电路器件 |
US11934760B1 (en) * | 2021-12-23 | 2024-03-19 | Ansys, Inc. | Voltage impacts on delays for timing simulation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007087068A (ja) * | 2005-09-21 | 2007-04-05 | Matsushita Electric Ind Co Ltd | 半導体集積回路の遅延時間計算方法 |
KR100731109B1 (ko) | 2005-12-30 | 2007-06-22 | 동부일렉트로닉스 주식회사 | 오프 그리드를 방지할 수 있는 반도체 소자의 설계 방법 |
JP2007272913A (ja) * | 2007-05-07 | 2007-10-18 | Matsushita Electric Ind Co Ltd | 計算対象ネットワークの近似方法および遅延制御方法 |
JP2009237972A (ja) * | 2008-03-27 | 2009-10-15 | Fujitsu Microelectronics Ltd | 半導体装置、その設計方法及び設計装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849702A (en) * | 1983-08-01 | 1989-07-18 | Schlumberger Techologies, Inc. | Test period generator for automatic test equipment |
DE8714849U1 (de) * | 1986-12-23 | 1987-12-23 | Jenoptik Jena Gmbh, Ddr 6900 Jena | Geregelter CMOS-Substratspannungsgenerator |
US6425115B1 (en) * | 2000-05-09 | 2002-07-23 | Ess Technology, Inc. | Area efficient delay circuits |
JP2003271696A (ja) | 2002-03-19 | 2003-09-26 | Fujitsu Ltd | 電圧変動反映遅延計算方法および電圧変動反映遅延計算システム |
US20030212538A1 (en) | 2002-05-13 | 2003-11-13 | Shen Lin | Method for full-chip vectorless dynamic IR and timing impact analysis in IC designs |
US7240304B2 (en) * | 2004-05-04 | 2007-07-03 | Freescale Semiconductor, Inc. | Method for voltage drop analysis in integreted circuits |
JP4213195B2 (ja) * | 2005-08-09 | 2009-01-21 | 富士通株式会社 | 遅延時間解析装置、制御方法及びプログラム |
US20070094630A1 (en) | 2005-10-21 | 2007-04-26 | Texas Instruments Incorporated | Power grid design in an integrated circuit |
JP4351207B2 (ja) | 2005-11-16 | 2009-10-28 | 富士通マイクロエレクトロニクス株式会社 | タイミング検証方法及びタイミング検証装置 |
JP4769687B2 (ja) | 2006-10-30 | 2011-09-07 | 富士通セミコンダクター株式会社 | タイミング検証方法、タイミング検証装置及びタイミング検証プログラム |
US8516424B2 (en) | 2011-09-27 | 2013-08-20 | Lsi Corporation | Timing signoff system and method that takes static and dynamic voltage drop into account |
US9141753B2 (en) | 2011-12-01 | 2015-09-22 | Freescale Semiconductor, Inc. | Method for placing operational cells in a semiconductor device |
US8656331B1 (en) | 2013-02-14 | 2014-02-18 | Freescale Semiconductor, Inc. | Timing margins for on-chip variations from sensitivity data |
-
2017
- 2017-05-08 KR KR1020170057525A patent/KR102401602B1/ko active IP Right Grant
-
2018
- 2018-05-02 US US15/968,979 patent/US10430537B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007087068A (ja) * | 2005-09-21 | 2007-04-05 | Matsushita Electric Ind Co Ltd | 半導体集積回路の遅延時間計算方法 |
KR100731109B1 (ko) | 2005-12-30 | 2007-06-22 | 동부일렉트로닉스 주식회사 | 오프 그리드를 방지할 수 있는 반도체 소자의 설계 방법 |
JP2007272913A (ja) * | 2007-05-07 | 2007-10-18 | Matsushita Electric Ind Co Ltd | 計算対象ネットワークの近似方法および遅延制御方法 |
JP2009237972A (ja) * | 2008-03-27 | 2009-10-15 | Fujitsu Microelectronics Ltd | 半導体装置、その設計方法及び設計装置 |
Also Published As
Publication number | Publication date |
---|---|
US10430537B2 (en) | 2019-10-01 |
KR20180123609A (ko) | 2018-11-19 |
US20180322233A1 (en) | 2018-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102401602B1 (ko) | 셀들의 전원 전압 변화 및 셀들간 영향을 고려하는 집적 회로의 설계 방법 | |
JP4679786B2 (ja) | 集積回路検証用の高精度タイミングモデル | |
US8103996B2 (en) | Method and apparatus for thermal analysis of through-silicon via (TSV) | |
US7721236B2 (en) | Method and apparatus of estimating circuit delay | |
US7698677B2 (en) | On-chip decoupling capacitance and power/ground network wire co-optimization to reduce dynamic noise | |
US8832616B2 (en) | Voltage drop effect on static timing analysis for multi-phase sequential circuit | |
US7933747B2 (en) | Method and system for simulating dynamic behavior of a transistor | |
KR101690378B1 (ko) | 상이한 회로 토폴로지를 고려하는 입력 파형 발생을 이용한 셀의 특성화 | |
US10162931B2 (en) | Method of forming serpentine resistor | |
TW201738789A (zh) | 電腦可讀存儲介質及積體電路的電壓降和電遷移的分析方法 | |
CN118159975A (zh) | 用于设计布局的方法、装置、设备、介质以及程序产品 | |
JP2006343189A (ja) | デバイスミスマッチ特性のモデル化方法及びモデルパラメータの抽出装置 | |
TWI777210B (zh) | 用於設計上下文感知電路的方法 | |
CN103853861A (zh) | 评估3d ic的电源供应的方法和装置 | |
US20030065494A1 (en) | Apparatus and methods for characterizing and creating electronic circuitry | |
US11017138B2 (en) | Timing analysis for parallel multi-state driver circuits | |
CN117094275B (zh) | 芯片端口的布设方法、存储介质、电子设备及芯片 | |
JP4413097B2 (ja) | 遅延時間計算方法 | |
TWI759817B (zh) | 系統單晶片級電源完整性模擬系統及其方法 | |
JP2010140205A (ja) | 回路動作検証装置、回路動作検証方法、制御プログラム、および記録媒体 | |
JP3182272B2 (ja) | 半導体集積回路の論理回路の動作検証システム | |
US20210333320A1 (en) | Slew-Load Characterization | |
JP4653764B2 (ja) | 半導体装置の設計方法、設計支援システム及びプログラム | |
JP6244909B2 (ja) | 算出方法、算出プログラム、および算出装置 | |
Malik et al. | VLSI: techniques for efficient standard cell placement |
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 |