KR20250132417A - Semiconductor design method for extrapolation-free characterization and computing system performing the same - Google Patents
Semiconductor design method for extrapolation-free characterization and computing system performing the sameInfo
- Publication number
- KR20250132417A KR20250132417A KR1020250027018A KR20250027018A KR20250132417A KR 20250132417 A KR20250132417 A KR 20250132417A KR 1020250027018 A KR1020250027018 A KR 1020250027018A KR 20250027018 A KR20250027018 A KR 20250027018A KR 20250132417 A KR20250132417 A KR 20250132417A
- Authority
- KR
- South Korea
- Prior art keywords
- timing table
- timing
- actual effective
- value
- parameters
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
반도체 설계 방법은 게이트 레벨 넷리스트로부터 추출된 리버티 파일과 레이아웃 설계로부터 생성된 기생 소자 정보에 기초하여 타이밍 분석을 수행하여 외삽이 존재하는지 여부를 판단하는 단계와, 상기 외삽이 존재할 때, 상기 리버티 파일의 기본 타이밍 테이블의 파라미터를 수정하고, 수정된 파라미터에 기초하여 특성화를 수행하여 수정 타이밍 테이블을 생성할 수 있다.A semiconductor design method includes a step of performing timing analysis based on a Liberty file extracted from a gate level netlist and parasitic element information generated from a layout design to determine whether extrapolation exists, and when the extrapolation exists, modifying parameters of a basic timing table of the Liberty file and performing characterization based on the modified parameters to generate a modified timing table.
Description
본 발명은 집적 회로 설계 기술에 관한 것으로, 더 상세하게는 외삽에 자유로운 특성화를 위한 반도체 설계 방법 및 이를 수행하는 컴퓨팅 시스템에 관한 것이다.The present invention relates to integrated circuit design technology, and more particularly, to a semiconductor design method for characterization free from extrapolation and a computing system performing the same.
일반적으로, 반도체 장치의 회로들은 디지털 설계 방식에 의해 설계되고, 엔지니어들은 EDA (Electronic Design Automation) 소프트웨어를 사용하여 다양한 로직을 설계할 수 있다. 다양한 로직을 효율적으로 설계할 수 있도록, 상기 EDA 소프트웨어는 NAND, NOR, OR, AND, inverter, FLIP-FLOP 과 같은 단위 로직 회로를 스탠다드 셀로 지정하고, 상기 스탠다드 셀을 특성화시킨 타이밍 테이블 및/또는 리버티 파일 (liberty file)을 포함할 수 있다. 상기 타이밍 테이블은 상기 스탠다드 셀로 입력되는 입력 신호의 입력 슬로프와 상기 스탠다드 셀의 출력 캐패시턴스를 변화시키면서 상기 스탠다드 셀의 출력 천이 타이밍과 전파 (propagation) 지연 등을 측정한 시뮬레이션 결과일 수 있다. 복수의 스탠다드 셀에 대한 복수의 타이밍 테이블은 EDA 소프트 웨어의 셀 라이브러리 (cell library)에 저장될 수 있다. In general, circuits of semiconductor devices are designed using a digital design method, and engineers can design various logics using EDA (Electronic Design Automation) software. In order to efficiently design various logics, the EDA software may designate unit logic circuits such as NAND, NOR, OR, AND, inverter, and FLIP-FLOP as standard cells, and may include a timing table and/or a liberty file that characterize the standard cells. The timing table may be a simulation result that measures the output transition timing and propagation delay of the standard cell while changing the input slope of an input signal input to the standard cell and the output capacitance of the standard cell. A plurality of timing tables for a plurality of standard cells may be stored in a cell library of the EDA software.
ASIC (Application Specific Integrated Circuit)을 설계할 때, 설계 규칙 제약 (design rule constraints)이 엄격하게 지켜질 수 있다. 예를 들어, 상기 복수의 스탠다드 셀들 중에서 가장 큰 캐패시턴스를 갖는 스탠다드 셀이 n개가 구비될 때의 최대 캐패시턴스 값이 설계 규칙으로 설정되고, 상기 최대 캐패시턴스 값을 초과하는 팬아웃 (fanout)을 갖는 로직 회로의 설계를 금지시킬 수 있다. ASIC과 같은 비메모리 칩은 상기 설계 규칙 제약의 제한 하에서 설계되기 때문에, 셀 라이브러리에 존재하는 타이밍 테이블들을 조합한 결과에 대해 정적 타이밍 분석을 진행하여도 외삽 (extrapolation)이 발생하지 않을 수 있다. 하지만, 디지털적으로 설계된 칩을 배치 및 배선 (place and route)하는 과정에서, 메탈 라인의 RC (resistive-capacitive) 값에 의해 실제 설계의 캐패시턴스 값이 타이밍 테이블에 저장된 캐패시턴스의 캐패시턴스 값보다 큰 외삽이 발생할 수 있다. 또한, DRAM과 같은 메모리 칩은 설계 규칙 제약 없이 풀 커스텀(full custom) 방식으로 설계되기 때문에, 타이밍 테이블에 기재된 입력 신호의 입력 슬로프의 최소 값보다 작거나 출력 캐패시턴스의 최대 값보다 큰 경우가 발생할 수 있다. 따라서, 셀 라이브러리에 저장된 타이밍 테이블의 조합으로 정적 타이밍 분석을 수행하는 것만으로는 정상적인 설계 검증을 수행할 수 없는 문제를 발생시킬 수 있다.When designing an Application Specific Integrated Circuit (ASIC), design rule constraints may be strictly observed. For example, the maximum capacitance value when n standard cells having the largest capacitance among the plurality of standard cells are provided may be set as a design rule, and the design of a logic circuit having a fanout exceeding the maximum capacitance value may be prohibited. Since non-memory chips such as ASICs are designed under the limitations of the above design rule constraints, extrapolation may not occur even if static timing analysis is performed on the results of combining timing tables existing in the cell library. However, during the process of placing and routing a digitally designed chip, extrapolation may occur in which the capacitance value of the actual design is greater than the capacitance value of the capacitance stored in the timing table due to the resistive-capacitive (RC) value of the metal line. Furthermore, because memory chips, such as DRAM, are designed in a fully custom manner without design rule constraints, there may be instances where the input slope of an input signal listed in the timing table is less than the minimum value or the output capacitance is greater than the maximum value. Therefore, performing static timing analysis using only the combination of timing tables stored in the cell library can lead to problems that prevent proper design verification.
본 발명의 실시 예는 스탠다드 셀에 대한 기본 타이밍 테이블과 레이아웃 설계의 기생 소자 정보에 기초하여 타이밍 분석을 수행하고, 외삽이 존재할 때 기본 타이밍 테이블을 수정 타이밍 테이블로 업데이트할 수 있는 반도체 설계 방법 및 이를 수행하는 컴퓨팅 시스템을 제공할 수 있다.An embodiment of the present invention can provide a semiconductor design method and a computing system that can perform timing analysis based on a basic timing table for a standard cell and parasitic element information of a layout design, and update the basic timing table with a corrected timing table when extrapolation exists.
본 발명의 실시 예는 외삽에 자유로운 수정 타이밍 테이블을 생성하고, 상기 수정 타이밍 테이블에 기초하여 설계 검증을 수행할 수 있는 반도체 설계 방법 및 이를 수행하는 컴퓨팅 시스템을 제공할 수 있다. An embodiment of the present invention can provide a semiconductor design method capable of generating a correction timing table that is free from extrapolation and performing design verification based on the correction timing table, and a computing system for performing the same.
본 발명의 실시 예에 따른 반도체 설계 방법은, 게이트 레벨 넷리스트로부터 추출된 스탠다드 셀의 리버티 파일과 레이아웃 설계로부터 생성된 기생 소자 정보에 기초하여 타이밍 분석을 수행하여 외삽이 존재하는지 여부를 판단하는 단계; 상기 외삽이 존재할 때, 상기 리버티 파일의 기본 타이밍 테이블의 파라미터를 수정하여 수정 타이밍 테이블의 파라미터들을 설정하고, 상기 수정 타이밍 테이블의 파라미터에 기초하여 특성화를 수행하여 상기 수정 타이밍 테이블을 생성하며, 상기 리버티 파일의 상기 기본 타이밍 테이블을 상기 수정 타이밍 테이블로 업데이트하는 단계; 및 상기 수정 타이밍 테이블을 포함하는 상기 리버티 파일을 사용하여 타이밍 검증을 수행하는 단계를 포함할 수 있다.A semiconductor design method according to an embodiment of the present invention may include: a step of performing timing analysis based on a liberty file of a standard cell extracted from a gate level netlist and parasitic element information generated from a layout design to determine whether extrapolation exists; when the extrapolation exists, a step of modifying parameters of a basic timing table of the liberty file to set parameters of a modified timing table, performing characterization based on the parameters of the modified timing table to generate the modified timing table, and updating the basic timing table of the liberty file with the modified timing table; and a step of performing timing verification using the liberty file including the modified timing table.
본 발명의 실시 예에 따른 컴퓨팅 시스템은 스탠다드 셀 정보, 게이트 레벨 넷 리스트 및 레이아웃 설계를 저장하고, 타이밍 분석 도구를 로딩하는 메모리; 및 상기 타이밍 분석 도구를 실행시키는 프로세서를 포함할 수 있다. 상기 타이밍 분석 도구는, 스탠다드 셀의 리버티 파일과 상기 레이아웃 설계의 기생 소자 정보를 활용하여 외삽이 존재하는지 여부를 판단하고, 외삽이 존재할 때 상기 리버티 파일의 상기 기본 타이밍 테이블의 파라미터를 수정하고 수정된 파라미터를 기초로 특성화를 수행하여 수정 타이밍 테이블을 생성하며, 상기 기본 타이밍 테이블을 상기 수정 타이밍 테이블로 업데이트할 수 있다. A computing system according to an embodiment of the present invention may include a memory for storing standard cell information, a gate level net list, and a layout design, and loading a timing analysis tool; and a processor for executing the timing analysis tool. The timing analysis tool may determine whether extrapolation exists by utilizing a liberty file of a standard cell and parasitic element information of the layout design, and, when extrapolation exists, modify parameters of the basic timing table of the liberty file, perform characterization based on the modified parameters, and generate a modified timing table, and update the basic timing table with the modified timing table.
본 발명의 실시 예는 타이밍 분석 도구에 의한 타이밍 분석 결과와 전기적 시뮬레이션에 의한 타이밍 분석 결과의 정합성을 향상시켜, 반도체 설계 검증 효율을 증가시키고 반도체 설계 검증 시간을 감소시킬 수 있다. An embodiment of the present invention can improve the consistency between the timing analysis result by a timing analysis tool and the timing analysis result by electrical simulation, thereby increasing the efficiency of semiconductor design verification and reducing the semiconductor design verification time.
도 1은 본 발명의 실시 예에 따른 타이밍 분석 시스템의 구성을 개략적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 스탠다드 셀 및 상기 스탠다드 셀의 타이밍 테이블을 보여주는 도면이다.
도 3a는 입력 슬로프와 관련된 외삽이 발생했을 때, 실제 출력 천이 타이밍과 예측된 출력 천이 타이밍 사이의 차이를 보여주는 그래프이다.
도 3b는 출력 캐패시턴스와 관련된 외삽이 발생했을 때, 실제 출력 천이 타이밍과 예측된 출력 천이 타이밍 사이의 차이를 보여주는 그래프이다.
도 4는 본 발명의 실시 예에 따른 반도체 장치의 설계 방법을 보여주는 흐름도이다.
도 5는 스탠다드 셀과 풀 커스텀 로직 블록 사이의 연결관계를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 설계 방법 중에서 수정 타이밍 테이블의 파라미터를 설정하는 방법을 보다 구체적으로 보여주는 흐름도이다.
도 7a 및 도 7b는 특정 스탠다드 셀의 실제 유효 캐패시턴스의 분포와 수정 타이밍 테이블의 파라미터를 설정하는 방법을 보여주는 그래프이다.
도 8은 본 발명의 실시 예에 따른 컴퓨팅 시스템의 구성을 보여주는 도면이다.FIG. 1 is a diagram schematically showing the configuration of a timing analysis system according to an embodiment of the present invention.
FIG. 2 is a diagram showing a standard cell and a timing table of the standard cell according to an embodiment of the present invention.
Figure 3a is a graph showing the difference between the actual output transition timing and the predicted output transition timing when extrapolation related to the input slope occurs.
Figure 3b is a graph showing the difference between the actual output transition timing and the predicted output transition timing when extrapolation related to the output capacitance occurs.
Figure 4 is a flowchart showing a design method of a semiconductor device according to an embodiment of the present invention.
Figure 5 is a diagram showing the connection between a standard cell and a full custom logic block.
FIG. 6 is a flowchart showing more specifically a method of setting parameters of a modification timing table among design methods according to an embodiment of the present invention.
FIG. 7a and FIG. 7b are graphs showing the distribution of the actual effective capacitance of a specific standard cell and a method for setting parameters of a modified timing table.
FIG. 8 is a diagram showing the configuration of a computing system according to an embodiment of the present invention.
도 1은 본 발명의 실시 예에 따른 타이밍 분석 시스템(100)의 구성을 개략적으로 보여주는 도면이다. 도 1을 참조하면, 상기 타이밍 분석 시스템(100)은 설계 정보 매체(110), 셀 라이브러리(120) 및 타이밍 분석 도구(130)를 포함할 수 있다. 상기 설계 정보 매체(110)는 다양한 반도체 설계 정보를 저장할 수 있다. 예를 들어, 상기 반도체 설계 정보는 스탠다드 셀 정보, 게이트 레벨 넷리스트 (gate-level netlist)와 레이아웃 설계 (layout design)의 기생 소자 정보를 포함할 수 있다. 상기 게이트 레벨 넷리스트는 스키매틱 설계 (schematic design)로부터 생성될 수 있다. 상기 스키메틱 설계는 트랜지스터 및/또는 로직 게이트 단위의 회로 연결을 그래픽으로 표현한 회로도일 수 있다. 상기 스키매틱 설계에서 스탠다드 셀과 동일한 트랜지스터의 연결이 모두 감지되고, 상기 스탠다드 셀과 동일한 트랜지스터 연결을 논리 게이트 회로로 표현함으로써 상기 게이트 레벨 넷리스트가 생성될 수 있다. 예를 들어, 상기 스키매틱 설계로부터 트랜지스터 레벨 넷리스트가 추출되고, 상기 트랜지스터 레벨 넷리스트가 상기 게이트 레벨 넷리스트로 변환될 수 있다. 상기 게이트 레벨 넷리스트는 특정 도구를 사용하여 생성될 수 있다. 상기 특정 도구는 상용 도구일 수도 있고, 반도체 제조 회사마다 서로 다른 특성을 갖고 있는 인하우스(in-house) 도구일 수도 있다. 상기 특정 도구는 상기 스키매틱 설계를 상기 트랜지스터 레벨 넷리스트로 변환한 후, 상기 트랜지스터 레벨 넷리스트를 상기 게이트 레벨 넷리스트로 변환할 수 있다. 상기 레이아웃 설계의 기생 소자 정보는 상기 레이아웃 설계에 존재하는 모든 노드들 및/또는 로직 핀들의 저항 및 캐패시턴스 (RC) 정보를 포함할 수 있다. 상기 기생 소자 정보는 StarRC® 과 같은 상용 도구를 사용하여 상기 레이아웃 설계로부터 생성된 SPEF (Standard Parasitic Exchange Format)일 수 있다. 상기 설계 정보 매체는 상기 타이밍 분석 도구(130)의 요청에 따라 상기 스탠다드 셀 정보, 상기 게이트 레벨 넷리스트와 상기 기생 소자 정보를 상기 타이밍 분석 도구로 제공할 수 있다. FIG. 1 is a diagram schematically showing the configuration of a timing analysis system (100) according to an embodiment of the present invention. Referring to FIG. 1, the timing analysis system (100) may include a design information medium (110), a cell library (120), and a timing analysis tool (130). The design information medium (110) may store various semiconductor design information. For example, the semiconductor design information may include standard cell information, a gate-level netlist, and parasitic element information of a layout design. The gate-level netlist may be generated from a schematic design. The schematic design may be a circuit diagram that graphically represents circuit connections of transistors and/or logic gates. In the schematic design, all connections of transistors identical to those of standard cells are detected, and the gate-level netlist may be generated by expressing the connections of transistors identical to those of the standard cells as logic gate circuits. For example, a transistor level netlist may be extracted from the schematic design, and the transistor level netlist may be converted into the gate level netlist. The gate level netlist may be generated using a specific tool. The specific tool may be a commercial tool or an in-house tool having different characteristics for each semiconductor manufacturing company. The specific tool may convert the schematic design into the transistor level netlist, and then convert the transistor level netlist into the gate level netlist. Parasitic element information of the layout design may include resistance and capacitance (RC) information of all nodes and/or logic pins present in the layout design. The parasitic element information may be a Standard Parasitic Exchange Format (SPEF) generated from the layout design using a commercial tool such as StarRC®. The design information medium may provide the standard cell information, the gate level netlist, and the parasitic element information to the timing analysis tool (130) upon request of the timing analysis tool.
상기 셀 라이브러리(120)는 복수의 스탠다드 셀과 각각 관련된 복수의 리버티 파일을 저장할 수 있다. 상기 리버티 파일은 특정 스탠다드 셀에 대한 특성화 (characterization)를 수행한 결과물에 해당할 수 있고, 기본 타이밍 테이블을 포함할 수 있다. 예를 들어, 상기 기본 타이밍 테이블은 다양한 입력 슬로프 (slope)와 출력 캐패시턴스의 값에 대한 스탠다드 셀의 전파 지연 시간 및/또는 출력 천이 타이밍을 포함할 수 있다. 상기 기본 타이밍 테이블은 상기 입력 슬로프와 상기 출력 캐패시턴스를 파라미터로 설정하고 스파이스 (spice) 시뮬레이션과 같은 전기적 시뮬레이션을 통해 상기 스탠다드 셀의 전파 지연 시간 및/또는 출력 천이 타이밍을 측정한 결과를 포함하는 룩업 테이블일 수 있다. 상기 셀 라이브러리(120)는 상기 타이밍 분석 도구(130)의 요청을 수신하여 특정 스탠다드 셀에 대한 리버티 파일을 상기 타이밍 분석 도구(130)로 제공할 있다. 상기 셀 라이브러(120)는 상기 복수의 스탠다드 셀에 대한 리버티 파일 뿐 아니라 복수의 커스텀 셀에 대한 리버티 파일도 저장할 수 있다. 상기 스탠다드 셀은 다양한 반도체 칩의 설계에 기본적으로 사용되는 로직 블록으로서, 예를 들어, 인버터, 각종 로직 게이트, 플립플롭, 멀티플렉서 등을 포함할 수 있다. 상기 셀 라이브러리(120)는 상기 스탠다드 셀에 대한 리버티 파일을 기본적으로 저장하고 EDA 소프트웨어와 같은 디지털 설계 도구와 함께 제공될 수 있다. 상기 커스텀 셀은 커스텀 설계 방식으로 설계되는 특정 반도체 칩에서만 사용되는 로직 블록으로서, 예를 들어, 패스 게이트, 스위치, 차동 로직 등을 포함할 수 있다. 상기 커스텀 셀에 대한 리버티 파일은 설계자의 의도에 따라 상기 전기적 시뮬레이션에 의한 특성화를 통해 생성될 수 있고, 설계자는 상기 셀 라이브러리(120)에 상기 커스텀 셀에 대한 리버티 파일을 상기 스탠다드 셀에 대한 리버티 파일과 함께 저장시킬 수 있다. 상기 커스텀 셀과 관련된 커스템 셀 정보는 상기 설계 정보 매체(110)에 저장될 수 있다. The cell library (120) can store a plurality of standard cells and a plurality of liberty files, each of which is associated with a plurality of standard cells. The liberty file may correspond to a result of performing characterization on a specific standard cell and may include a basic timing table. For example, the basic timing table may include propagation delay times and/or output transition timings of the standard cell for various values of input slope and output capacitance. The basic timing table may be a lookup table that sets the input slope and the output capacitance as parameters and includes the results of measuring the propagation delay times and/or output transition timings of the standard cell through an electrical simulation, such as a spice simulation. The cell library (120) receives a request from the timing analysis tool (130) and provides a liberty file for a specific standard cell to the timing analysis tool (130). The cell library (120) may store not only liberty files for the plurality of standard cells but also liberty files for a plurality of custom cells. The standard cell is a logic block that is basically used in the design of various semiconductor chips, and may include, for example, an inverter, various logic gates, flip-flops, multiplexers, etc. The cell library (120) basically stores a liberty file for the standard cell and may be provided together with a digital design tool such as EDA software. The custom cell is a logic block that is only used in a specific semiconductor chip designed using a custom design method, and may include, for example, a pass gate, a switch, a differential logic, etc. The liberty file for the custom cell may be generated through characterization by the electrical simulation according to the designer's intention, and the designer may store the liberty file for the custom cell together with the liberty file for the standard cell in the cell library (120). Custom cell information related to the custom cell may be stored in the design information medium (110).
상기 타이밍 분석 도구(130)는 상기 설계 정보 매체(110)로부터 다양한 설계 정보를 수신하고, 상기 셀 라이브러리(120)로부터 복수의 스탠다드 셀과 관련된 리버티 파일들을 수신하여 타이밍 분석을 수행할 수 있다. 상기 타이밍 분석 도구(130)는 상기 타이밍 분석 결과에 외삽 (extrapolation)이 존재할 때, 특정 스탠다드 셀에 대한 특성화를 다시 수행하여 상기 특정 스탠다드 셀과 관련된 리버티 파일을 수정할 수 있다. 상기 타이밍 분석 도구(130)는 타이밍 분석 엔진(131) 및 리버티 수정 엔진(132)을 포함할 수 있다. The timing analysis tool (130) may receive various design information from the design information medium (110) and may receive Liberty files related to a plurality of standard cells from the cell library (120) to perform timing analysis. When an extrapolation exists in the timing analysis result, the timing analysis tool (130) may re-perform characterization for a specific standard cell and modify a Liberty file related to the specific standard cell. The timing analysis tool (130) may include a timing analysis engine (131) and a Liberty modification engine (132).
상기 타이밍 분석 엔진(131)은 상기 설계 정보 매체(110)로부터 수신된 상기 게이트 레벨 넷리스트와 상기 레이아웃 설계의 기생 소자 정보에 기초하여 타이밍 분석을 수행할 수 있다. 상기 타이밍 분석 엔진(131)은 상기 게이트 레벨 넷리스트에 포함된 상기 복수의 스탠다드 셀 각각에 대한 상기 복수의 리버티 파일을 상기 셀 라이브러리(120)로부터 수신할 수 있다. 상기 타이밍 분석 엔진(130)은 정적 타이밍 분석 (static timing analysis)을 수행하여 상기 복수의 스탠다드 셀 각각의 입력 노드 및 출력 노드의 실제 유효 슬로프 및 실제 유효 캐패시턴스를 생성할 수 있다. 상기 타이밍 분석 엔진(131)은 상기 정적 타이밍 분석을 수행할 수 있는 상용 도구로서 PrimeTime® 또는 Tempus®을 포함할 수 있다. 상기 타이밍 분석 엔진(131)은 상기 리버티 파일의 상기 기본 타이밍 테이블에 기술된 입력 슬로프 및 출력 캐패시턴스를 상기 타이밍 분석에 의해 생성된 상기 실제 유효 슬로프 및 상기 실제 유효 캐패시턴스와 비교하여 외삽이 존재하는지 여부를 판단할 수 있다. 예를 들어, 상기 타이밍 분석 엔진(131)은 상기 실제 유효 슬로프가 상기 입력 슬로프의 최소값보다 작거나 상기 실제 유효 슬로프가 상기 입력 슬로프의 최대값보다 클 때 상기 외삽이 존재하는 것으로 판단할 수 있다. 상기 타이밍 분석 엔진(131)은 상기 실제 유효 캐패시턴스가 상기 출력 캐패시턴스의 최소값보다 작거나 상기 실제 유효 캐패시턴스가 상기 출력 캐패시턴스의 최대값보다 클 때 상기 외삽이 존재하는 것으로 판단할 수 있다. 상기 타이밍 분석 엔진(131)은 상기 외삽이 존재하는지 여부에 대한 판단 결과를 상기 리버티 수정 엔진(132)으로 제공할 수 있다. The timing analysis engine (131) can perform timing analysis based on the gate level netlist received from the design information medium (110) and parasitic element information of the layout design. The timing analysis engine (131) can receive the plurality of Liberty files for each of the plurality of standard cells included in the gate level netlist from the cell library (120). The timing analysis engine (130) can perform static timing analysis to generate actual effective slopes and actual effective capacitances of input nodes and output nodes of each of the plurality of standard cells. The timing analysis engine (131) can include PrimeTime® or Tempus® as a commercial tool capable of performing the static timing analysis. The timing analysis engine (131) can compare the input slope and the output capacitance described in the basic timing table of the Liberty file with the actual effective slope and the actual effective capacitance generated by the timing analysis to determine whether extrapolation exists. For example, the timing analysis engine (131) may determine that the extrapolation exists when the actual effective slope is less than the minimum value of the input slope or the actual effective slope is greater than the maximum value of the input slope. The timing analysis engine (131) may determine that the extrapolation exists when the actual effective capacitance is less than the minimum value of the output capacitance or the actual effective capacitance is greater than the maximum value of the output capacitance. The timing analysis engine (131) may provide the result of determining whether the extrapolation exists to the liberty correction engine (132).
상기 리버티 수정 엔진(132)은 상기 타이밍 분석 엔진(131)으로부터 상기 외삽이 존재하는지 여부에 대한 판단 결과를 수신할 수 있다. 상기 리버티 수정 엔진(132)은 상기 타이밍 분석 엔진(131)에 의한 타이밍 분석 결과에 상기 외삽이 존재하지 않을 때, 상기 스탠다드 셀과 관련된 리버티 파일을 수정하지 않을 수 있고, 상기 리버티 파일에 포함된 상기 기본 타이밍 테이블에 기술된 파라미터들은 유지될 수 있다. 상기 리버티 수정 엔진(132)은 상기 타이밍 분석 엔진(131)에 의한 타이밍 분석 결과에 상기 외삽이 존재할 때, 상기 스탠다드 셀과 관련된 리버티 파일의 수정 여부를 판단할 수 있다. 상기 리버티 수정 엔진(132)은 한 종류의 스탠다드 셀에 대해 외삽이 발생된 횟수, 상기 외삽에 해당하는 실제 유효 슬로프 및 실제 유효 캐패시턴스의 값들을 고려하여 상기 기본 타이밍 테이블을 선택적으로 수정할 수 있다. 상기 리버티 수정 엔진(132)은 상기 기본 타이밍 테이블에 기술된 상기 입력 슬로프의 최소값, 상기 입력 슬로프의 최대값, 상기 출력 캐패시턴스의 최소값 및 상기 출력 캐패시턴스의 최대값 중 적어도 하나를 변경하고, 상기 기본 타이밍 테이블의 파라미터들을 수정할 수 있다. 상기 리버티 수정 엔진(132)은 수정된 파라미터를 수정 타이밍 테이블의 파라미터로 설정하고, 상기 스탠다드 셀에 대한 특성화를 수행하여 상기 수정 타이밍 테이블을 생성할 수 있다. 상기 수정된 타이밍 테이블은 새롭게 설정된 입력 슬로프 및 출력 캐패시턴의 값에 대한 출력 천이 타이밍을 포함할 수 있다. 상기 리버티 수정 엔진(132)은 상기 수정 타이밍 테이블을 상기 셀 라이브러리(120)로 제공하고, 상기 셀 라이브러리(120)에 저장된 상기 리버티 파일의 상기 기본 타이밍 테이블을 상기 수정 타이밍 테이블로 업데이트함으로써 상기 리버티 파일을 수정할 수 있다. 이후, 상기 스탠다드 셀에 대한 설계 검증이 수행될 때, 상기 수정 타이밍 테이블을 포함하는 상기 리버티 파일이 활용될 수 있다. The Liberty correction engine (132) may receive a determination result as to whether the extrapolation exists from the timing analysis engine (131). When the extrapolation does not exist in the timing analysis result by the timing analysis engine (131), the Liberty correction engine (132) may not modify the Liberty file related to the standard cell, and the parameters described in the basic timing table included in the Liberty file may be maintained. When the extrapolation exists in the timing analysis result by the timing analysis engine (131), the Liberty correction engine (132) may determine whether to modify the Liberty file related to the standard cell. The Liberty correction engine (132) may selectively modify the basic timing table by considering the number of times extrapolation has occurred for one type of standard cell, the values of the actual effective slope and the actual effective capacitance corresponding to the extrapolation. The Liberty correction engine (132) can change at least one of the minimum value of the input slope, the maximum value of the input slope, the minimum value of the output capacitance, and the maximum value of the output capacitance described in the basic timing table, and can modify parameters of the basic timing table. The Liberty correction engine (132) can set the modified parameter as a parameter of the modified timing table, and perform characterization on the standard cell to generate the modified timing table. The modified timing table can include output transition timing for the newly set values of the input slope and output capacitance. The Liberty correction engine (132) can modify the Liberty file by providing the modified timing table to the cell library (120) and updating the basic timing table of the Liberty file stored in the cell library (120) with the modified timing table. Thereafter, when design verification is performed on the standard cell, the Liberty file including the modified timing table can be utilized.
도 2는 본 발명의 실시 예에 따른 스탠다드 셀 및 상기 스탠다드 셀의 타이밍 테이블을 보여주는 도면이다. 도 2를 참조하면, 상기 스탠다드 셀은(200) 인버터일 수 있다. 상기 스탠다드 셀(200)은 상기 전기적 시뮬레이션을 통해 특성화될 수 있고, 특성화 결과는 상기 타이밍 테이블(220)로서 저장될 수 있다. 도 1에 도시된 상기 셀 라이브러리(120)에 저장되는 상기 리버티 파일은 상기 타이밍 테이블(220)을 포함할 수 있다. 상기 타이밍 테이블(220)은 m대 n의 룩업 테이블일 수 있고, 예를 들어, 8X8 매트릭스 형태로 표현될 수 있다. 상기 타이밍 테이블(220)의 행은 상기 스탠다드 셀(210)의 입력 노드로 인가되는 입력 신호(IN)의 입력 슬로프(S)의 최소값부터 상기 입력 슬로프(S)의 최대값까지의 파라미터들(S1-Sm)을 포함할 수 있다. 상기 타이밍 테이블(220)의 열은 상기 스탠다드 셀(210)의 출력 노드(ON)의 출력 캐패시턴스(CE)의 최소값으로부터 상기 출력 캐패시턴스(CE)의 최대값까지의 파라미터들(CE1-CEn)을 포함할 수 있다. 상기 타이밍 테이블(220)은 상기 입력 슬로프(S)와 상기 출력 캐패시턴스(CE)에 따라 결정되는 상기 스탠다드 셀의 라이징 지연 시간, 폴링 지연 시간, 또는 천이 지연 시간과 같은 다양한 타입의 지연 파라미터을 포함할 수 있다. 예를 들어, 상기 지연 파라미터는 상기 스탠다드 셀(210)을 통해 출력되는 출력 신호(OUT)의 출력 천이 타이밍(T)일 수 있다. 상기 타이밍 테이블은 m*n개의 출력 천이 타이밍의 파라미터들(T11-Tnm)을 포함할 수 있다. 상기 입력 슬로프(S)의 최소값과 상기 입력 슬로프(S)의 최대값 사이의 파라미터들(S1-Sm)은 균등 분할된 값을 가질 수도 있고, 상기 전기적 시뮬레이션을 수행했을 때 임계적 의의를 갖는 값을 가질 수도 있다. 일 실시 예에서, 상기 파라미터들은 균등 분할된 값과 임계적 의의를 갖는 값이 혼합될 수 있다. 마찬가지로, 상기 출력 캐패시턴스(CE)의 최소값과 상기 출력 캐패시턴스(CE)의 최대값 사이의 파라미터들(CE1-CEn)은 균등 분할 값을 가질 수도 있고, 임계적 의의를 갖는 값일 수도 있으며, 상기 균등 분할 값과 임계적 의의를 갖는 값이 혼합될 수도 있다. FIG. 2 is a diagram showing a standard cell and a timing table of the standard cell according to an embodiment of the present invention. Referring to FIG. 2, the standard cell (200) may be an inverter. The standard cell (200) may be characterized through the electrical simulation, and the characterization result may be stored as the timing table (220). The Liberty file stored in the cell library (120) illustrated in FIG. 1 may include the timing table (220). The timing table (220) may be an m-to-n lookup table, and may be expressed in the form of an 8X8 matrix, for example. The rows of the timing table (220) may include parameters (S1-Sm) from a minimum value of an input slope (S) of an input signal (IN) applied to an input node of the standard cell (210) to a maximum value of the input slope (S). The columns of the timing table (220) may include parameters (CE1-CEn) from the minimum value of the output capacitance (CE) of the output node (ON) of the standard cell (210) to the maximum value of the output capacitance (CE). The timing table (220) may include various types of delay parameters, such as a rising delay time, a falling delay time, or a transition delay time of the standard cell, which are determined according to the input slope (S) and the output capacitance (CE). For example, the delay parameter may be an output transition timing (T) of an output signal (OUT) output through the standard cell (210). The timing table may include parameters (T11-Tnm) of m*n output transition timings. The parameters (S1-Sm) between the minimum value of the input slope (S) and the maximum value of the input slope (S) may have equally divided values, or may have values having critical significance when the electrical simulation is performed. In one embodiment, the parameters may be a mixture of equally divided values and values having critical significance. Similarly, the parameters (CE1-CEn) between the minimum value of the output capacitance (CE) and the maximum value of the output capacitance (CE) may have equally divided values, or may have values having critical significance, or may be a mixture of the equally divided values and values having critical significance.
예를 들어, 상기 제 1 출력 천이 타이밍(T11)은 상기 스탠다드 셀(210)이 제 1 값 (최소값)을 갖는 입력 슬로프(S1)를 제공하고, 제 1 값 (최소값)을 갖는 출력 캐패시턴스(CE1)를 제공하는 네트워크와 연결되었을 때, 상기 스탠다드 셀(210)을 통해 출력되는 상기 출력 신호(OUT)의 상기 출력 천이 타이밍(T)을 나타낼 수 있다. 상기 제 2 출력 천이 타이밍(T22)은 상기 스탠다드 셀(210)이 제 2 값을 갖는 입력 슬로프(S2)를 제공하고 제 2 값을 갖는 출력 캐패시턴스(CE)를 제공하는 네트워크와 연결되었을 때, 상기 스탠다드 셀(210)를 통해 출력되는 상기 출력 신호(OUT)의 상기 출력 천이 타이밍(T)을 나타낼 수 있다. 상기 제 3 천이 타이밍(Tnm)은 상기 스탠다드 셀(210)이 제 m 값 (최대값)을 갖는 입력 슬로프(Sm)를 제공하고 제 n 값 (최대값)을 갖는 출력 캐패시턴스(CEn)를 제공하는 네트워크와 연결되었을 때, 상기 스탠다드 셀(210)을 통해 출력되는 상기 출력 신호(OUT)의 상기 출력 천이 타이밍(T)을 나타낼 수 있다. For example, the first output transition timing (T11) may represent the output transition timing (T) of the output signal (OUT) outputted through the standard cell (210) when the standard cell (210) provides an input slope (S1) having a first value (minimum value) and is connected to a network that provides an output capacitance (CE1) having the first value (minimum value). The second output transition timing (T22) may represent the output transition timing (T) of the output signal (OUT) outputted through the standard cell (210) when the standard cell (210) provides an input slope (S2) having a second value and is connected to a network that provides an output capacitance (CE) having the second value. The above third transition timing (Tnm) may represent the output transition timing (T) of the output signal (OUT) output through the standard cell (210) when the standard cell (210) is connected to a network that provides an input slope (Sm) having an m-th value (maximum value) and provides an output capacitance (CEn) having an n-th value (maximum value).
상기 타이밍 분석 도구(130)는 상기 실제 유효 슬로프가 상기 타이밍 테이블(210)에 기술된 상기 입력 슬로프의 파라미터(S1-Sm)와 동일하지 않은 경우, 보간 (interpolation) 또는 외삽에 의해 상기 출력 신호(OUT)의 상기 출력 천이 타이밍(T)을 예측 및 계산할 수 있다. 상기 타이밍 분석 도구(130)는 상기 실제 유효 캐패시턴스가 상기 타이밍 테이블(210)에 기술된 상기 출력 캐패시턴스의 파라미터(CE1, CE2-CEn)와 동일하지 않은 경우, 보간 또는 외삽에 의해 상기 출력 신호(OUT)의 상기 출력 천이 타이밍(T)을 예측 및 계산할 수 있다. 하지만, 상기 외삽에 의해 예측된 상기 출력 천이 타이밍(T)은 상기 보간에 의해 예측된 천이 타이밍보다 더 큰 오류를 포함할 수 있다. The timing analysis tool (130) can predict and calculate the output transition timing (T) of the output signal (OUT) by interpolation or extrapolation when the actual effective slope is not equal to the parameters (S1-Sm) of the input slope described in the timing table (210). The timing analysis tool (130) can predict and calculate the output transition timing (T) of the output signal (OUT) by interpolation or extrapolation when the actual effective capacitance is not equal to the parameters (CE1, CE2-CEn) of the output capacitance described in the timing table (210). However, the output transition timing (T) predicted by the extrapolation may include a larger error than the transition timing predicted by the interpolation.
도 3a는 입력 슬로프와 관련된 외삽이 발생했을 때, 실제 출력 천이 타이밍과 예측된 출력 천이 타이밍 사이의 차이를 보여주는 그래프이다. 도 3a에서, 상기 그래프의 가로 축은 입력 슬로프의 크기일 수 있고, 상기 그래프의 세로 축은 출력 천이 타이밍 및/또는 전파 지연 시간일 수 있다. S_min은 특정 스탠다드 셀과 관련된 타이밍 테이블에 기술된 상기 입력 슬로프의 최소값 (예를 들어, 도 2의 S1)일 수 있고, S_max는 특정 스탠다드 셀과 관련된 타이밍 테이블에 기술된 상기 입력 슬로프의 최대 값 (예를 들어, 도 2의 Sm)일 수 있다. 굵은 선은 상기 입력 슬로프의 파라미터들에 기반하여 상기 전기적 시뮬레이션을 통해 생성된 상기 출력 천이 타이밍 및/또는 전파 지연 시간을 나타낼 수 있다. 파선은 상기 출력 천이 타이밍의 변화의 추세를 나타내는 추세선으로, 예를 들어 상기 입력 슬로프의 최소값(S_min)에 의한 상기 출력 천이 타이밍의 값과 상기 입력 슬로프의 최대값(S_max)에 의한 상기 출력 천이 타이밍의 값을 연결한 직선 또는 곡선일 수 있다. 상기 스탠다드 셀에 대한 타이밍 분석 시 상기 입력 슬로프와 관련된 내삽이 발생되는 경우, 상기 타이밍 분석 도구(130)는 상기 추세선 상의 근사 값을 상기 출력 천이 타이밍의 예측 값으로 계산하고, 상기 출력 천이 타이밍의 예측 값은 실제 값과 큰 차이를 갖지 않을 수 있다. 상기 스탠다드 셀에 대한 타이밍 분석 시 상기 입력 슬로프와 관련된 외삽이 발생되는 경우, 상기 타이밍 분석 도구(130)는 상기 추세선을 연장하여 상기 출력 천이 타이밍의 예측 값을 계산할 수 있다. 하지만, 상기 출력 천이 타이밍의 실제 값이 점선과 같이 변화될 때, 상기 출력 천이 타이밍의 실제 값과 상기 타이밍 분석 도구(130)에 의한 예측 값 사이에는 상당한 차이가 발생할 수 있다. 상기 출력 천이 타이밍의 예측 값과 실제 값의 차이는 상기 타이밍 분석 도구(130)를 사용하여 수행되는 타이밍 분석 및/또는 타이밍 검증 결과의 신뢰성을 저하시키고, 전기적 시뮬레이션 결과와 상기 타이밍 분석 도구(130)를 사용하는 타이밍 검증 결과 사이의 정합성을 감소시킬 수 있다.Fig. 3a is a graph showing the difference between the actual output transition timing and the predicted output transition timing when extrapolation related to the input slope occurs. In Fig. 3a, the horizontal axis of the graph may be the magnitude of the input slope, and the vertical axis of the graph may be the output transition timing and/or propagation delay time. S_min may be the minimum value of the input slope described in the timing table related to a specific standard cell (e.g., S1 in Fig. 2), and S_max may be the maximum value of the input slope described in the timing table related to a specific standard cell (e.g., Sm in Fig. 2). The bold line may represent the output transition timing and/or propagation delay time generated through the electrical simulation based on the parameters of the input slope. The dashed line is a trend line indicating the trend of the change in the output transition timing, and may be, for example, a straight line or a curve connecting the value of the output transition timing by the minimum value (S_min) of the input slope and the value of the output transition timing by the maximum value (S_max) of the input slope. When interpolation related to the input slope occurs during timing analysis for the standard cell, the timing analysis tool (130) calculates an approximate value on the trend line as a predicted value of the output transition timing, and the predicted value of the output transition timing may not have a large difference from the actual value. When extrapolation related to the input slope occurs during timing analysis for the standard cell, the timing analysis tool (130) may extend the trend line to calculate the predicted value of the output transition timing. However, when the actual value of the output transition timing changes as in the dashed line, a significant difference may occur between the actual value of the output transition timing and the predicted value by the timing analysis tool (130). The difference between the predicted value and the actual value of the above output transition timing may reduce the reliability of the timing analysis and/or timing verification results performed using the timing analysis tool (130), and may reduce the consistency between the electrical simulation results and the timing verification results using the timing analysis tool (130).
도 3b는 출력 캐패시턴스와 관련된 외삽이 발생했을 때, 실제 천이 타이밍과 예측된 천이 타이밍 사이의 차이를 보여주는 그래프이다. 도 3b에서, 상기 그래프의 가로 축은 출력 캐패시턴스(CE)의 크기일 수 있고, 상기 그래프의 세로 축은 출력 천이 타이밍 및/또는 전파 지연 시간일 수 있다. CE_min은 특정 스탠다드 셀의 타이밍 테이블에 기술된 출력 캐패시턴스의 최소값 (예를 들어, 도 2의 CE1)일 수 있고, CE_max는 특정 스탠다드 셀의 타이밍 테이블에 기술된 출력 캐패시턴스의 최대값 (예를 들어, 도 2의 CEn)일 수 있다. 굵은 선은 상기 출력 캐패시턴스의 파라미터들에 기반하여 상기 전기적 시뮬레이션을 통해 생성된 상기 출력 천이 타이밍 및/또는 전파 지연 시간을 나타낼 수 있다. 파선은 상기 출력 천이 타이밍의 변화를 직선으로 나타낸 추세선으로, 예를 들어 상기 출력 캐패시턴스의 최소값(CE_min)에 의한 상기 출력 천이 타이밍의 값과 상기 출력 캐패시턴스의 최대값에 의한 상기 출력 천이 타이밍의 값을 연결한 직선일 수 있다. 상기 스탠다드 셀에 대한 타이밍 분석 시 상기 출력 캐패시턴스와 관련된 내삽이 발생되는 경우, 상기 타이밍 분석 도구(130)는 상기 추세선 상의 근사 값을 상기 출력 천이 타이밍의 예측 값으로 계산하고, 상기 출력 천이 타이밍의 예측 값은 실제 값과 큰 차이를 갖지 않을 수 있다. 상기 스탠다드 셀에 대한 타이밍 분석 시 상기 출력 캐패시턴스와 관련된 외삽이 발생되는 경우, 상기 타이밍 분석 도구(130)는 상기 추세선을 연장하여 상기 출력 천이 타이밍의 예측 값을 계산할 수 있다. 하지만, 상기 출력 천이 타이밍의 실제 값이 점선과 같이 변화될 때, 상기 출력 천이 타이밍의 실제 값과 상기 타이밍 분석 도구(130)에 의한 예측 값 사이에는 상당한 차이가 발생할 수 있다. 상기 출력 천이 타이밍의 예측 값과 실제 값의 차이는 상기 타이밍 분석 도구(130)를 사용하여 수행되는 타이밍 분석 및/또는 타이밍 검증 결과의 신뢰성을 저하시키고, 상기 전기적 시뮬레이션에 의한 타이밍 분석 결과와 상기 타이밍 분석 도구에 의한 타이밍 검증 결과 사이의 정합성을 감소시킬 수 있다. Fig. 3b is a graph showing the difference between the actual transition timing and the predicted transition timing when extrapolation related to the output capacitance occurs. In Fig. 3b, the horizontal axis of the graph may be the magnitude of the output capacitance (CE), and the vertical axis of the graph may be the output transition timing and/or propagation delay time. CE_min may be the minimum value of the output capacitance described in the timing table of a specific standard cell (e.g., CE1 in Fig. 2), and CE_max may be the maximum value of the output capacitance described in the timing table of a specific standard cell (e.g., CEn in Fig. 2). The bold line may represent the output transition timing and/or propagation delay time generated through the electrical simulation based on the parameters of the output capacitance. The dashed line is a trend line representing the change in the output transition timing in a straight line, and may be, for example, a straight line connecting the value of the output transition timing by the minimum value (CE_min) of the output capacitance and the value of the output transition timing by the maximum value of the output capacitance. When interpolation related to the output capacitance occurs during timing analysis for the standard cell, the timing analysis tool (130) calculates an approximate value on the trend line as a predicted value of the output transition timing, and the predicted value of the output transition timing may not have a large difference from the actual value. When extrapolation related to the output capacitance occurs during timing analysis for the standard cell, the timing analysis tool (130) may extend the trend line to calculate the predicted value of the output transition timing. However, when the actual value of the output transition timing changes as in the dotted line, a significant difference may occur between the actual value of the output transition timing and the predicted value by the timing analysis tool (130). The difference between the predicted value and the actual value of the above output transition timing may lower the reliability of the timing analysis and/or timing verification results performed using the timing analysis tool (130), and may reduce the consistency between the timing analysis results by the electrical simulation and the timing verification results by the timing analysis tool.
상기 타이밍 분석 도구(130)는 상기 전기적 시뮬레이션에 비해 더 빠른 시간 내에 반도체 설계의 타이밍 검증을 수행할 수 있다. 하지만, 상기 타이밍 분석 도구(130)의 타이밍 검증 결과와 상기 전기적 시뮬레이션의 타이밍 검증 결과 사이에 정합성이 떨어지면, 상기 타이밍 분석 도구를 사용하는 타이밍 검증을 활용할 수 없다. 특히, 설계 규칙 제약에 제한되지 않고 풀 커스텀 설계 방식을 통해 제조되는 반도체 장치의 설계 과정에서, 상기 외삽은 필연적으로 발생할 수 밖에 없다. 따라서, 상기 타이밍 분석 도구(130)를 사용함으로써 반도체 설계의 타이밍 검증 시간을 단축시키고 상기 타이밍 분석 도구(130)에 의한 타이밍 검증 결과와 상기 전기적 시뮬레이션에 의한 타이밍 검증 결과의 정합성을 향상시키기 위해서, 상기 외삽을 포함할 수 있는 타이밍 테이블의 수정이 필요할 수 있다.The timing analysis tool (130) can perform timing verification of a semiconductor design in a shorter time than the electrical simulation. However, if there is a lack of consistency between the timing verification result of the timing analysis tool (130) and the timing verification result of the electrical simulation, the timing verification using the timing analysis tool cannot be utilized. In particular, in the design process of a semiconductor device that is manufactured through a full custom design method without being restricted by design rule constraints, the extrapolation inevitably occurs. Therefore, in order to shorten the timing verification time of a semiconductor design by using the timing analysis tool (130) and to improve the consistency between the timing verification result by the timing analysis tool (130) and the timing verification result by the electrical simulation, it may be necessary to modify a timing table that may include the extrapolation.
도 4는 본 발명의 실시 예에 따른 반도체 장치의 설계 방법을 보여주는 흐름도이다. 도 4를 참조하면, S301에서, 설계자에 의해 스키매틱 설계가 수행될 수 있다. 상기 설계자는 트랜지스터 레벨의 회로도를 그림으로써 상기 스키매틱 설계를 수행할 수 있다. S301에서, 상기 설계자는 스탠다드 셀로 구성 가능한 트랜지스터 레벨의 로직 블록을 먼저 그릴 수 있다. S302에서, 상기 스탠다드 셀로 구성된 상기 스키매틱 설계는 게이트 레벨 넷리스트로 변환될 수 있다. 상기 게이트 레벨 넷리스트는 도 1에 도시된 상기 설계 정보 매체(110)에 저장될 수 있다. S303에서, 상기 스키매틱 설계를 통해 레이아웃 설계가 설계가 수행될 수 있다. 상기 레이아웃 설계는 스탠다드 셀 또는 커스텀 셀로 구성될 수 없는 풀 커스텀 로직 블록을 설계한 후, 상기 풀 커스텀 로직 블록과 상기 스탠다드 셀 및 상기 커스텀 셀 사이를 전기적으로 연결함으로써 수행될 수 있다. S304에서 상기 레이아웃 설계에 대한 기생 소자 정보를 생성할 수 있다. 상기 레이아웃 설계에 존재하는 모든 노드들 및/또는 로직 핀들의 저항 및 캐패시턴스 (RC) 정보가 상기 기생 소자 정보로서 생성될 수 있다. 상기 기생 소자 정보는 도 1에 도시된 상기 설계 정보 매체(110)에 저장될 수 있다. S305에서, 상기 게이트 레벨 넷리스트에 존재하는 스탠다드 셀 정보가 추출되고, 상기 스탠다드 셀과 관련된 리버티 파일이 추출될 수 있다. 예를 들어, 도 1에 도시된 상기 타이밍 분석 도구(130)는 상기 설계 정보 매체(110)에 저장된 상기 게이트 레벨 넷리스트로부터 다양한 종류의 스탠다드 셀 정보 및 커스텀 셀 정보를 추출하고, 상기 다양한 종류의 스탠다드 셀 및 커스텀 셀 각각과 관련된 리버티 파일들을 상기 셀 라이브러리(120)로부터 리드할 수 있다. FIG. 4 is a flowchart illustrating a method for designing a semiconductor device according to an embodiment of the present invention. Referring to FIG. 4, at S301, a schematic design may be performed by a designer. The designer may perform the schematic design by drawing a transistor-level circuit diagram. At S301, the designer may first draw a transistor-level logic block that can be configured with standard cells. At S302, the schematic design composed of the standard cells may be converted into a gate-level netlist. The gate-level netlist may be stored in the design information medium (110) illustrated in FIG. 1. At S303, a layout design may be performed using the schematic design. The layout design may be performed by designing a full custom logic block that cannot be configured with standard cells or custom cells, and then electrically connecting the full custom logic block with the standard cells and the custom cells. At S304, parasitic element information for the layout design may be generated. Resistance and capacitance (RC) information of all nodes and/or logic pins present in the above layout design can be generated as the parasitic element information. The parasitic element information can be stored in the design information medium (110) illustrated in FIG. 1. In S305, standard cell information present in the gate level netlist can be extracted, and liberty files related to the standard cells can be extracted. For example, the timing analysis tool (130) illustrated in FIG. 1 can extract various types of standard cell information and custom cell information from the gate level netlist stored in the design information medium (110), and read liberty files related to each of the various types of standard cells and custom cells from the cell library (120).
S306에서, 상기 리버티 파일 및 상기 기생 소자 정보에 기초하여 타이밍 분석이 수행될 수 있다. 상기 타이밍 분석 도구(130)는 상기 리버티 파일에 포함된 기본 타이밍 테이블과 상기 기생 소자 정보를 활용하여 타이밍 분석을 수행하여 상기 다양한 종류의 스탠다드 셀의 입력 노드의 실제 유효 캐패시턴스와 상기 스탠다드 셀의 출력 노드의 실제 유효 슬로프를 생성할 수 있다. S307에서, 외삽이 존재하는지 여부가 판단될 수 있다. 상기 타이밍 분석 도구(130)는 상기 스탠다드 셀과 관련된 리버티 파일의 기본 타이밍 테이블에 기술된 입력 슬로프 및 출력 캐패시턴스를 상기 실제 유효 캐패시턴스 및 상기 실제 유효 슬로프와 비교함으로써 외삽이 존재하는지 여부를 판단할 수 있다. At S306, timing analysis can be performed based on the Liberty file and the parasitic element information. The timing analysis tool (130) can perform timing analysis by utilizing the basic timing table included in the Liberty file and the parasitic element information to generate the actual effective capacitance of the input node of the various types of standard cells and the actual effective slope of the output node of the standard cell. At S307, whether extrapolation exists can be determined. The timing analysis tool (130) can determine whether extrapolation exists by comparing the input slope and the output capacitance described in the basic timing table of the Liberty file related to the standard cell with the actual effective capacitance and the actual effective slope.
도 5는 스탠다드 셀과 풀 커스텀 로직 블록 사이의 연결관계를 보여주는 도면이다. 도 5를 함께 참조하면, 상기 풀 커스텀 로직 블록(410)은 상기 레이아웃 설계의 결과물로서 제 1 스탠다드 셀(420) 및 제 2 스탠다드 셀(430) 사이에 연결될 수 있다. 예를 들어, 상기 제 1 스탠다드 셀(420)은 인버터일 수 있고, 상기 제 1 스탠다드 셀(420)의 출력 노드(ON1)는 상기 풀 커스텀 로직 블록(410)의 입력 단과 연결될 수 있다. 상기 제 2 스탠다드 셀(430)은 낸드 게이트일 수 있고, 상기 제 2 스탠다드 셀(430)의 입력 노드(IN2)는 상기 풀 커스텀 로직 블록(410)의 출력 단과 연결될 수 있다. 상기 타이밍 분석 도구(130)는 상기 풀 커스텀 로직 블록(410)의 입력 단과 연결된 상기 제 1 스탠다드 셀(420)의 상기 출력 노드(ON1)의 실제 유효 캐패시턴스의 값을 생성하고, 상기 풀 커스텀 로직 블록(410)의 출력 단과 연결된 상기 제 2 스탠다드 셀(430)의 상기 입력 노드(IN2)의 실제 유효 슬로프의 값을 생성할 수 있다. FIG. 5 is a diagram showing a connection relationship between a standard cell and a full custom logic block. Referring to FIG. 5 together, the full custom logic block (410) may be connected between a first standard cell (420) and a second standard cell (430) as a result of the layout design. For example, the first standard cell (420) may be an inverter, and an output node (ON1) of the first standard cell (420) may be connected to an input terminal of the full custom logic block (410). The second standard cell (430) may be a NAND gate, and an input node (IN2) of the second standard cell (430) may be connected to an output terminal of the full custom logic block (410). The timing analysis tool (130) can generate a value of the actual effective capacitance of the output node (ON1) of the first standard cell (420) connected to the input terminal of the full custom logic block (410), and can generate a value of the actual effective slope of the input node (IN2) of the second standard cell (430) connected to the output terminal of the full custom logic block (410).
상기 타이밍 분석 도구(130)는 상기 제 1 스탠다드 셀(420)과 관련된 상기 기본 타이밍 테이블에 기술된 출력 캐패시턴스와 상기 출력 노드(ON1)의 상기 실제 유효 캐패시턴스를 비교하여 외삽이 존재하는지 여부를 판단할 수 있다. 상기 실제 유효 캐패시턴스가 상기 기본 타이밍 테이블에 기술된 출력 캐패시턴스의 최소값과 최대값 사이의 값을 갖는 경우 상기 외삽이 발생되지 않은 것으로 판단될 수 있다. 상기 실제 유효 캐패시턴스가 상기 기본 타이밍 테이블에 기술된 상기 출력 캐패시턴스의 최소값보다 작거나 상기 출력 캐패시턴스의 최대값보다 큰 경우, 상기 외삽이 발생된 것으로 판단될 수 있다. 이후, 상기 타이밍 분석 도구(130)는 상기 제 2 스탠다드 셀(430)과 관련된 리버티 파일의 기본 타이밍 테이블에 기술된 입력 슬로프와 상기 입력 노드(IN2)의 실제 유효 슬로프를 비교하여 외삽이 존재하는지 여부를 판단할 수 있다. 상기 실제 유효 슬로프가 상기 기본 타이밍 테이블에 기술된 입력 슬로프의 최소값과 최대값 사이의 값을 갖는 경우 상기 외삽이 존재하지 않은 것으로 판단될 수 있다. 상기 실제 유효 슬로프가 상기 기본 타이밍 테이블에 기술된 상기 입력 슬로프의 최소값보다 작거나 상기 입력 슬로프의 최대값보다 큰 경우 상기 외삽이 존재하는 것으로 판단될 수 있다.The timing analysis tool (130) can determine whether extrapolation exists by comparing the output capacitance described in the basic timing table related to the first standard cell (420) with the actual effective capacitance of the output node (ON1). If the actual effective capacitance has a value between the minimum value and the maximum value of the output capacitance described in the basic timing table, it can be determined that the extrapolation did not occur. If the actual effective capacitance is smaller than the minimum value of the output capacitance described in the basic timing table or greater than the maximum value of the output capacitance, it can be determined that the extrapolation occurred. Thereafter, the timing analysis tool (130) can determine whether extrapolation exists by comparing the input slope described in the basic timing table of the Liberty file related to the second standard cell (430) with the actual effective slope of the input node (IN2). If the actual effective slope has a value between the minimum and maximum values of the input slopes described in the basic timing table, it may be determined that the extrapolation does not exist. If the actual effective slope is less than the minimum value of the input slope described in the basic timing table or greater than the maximum value of the input slope, it may be determined that the extrapolation exists.
상기 타이밍 분석 도구(130)는 상기 게이트 레벨 넷리스트로부터 상기 레이아웃 설계에 존재하는 모든 스탠다드 셀에 관련된 정보를 추출할 수 있다. 상기 스탠다드 셀 정보는 스탠다드 셀의 종류 및 각 종류별 스탠다드 셀의 총 개수를 포함할 수 있다. 상기 타이밍 분석 도구(130)는 상기 스탠다드 셀의 종류 별로 외삽의 존재 여부를 판단할 수 있다. 상기 게이트 레벨 넷리스트에 100 종류의 스탠다드 셀이 존재한다면, 상기 타이밍 분석 도구(130)는 상기 100 종류의 스탠다드 셀에 외삽이 존재하는지 여부를 순차적으로 판단할 수 있다.The timing analysis tool (130) can extract information related to all standard cells existing in the layout design from the gate level netlist. The standard cell information can include the type of standard cell and the total number of standard cells of each type. The timing analysis tool (130) can determine whether extrapolation exists for each type of standard cell. If there are 100 types of standard cells in the gate level netlist, the timing analysis tool (130) can sequentially determine whether extrapolation exists in the 100 types of standard cells.
상기 외삽이 존재하지 않는 것으로 판단되었을 때 (S307의 결과가 "아니오"일 때), S308에서, 상기 스탠다드 셀과 관련된 상기 리버티 파일의 상기 기본 타이밍 테이블의 파라미터들은 변화되지 않을 수 있고, 상기 기본 타이밍 테이블은 그대로 유지될 수 있다. 상기 외삽이 존재하는 것으로 판단되었을 때 (S307의 결과가 "예"일 때), S309에서 상기 기본 타이밍 테이블의 파라미터들을 수정하여 수정 타이밍 테이블의 파라미터들이 설정될 수 있다. 상기 타이밍 분석 결과 상기 외삽이 발생했을 때, 상기 타이밍 분석 도구(130)는 상기 외삽에 해당하는 실제 유효 캐패시턴스 및 실제 유효 슬로프에 기초하여 상기 수정 타이밍 테이블의 최소값 및 최대값을 설정할 수 있다. When it is determined that the extrapolation does not exist (when the result of S307 is "No"), in S308, the parameters of the basic timing table of the Liberty file related to the standard cell may not be changed, and the basic timing table may be maintained as is. When it is determined that the extrapolation exists (when the result of S307 is "Yes"), in S309, the parameters of the basic timing table may be modified to set the parameters of the modified timing table. When the timing analysis result indicates that the extrapolation has occurred, the timing analysis tool (130) may set the minimum and maximum values of the modified timing table based on the actual effective capacitance and the actual effective slope corresponding to the extrapolation.
예를 들어, 제 1 출력 노드(ON1)의 실제 유효 캐패시턴스가 상기 제 1 스탠다드 셀(420)과 관련된 상기 기본 타이밍 테이블에 기술된 출력 캐패시턴스의 최소값보다 작으면, 상기 수정 타이밍 테이블의 출력 캐패시턴스의 최소값은 상기 실제 유효 캐시턴스의 값으로 설정될 수 있다. 반대로, 제 1 출력 노드(ON1)의 실제 유효 캐패시턴스가 상기 제 1 스탠다드 셀(420)과 관련된 상기 기본 타이밍 테이블에 기술된 출력 캐패시턴스의 최대값보다 크면, 상기 수정 타이밍 테이블의 출력 캐패시턴스의 최대값은 상기 실제 유효 캐패시턴스의 값으로 설정될 수 있다. 상기 수정 타이밍 테이블의 출력 캐패시턴스의 최소값과 최대값 사이의 파라미터들은 상기 실제 유효 캐패시턴스의 최소값 및 최대값 사이의 값을 균등 분할하여 설정될 수도 있고, 상기 실제 유효 캐패시턴 값들의 분포에 기초하여 설정될 수도 있다. For example, if the actual effective capacitance of the first output node (ON1) is smaller than the minimum value of the output capacitance described in the basic timing table associated with the first standard cell (420), the minimum value of the output capacitance of the modified timing table may be set to the value of the actual effective capacitance. Conversely, if the actual effective capacitance of the first output node (ON1) is larger than the maximum value of the output capacitance described in the basic timing table associated with the first standard cell (420), the maximum value of the output capacitance of the modified timing table may be set to the value of the actual effective capacitance. Parameters between the minimum value and the maximum value of the output capacitance of the modified timing table may be set by evenly dividing the values between the minimum value and the maximum value of the actual effective capacitance, or may be set based on a distribution of the actual effective capacitance values.
또한, 제 2 입력 노드(IN2)의 실제 유효 슬로프가 상기 제 2 스탠다드 셀과 관련된 상기 기본 타이밍 테이블에 기술된 입력 슬로프의 최소값보다 작으면, 상기 수정 타이밍 테이블의 입력 슬로프의 최소값은 상기 실제 유효 슬로프의 값으로 설정될 수 있다. 반대로, 제 2 입력 노드(IN2)의 실제 유효 슬로프가 상기 제 2 스탠다드 셀(430)과 관련된 상기 기본 타이밍 테이블에 기술된 입력 슬로프의 최대값보다 크면, 상기 수정 타이밍 테이블의 입력 슬로프의 최대값은 상기 실제 유효 슬로프의 값으로 설정될 수 있다. 상기 수정 타이밍 테이블의 입력 슬로프의 최소값과 최대값 사이의 파라미터들은 상기 실제 유효 슬로프의 최소값 및 최대값 사이의 값을 균등 분할하여 설정될 수도 있고, 상기 실제 유효 슬로프 값들의 분포에 기초하여 설정될 수도 있다.In addition, if the actual effective slope of the second input node (IN2) is less than the minimum value of the input slope described in the basic timing table related to the second standard cell, the minimum value of the input slope of the modified timing table may be set to the value of the actual effective slope. Conversely, if the actual effective slope of the second input node (IN2) is greater than the maximum value of the input slope described in the basic timing table related to the second standard cell (430), the maximum value of the input slope of the modified timing table may be set to the value of the actual effective slope. The parameters between the minimum value and the maximum value of the input slope of the modified timing table may be set by evenly dividing the values between the minimum value and the maximum value of the actual effective slope, or may be set based on the distribution of the actual effective slope values.
S310에서, 상기 수정 타이밍 테이블의 파라미터에 기반하여 특성화를 수행하여 상기 수정 타이밍 테이블이 생성될 수 있다. 상기 타이밍 분석 도구(130)는 S309에서 설정된 상기 수정 타이밍 테이블의 파라미터에 기초하여 상기 제 1 스탠다드 셀에 대한 특성화를 수행할 수 있다. 상기 타이밍 분석 도구(130)는 상기 전기적 시뮬레이션을 통해 상기 수정된 파라미터에 대한 출력 천이 타이밍을 계산하고, 상기 출력 천이 타이밍이 기술된 상기 수정 타이밍 테이블을 생성할 수 있다. 상기 타이밍 분석 도구(130)는 상기 수정 타이밍 테이블을 상기 셀 라이브러리(120)로 제공하여 상기 제 1 스탠다드 셀(420)에 관련된 상기 리버티 파일을 수정할 수 있다. 상기 기본 타이밍 테이블은 상기 수정 타이밍 테이블로 교체되고, 상기 제 1 스탠다드 셀(420)과 관련된 상기 리버티 파일은 상기 수정 타이밍 테이블을 포함할 수 있다. 이후, 상기 타이밍 분석 도구(130)가 상기 제 1 스탠다드 셀(420)에 대한 상기 리버티 파일을 리드하는 경우, 상기 수정 타이밍 테이블을 포함하는 상기 리버티 파일이 상기 타이밍 분석 도구(130)로 제공될 수 있다. In S310, the modified timing table may be generated by performing characterization based on the parameters of the modified timing table. The timing analysis tool (130) may perform characterization on the first standard cell based on the parameters of the modified timing table set in S309. The timing analysis tool (130) may calculate an output transition timing for the modified parameters through the electrical simulation and generate the modified timing table in which the output transition timing is described. The timing analysis tool (130) may provide the modified timing table to the cell library (120) to modify the liberty file related to the first standard cell (420). The basic timing table may be replaced with the modified timing table, and the liberty file related to the first standard cell (420) may include the modified timing table. Thereafter, when the timing analysis tool (130) reads the Liberty file for the first standard cell (420), the Liberty file including the modified timing table can be provided to the timing analysis tool (130).
마찬가지로, 상기 타이밍 분석 도구(130)는 상기 제 2 스탠다드 셀(430)에 대한 수정 타이밍 테이블의 파라미터를 설정하고, 상기 수정 타이밍 테이블의 파라미터에 기초하여 상기 제 2 스탠다드 셀에 대한 특성화를 수행할 수 있다. 상기 전기적 시뮬레이션을 통해 상기 수정된 파라미터에 대한 출력 천이 타이밍을 계산하고, 상기 출력 천이 타이밍이 기술된 수정 타이밍 테이블을 생성할 수 있다. 상기 타이밍 분석 도구(130)는 상기 수정 타이밍 테이블을 상기 셀 라이브러리(120)로 제공하여 상기 제 2 스탠다드 셀(430)에 관련된 리버티 파일을 수정할 수 있다. 상기 기본 타이밍 테이블은 상기 수정 타이밍 테이블로 교체되고, 상기 제 2 스탠다드 셀(430)과 관련된 상기 리버티 파일은 상기 수정 타이밍 테이블을 포함할 수 있다. 이후, 상기 타이밍 분석 도구(130)가 상기 제 2 스탠다드 셀(430)에 대한 상기 리버티 파일을 리드하는 경우, 상기 수정 타이밍 테이블을 포함하는 상기 리버티 파일이 상기 타이밍 분석 도구(130)로 제공될 수 있다. 이후, 상기 타이밍 분석 도구가 상기 제 2 스탠다드 셀(430)에 대한 상기 리버티 파일을 리드하는 경우, 상기 수정 타이밍 테이블을 포함하는 상기 리버티 파일이 상기 타이밍 분석 도구로 제공될 수 있다. Similarly, the timing analysis tool (130) can set parameters of a modified timing table for the second standard cell (430) and perform characterization of the second standard cell based on the parameters of the modified timing table. The output transition timing for the modified parameters can be calculated through the electrical simulation and a modified timing table in which the output transition timing is described can be generated. The timing analysis tool (130) can provide the modified timing table to the cell library (120) to modify a liberty file related to the second standard cell (430). The basic timing table is replaced with the modified timing table, and the liberty file related to the second standard cell (430) can include the modified timing table. Thereafter, when the timing analysis tool (130) reads the liberty file for the second standard cell (430), the liberty file including the modified timing table can be provided to the timing analysis tool (130). Thereafter, when the timing analysis tool reads the Liberty file for the second standard cell (430), the Liberty file including the modified timing table can be provided to the timing analysis tool.
S311에서, 외삽에 자유로운 리버티 파일을 사용하여 타이밍 분석이 수행될 수 있다. 상기 타이밍 분석 도구(130)는 복수의 스탠다드 셀과 관련된 리버티 파일들을 사용하여 반도체 설계에 대한 타이밍 검증을 수행할 수 있다. S306 내지 S310을 통해, 외삽이 존재하였던 스탠다드 셀의 기본 타이밍 테이블은 수정 타이밍 테이블로 교체될 수 있고, 외삽이 발생되지 않은 스탠다드 셀의 기본 타이밍 테이블은 유지될 수 있다. 따라서, 상기 셀 라이브러리(120)에 저장된 리버티 파일들은 모두 외삽에 자유로울 수 있다. 예를 들어, 상기 제 1 스탠다드 셀과 관련된 타이밍 분석 결과에 외삽이 존재하지 않았고, 상기 제 2 스탠다드 셀과 관련된 타이밍 분석 결과에 외삽이 존재했다고 가정하자. S308 내지 S310을 통해, 상기 제 1 스탠다드 셀과 관련된 상기 리버티 파일은 상기 기본 타이밍 테이블을 포함하고, 상기 제 2 스탠다드 셀과 관련된 상기 리버티 파일은 상기 수정 타이밍 테이블을 포함할 것이다. 상기 제 1 및 제 2 스탠다드 셀과 관련된 리버티 파일들은 모두 외삽에 자유로울 수 있고, 외삽에 자유로운 리버티 파일들에 기반하여 수행된 상기 타이밍 분석 도구(130)의 타이밍 분석 결과는 상기 전기적 시뮬레이션을 통한 타이밍 분석 결과와 높은 정합성을 가질 수 있다. In S311, timing analysis can be performed using a Liberty file that is free from extrapolation. The timing analysis tool (130) can perform timing verification for a semiconductor design using Liberty files associated with a plurality of standard cells. Through S306 to S310, the basic timing table of a standard cell in which extrapolation occurred can be replaced with a modified timing table, and the basic timing table of a standard cell in which extrapolation did not occur can be maintained. Accordingly, all Liberty files stored in the cell library (120) can be free from extrapolation. For example, assume that there is no extrapolation in the timing analysis result associated with the first standard cell, and there is extrapolation in the timing analysis result associated with the second standard cell. Through S308 to S310, the Liberty file associated with the first standard cell will include the basic timing table, and the Liberty file associated with the second standard cell will include the modified timing table. All of the Liberty files related to the first and second standard cells may be free from extrapolation, and the timing analysis results of the timing analysis tool (130) performed based on the Liberty files free from extrapolation may have high consistency with the timing analysis results through the electrical simulation.
도 6은 본 발명의 실시 예에 따른 설계 방법 중에서 수정 타이밍 테이블의 파라미터들을 설정하는 방법을 보다 구체적으로 보여주는 흐름도이다. 도 6에 도시된 방법은 도 1에 도시된 상기 타이밍 분석 도구(130) 및 상기 리버티 수정 엔진(132)을 통해 수행될 수 있다. 상기 타이밍 분석 도구(130) 및 상기 리버티 수정 엔진(132)은 통계적 방식에 의해 상기 수정 타이밍 테이블의 파라미터들을 설정할 수 있다. 도 6을 참조하면, S401에서, 상기 스탠다드 셀의 입력 노드의 실제 유효 슬로프와 상기 스탠다드 셀의 출력 노드의 실제 유효 캐패시턴스의 값들이 로드될 수 있다. 예를 들어, 상기 레이아웃 설계에 100개의 "제 1 스탠다드 셀"이 포함되어 있을 때, 상기 100개의 "제 1 스탠다드 셀"과 관련된 실제 유효 슬로프의 값들과 실제 유효 캐패시터의 값들이 로드될 수 있다. S402에서, 데이터 전처리가 수행될 수 있다. 상기 데이터 전처리 과정에서 결측치(missing value)와 노이즈가 제거될 수 있다. S403에서, 상기 데이터 전처리가 완료된 실제 유효 슬로프의 값들의 분포와 상기 데이터 전처리가 완료된 실제 유효 캐패시턴스의 값들의 분포가 정규 분포인지 여부가 판단될 수 있다. S403 단계에서, 상기 실제 유효 슬로프의 값들 또는 상기 실제 유효 캐패시턴스의 값들의 분포를 판단하기 위해 Shapiro-Wilk 검증, Kolmogorov-Smirnov test 와 같은 정규성 검증이 수행될 수 있다. FIG. 6 is a flowchart showing in more detail a method of setting parameters of a modified timing table among design methods according to an embodiment of the present invention. The method illustrated in FIG. 6 can be performed through the timing analysis tool (130) and the Liberty correction engine (132) illustrated in FIG. 1. The timing analysis tool (130) and the Liberty correction engine (132) can set parameters of the modified timing table by a statistical method. Referring to FIG. 6, in S401, the values of the actual effective slope of the input node of the standard cell and the actual effective capacitance of the output node of the standard cell can be loaded. For example, when the layout design includes 100 "first standard cells," the values of the actual effective slope and the values of the actual effective capacitance related to the 100 "first standard cells" can be loaded. In S402, data preprocessing can be performed. In the above data preprocessing process, missing values and noise can be removed. In step S403, it can be determined whether the distribution of the values of the actual effective slope for which the data preprocessing has been completed and the distribution of the values of the actual effective capacitance for which the data preprocessing has been completed are normal distributions. In step S403, a normality test such as the Shapiro-Wilk test or the Kolmogorov-Smirnov test can be performed to determine the distribution of the values of the actual effective slope or the values of the actual effective capacitance.
상기 실제 유효 슬로프의 값들 또는 상기 실제 유효 캐패시턴스의 값들의 분포가 정규 분포로 판단되었을 때 (S402의 결과가 "예"일 때), S404에서 정규 분포의 이상 값 (outlier)이 식별될 수 있다. 한정하는 것은 아니지만, 예를 들어, 상기 정규 분포의 이상 값을 식별하는 방법은 시그마 값 활용 방법, Z-Score 활용 방법 및 T-Score 활용 방법 중 적어도 하나를 포함할 수 있다. 상기 시그마 값 활용 방법은 상기 실제 유효 슬로프의 값들 또는 상기 실제 유효 캐패시턴스의 값들의 평균과 표준편차를 계산하여 임계 값을 설정한 후, 임계 시그마 값을 넘는 상기 실제 유효 슬로프 또는 상기 실제 유효 캐패시턴스의 값들을 이상 값으로 식별할 수 있다. 상기 Z-Score 활용 방법은 상기 실제 유효 슬로프의 값들 또는 상기 실제 유효 캐패시턴스의 값들의 평균, 표준편차 및 Z-score 를 계산하고 임계 Z-Score 값을 설정한 후, 상기 임계 Z-Score 값을 넘는 상기 실제 유효 슬로프 또는 상기 실제 유효 캐패시턴스의 값들을 이상 값으로 식별할 수 있다. 상기 T-Score 활용 방법은 상기 실제 유효 슬로프의 값들 또는 상기 실제 유효 캐패시턴스의 값들의 평균, 표준편차 및 T-Score 를 계산하고 임계 T-Score 값을 설정한 후, 상기 임계 T-Score 값을 넘는 상기 실제 유효 슬로프 또는 상기 실제 유효 캐패시턴스의 값들을 이상 값으로 식별할 수 있다. When the distribution of the values of the actual effective slope or the values of the actual effective capacitance is determined to be a normal distribution (when the result of S402 is “Yes”), an outlier of the normal distribution can be identified in S404. For example, but not limited to, a method for identifying an outlier of the normal distribution may include at least one of a sigma value utilization method, a Z-Score utilization method, and a T-Score utilization method. The sigma value utilization method may set a threshold by calculating the average and standard deviation of the values of the actual effective slope or the values of the actual effective capacitance, and then identify values of the actual effective slope or the actual effective capacitance exceeding the threshold sigma value as outliers. The above Z-Score utilization method can calculate the average, standard deviation and Z-score of the values of the actual effective slope or the values of the actual effective capacitance, set a threshold Z-Score value, and then identify the values of the actual effective slope or the actual effective capacitance that exceed the threshold Z-Score value as abnormal values. The above T-Score utilization method can calculate the average, standard deviation and T-Score of the values of the actual effective slope or the values of the actual effective capacitance, set a threshold T-Score value, and then identify the values of the actual effective slope or the actual effective capacitance that exceed the threshold T-Score value as abnormal values.
상기 실제 유효 슬로프의 값들 또는 상기 실제 유효 캐패시턴스의 값들의 분포가 비정규 분포로 판단되었을 때 (S402의 결과가 "아니오"일 때), S405에서 비정규 분포의 이상 값 (outlier)이 식별될 수 있다. 한정하는 것은 아니지만, 예를 들어, 상기 비정규 분포의 이상 값을 식별하는 방법은 로버스트 (Robust) 표준화 방법 및 밀도 기반 (density-based) 방법 중 적어도 하나를 포함할 수 있다. 상기 로버스트 표준화 방법은 상기 실제 유효 슬로프의 값들 또는 상기 실제 유효 캐패시턴스 값들의 중위수 (median)와 사분위간 범위 (InterQuartile Range, IQR)를 계산하고 임계 범위 값을 설정한 후, 상기 임계 범위 값을 넘는 상기 실제 유효 슬로프 또는 상기 실제 유효 캐패시턴스의 값들을 이상 값으로 식별할 수 있다. 상기 밀도 기반 방법은 상기 실제 유효 슬로프의 값들 또는 상기 실제 유효 캐패시턴스의 값들의 밀도를 커널 밀도 추정 (Kernel Density Estimation, KDE)을 통해 계산하고 임계 밀도 값을 설정한 후, 상기 임계 밀도 값보다 낮은 밀도를 갖는 상기 실제 유효 슬로프 또는 상기 실제 유효 캐패시턴스의 값들을 이상 값으로 식별할 수 있다.When the distribution of the values of the actual effective slope or the values of the actual effective capacitance is determined to be non-normally distributed (when the result of S402 is “No”), an outlier of the non-normal distribution can be identified in S405. For example, but not limited to, a method for identifying an outlier of the non-normal distribution can include at least one of a robust standardization method and a density-based method. The robust standardization method can calculate the median and interquartile range (IQR) of the values of the actual effective slope or the values of the actual effective capacitance and set a threshold range value, and then identify the values of the actual effective slope or the values of the actual effective capacitance that exceed the threshold range value as outliers. The density-based method calculates the density of the values of the actual effective slope or the values of the actual effective capacitance through Kernel Density Estimation (KDE), sets a critical density value, and then identifies the values of the actual effective slope or the actual effective capacitance having a density lower than the critical density value as outliers.
S404 및 S405를 통해 이상 값이 식별되면, S406에서 상기 식별된 이상 값의 개수가 임계 비율 이하인지 여부가 판단될 수 있다. 임계 비율은 상기 실제 유효 슬로프 또는 상기 실제 유효 캐패시턴스의 전체 값들 중 이상 값이 차지하는 개수의 백분율일 수 있다. 한정하려는 것은 아니지만, 예를 들어, 상기 임계 비율은 5%일 수 있지만, 상기 임계 비율은 설계자의 의도에 따라 다양하게 변화될 수 있다. 상기 식별된 이상 값이 상기 임계 비율 이상일 때 (S406의 결과가 "아니오"일 때), S407에서 임계 값 조건을 완화시킬 수 있다. 예를 들어, 상기 시그마 값 활용 방법, 상기 Z-Score 활용 방법, 상기 T-Score 활용 방법에서, 상기 임계 시그마 값, 상기 임계 Z-Score 값 및 상기 임계 T-Score 값을 각각 변화시킬 수 있다. 최소 값 분포와 관련된 임계 값은 감소되고, 최대 값 분포와 관련된 임계 값은 증가될 수 있다. 또한, 상기 로버스트 표준화 방법에서 상기 사분위간 범위를 증가시키고, 상기 밀도 기반 방법에서 임계 밀도 값을 감소시킬 수 있다. S406에서 상기 임계 값 조건을 완화시킨 후, S403, S404, S405, S406이 다시 수행될 수 있다. S406에서 상기 식별된 이상 값 개수가 상기 임계 비율 이하가 될 때까지 상기 임계 값 조건은 단계적으로 완화될 수 있다. When outliers are identified through S404 and S405, it may be determined in S406 whether the number of the identified outliers is less than or equal to a threshold ratio. The threshold ratio may be a percentage of the number of outliers among the total values of the actual effective slope or the actual effective capacitance. For example, but not limited to, the threshold ratio may be 5%, but the threshold ratio may vary depending on the designer's intention. When the identified outliers are greater than or equal to the threshold ratio (when the result of S406 is "No"), the threshold value condition may be relaxed in S407. For example, in the sigma value utilization method, the Z-Score utilization method, and the T-Score utilization method, the threshold sigma value, the threshold Z-Score value, and the threshold T-Score value may each be changed. A threshold value associated with a minimum value distribution may be decreased, and a threshold value associated with a maximum value distribution may be increased. Additionally, in the robust standardization method, the interquartile range can be increased, and in the density-based method, the critical density value can be decreased. After relaxing the threshold condition in S406, S403, S404, S405, and S406 can be performed again. In S406, the threshold condition can be gradually relaxed until the number of identified outliers becomes less than or equal to the threshold ratio.
상기 식별된 이상 값이 상기 임계 비율 이하일 때 (S406의 결과가 "예"일 때), S408에서 상기 식별된 이상 값이 제외되거나 상기 식별된 이상 값 중 적어도 하나의 이상 값이 포함된 상기 실제 유효 슬로프 또는 상기 실제 유효 캐패시턴스의 값들 중 최소값이 상기 수정 타이밍 테이블의 최소값으로 설정되고, 상기 식별된 이상 값이 제외되거나 상기 식별된 이상 값 중 적어도 하나의 이상 값이 포함된 상기 실제 유효 슬로프 또는 상기 실제 유효 캐패시턴스의 최대값이 상기 수정 타이밍 테이블의 최대값으로 설정될 수 있다. S409에서, 상기 수정 타이밍 테이블의 상기 최소값과 상기 최대값 사이의 파라미터들이 설정될 수 있다. 일 실시 예에서, 상기 수정 타이밍 테이블의 상기 최소값과 상기 최대값 사이의 파라미터들은 상기 최소값과 최대값 사이에서 균등 분할된 값들로 설정될 수 있다. 일 실시 예에서, 상기 최소값과 상기 최대값 사이의 파라미들은 상기 최소값과 상기 최대값 사이의 값들 중에서 임계적 의의를 갖는 (예를 들어, 상대적으로 높은 밀도를 갖는) 값들로 설정될 수도 있다. When the identified abnormal value is less than or equal to the threshold ratio (when the result of S406 is “Yes”), in S408, a minimum value of the values of the actual effective slope or the actual effective capacitance in which the identified abnormal value is excluded or in which at least one of the identified abnormal values is included may be set as a minimum value of the correction timing table, and a maximum value of the actual effective slope or the actual effective capacitance in which the identified abnormal value is excluded or in which at least one of the identified abnormal values is included may be set as a maximum value of the correction timing table. In S409, parameters between the minimum value and the maximum value of the correction timing table may be set. In one embodiment, the parameters between the minimum value and the maximum value of the correction timing table may be set to values that are evenly divided between the minimum value and the maximum value. In one embodiment, the parameters between the minimum value and the maximum value may be set to values having critical significance (e.g., having a relatively high density) among the values between the minimum value and the maximum value.
도 7a 및 도 7b는 특정 스탠다드 셀의 실제 유효 캐패시턴스의 분포와 수정 타이밍 테이블의 파라미터를 설정하는 방법을 보여주는 그래프이다. 도 1, 도 2, 도 4, 도 7a 및 도 7b를 참조하여 도 4에 도시된 타이밍 테이블을 수정하는 단계(S309)를 보다 상세하게 설명하면 다음과 같다. 상기 타이밍 분석 도구(130) 및 상기 리버티 수정 엔진(132)은 통계적 분석을 통해 상기 수정 타이밍 테이블의 파라미터를 설정할 수 있다. 상기 타이밍 분석 도구(130) 및 상기 리버티 수정 엔진(132)은 상기 실제 유효 캐패시턴스 값들의 분포에 따라 다양한 통계적 분석 방법 중 어느 하나를 통해 이상 값을 식별하고 이상 값의 개수를 감소시킬 수 있다. 상기 타이밍 분석 도구(130) 및 상기 리버티 수정 엔진(132)은 외삽에 해당하는 실제 유효 캐패시턴스 값들 중 이상 값의 개수가 상기 임계 비율 이하가 될 때, 상기 이상 값이 제외된 상기 실제 유효 캐패시턴스 값들 중 최소값 또는 최대값을 상기 수정 타이밍 테이블의 최소값 또는 최대값으로 설정할 수 있다. FIGS. 7A and 7B are graphs showing the distribution of the actual effective capacitance of a specific standard cell and a method for setting parameters of a modified timing table. The step (S309) of modifying the timing table illustrated in FIG. 4 will be described in more detail with reference to FIGS. 1, 2, 4, 7A and 7B as follows. The timing analysis tool (130) and the Liberty correction engine (132) can set parameters of the modified timing table through statistical analysis. The timing analysis tool (130) and the Liberty correction engine (132) can identify outliers and reduce the number of outliers through any one of various statistical analysis methods according to the distribution of the actual effective capacitance values. The timing analysis tool (130) and the Liberty correction engine (132) can set the minimum or maximum value of the actual effective capacitance values from which the abnormal values are excluded as the minimum or maximum value of the correction timing table when the number of abnormal values among the actual effective capacitance values corresponding to the extrapolation is less than or equal to the threshold ratio.
도 7a 및 도 7b의 그래프의 가로 축은 상기 특정 스탠다드 셀의 입력 노드의 실제 유효 캐패시턴스의 값일 수 있고, 세로 축은 실제 유효 캐패시턴스의 값이 발생되는 빈도 수 있다. 도 7a에 도시된 것과 같이, 상기 실제 유효 캐패시턴스의 값들이 상기 기본 타이밍 테이블의 출력 캐패시턴스의 최대값보다 큰 외삽이 발생했을 때, 이상 값의 개수가 임계 비율 이하가 될 때까지 상기 임계 값 조건이 CrA, CrB, CrC, CrD로 순차적으로 완화될 수 있다. 상기 임계 값 조건이 CrD로 설정되었을 때, 상기 이상 값의 개수는 상기 임계 비율 이하가 될 수 있고, 상기 임계 값에 의해 이상 값으로 식별된 상기 실제 유효 캐패시턴스의 값들은 제외될 수 있다. 상기 이상 값이 제외된 상기 실제 유효 캐패시턴스 값들 중에서 최대값(S_max_new)은 상기 수정 타이밍 테이블의 최대값(NCE8)으로 설정될 수 있다. 상기 기본 타이밍 테이블의 출력 캐패시턴스의 최소값(CE_min)보다 작은 외삽이 발생되지 않았기 때문에, 상기 기본 타이밍 테이블에 기술된 상기 출력 캐패시턴스의 최소값(CE_min)은 상기 수정 타이밍 테이블의 최소값(NCE1)으로 설정될 수 있다. 도 7a에 도시된 것과 같이, 상기 실제 유효 캐패시턴스의 값들의 분포가 다양하지 않을 때, 상기 최소값(NCE1)과 상기 최대값(NCE8) 사이의 값들을 균등하게 분할하여 상기 수정 타이밍 테이블의 나머지 파라미터들(NCE2, NCE3, NCE4, NCE5, NCE6, NCE7)이 설정될 수 있다. 일 실시 예에서, 상시 수정된 타이밍 테이블의 나머지 파라미터들(NCE2, NCE3, NCE4, NCE5, NCE6, NCE7)은 균등 분할된 값을 가지지 않을 수 있고, 다수의 실제 유효 캐패시턴스가 분포되는 지점을 값들을 가질 수도 있다. 예를 들어, 상기 수정 타이밍 테이블의 파라미터들(NCE2, NCE3, NCE4, NCE5)는 상기 최소값(NCE1)과 인접한 분포에 대응하는 실제 유표 캐패시턴스 값을 균등하게 분할하여 설정될 수 있고, 상기 수정 타이밍 테이블의 파라미터들(NCE6, NCE7)은 상기 최대값(NCE2)과 인접한 분포에 대응하는 실제 유효 캐패시턴스 값을 균등하게 분할하여 설정될 수 있다. The horizontal axis of the graphs of FIGS. 7A and 7B may be the value of the actual effective capacitance of the input node of the specific standard cell, and the vertical axis may be the frequency at which the value of the actual effective capacitance occurs. As illustrated in FIG. 7A, when an extrapolation occurs in which the values of the actual effective capacitance are greater than the maximum value of the output capacitance of the basic timing table, the threshold condition may be sequentially relaxed to CrA, CrB, CrC, and CrD until the number of abnormal values becomes less than or equal to a threshold ratio. When the threshold condition is set to CrD, the number of abnormal values may become less than or equal to the threshold ratio, and the values of the actual effective capacitance identified as abnormal values by the threshold value may be excluded. Among the values of the actual effective capacitance from which the abnormal values are excluded, the maximum value (S_max_new) may be set to the maximum value (NCE8) of the modified timing table. Since no extrapolation smaller than the minimum value (CE_min) of the output capacitance of the basic timing table has occurred, the minimum value (CE_min) of the output capacitance described in the basic timing table can be set to the minimum value (NCE1) of the modified timing table. As illustrated in FIG. 7A, when the distribution of the values of the actual effective capacitance is not diverse, the remaining parameters (NCE2, NCE3, NCE4, NCE5, NCE6, NCE7) of the modified timing table can be set by evenly dividing the values between the minimum value (NCE1) and the maximum value (NCE8). In one embodiment, the remaining parameters (NCE2, NCE3, NCE4, NCE5, NCE6, NCE7) of the constantly modified timing table may not have evenly divided values, and may have values at points where a plurality of actual effective capacitances are distributed. For example, the parameters (NCE2, NCE3, NCE4, NCE5) of the above-described modified timing table can be set by evenly dividing the actual capacitance value corresponding to the distribution adjacent to the minimum value (NCE1), and the parameters (NCE6, NCE7) of the above-described modified timing table can be set by evenly dividing the actual effective capacitance value corresponding to the distribution adjacent to the maximum value (NCE2).
도 7b에 도시된 것과 같이, 상기 실제 유효 캐패시턴스의 값들이 상기 기본 타이밍 테이블의 출력 캐패시턴스의 최대값보다 큰 외삽이 발생했을 때, 이상 값의 개수가 임계 비율 이하가 될 때까지 상기 임계 값 조건이 CrA, CrB, CrC로 순차적으로 완화될 수 있다. 상기 임계 값 조건이 CrC로 설정되었을 때, 상기 이상 값의 개수는 상기 임계 비율 이하가 될 수 있고, 상기 임계 값에 의해 이상 값으로 식별된 상기 실제 유효 캐패시턴스의 값들은 제외될 수 있다. 상기 이상 값이 제외된 상기 실제 유효 캐패시턴스 값들 중에서 최대값(S_max_new)은 상기 수정 타이밍 테이블의 최대값(NCE8)으로 설정될 수 있다. 상기 기본 타이밍 테이블의 출력 캐패시턴스의 최소값(CE_min)보다 작은 외삽이 발생되지 않았기 때문에, 상기 기본 타이밍 테이블에 기술된 상기 출력 캐패시턴스의 최소값(CE_min)은 상기 수정 타이밍 테이블의 최소값(NCE1)으로 설정될 수 있다. 도 7b에 도시된 것과 같이, 상기 실제 유효 슬로프의 값들의 분포가 다양할 때, 상기 최소값(NCE1)과 상기 최대값(NCE8) 사이에서 임계적 의의를 갖는 지점의 상기 실제 유효 캐패시턴스의 값들이 상기 수정 타이밍 테이블의 나머지 파라미터들(NCE2, NCE3, NCE4, NCE5, NCE6, NCE7)로 설정될 수 있다. 상기 나머지 파라미터들(NCE2, NCE3, NCE4, NCE5, NCE6, NCE7)은 상대적으로 많은 빈도 수가 분포된 지점의 실제 유효 캐패시턴스 값으로 각각 설정될 수 있으며, 균등한 차이를 갖지 않을 수 있다. 도 7b에서 상기 식별된 이상 값을 전부 제외시킨 실제 유효 슬로프 또는 실제 유효 캐패시턴스에 기초하여 상기 수정 타이밍 테이블의 파라미터를 설정하는 것을 예시적으로 설명하였으나, 상기 수정 타이밍 테이블의 파라미터를 설정하기 위해, 상기 식별된 이상 값 중 일부 또는 전부가 고려될 수 있다. 상기 식별된 이상 값 중에서 임계적 의의를 갖거나 설계 요구 사항에 부합하는 이상 값들은 제외되지 않고 상기 수정 타이밍 테이블의 파라미터를 설정하기 위해 활용될 수 있다.As illustrated in FIG. 7B, when an extrapolation occurs in which the values of the actual effective capacitance are greater than the maximum value of the output capacitance of the basic timing table, the threshold condition may be sequentially relaxed to CrA, CrB, and CrC until the number of abnormal values becomes less than or equal to a threshold ratio. When the threshold condition is set to CrC, the number of abnormal values may become less than or equal to the threshold ratio, and the values of the actual effective capacitance identified as abnormal values by the threshold value may be excluded. Among the values of the actual effective capacitance from which the abnormal values are excluded, the maximum value (S_max_new) may be set to the maximum value (NCE8) of the modified timing table. Since an extrapolation less than the minimum value (CE_min) of the output capacitance of the basic timing table has not occurred, the minimum value (CE_min) of the output capacitance described in the basic timing table may be set to the minimum value (NCE1) of the modified timing table. As illustrated in FIG. 7b, when the distribution of the values of the actual effective slope is diverse, the values of the actual effective capacitance at points having a critical significance between the minimum value (NCE1) and the maximum value (NCE8) may be set to the remaining parameters (NCE2, NCE3, NCE4, NCE5, NCE6, NCE7) of the modified timing table. The remaining parameters (NCE2, NCE3, NCE4, NCE5, NCE6, NCE7) may each be set to the actual effective capacitance values at points where a relatively large number of frequencies are distributed, and may not have an equal difference. Although FIG. 7b exemplarily describes setting the parameters of the modified timing table based on the actual effective slope or the actual effective capacitance excluding all of the identified abnormal values, some or all of the identified abnormal values may be considered to set the parameters of the modified timing table. Among the above-identified abnormal values, abnormal values that have critical significance or meet design requirements are not excluded and can be utilized to set the parameters of the above-mentioned modified timing table.
도 7a 및 도 7b에서, 실제 유효 캐패시턴스가 출력 캐패시턴스의 최대값보다 큰 외삽이 발생했을 때, 상기 출력 캐패시턴스 최대값을 수정하는 방법에 대해서만 서술하였지만, 상기 출력 캐패시턴스의 최소값, 상기 입력 슬로프의 최소값 및 상기 입력 슬로프의 최대값도 동일한 원리에 의해 수정될 수 있을 것이다. 아울러, 상기 수정 타이밍 테이블의 파라미터를 설정하는 방식은 예시된 도 7a 및 도 7b에 국한되지 않으며, 다양한 통계적인 분석 방법에 의해 수정 및 변경될 수 있을 것이다. 예를 들어, 상기 실제 유효 캐패시턴스의 값들로부터 추출할 수 있는 평균, 분산 및 표준편차와 같은 수치들을 수식화하여 상기 최소값과 최대값 사이의 파라미터들을 설정할 수 있다. 또한, 머신 러닝 (machine learning) 또는 알고리즘을 활용하여 상기 전기적 시뮬레이션과 오차를 최소화시킬 수 있는 모델을 개발하여 최적의 최소값, 최적의 최대값 및 상기 최적의 최소값 및 최대값 사이의 파라미터들을 설정할 수도 있다. In FIGS. 7A and 7B, only the method of modifying the maximum value of the output capacitance when an extrapolation in which the actual effective capacitance is greater than the maximum value of the output capacitance occurs has been described, but the minimum value of the output capacitance, the minimum value of the input slope, and the maximum value of the input slope may also be modified by the same principle. In addition, the method of setting the parameters of the modified timing table is not limited to the exemplified FIGS. 7A and 7B, and may be modified and changed by various statistical analysis methods. For example, the parameters between the minimum and maximum values may be set by formulating numerical values such as the mean, variance, and standard deviation that can be extracted from the values of the actual effective capacitance. In addition, a model capable of minimizing errors from the electrical simulation may be developed by utilizing machine learning or an algorithm to set the optimal minimum value, the optimal maximum value, and the parameters between the optimal minimum and maximum values.
도 8은 본 발명의 실시 예에 따른 컴퓨팅 시스템(500)의 구성을 보여주는 도면이다. 상기 컴퓨터 시스템(500)은 프로세서(510), 네트워크 인터페이스(520), 입출력 장치(530), 스토리지(540), 메모리(550) 및 버스(501)를 포함할 수 있다. 상기 버스(501)는 상기 프로세서(510), 상기 네트워크 인터페이스(520), 상기 입출력 장치(530), 상기 스토리지(540) 및 상기 메모리(550)를 서로 연결할 수 있다. 상기 프로세서(510)는 본 발명의 실시 예에 따른 설계 방법을 수행할 수 있도록 프로그램 명령어를 실행하여 도 1에 도시된 타이밍 분석 도구(130)를 상기 메모리로 로드하고, 상기 타이밍 분석 도구(130)의 상기 타이밍 분석 엔진(131)과 상기 리버티 수정 엔진(132)을 실행시킬 수 있다. 상기 타이밍 분석 도구(130)는 도 4에 도시된 S305 내지 S311을 수행하도록 구성될 수 있다.FIG. 8 is a diagram showing the configuration of a computing system (500) according to an embodiment of the present invention. The computer system (500) may include a processor (510), a network interface (520), an input/output device (530), storage (540), memory (550), and a bus (501). The bus (501) may interconnect the processor (510), the network interface (520), the input/output device (530), the storage (540), and the memory (550). The processor (510) may execute program instructions to load the timing analysis tool (130) illustrated in FIG. 1 into the memory and execute the timing analysis engine (131) and the Liberty correction engine (132) of the timing analysis tool (130) so as to perform a design method according to an embodiment of the present invention. The timing analysis tool (130) may be configured to perform steps S305 to S311 illustrated in FIG. 4.
상기 네트워크 인터페이스(520)는 네트워크(도시되지 않음)를 통해 원격으로 저장된 프로그램 명령어 및 프로그램 명령어에 의해 액세스되는 데이터에 액세스하도록 구성될 수 있다.The above network interface (520) may be configured to access program instructions and data accessed by program instructions stored remotely via a network (not shown).
상기 입출력 장치(530)는 상기 컴퓨팅 시스템(500)과 설계자가 상호 작용을 가능하게 하도록 구성된 입력 장치 및 출력 장치를 포함할 수 있다. 예를 들어, 상기 입력 장치는 예를 들어 키보드, 마우스 및 기타 장치를 포함할 수 있고, 상기 출력 장치는 예를 들어 디스플레이, 프린터 및 기타 장치를 포함할 수 있다. The input/output device (530) may include input devices and output devices configured to enable interaction between the computing system (500) and the designer. For example, the input devices may include, for example, a keyboard, a mouse, and other devices, and the output devices may include, for example, a display, a printer, and other devices.
상기 스토리지(540)는 프로그램 명령어와 프로그램 명령어에 의해 액세스되는 데이터를 저장하도록 구성된다. 예를 들어, 상기 스토리지(540)는 비일시적 컴퓨터 판독 가능 저장 매체, 예를 들어 플래시 메모리, 자기 디스크, 광 디스크 또는 이와 유사한 것을 포함한다. 상기 스토리지(540)는 상기 프로세서(510)의 프로그램 명령어에 기초하여 도 1에 도시된 상기 타이밍 분석 도구(130)를 상기 메모리(540)로 로드할 수 있다. 또한, 상기 스토리지(540)는 도 1에 도시된 상기 게이트 레벨 넷리스트 및 상기 기생 소자 정보를 상기 설계 정보로서 저장하고, 상기 스탠다드 셀의 리버티 파일을 상기 셀 라이브러리로서 저장할 수 있다. 상기 스토리지(540)는 상기 프로세서(510)의 프로그램 명령어에 기초하여 상기 게이트 레벨 넷리스트, 상기 기생 소자 정보, 상기 스탠다드 셀 정보, 상기 스탠다드 셀의 리버티 파일을 상기 메모리로 로드할 수 있다. The storage (540) is configured to store program instructions and data accessed by the program instructions. For example, the storage (540) includes a non-transitory computer-readable storage medium, such as a flash memory, a magnetic disk, an optical disk, or the like. The storage (540) can load the timing analysis tool (130) illustrated in FIG. 1 into the memory (540) based on the program instructions of the processor (510). In addition, the storage (540) can store the gate-level netlist and the parasitic element information illustrated in FIG. 1 as the design information, and store the liberty file of the standard cell as the cell library. The storage (540) can load the gate-level netlist, the parasitic element information, the standard cell information, and the liberty file of the standard cell into the memory based on the program instructions of the processor (510).
상기 메모리(550)는 상기 프로세서(510)에 의해 실행되는 프로그램 명령어와 프로그램 명령어에 의해 액세스되는 데이터를 저장하도록 구성된다. 예를 들어, 상기 메모리(550)는 랜덤 액세스 메모리(RAM), 다른 휘발성 저장 장치, 읽기 전용 메모리(ROM) 및 다른 비휘발성 저장 장치의 임의의 조합을 포함한다.The memory (550) is configured to store program instructions executed by the processor (510) and data accessed by the program instructions. For example, the memory (550) includes any combination of random access memory (RAM), other volatile storage devices, read-only memory (ROM), and other non-volatile storage devices.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art should understand that the present invention can be implemented in other specific forms without changing the technical spirit or essential characteristics thereof, and therefore, the embodiments described above are illustrative in all respects and not restrictive. The scope of the present invention is indicated by the claims below rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be interpreted as being included within the scope of the present invention.
Claims (12)
상기 외삽이 존재할 때, 상기 리버티 파일에 포함된 기본 타이밍 테이블의 파라미터를 수정하여 수정 타이밍 테이블의 파라미터들을 설정하고, 상기 수정 타이밍 테이블의 파라미터에 기초하여 특성화를 수행하여 상기 수정 타이밍 테이블을 생성하며, 상기 리버티 파일의 상기 기본 타이밍 테이블을 상기 수정 타이밍 테이블로 업데이트하는 단계; 및
상기 수정 타이밍 테이블을 포함하는 상기 리버티 파일을 사용하여 타이밍 검증을 수행하는 단계를 포함하는 반도체 설계 방법.A step of performing timing analysis based on the liberty file of the standard cell extracted from the gate level netlist and the parasitic element information generated from the layout design to determine whether extrapolation exists;
When the extrapolation exists, a step of modifying the parameters of the basic timing table included in the Liberty file to set the parameters of the modified timing table, performing characterization based on the parameters of the modified timing table to generate the modified timing table, and updating the basic timing table of the Liberty file with the modified timing table; and
A semiconductor design method comprising the step of performing timing verification using the Liberty file including the modified timing table.
상기 외삽이 존재하는지 여부를 판단하는 단계는, 상기 기본 타이밍 테이블에 기술된 입력 슬로프와 상기 스탠다드 셀의 입력 노드의 실제 유효 슬로프를 비교하는 단계와,
상기 기본 타이밍 테이블에 기술된 출력 캐패시턴스와 상기 스탠다드 셀의출력 노드의 실제 유효 캐패시턴스를 비교하는 단계를 포함하는 반도체 설계 방법.In the first paragraph,
The step of determining whether the above extrapolation exists comprises the steps of comparing the input slope described in the basic timing table with the actual effective slope of the input node of the standard cell,
A semiconductor design method comprising a step of comparing the output capacitance described in the above basic timing table with the actual effective capacitance of the output node of the standard cell.
상기 기본 타이밍 테이블에 기술된 입력 슬로프와 상기 스탠다드 셀의 입력 노드의 실제 유효 슬로프를 비교하는 단계는, 상기 실제 유효 슬로프가 상기 입력 슬로프의 최소값보다 작을 때 및 상기 실제 유효 슬로프가 상기 입력 슬로프의 최대값보다 클 때, 상기 외삽이 존재하는 것으로 판단하는 반도체 설계 방법.In the second paragraph,
A semiconductor design method, wherein the step of comparing the input slope described in the basic timing table with the actual effective slope of the input node of the standard cell determines that the extrapolation exists when the actual effective slope is less than the minimum value of the input slope and when the actual effective slope is greater than the maximum value of the input slope.
상기 기본 타이밍 테이블에 기술된 출력 캐패시턴스와 상기 스탠다드 셀의출력 노드의 실제 유효 캐패시턴스를 비교하는 단계는, 상기 실제 유효 캐패시턴스가 상기 출력 캐패시턴스의 최소값보다 작을 때 및 상기 실제 유효 캐패시턴스가 상기 출력 캐패시턴스의 최대값보다 클 때, 상기 외삽이 존재하는 것으로 판단하는 반도체 설계 방법.In the second paragraph,
A semiconductor design method, wherein the step of comparing the output capacitance described in the basic timing table with the actual effective capacitance of the output node of the standard cell determines that the extrapolation exists when the actual effective capacitance is less than the minimum value of the output capacitance and when the actual effective capacitance is greater than the maximum value of the output capacitance.
상기 수정 타이밍 테이블의 파라미터는 상기 스탠다드 셀의 입력 노드의 실제 유효 슬로프 및 상기 스탠다드 셀의 출력 노드의 실제 유효 캐패시턴스에 대한 통계적 분석에 기초하여 설정되는 반도체 설계 방법.In the first paragraph,
A semiconductor design method in which the parameters of the above-mentioned modified timing table are set based on a statistical analysis of the actual effective slope of the input node of the standard cell and the actual effective capacitance of the output node of the standard cell.
상기 수정 타이밍 테이블의 파라미터를 설정하는 단계는, 상기 실제 유효 캐패시턴스의 값들 중에서 적어도 하나의 이상 값을 제외시킨 후, 상기 적어도 하나의 이상 값이 제외된 상기 실제 유효 캐패시턴의 최소값 또는 최대값을 출력 캐패시턴스의 새로운 최소값 또는 최대값으로 설정하고, 상기 새로운 최소값 및 상기 새로운 최대값 사이의 값들을 균등 분할하여 상기 수정 타이밍 테이블의 파라미터를 설정하는 반도체 설계 방법.In paragraph 5,
A semiconductor design method for setting parameters of the above-described correction timing table, wherein the step of setting parameters of the above-described correction timing table comprises: excluding at least one abnormal value from among values of the actual effective capacitance; setting the minimum or maximum value of the actual effective capacitance from which the at least one abnormal value has been excluded as a new minimum or maximum value of the output capacitance; and equally dividing values between the new minimum value and the new maximum value to set parameters of the above-described correction timing table.
상기 수정 타이밍 테이블의 파라미터를 설정하는 단계는, 상기 실제 유효 캐패시턴스의 값들 중에서 적어도 하나의 이상 값을 제외시킨 후, 상기 적어도 하나의 이상 값이 제외된 상기 실제 유효 캐패시턴스의 최소값 또는 최대값을 출력 캐패시턴스의 새로운 최소값 또는 최대값으로 설정하고, 상기 실제 유효 캐패시턴스의 분포에 기반하여 상기 새로운 최소값과 상기 새로운 최대값 사이에서 임계적 의의를 갖는 값을 상기 수정 타이밍 테이블의 파라미터로 설정하는 반도체 설계 방법.In paragraph 5,
A semiconductor design method in which the step of setting the parameters of the above-mentioned correction timing table comprises: excluding at least one abnormal value from among the values of the actual effective capacitance, setting the minimum or maximum value of the actual effective capacitance from which the at least one abnormal value has been excluded as a new minimum or maximum value of the output capacitance, and setting a value having a critical significance between the new minimum value and the new maximum value based on a distribution of the actual effective capacitance as a parameter of the above-mentioned correction timing table.
상기 수정 타이밍 테이블의 파라미터를 설정하는 단계는, 상기 실제 유효 슬로프의 값들 중에서 적어도 하나의 이상 값을 제외시킨 후, 상기 적어도 하나의 이상 값이 제외된 상기 실제 유효 슬로프의 최소값 또는 최대값을 출력 캐패시턴스의 새로운 최소값 또는 최대값으로 설정하고, 상기 새로운 최소값 및 상기 새로운 최대값 사이의 값들을 균등 분할하여 상기 수정 타이밍 테이블의 파라미터를 설정하는 반도체 설계 방법.In paragraph 5,
A semiconductor design method for setting parameters of the above-described correction timing table, wherein the step of setting parameters of the above-described correction timing table comprises: excluding at least one abnormal value from among the values of the actual effective slope, setting the minimum or maximum value of the actual effective slope from which the at least one abnormal value has been excluded as a new minimum or maximum value of the output capacitance, and evenly dividing values between the new minimum value and the new maximum value to set parameters of the above-described correction timing table.
상기 수정 타이밍 테이블의 파라미터를 설정하는 단계는, 상기 실제 유효 슬로프의 값들 중에서 적어도 하나의 이상 값을 제외시킨 후, 상기 적어도 하나의 이상 값이 제외된 상기 실제 유효 슬로프의 최소값 또는 최대값을 입력 슬로프의 새로운 최소값 또는 최대값으로 설정하고, 상기 실제 유효 슬로프의 분포에 기반하여 상기 새로운 최소값과 상기 새로운 최대값 사이에서 임계적 의의를 갖는 값을 상기 수정 타이밍 테이블의 파라미터로 설정하는 반도체 설계 방법.In paragraph 5,
A semiconductor design method in which the step of setting the parameters of the above-mentioned modified timing table comprises: excluding at least one abnormal value from among the values of the actual effective slope, setting the minimum or maximum value of the actual effective slope from which the at least one abnormal value has been excluded as a new minimum or maximum value of the input slope, and setting a value having a critical significance between the new minimum value and the new maximum value based on a distribution of the actual effective slope as a parameter of the above-mentioned modified timing table.
상기 특성화는 상기 수정 타이밍 테이블의 파라미터를 기반으로 전기적 시뮬레이션을 수행하여 출력 천이 타이밍을 계산하는 반도체 설계 방법.In the first paragraph,
The above characterization is a semiconductor design method for calculating output transition timing by performing electrical simulation based on parameters of the above modified timing table.
상기 타이밍 분석을 수행하여 외삽이 존재하는지 여부를 판단하는 단계 이전에,
스키매틱 설계를 수행하고, 상기 스키매틱 설계를 기반으로 상기 레이아웃 설계를 수행하는 단계;
상기 스키매틱 설계를 상기 게이트 레벨 넷리스트로 변환하고, 상기 게이트 레벨 넷리스트로부터 스탠다드 셀 정보 및 스탠다드 셀과 관련된 리버티 파일들을 추출하는 단계; 및
상기 레이아웃 설계의 상기 기생 소자 정보를 추출하는 단계를 더 포함하는 반도체 설계 방법. In the first paragraph,
Before the step of performing the above timing analysis to determine whether extrapolation exists,
A step of performing schematic design and performing layout design based on the schematic design;
A step of converting the schematic design into the gate level netlist and extracting standard cell information and Liberty files related to the standard cell from the gate level netlist; and
A semiconductor design method further comprising a step of extracting parasitic element information of the layout design.
상기 타이밍 분석 도구를 실행시키는 프로세서를 포함하고,
상기 타이밍 분석 도구는, 스탠다드 셀의 리버티 파일과 상기 레이아웃 설계의 기생 소자 정보를 활용하여 외삽이 존재하는지 여부를 판단하고, 외삽이 존재할 때 상기 리버티 파일의 상기 기본 타이밍 테이블의 파라미터를 수정하고 수정된 파라미터를 기초로 특성화를 수행하여 수정 타이밍 테이블을 생성하며, 상기 기본 타이밍 테이블을 상기 수정 타이밍 테이블로 업데이트하는 컴퓨팅 시스템.
Memory for storing standard cell information, gate-level netlists and layout designs, and loading timing analysis tools; and
comprising a processor that executes the timing analysis tool;
A computing system in which the timing analysis tool determines whether extrapolation exists by utilizing the liberty file of the standard cell and the parasitic element information of the layout design, modifies the parameters of the basic timing table of the liberty file when extrapolation exists, performs characterization based on the modified parameters, and generates a modified timing table, and updates the basic timing table with the modified timing table.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020240029060 | 2024-02-28 | ||
| KR20240029060 | 2024-02-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20250132417A true KR20250132417A (en) | 2025-09-04 |
Family
ID=97068615
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020250027018A Pending KR20250132417A (en) | 2024-02-28 | 2025-02-28 | Semiconductor design method for extrapolation-free characterization and computing system performing the same |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR20250132417A (en) |
-
2025
- 2025-02-28 KR KR1020250027018A patent/KR20250132417A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8160858B2 (en) | Systems and methods of efficient library characterization for integrated circuit cell libraries | |
| US8769452B2 (en) | Parasitic extraction in an integrated circuit with multi-patterning requirements | |
| JP4530049B2 (en) | Semiconductor device design program and semiconductor device design system | |
| CN112069763B (en) | Method of correcting the circuit | |
| US10789406B1 (en) | Characterizing electronic component parameters including on-chip variations and moments | |
| US10915685B1 (en) | Circuit stage credit based approaches to static timing analysis of integrated circuits | |
| US20120123745A1 (en) | Adaptive Content-aware Aging Simulations | |
| US9892220B2 (en) | Method and apparatus for adjusting a timing derate for static timing analysis | |
| US7921395B2 (en) | Method for laying out decoupling cells and apparatus for laying out decoupling cells | |
| US11030383B2 (en) | Integrated device and method of forming the same | |
| US10437946B1 (en) | Using implemented core sources for simulation | |
| US11574101B2 (en) | Techniques for providing optimizations based on categories of slack in timing paths | |
| US8712752B2 (en) | IR(voltage) drop analysis in integrated circuit timing | |
| US20150356229A1 (en) | Physical cell electromigration data generation | |
| JP2005352787A (en) | Timing analysis method and timing analysis apparatus | |
| JPH10162040A (en) | Method of manufacturing large-scale integrated circuit device and large-scale integrated circuit device | |
| KR102187640B1 (en) | Timing matching method of timing analyzer, design method for integrated circuit using the same | |
| US10176284B2 (en) | Semiconductor circuit design and manufacture method | |
| KR20250132417A (en) | Semiconductor design method for extrapolation-free characterization and computing system performing the same | |
| KR20180051708A (en) | Layout method for semiconductor device based on swiching activity and manufacturing | |
| JP4053969B2 (en) | Semiconductor integrated circuit design apparatus and semiconductor integrated circuit design method | |
| JPWO2011074029A1 (en) | Integrated circuit power consumption calculation apparatus, processing method, and program | |
| JP5332972B2 (en) | Decoupling capacity determination method, decoupling capacity determination device and program | |
| CN116490873A (en) | Placement and simulation of adjacent cells with diffusion break cells | |
| TWI783773B (en) | Method for establishing variation model related to circuit characteristics for performing circuit simulation, and associated circuit simulation system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |