KR20220008171A - 반도체 칩 설계 방법 및 그것을 수행하기 위한 컴퓨팅 장치 - Google Patents
반도체 칩 설계 방법 및 그것을 수행하기 위한 컴퓨팅 장치 Download PDFInfo
- Publication number
- KR20220008171A KR20220008171A KR1020200086439A KR20200086439A KR20220008171A KR 20220008171 A KR20220008171 A KR 20220008171A KR 1020200086439 A KR1020200086439 A KR 1020200086439A KR 20200086439 A KR20200086439 A KR 20200086439A KR 20220008171 A KR20220008171 A KR 20220008171A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- error
- power
- cells
- detecting
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/02—Reliability analysis or reliability optimisation; Failure analysis, e.g. worst case scenario performance, failure mode and effects analysis [FMEA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
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)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
본 개시에 따르면, 반도체 칩을 설계하기 위한 방법은, 복수의 셀들의 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터를 획득하는 단계, 복수의 셀들과 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터를 획득하는 단계 및 제1 데이터 및 상기 제2 데이터를 매칭하는 것에 기초하여 복수의 셀들의 배치에 대한 에러를 검출함으로써 검증 결과를 출력하는 단계를 포함할 수 있다.
Description
본 개시의 기술적 사상은 컴퓨팅 장치 및 그것의 반도체 칩 설계 방법에 관한 것으로서, 반도체 칩의 입출력 인터페이스를 설계하기 위한 방법에 관한 것이다.
집적 회로 등을 포함하는 다양한 반도체 칩들은, 반도체 칩 내부의 회로들과 반도체 칩 외부가 통신을 수행하는 데 이용되는 입출력 인터페이스를 포함합니다. 반도체 칩은 입출력 인터페이스를 이용해 외부로부터 제어 신호 및 다양한 종류의 전압 신호들을 수신하고, 다양한 종류의 데이터들을 외부로 출력하기도 합니다.
기존에는 반도체 칩의 입출력 인터페이스를 설계함에 있어서 반도체 칩 상에 배치되는 입출력 셀들을 직접 설계하고, 설계된 입출력 셀들의 배치가 적절하게 동작할 수 있는지를 설계자가 직접 일일이 확인하고 검증해야만 했다. 이에 따라 설계 과정에서 많은 시간과 비용이 소요되어 왔으며, 그 검증 과정의 신뢰도가 떨어지는 문제점이 존재했다.
본 개시의 기술적 사상은 컴퓨팅 장치 및 그것의 반도체 칩 설계 방법에 있어서, 설계자의 직접적인 개입 없이 반도체 칩의 입출력 인터페이스에 대한 설계 오류를 검출하기 위한 방법 및 장치를 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 반도체 칩을 설계하기 위한 방법은, 복수의 셀들의 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터를 획득하는 단계, 복수의 셀들과 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터를 획득하는 단계 및 제1 데이터 및 상기 제2 데이터를 매칭하는 것에 기초하여 복수의 셀들의 배치에 대한 에러를 검출함으로써 검증 결과를 출력하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 반도체 칩을 설계하기 위한 방법은, 복수의 셀들의 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터를 획득하는 단계, 복수의 셀들과 파워 소스들 사이의 라우팅에 관한 정보 및 복수의 셀들에 대응되는 복수의 라이브러리 정보들을 포함하는 제2 데이터를 획득하는 단계, 제1 데이터에 포함된 복수의 셀들 각각에 대해, 제2 데이터 중 대응되는 셀에 대한 라우팅 정보를 병합함으로써 병합된 데이터를 획득하는 단계, 병합된 데이터를 기초로 단락 에러, 개방 에러 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출하는 단계 및 검출된 에러에 관한 정보를 포함하는 검증 결과를 출력하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 컴퓨팅 장치는, 적어도 하나의 프로세서 및 적어도 하나의 프로세서에 의해 실행되는 경우, 가열 장치가 다음을 수행하도록 하는 인스트럭션들을 저장하는 메모리를 포함할 수 있으며, 인스트럭션들은, 컴퓨팅 장치가 복수의 셀들의 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터를 획득하는 단계, 복수의 셀들과 적어도 하나의 파워 라인 및 적어도 하나의 신호 라인을 포함하는 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터를 획득하는 단계 및 제1 데이터 및 제2 데이터를 매칭하는 것에 기초하여 복수의 셀들의 배치에 대한 에러를 검출함으로써 검증 결과를 출력하는 단계를 수행하도록 할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 컴퓨터 판독가능 기록매체에 저장된 프로그램은, 위와 같은 방법들 중 적어도 하나에 따른 단계를 수행할 수 있다.
본 개시의 예시적 실시 예에 따른 컴퓨팅 장치 및 그것의 반도체 칩 설계 방법에 따르면, 복수의 입출력 셀들의 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터 및 복수의 입출력 셀들과 신호 라인들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터를 병합할 수 있고, 병합된 데이터를 기초로 입출력 셀 배치에 관한 단락 에러(short error), 개방 에러(float error) 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출할 수 있다.
또한, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치는, 에러에 대한 정보를 포함하는 검증 결과를 출력함으로써, 컴퓨팅 장치의 사용자가 반도체 칩 설계 상의 에러를 알 수 있도록 도울 수 있다. 이로써 반도체 칩의 설계자는, 설계자의 직접적인 개입 없이도 반도체 칩의 입출력 인터페이스에 대한 설계 오류를 검출해낼 수 있다. 이로써 입출력 인터페이스에 대한 설계 오류를 찾아내는 데 소요되는 시간 및 비용을 절감할 수 있으며, 오류를 더욱 정확히 찾아낼 수 있다.
나아가, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치는, 검증 결과를 기초로 제1 데이터 및/또는 제2 데이터에 대한 에러 교정 방법을 컴퓨팅 장치의 사용자에게 알림으로써 사용자인 설계자가 에러를 올바르게 교정할 수 있도록 도울 수 있다.
또한 나아가, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치가, 검증 결과를 기초로 제1 데이터 및/또는 제2 데이터를 수정함으로써, 설계 오류를 설계자의 개입 없이 직접적으로 시정할 수도 있다.
도 1은 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치를 나타낸다.
도 2는 본 개시의 예시적 실시 예에 따른 반도체 칩을 나타낸다.
도 3은 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 4는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 5는 본 개시의 예시적 실시 예에 따른 제1 데이터를 나타낸다.
도 6은 본 개시의 예시적 실시 예에 따른 제2 데이터를 나타낸다.
도 7은 본 개시의 예시적 실시 예에 따른 병합된 데이터를 나타낸다.
도 8a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 8b는 본 개시의 예시적 실시 예에 따른 병합된 데이터 및 단락 에러 검출의 예시를 나타낸다.
도 8c는 본 개시의 예시적 실시 예에 따른 병합된 데이터를 나타낸다.
도 9a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 9b는 본 개시의 예시적 실시 예에 따른 병합된 데이터 및 개방 에러 검출의 예시를 나타낸다.
도 10a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 10b는 이종 라이브러리에 속하는 입출력 셀들을 하나의 링 내에 연결한 경우 발생할 수 있는 문제점을 설명하기 위한 도면이다.
도 10c는 본 개시의 예시적 실시 예에 따른 병합된 데이터 및 이종 라이브러리 에러 검출의 예시를 나타낸다.
도 11a 및 도 11b는 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치를 나타낸다.
도 12는 본 개시의 예시적 실시 예에 따른 링커 셀을 포함하는 입출력 셀들을 나타낸다.
도 2는 본 개시의 예시적 실시 예에 따른 반도체 칩을 나타낸다.
도 3은 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 4는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 5는 본 개시의 예시적 실시 예에 따른 제1 데이터를 나타낸다.
도 6은 본 개시의 예시적 실시 예에 따른 제2 데이터를 나타낸다.
도 7은 본 개시의 예시적 실시 예에 따른 병합된 데이터를 나타낸다.
도 8a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 8b는 본 개시의 예시적 실시 예에 따른 병합된 데이터 및 단락 에러 검출의 예시를 나타낸다.
도 8c는 본 개시의 예시적 실시 예에 따른 병합된 데이터를 나타낸다.
도 9a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 9b는 본 개시의 예시적 실시 예에 따른 병합된 데이터 및 개방 에러 검출의 예시를 나타낸다.
도 10a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다.
도 10b는 이종 라이브러리에 속하는 입출력 셀들을 하나의 링 내에 연결한 경우 발생할 수 있는 문제점을 설명하기 위한 도면이다.
도 10c는 본 개시의 예시적 실시 예에 따른 병합된 데이터 및 이종 라이브러리 에러 검출의 예시를 나타낸다.
도 11a 및 도 11b는 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치를 나타낸다.
도 12는 본 개시의 예시적 실시 예에 따른 링커 셀을 포함하는 입출력 셀들을 나타낸다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)를 나타낸다. 컴퓨팅 장치(10)는, 비제한적인 예시로서, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상 전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나로 구현될 수 있다.
컴퓨팅 장치(10)는 메모리(100) 및 프로세서(200)를 포함할 수 있다. 일 실시 예에서, 컴퓨팅 장치(10)는 하나의 프로세서(200)를 포함할 수도 있고, 복수의 프로세서들을 포함할 수도 있다.
일 실시 예에서, 컴퓨팅 장치(10)에는 프로그램이 설치될 수 있으며, 컴퓨팅 장치(10)는 설치된 프로그램을 기반으로 동작할 수 있다. 상기 프로그램은 컴퓨터 판독 가능한 기록매체에 저장될 수 있으며, 예를 들어 프로그램은 메모리(100)에 저장될 수 있다.
메모리(100)는 데이터를 저장하기 위한 저장 장소로서, 예를 들어, 다양한 알고리즘, 각종 프로그램 및 각종 데이터를 저장할 수 있다. 메모리(300)는 휘발성 메모리(volatile memory) 및 비휘발성 메모리(non-volatile memory) 중(among) 적어도 하나를 포함할 수 있다. 비휘발성 메모리는 ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등을 포함할 수 있다. 휘발성 메모리는 DRAM(Dynamic RAM), SRAM(Static RAM), SDRAM(Synchronous DRAM), PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FeRAM(Ferroelectric RAM) 등을 포함할 수 있다. 또한 일 실시 예에 있어서, 메모리(300)는 HDD(Hard Disk Drive), SSD(Solid State Drive), CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme digital) 또는 Memory Stick 중 적어도 하나를 포함할 수도 있다. 메모리(100)는 컴퓨팅 장치(10)에 의해 실행되는 알고리즘들, 프로그램들 및 복수의 인스트럭션들을 반영구적으로 또는 일시적으로 저장할 수 있다. 일 실시 예에서, 메모리(100)는, 장치(10)가 반도체 칩을 설계하는 방법을 수행할 때, 프로세서(200)에 의해 실행되는 인스트럭션들을 저장할 수 있다. 즉, 프로세서(200)가 메모리(100)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 컴퓨팅 장치(10)는 본 개시의 일 실시 예에 따른 반도체 칩 설계 방법에 따른 동작을 수행할 수 있다.
프로세서(200)는 컴퓨팅 장치(10) 내 다양한 동작들을 제어할 수 있으며, 일 예로서 프로세서(200)는 중앙 프로세싱 유닛(Central Processing Unit; CPU) 또는 어플리케이션 프로세서(Application Processor; AP)일 수 있다. 프로세서(400)는 하나의 코어(single core)를 포함하거나, 복수의 코어들(multiple core)을 포함할 수 있다.
컴퓨팅 장치(10)는 제1 데이터(DATA1) 및 제2 데이터(DATA2)를 획득할 수 있다. 여기서, 제1 데이터(DATA1) 및 제2 데이터(DATA2)는 반도체 칩의 설계에 관련된 데이터들로서, 제1 데이터(DATA1)는 복수의 입출력 셀들의 반도체 칩 상의 배치에 관한 정보를 포함할 수 있으며, 제2 데이터(DATA2)는 복수의 입출력 셀들과 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함할 수 있다. 여기서, 파워 및 신호 라인들은 적어도 하나의 파워 라인 및 적어도 하나의 신호 라인을 통칭하는 용어로 사용된다. 즉, 본 개시의 일 실시 예에 따른 반도체 칩의 입출력 인터페이스는 적어도 하나의 파워 라인 및 적어도 하나의 신호 라인을 포함할 수 있는데, 제2 데이터(DATA2)는 복수의 입출력 셀들과 적어도 하나의 파워 라인 및 적어도 하나의 신호 라인을 포함하는 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함할 수 있다. 일 실시 예에서, 컴퓨팅 장치(10)는 제1 데이터(DATA1) 및 제2 데이터(DATA2)를 컴퓨팅 장치(10) 외부로부터 수신할 수 있다. 일 실시 예에서, 제1 데이터(DATA1) 및 제2 데이터(DATA2)는 반도체 칩 설계자인 컴퓨팅 장치(10)의 사용자에 의해 입력되는 데이터일 수 있다. 컴퓨팅 장치(10)는 제1 데이터(DATA1) 및 제2 데이터(DATA2)를 기초로 반도체 칩 내 입출력 셀 배치의 에러를 검출할 수 있고, 검출된 에러를 기초로 검증 결과(RST)를 생성함으로써 검증 결과(RST)를 출력할 수 있다.
일 실시 예에서, 프로세서(200)는 제1 데이터(DATA1) 및 제2 데이터(DATA2)를 매칭하는(match) 것에 기초하여 복수의 입출력 셀들의 반도체 칩 상의 배치에 관한 에러를 검출할 수 있다. 일 실시 예에서, 프로세서(200)는, 제1 데이터에 포함된 복수의 입출력 셀들 각각에 대해, 제2 데이터(DATA2) 중 대응되는 입출력 셀에 대한 라우팅 정보를 병합함으로써 병합된 데이터를 획득할 수 있다. 프로세서(200)는 병합된 데이터에 포함된 정보들을 기반으로 에러를 검출할 수 있는데, 여기서 에러는 단락 에러(short error), 개방 에러(float error) 및 이종 라이브러리 에러 중 적어도 하나를 포함할 수 있다. 프로세서(200)는 검출된 에러에 관한 정보를 포함하는 검증 결과(RST)를 생성하여, 컴퓨팅 장치(10)의 외부로 검증 결과(RST)를 출력할 수 있다.
또한 일 실시 예에서, 프로세서(200)는 검증 결과(RST)를 기초로 제1 데이터(DATA1) 및/또는 제2 데이터(DATA2)를 수정할 수 있다. 예를 들어, 프로세서(200)는, 검증 결과(RST)에 포함된 검출된 에러의 종류 및 에러의 내용을 기초로, 제1 데이터(DATA1) 및 제2 데이터(DATA2) 중 수정이 필요한 데이터를 수정함으로써 검출된 에러를 교정할 수 있다.
또한 일 실시 예에서, 프로세서(200)는 제1 데이터(DATA1), 제2 데이터(DATA2) 및 검증 결과(RST)를 기초로, 에러가 교정된 설계 데이터를 출력할 수도 있는데, 여기서 설계 데이터란 사용자의 설계의 내용에 따라 반도체 칩을 생산하는 데에 직접적으로 이용되는 설계 정보를 나타낼 수 있다. 예를 들어, 설계 데이터는 반도체 칩에 입출력 셀들을 배치하기 위한 구체적인 설계 데이터들, 예컨대, 칩 레이아웃 설계 정보를 포함할 수 있다.
또한 일 실시 예에서, 프로세서(200)는 검증 결과(RST)에 포함된 에러의 종류 및 에러의 내용을 기초로, 제1 데이터(DATA1) 및/또는 제2 데이터(DATA2)에 대한 에러 교정 방법에 대한 정보를 포함하는 교정 정보를 생성할 수 있고, 교정 정보를 컴퓨팅 장치(10)의 외부로 출력할 수 있다. 일 실시 예에서, 프로세서(200)는 컴퓨팅 장치(10)에 포함된 디스플레이 등의 표시 장치를 통해 교정 정보를 컴퓨팅 장치(10)의 사용자, 즉 반도체 칩의 설계자에게 알릴 수 있다. 반도체 칩의 설계자는 교정 정보를 기초로 입출력 셀들에 대한 배치 에러를 교정할 수 있고, 교정된 내용을 바탕으로 반도체 칩을 생산할 수 있다.
본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)에 따르면, 복수의 입출력 셀들의 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터(DATA1) 및 복수의 입출력 셀들과 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터(DATA2)를 병합할 수 있고, 병합된 데이터를 기초로 입출력 셀 배치에 관한 단락 에러(short error), 개방 에러(float error) 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출할 수 있다.
또한, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)는, 에러에 대한 정보를 포함하는 검증 결과(RST)를 출력함으로써, 컴퓨팅 장치(10)의 사용자가 반도체 칩 설계 상의 에러를 알 수 있도록 도울 수 있다. 이로써 반도체 칩의 설계자는, 설계자의 직접적인 개입 없이도 반도체 칩의 입출력 인터페이스에 대한 설계 오류를 검출해낼 수 있다. 이로써 입출력 인터페이스에 대한 설계 오류를 찾아내는 데 소요되는 시간 및 비용을 절감할 수 있으며, 오류를 더욱 정확히 찾아낼 수 있다.
나아가, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)는, 검증 결과(RST)를 기초로 제1 데이터(DATA1) 및/또는 제2 데이터(DATA2)에 대한 에러 교정 방법을 컴퓨팅 장치(10)의 사용자에게 알림으로써 사용자인 설계자가 에러를 올바르게 교정할 수 있도록 도울 수 있다.
또한 나아가, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)가, 검증 결과를 기초로 제1 데이터(DATA1) 및/또는 제2 데이터(DATA2)를 수정함으로써, 설계 오류를 설계자의 개입 없이 직접적으로 시정할 수도 있다.
도 2는 본 개시의 예시적 실시 예에 따른 반도체 칩(1000)을 나타낸다. 도 2는 특히, 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법에 따라 생산되는 반도체 칩(1000)을 나타낼 수 있다. 도 2에 개시된 반도체 칩(1000) 또는 입출력 인터페이스(1100) 등의 구체적인 모양이나 개수 등은 설명을 위한 편의적인 것일 뿐, 이에 그 내용이 제한되는 것은 아니라는 점을 일러둔다.
반도체 칩(1000)은 외부로부터 전원을 공급받거나, 외부로부터 데이터 및/또는 제어 신호를 수신하거나, 외부로 데이터를 출력하는 데 이용되는 입출력 인터페이스(1100)를 포함할 수 있다. 또한, 일 실시 예에서, 입출력 인터페이스(1100)는 외부로부터 입력되는 전압을 기초로 반도체 칩(1000) 내부 회로에서 필요로 하는 동작 전압을 생성할 수 있고, 동작 전압을 반도체 칩(1000) 내부 회로들에 제공할 수 있다. 일 실시 예에서, 입출력 인터페이스(1100)는, 내부 회로들과 반도체 칩(1000) 외부 사이의 인터페이스를 제공하기 위해, 반도체 칩(1000)을 둘러싸는 형태로 반도체 칩(1000) 상에 구현될 수 있다. 또한, 일 실시 예에서, 입출력 인터페이스(1100)는 복수의 입출력 셀들을 포함할 수 있다. 복수의 입출력 셀들은 적어도 하나의 파워 라인을 통해 전압 또는 전력을 공급받을 수 있으며, 적어도 하나의 신호 라인을 통해 제어 신호를 공급받을 수 있다. 이에 따라, 적어도 하나의 파워 라인 각각에는 파워 소스가 연결되어야 하며 적어도 하나의 신호 라인에는 제어 신호가 공급되어야 한다. 적어도 하나의 파워 라인 및 적어도 하나의 신호 라인이 입출력 셀들을 따라 연결된 형태는, 입출력 셀들이 배치된 형태와 유사한 형태를 띌 수 있으므로, 링(ring)의 형태를 가질 수 있고, 이는 파워 라인 링 및/또는 신호 라인 링이라고 칭해질 수 있다.
예시적으로, 입출력 인터페이스(1100)에 포함된 복수의 입출력 셀들은 입출력 셀(1120)을 포함할 수 있다. 입출력 셀(1120)은 입출력 셀(1120)의 적어도 하나의 핀을 통해 적어도 하나의 파워 라인에 연결될 수 있으며, 적어도 하나의 핀을 통해 적어도 하나의 신호 라인에 연결될 수 있다. 예를 들어, 입출력 셀(1120)은 제1 신호 라인(SL1), 제1 파워 라인(PL1) 및 제2 파워 라인(PL2)에 연결될 수 있다. 파워 라인 및 신호 라인의 개수는 예시적인 것일 뿐, 이에 제한되는 것은 아니다. 본 명세서에서, 파워 라인은 다양한 종류의 구동 전압(VDD, VSS) 또는 전력을 전달하기 위한 라인을 나타내며, 신호 라인은 제어 신호들을 전달하기 위한 라인을 나타내는 것으로 이해될 수 있다. 또한, 앞서 설명한 바와 같이, 적어도 하나의 신호 라인 및 적어도 하나의 파워 라인은 전체로서 파워 및 신호 라인들이라 칭해질 수 있다. 다시 말해, 파워 및 신호 라인들은 적어도 하나의 파워 라인 및 적어도 하나의 제어 신호 라인을 포함할 수 있다.
입출력 셀(1120)은 제1 신호 라인(SL1)을 통해 다른 입출력 셀에 제어 신호를 제공하거나 다른 입출력 셀로부터 제어 신호를 제공받을 수 있다. 또한, 입출력 셀(1120)은 제1 파워 라인(PL1) 및 제2 파워 라인(PL2)을 통해 다른 입출력 셀에 전압 또는 전원을 제공하거나 다른 입출력 셀로부터 전압 또는 전원을 제공받을 수 있다.
설명의 예시로서, 제1 신호 라인(SL1)은, 설계자의 입출력 셀의 배치에 따라, 복수의 입출력 셀들에 연결될 수 있으며, 이렇게 연결된 제1 신호 라인(SL1)의 단위를 신호 라인 링이라 칭할 수 있다. 또한, 제1 파워 라인(PL1)은, 설계자의 입출력 셀의 배치에 따라, 복수의 입출력 셀들에 연결될 수 있으며, 이렇게 연결된 제1 파워 라인(PL1)의 단위를 파워 라인 링이라 칭할 수 있다.
위와 같이 정의된 하나의 파워 라인 링에는 전압 또는 전력을 제공하기 위한 한 종류의 파워 소스가 존재해야 한다. 따라서, 하나의 파워 라인 링에 두 종류의 파워 소스들이 연결되도록 입출력 셀들의 배치를 설계하는 것은 파워 라인에 단락(short)을 유발할 수 있고, 파워 라인의 고장을 유발할 수 있다. 예를 들어, 하나의 파워 라인 링에 전압(VDD)을 제공하는 파워 소스와 전압(VSS)을 제공하는 파워 소스가 연결된 경우, 해당 파워 라인에 단락으로 인해 고장이 발생할 수 있다. 마찬가지로, 위와 같이 정의된 신호 라인 링에는 제어 신호를 제공하기 위한 한 종류의 제어 신호 제공자가 존재해야 한다. 따라서, 하나의 신호 라인 링에 두 종류의 제어 신호 제공자들이 연결되도록 입출력 셀들의 배치를 설계하는 것은 신호 라인에 단락을 유발할 수 있고, 신호 라인의 고장을 유발할 수 있다. 이들을 입출력 셀들의 배치에 관한 단락 에러라 칭하기로 한다.
또한 마찬가지로, 하나의 파워 라인 링에 어떠한 파워 소스도 연결되지 않은 것은 파워 라인이 플로팅 되도록(float) 만들 수 있고, 이는 입출력 셀들의 정상적인 동작을 저해할 수 있다. 이는 입출력 셀들의 배치에 관한 개방 에러라 칭하기로 한다.
또한 일 실시 예에서, 도 10b를 참조해 보다 자세히 설명되는 바와 같이, 서로 다른 라이브러리(또는 카테고리)에 속하는 입출력 셀들이 하나의 파워 라인 링 또는 하나의 신호 라인 링에 연결되는 경우, 인접한 입출력 셀들 사이의 핀이 서로 맞지가 않는 것에 기인하여 입출력 셀들의 라우팅(routing)이 불완전하게 수행될 수 있다. 이와 같이, 서로 다른 라이브러리에 속하는 적어도 2개의 입출력 셀들이 하나의 파워 라인 링 또는 하나의 신호 라인 링에 연결되는 것을 입출력 셀들의 이종 라이브러리 에러라 칭하기로 한다.
위와 같은, 단락 에러, 개방 에러 및 라이브러리 에러는 입출력 셀들의 반도체 칩(1000) 상의 배치 설계 단계에서 검출될 필요가 있다.
도 3은 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다. 도 3은 도 1을 함께 참조하여 설명된다.
컴퓨팅 장치(10)는 복수의 입출력 셀들의 칩 상의 배치에 관한 정보를 포함하는 제1 데이터(DATA1)를 획득할 수 있다(S120). 일 실시 예에서, 제1 데이터(DATA1)는 반도체 칩 상의 복수의 핀 네임(pin name)들에 대응되는 복수의 입출력 셀들에 대한 정보를 포함할 수 있다. 여기서 핀 네임이란, 일 실시 예에서, 반도체 칩 상에서 입출력 셀들이 배치되는 위치에 관한 정보를 나타낼 수 있다. 일 실시 예에서, 제1 데이터(DATA1)는 핀 파일(pin file)이라 칭해질 수도 있으며, 설계자에 의해 설정되거나, 설계자에 의해 제공될 수 있다. 제1 데이터(DATA1)의 일 실시 예에 대해서는 도 5를 참조하여 보다 자세히 이해될 수 있다.
컴퓨팅 장치(10)는 복수의 입출력 셀들과 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터(DATA2)를 획득할 수 있다(S140). 일 실시 예에서, 제2 데이터(DATA2)는 복수의 입출력 셀들에 대응되는 복수의 행들 및 복수의 파워 및 신호 라인들에 대응되는 복수의 열들을 포함하는 행렬을 포함할 수 있으며, 상기 행렬의 요소(element) 각각은 행에 대응되는 입출력 셀이 열에 대응되는 파워 라인 또는 신호 라인에 연결되었는지 여부, 또는 대응되는 입출력 셀이 대응되는 파워 라인 또는 신호 라인에 공급하는 파워 소스의 종류 또는 제어 신호의 종류를 나타내는 데이터를 포함할 수 있다. 일 실시 예에서, 제2 데이터(DATA2)는 설계자에 의해 제공될 수 있다. 제2 데이터(DATA2)의 일 실시 예에 대해서는 도 6 및 도 11a를 참조하여 보다 자세히 이해될 수 있다.
컴퓨팅 장치(10)는 제1 데이터(DATA1) 및 제2 데이터(DATA2)를 매칭하는 것에 기초하여 입출력 셀 배치의 에러를 검출함으로써 검증 결과(RST)를 출력할 수 있다(S160). 예를 들어, 컴퓨팅 장치(10)는 제1 데이터(DATA1) 및 제2 데이터(DATA2)를 매칭(또는 병합)함으로써 병합된 데이터를 생성할 수 있고, 병합된 데이터를 기초로 단락 에러, 개방 에러 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출할 수 있다. 컴퓨팅 장치(10)는 검출된 에러에 대한 정보를 포함하는 검증 결과(RST)를 생성함으로써 검증 결과(RST)를 출력할 수 있다. S160 단계에 대해서는 이하의 도 4를 참조하여 보다 자세히 설명된다.
본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)에 따르면, 복수의 입출력 셀들의 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터(DATA1) 및 복수의 입출력 셀들과 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터(DATA2)를 병합할 수 있고, 병합된 데이터를 기초로 입출력 셀 배치에 관한 단락 에러(short error), 개방 에러(float error) 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출할 수 있다.
또한, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)는, 에러에 대한 정보를 포함하는 검증 결과(RST)를 출력함으로써, 컴퓨팅 장치(10)의 사용자가 반도체 칩 설계 상의 에러를 알 수 있도록 도울 수 있다. 이로써 반도체 칩의 설계자는, 설계자의 직접적인 개입 없이도 반도체 칩의 입출력 인터페이스에 대한 설계 오류를 검출해낼 수 있다. 이로써 입출력 인터페이스에 대한 설계 오류를 찾아내는 데 소요되는 시간 및 비용을 절감할 수 있으며, 오류를 더욱 정확히 찾아낼 수 있다.
나아가, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)는, 검증 결과(RST)를 기초로 제1 데이터(DATA1) 및/또는 제2 데이터(DATA2)에 대한 에러 교정 방법을 컴퓨팅 장치(10)의 사용자에게 알림으로써 사용자인 설계자가 에러를 올바르게 교정할 수 있도록 도울 수 있다.
또한 나아가, 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(10)가, 검증 결과를 기초로 제1 데이터(DATA1) 및/또는 제2 데이터(DATA2)를 수정함으로써, 설계 오류를 설계자의 개입 없이 직접적으로 시정할 수도 있다.
도 4는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다. 도 4는 특히 도 3의 S160 단계의 세부 순서도를 나타내는 것일 수 있다. 도 4는 도 1을 함께 참조하여 설명된다.
컴퓨팅 장치(10)는 제1 데이터(DATA1)에 포함된 복수의 입출력 셀들 각각에 대해, 제2 데이터(DATA2) 중 대응되는 입출력 셀에 대한 라우팅 정보를 병합함으로써 병합된 데이터를 획득할 수 있다(S162). 예를 들어, 컴퓨팅 장치(10)는 제1 데이터(DATA1) 내 복수의 입출력 셀들 각각에 대해, 제2 데이터(DATA2)에 포함된 행렬에서 대응되는 입출력 셀에 대응되는 행을 병합함으로써 병합된 데이터를 획득할 수 있다.
컴퓨팅 장치(10)는 병합된 데이터를 기초로 단락 에러, 개방 에러 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출할 수 있다(S164). 단락 에러를 검출하는 방법에 대해서는 이하의 도 8a 내지 도 8c를 참조하여 보다 자세히 설명되며, 개방 에러를 검출하는 방법에 대해서는 이하의 도 9a 및 도 9b를 참조하여 보다 자세히 설명되며, 이종 라이브러리 에러를 검출하는 방법에 대해서는 이하의 도 10a 내지 도 10c를 참조하여 보다 자세히 설명된다.
컴퓨팅 장치(10)는 검출된 에러에 관한 정보를 포함하는 검증 결과(RST)를 출력할 수 있다(S166). 예를 들어, 검증 결과(RST)는 S164에서 검출된 에러의 종류 및 에러의 내용을 포함할 수 있으며, 에러의 내용은 에러가 발생한 파워 라인 링 또는 신호 라인 링 및/또는 입출력 셀들의 이름에 대한 정보를 포함할 수 있다. 일 실시 예에서, 컴퓨팅 장치(10)는 검증 결과(RST)에 포함된 에러의 종류 및 에러의 내용을 기초로 제1 데이터(DATA1) 및 제2 데이터(DATA2) 중 교정이 필요한 적어도 하나의 데이터를 교정할 수도 있다. 또한 일 실시 예에서, 컴퓨팅 장치(10)는 검증 결과(RST)에 포함된 에러의 종류 및 에러의 내용을 기초로, 컴퓨팅 장치(10)의 사용자에게 에러 교정 방법을 알릴 수 있다. 다시 말해, 일 실시 예에서, 컴퓨팅 장치(10)는 검증 결과(RST)를 기초로 발생한 에러의 교정 방법을 컴퓨팅 장치(10)의 사용자에게 가이드(guide)할 수 있다.
도 5는 본 개시의 예시적 실시 예에 따른 제1 데이터(DATA1)를 나타낸다. 도 5에 개시된 제1 데이터(DATA1)의 구체적인 내용은 설명의 편의를 위한 예시적인 것일 뿐이다.
제1 데이터(DATA1)는 복수의 입출력 셀들의 칩 상의 배치에 관한 정보를 포함할 수 있다. 예를 들어, 제1 데이터(DATA1)는 반도체 칩 상의 핀 네임들에 대응되는 복수의 입출력 셀들에 대한 정보를 포함할 수 있다.
예를 들어, 제1 데이터(DATA1)는 제1 입출력 셀(CELL_1)이 제1 핀(PIN_1)에 대응되도록 배치되고, 제2 입출력 셀(CELL_2)이 제2 핀(PIN_2)에 대응되도록 배치되고, 마찬가지로 귀납적 방식에 따라 제k 입출력 셀(CELL_k)이 제k 핀(PIN_k)에 대응되도록 배치된다는 정보를 포함할 수 있다(단, k는 2 이상의 자연수).
일 실시 예에서, 제1 데이터(DATA1)는 복수의 핀 네임들에 대응되는 복수의 입출력 셀들에 대한 정보를 행렬의 형태로 가질 수 있다.
도 6은 본 개시의 예시적 실시 예에 따른 제2 데이터(DATA2)를 나타낸다. 도 6에 개시된 제2 데이터(DATA2)의 구체적인 내용은 설명의 편의를 위한 예시적인 것일 뿐이다.
제2 데이터(DATA2)는 복수의 입출력 셀들과 복수의 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함할 수 있다. 예를 들어, 제2 데이터(DATA2)는 복수의 입출력 셀들(CELL_1, …, CELL_k)에 대응되는 복수의 행들 및 복수의 파워 및 신호 라인들(PSL1, …, PSLm)에 대응되는 복수의 열들을 포함하는 행렬을 포함할 수 있다(단, k 및 m은 각각 2 이상의 자연수이며, 서로 독립적임). 여기서, 파워 및 신호 라인들(PSL1, …, PLSm)은 적어도 하나의 파워 라인 및 적어도 하나의 신호 라인을 포함할 수 있다. 여기서, 행렬의 요소 각각은, 행에 대응되는 입출력 셀이 열에 대응되는 파워 라인 또는 신호 라인에 연결되었는지 여부(Connected or Disconnected), 해당 존재하지 않는지(Not exist), 또는 대응되는 입출력 셀이 대응되는 파워 라인 또는 신호 라인에 공급하는 파워 소스의 종류 또는 제어 신호의 종류를 나타내는 데이터를 포함할 수 있다.
도 6을 참조하면, 제1 파워 및 신호 라인(PSL1)에는 제1 입출력 셀(CELL_1), 제2 입출력 셀(CELL_2) 및 제k 입출력 셀(CELL_k)이 연결되어 있을 수 있다. 제2 파워 및 신호 라인(PSL2)에는 제1 입출력 셀(CELL_1) 및 제k 입출력 셀(CELL_k)이 연결되어 있으며, 제2 입출력 셀(CELL_2)이 제2 파워 및 신호 라인(PSL2)에 전원(VDD)을 공급할 수 있다. 한편, 제1 입출력 셀(CELL_1)에는 제m 파워 및 신호 라인(PSLm)에 대응되는 핀이 존재하지 않을 수 있으며, 제m 파워 및 신호 라인(PSLm)에는 제2 입출력 셀(CELL_2) 및 제k 입출력 셀(CELL_k)이 연결되어 있을 수 있다.
도 7은 본 개시의 예시적 실시 예에 따른 병합된 데이터(DATA_M)를 나타낸다. 도 7에 개시된 병합된 데이터(DATA_M)의 구체적인 내용은 설명의 편의를 위한 예시적인 것일 뿐이다. 예를 들어, 도 7은 도 5의 제1 데이터(DATA1)와 도 6의 제2 데이터(DATA2)가 병합됨으로써 생성된 병합된 데이터(DATA_M)를 도시할 수 있다. 한편, 도 5와 도 6을 함께 살피면, 복수의 입출력 셀들이 동일한 순서로 정렬되어 있는 것을 확인할 수 있는데, 이는 설명의 편의를 위한 것이며, 실제로 제2 데이터(DATA2) 내 열에서 복수의 입출력 셀들이 포함된 순서는 제1 데이터(DATA1) 내 열에서 복수의 입출력 셀들이 포함된 순서와 다를 수 있다. 따라서, 컴퓨팅 장치(10)가 제1 데이터(DATA1)와 제2 데이터(DATA2)에 포함된 입출력 셀들을 매칭하는 과정이 필수적으로 요구되는 것이다. 도 7은 도 1, 도 5 및 도 6을 함께 참조하여 설명된다.
컴퓨팅 장치(10)는 제1 데이터(DATA1)에 포함된 복수의 입출력 셀들 각각에 대해, 제2 데이터(DATA2) 내에서 대응되는 입출력 셀에 대응되는 행을 제1 데이터(DATA1)에 병합함으로써 병합된 데이터(DATA_M)을 획득할 수 있다.
컴퓨팅 장치(10)은 이와 같은 과정을 통해 생성된 병합된 데이터(DATA_M)를 이용해 단락 에러, 개방 에러 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출할 수 있는데, 에러 검출 방법에 대해 이하의 도면을 참조해 보다 상세히 설명하도록 한다.
도 8a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다. 도 8a는 특히, 도 4의 S164 단계 중 반도체 칩 설계 중 발생한 단락 에러를 검출하는 방법의 순서도를 나타내는 것일 수 있다. 도 8a는 도 1을 함께 참조하여 설명된다.
컴퓨팅 장치(10)는, 병합된 데이터를 이용하여, 복수의 파워 및 신호 라인들 각각에 대응되는 복수의 열들을 스캔할 수 있다(S220). 예컨대, 도 7을 함께 참조하면, 컴퓨팅 장치(10)는 병합된 데이터(DATA_M)에서 제1 파워 및 신호 라인(PSL1) 내지 제m 파워 및 신호 라인(PSLm)에 대응되는 열들을 모두 스캔할 수 있다.
컴퓨팅 장치(10)는, 대응되는 열에 포함된 링 각각에 서로 다른 둘 이상의 파워 소스가 공급되는지 여부를 판단할 수 있다(S240). 여기서, 열에 포함된 링이란, 파워 및 신호 라인이 연결되지 않은 제1 셀로부터 파워 및 신호 라인이 연결되지 않은 다른 제2 셀까지의 경로를 의미할 수 있다. 파워 및 신호 라인 각각은 하나의 링만을 포함할 수 있지만, 복수의 링들을 포함할 수 있다.
컴퓨팅 장치(10)는, 대응되는 열에 포함된 하나의 링 내 서로 다른 적어도 두 종류의 파워 소스들 또는 적어도 두 종류의 제어 신호들이 공급되는 것에 응답하여, 반도체 칩 설계에 단락 에러가 발생했다고 판단할 수 있으며, 단락 에러에 관한 정보를 포함하는 검증 결과(RST)를 출력할 수 있다(S260). 예를 들어, 검증 결과(RST)는, 단락 에러가 존재한다는 점을 나타내는 데이터, 단락 에러가 발생한 파워 및 신호 라인에 대한 정보 및 단락 에러가 발생한 입출력 셀에 대한 정보 중 적어도 하나를 포함할 수 있다.
컴퓨팅 장치(10)가 단락 에러를 검출하는 과정에 대해 이하의 도 8b를 참조하여 설명된다.
도 8b는 본 개시의 예시적 실시 예에 따른 병합된 데이터(DATA_M) 및 단락 에러 검출의 예시를 나타낸다. 도 8b에 도시된 병합된 데이터(DATA_M)의 구체적인 내용들은 설명의 편의를 위한 예시적인 것임을 일러둔다. 또한, 비제한적인 예시로서, 복수의 파워 및 신호 라인들은 제1 파워 라인(PL1), 제2 파워 라인(PL2), 제3 파워 라인(PL3), 제4 파워 라인(PL4) 및 제1 신호 라인(SL1)을 포함할 수 있다. 도 8b는 도 1 및 도 8a를 함께 참조하여 설명된다.
컴퓨팅 장치(10)는 병합된 데이터(DATA_M)에서 제1 파워 라인(PL1) 내지 제4 파워 라인(PL4) 및 제1 신호 라인(SL1)에 대응되는 열들을 스캔할 수 있다.
제1 파워 라인(PL1)은 하나의 신호 라인 링으로 구성되어 있으며, 제1 파워 라인(PL1)에는 제3 입출력 셀(CELL_3)에 의해 전원(VDD)이 공급되고 있으므로 단락 에러가 발생하지 않은 것이다. 제2 파워 라인(PL2) 및 제4 파워 라인(PL4) 에 대해서도 유사한 방식에 의해 이해될 수 있다. 또한, 제1 신호 라인(SL1)에는 제2 입출력 셀(CELL_2)에 의해 전원(VDD)이 공급되고 있으므로 단락 에러가 발생하지 않은 것이다.
하지만, 제3 파워 라인(PL3)은 하나의 파워 라인 링으로 구성되어 있는데, 제3 파워 라인(PL3)에 포함된 파워 라인 링에는 제4 입출력 셀(CELL_3)에 의해 전원(VSS0)가 공급됨과 동시에 제7 입출력 셀(CELL_7)에 의해 전원(DVSS)이 공급되고 있다. 따라서, S240 단계에서, 컴퓨팅 장치(10)는 제3 파워 라인(PL3)에 단락 에러가 발생했다고 판단할 수 있다. 이에 따라, S260 단계에서, 컴퓨팅 장치(10)는 단락 에러가 발생하였다는 점을 나타내는 정보, 제3 신호 라인(SL3)에 대한 정보, 제4 입출력 셀(CELL_4) 및 제7 입출력 셀(CELL_7)에 대한 정보를 포함하는 검증 결과(RST)를 출력할 수 있다.
도 8c는 본 개시의 예시적 실시 예에 따른 병합된 데이터(DATA_M)를 나타낸다. 도 8c는 도 8b와 비교하여 단락 에러가 발생하지 않는 경우를 도시한다. 도 8c는 도 1을 함께 참조하여 설명된다.
도 8c는 도 8b와의 차이점을 중심으로 설명된다.
제3 파워 라인(PL3)은 두 개의 신호 라인 링을 포함할 수 있다. 예를 들어, 제3 파워 라인(PL3)은 제2 입출력 셀(CELL_2)내지 제4 입출력 셀(CELL_4)이 연결된 제1 링 및 제6 입출력 셀(CELL_6) 내지 제8 입출력 셀(CELL_8)이 연결된 제2 링을 포함할 수 있다.
도 8c를 참조하면, 제3 파워 라인(PL3)에는 전원(VSS0) 및 전원(DVSS)이 모두 공급되지만, 전원(VSS0)은 제1 링에만 제공이 되고, 전원(DVSS)은 제2 링에만 제공이 되는 것이므로, 단락 에러가 발생하지 않는다. 즉, 단락 에러가 발생하였는지 여부는, 하나의 신호 라인 내에서도 신호 라인 링 별로 판단되어야 하는 것이다.
도 9a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다. 도 9a는 특히, 도 4의 S164 단계 중 반도체 칩 설계 중 발생한 개방 에러를 검출하는 방법의 순서도를 나타내는 것일 수 있다. 도 9a는 도 1을 함께 참조하여 설명된다.
컴퓨팅 장치(10)는, 병합된 데이터를 이용하여, 복수의 파워 및 신호 라인들 각각에 대응되는 복수의 열들을 스캔할 수 있다(S320). 예컨대, 도 7을 함께 참조하면, 컴퓨팅 장치(10)는 병합된 데이터(DATA_M)에서 제1 파워 및 신호 라인(PSL1) 내지 제m 파워 및 신호 라인(PSLm)에 대응되는 열들을 모두 스캔할 수 있다.
컴퓨팅 장치(10)는, 대응되는 열에 포함된 링 각각에 연결된 파워 소스가 존재하는지 여부를 판단할 수 있다(S340). 여기서, 열에 포함된 링이란, 파워 및 신호 라인이 연결되지 않은 제1 셀로부터 파워 및 신호 라인이 연결되지 않은 다른 제2 셀까지의 경로를 의미할 수 있다. 파워 및 신호 라인 각각은 하나의 링만을 포함할 수 있지만, 복수의 링들을 포함할 수 있다.
컴퓨팅 장치(10)는, 파워 라인에 대응되는 열에 포함된 하나의 링 내 연결된 파워 소스가 존재하지 않는 것에 응답하여(또는 하나의 링에 파워 소스가 공급되지 않는 것에 응답하여), 반도체 칩 설계에 개방 에러가 발생했다고 판단할 수 있으며, 개방 에러에 관한 정보를 포함하는 검증 결과(RST)를 출력할 수 있다(S360). 또는 마찬가지로, 컴퓨팅 장치(10)는, 신호 라인에 대응되는 열에 포함된 하나의 링 내 연결된 제어 신호 공급자가 존재하지 않는 것에 응답하여, 반도체 칩 설계에 개방 에러가 발생했다고 판단할수 있다. 예를 들어, 검증 결과(RST)는, 개방 에러가 존재한다는 점을 나타내는 데이터, 개방 에러가 발생한 파워 라인 또는 신호 라인에 대한 정보 및 개방 에러가 발생한 입출력 셀에 대한 정보 중 적어도 하나를 포함할 수 있다.
컴퓨팅 장치(10)가 개방 에러를 검출하는 과정에 대해 이하의 도 9b를 참조하여 설명된다.
도 9b는 본 개시의 예시적 실시 예에 따른 병합된 데이터(DATA_M) 및 개방 에러 검출의 예시를 나타낸다. 도 9b에 도시된 병합된 데이터(DATA_M)의 구체적인 내용들은 설명의 편의를 위한 예시적인 것임을 일러둔다. 도 9b는 도 1 및 도 9a를 함께 참조하여 설명된다.
컴퓨팅 장치(10)는 병합된 데이터(DATA_M)에서 제1 파워 라인(PL1) 내지 제4 파워 라인(PL4) 및 제1 신호 라인(SL1)에 대응되는 열들을 스캔할 수 있다.
제1 파워 라인(PL1)은 하나의 신호 라인 링으로 구성되어 있으며, 제1 파워 라인(PL1)에는 제3 입출력 셀(CELL_3)에 의해 전원(VDD)이 공급되고 있으므로 개방 에러가 발생하지 않은 것이다. 제2 파워 라인(PL2), 제3 파워 라인(PL3) 및 제4 파워 라인(PL4)에 대해서도 유사한 방식에 의해 이해될 수 있다.
제1 신호 라인(SL1)을 스캔할 때, 제1 신호 라인(SL1)에는 어떠한 제어 신호 공급자도 연결되어 있지 않으며, 제1 신호 라인(SL1)에 어떠한 제어 신호 등이 제공되지 않는다. 따라서, S340 단계에서, 컴퓨팅 장치(10)는 제1 신호 라인(SL1)에 개방 에러가 발생했다고 판단할 수 있다. 이에 따라, S360 단계에서, 컴퓨팅 장치(10)는 개방 에러가 발생하였다는 점을 나타내는 정보, 제1 신호 라인(SL1)에 대한 정보를 포함하는 검증 결과(RST)를 출력할 수 있다.
도 10a는 본 개시의 예시적 실시 예에 따른 반도체 칩 설계 방법의 순서도를 나타낸다. 도 10a는 특히, 도 4의 S164 단계 중 반도체 칩 설계 중 발생한 이중 라이브러리 에러를 검출하는 방법의 순서도를 나타내는 것일 수 있다. 도 10a는 도 1을 함께 참조하여 설명된다.
컴퓨팅 장치(10)는, 병합된 데이터를 이용하여, 복수의 파워 및 신호 라인들 각각에 대응되는 복수의 열들을 스캔할 수 있다(S420). 예컨대, 도 7을 함께 참조하면, 컴퓨팅 장치(10)는 병합된 데이터(DATA_M)에서 제1 파워 및 신호 라인(PSL1) 내지 제m 파워 및 신호 라인(PSLm)에 대응되는 열들을 모두 스캔할 수 있다.
컴퓨팅 장치(10)는, 대응되는 열에 포함된 링 각각에 연결된 입출력 셀들 중 서로 다른 라이브러리에 대응되는 둘 이상의 입출력 셀들이 있는지 여부를 판단할 수 있다(S440). 여기서, 열에 포함된 링이란, 파워 및 신호 라인이 연결되지 않은 제1 셀로부터 파워 및 신호 라인이 연결되지 않은 다른 제2 셀까지의 신호 라인 경로를 의미할 수 있다. 파워 및 신호 라인 각각은 하나의 링만을 포함할 수 있지만, 복수의 링들을 포함할 수 있다.
컴퓨팅 장치(10)는, 대응되는 열에 포함된 하나의 링 내 서로 다른 라이브러리들에 대응되는 입출력 셀들이 포함된 것에 응답하여, 반도체 칩 설계에 이중 라이브러리 에러가 발생했다고 판단할 수 있으며, 라이브러리 에러에 관한 정보를 포함하는 검증 결과(RST)를 출력할 수 있다(S460). 예를 들어, 검증 결과(RST)는, 이중 라이브러리 에러가 존재한다는 점을 나타내는 데이터, 이중 라이브러리 에러가 발생한 신호 라인에 대한 정보 및 이중 라이브러리 에러가 발생한 입출력 셀에 대한 정보 중 적어도 하나를 포함할 수 있다.
컴퓨팅 장치(10)가 단락 에러를 검출하는 과정에 대해 이하의 도 10c를 참조하여 설명된다.
도 10b는 이종 라이브러리에 속하는 입출력 셀들을 하나의 링 내에 연결한 경우 발생할 수 있는 문제점을 설명하기 위한 도면이다.
도 10b는, 설명의 편의를 위해, 파워 및 신호 라인들이 제1 파워 라인(PL1), 제2 파워 라인(PL2) 및 제1 신호 라인(SL1)을 포함하는 실시 예를 도시한다.
도 10b를 참조하면, 제1 입출력 셀(1121) 및 제2 입출력 셀(1122)는 제1 라이브러리(LIB 1)에 속할 수 있으며, 제3 입출력 셀(1123)은 제2 라이브러리(LIB 2)에 속할 수 있다. 같은 라이브러리에 속하는 입출력 셀들은 서로 사이즈가 동일할 수 있으며, 파워 및 신호 라인들이 연결되는 핀의 위치가 동일할 수 있다. 일 실시 예에서, 일부 라이브러리들의 경우, 서로 다른 라이브러리에 속하는 입출력 셀들은 서로 사이즈가 상이할 수 있으며, 파워 및 신호 라인들이 연결되는 핀의 위치가 상이할 수 있다. 예를 들어, 제3 입출력 셀(1123)의 사이즈는 제1 입출력 셀(1121) 및 제2 입출력 셀(1122)의 사이즈와 상이할 수 있으며, 제3 입출력 셀(1123)에서 파워 및 신호 라인들이 연결되는 핀의 위치들은 제1 입출력 셀(1121) 및 제2 입출력 셀(1122)에서 파워 및 신호 라인들이 연결되는 핀의 위치들과 상이할 수 있다.
따라서, 도 10b와 같이, 서로 상이한 라이브러리에 속하는 입출력 셀들이 하나의 링에 연결되는 경우, 입출력 셀의 배치에 오류가 발생하는 것이다.
도 10c는 본 개시의 예시적 실시 예에 따른 병합된 데이터(DATA_M) 및 이종 라이브러리 에러 검출의 예시를 나타낸다. 도 10c에 도시된 병합된 데이터(DATA_M)의 구체적인 내용들은 설명의 편의를 위한 예시적인 것임을 일러둔다. 도 10c는 도 1 및 도 10a를 함께 참조하여 설명된다.
도 10c를 참조하면, 병합된 데이터(DATA_M)는 각각의 입출력 셀들이 속하는 라이브러리에 대한 정보를 더 포함할 수 있다. 이를 위한 컴퓨팅 장치 및/또는 데이터의 구성에 대해서는 도 11a 및 도 11b를 참조하여 설명된다.
컴퓨팅 장치(10)는 S420 단계에 따라 병합된 데이터(DATA_M)에서 제1 파워 라인(PL1) 내지 제4 파워 라인(PL4) 및 제1 신호 라인(SL1)에 대응되는 열들을 스캔할 수 있다.
제1 신호 라인(SL1)에는 제2 입출력 셀(CELL_2) 내지 제6 입출력 셀(CELL_6)이 하나의 신호 라인 링 내에 연결될 수 있다. 근데, 하나의 신호 라인 링에 속하는 입출력 셀들 중 제2 입출력 셀(CELL_2) 내지 제5 입출력 셀(CELL_5) 및 제7 입출력 셀(CELL_5)은 제1 라이브러리(LIB 1)에 속하는 반면, 제6 입출력 셀(CELL_6)은 제2 라이브러리(LIB 2)에 속한다. 따라서, S440 단계에서, 컴퓨팅 장치(10)는 이종 라이브러리 에러가 발생했다고 판단할 수 있다. 이에 따라, S460 단계에서, 컴퓨팅 장치(10)는 이종 라이브러리 에러에 관한 정보를 포함하는 검증 결과(RST)를 출력할 수 있다.
도 11a 및 도 11b는 본 개시의 예시적 실시 예에 따른 컴퓨팅 장치(20a, 20b)를 나타낸다. 도 11a 및 도 11b는 특히, 도 10a 및 도 10c를 참조한 이종 라이브러리 에러를 검출하는 데에 필요한 컴퓨팅 장치의 동작 및 구성을 나타낸다. 도 11a 및 도 11b는 도 1과의 차이점을 중심으로 설명된다.
도 11a를 참조하면, 컴퓨팅 장치(20a)는 도 1과 마찬가지로 제1 데이터(DATA1) 및 제2 데이터(DATA2)를 획득하고, 제1 데이터(DATA1) 및 제2 데이터(DATA2)를 기초로 검증 결과(RST)를 출력할 수 있다. 다만, 도 1과 달리, 제2 데이터(DATA2)는 복수의 입출력 셀들에 대응되는 복수의 라이브러리 정보들을 더 포함할 수 있다.
도 11b를 참조하면, 컴퓨팅 장치(20b)는 도 1과 달리, 제1 데이터(DATA1), 제2 데이터(DATA2) 및 제3 데이터(DATA3)를 획득하고, 제1 데이터(DATA1), 제2 데이터(DATA2) 및 제3 데이터(DATA3)를 기초로 검증 결과(RST)를 출력할 수 있다. 여기서, 제3 데이터(DATA3)는 복수의 입출력 셀들에 대응되는 복수의 라이브러리 정보들을 포함할 수 있다. 컴퓨팅 장치(20b)는 제1 데이터(DATA1), 제2 데이터(DATA2) 및 제3 데이터(DATA3)를 병합함으로써 도 10c와 같은 병합된 데이터(DATA_M)를 생성할 수 있다.
도 12는 본 개시의 예시적 실시 예에 따른 링커 셀(1130)을 포함하는 입출력 셀들(1121, 1122, 1123, 1130)을 나타낸다. 도 12는, 도 10a 및 도 10c를 참조하여 입출력 셀들의 배치를 교정하는 특징을 설명하기 위한 도면이다. 도 12 역시 도 1을 함께 참조하여 설명된다.
도 10b를 참조하여 설명된 바와 같이, 서로 다른 라이브러리에 속하는 입출력 셀들이 직접적으로 연결된 경우 이종 라이브러리 에러를 유발한다. 이종 라이브러리 에러에 대한 정보를 포함하는 검증 결과(RST)가 출력된 경우, 컴퓨팅 장치(10)는 도 12와 같이 링커 셀(1130)을 이용하여 배치의 에러를 교정할 수 있다.
여기서 링커 셀(1130)이란 서로 다른 라이브러리에 속하는 입출력 셀들 사이에서 라우팅을 도와주는 역할을 셀을 의미할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들이 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (20)
- 반도체 칩을 설계하기 위한 방법으로서,
복수의 셀들의 상기 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터를 획득하는 단계;
적어도 하나의 파워 라인 및 적어도 하나의 제어 신호 라인을 포함하는 파워 및 신호 라인들과 상기 복수의 셀들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터를 획득하는 단계; 및
상기 제1 데이터 및 상기 제2 데이터를 매칭(match)하는 것에 기초하여 상기 복수의 셀들의 배치에 대한 에러를 검출함으로써 검증 결과를 출력하는 단계를 포함하는 방법. - 제1항에 있어서,
상기 검증 결과를 기초로, 상기 제1 데이터 및/또는 상기 제2 데이터를 수정(modify)하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 제1 데이터, 상기 제2 데이터 및 상기 검증 결과를 기초로 상기 반도체 칩을 생산하기 위한 설계 데이터를 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 검증 결과를 출력하는 단계는,
상기 제1 데이터에 포함된 상기 복수의 셀들 각각에 대해, 상기 제2 데이터 중 대응되는 셀에 대한 라우팅 정보를 병합함으로써 병합된 데이터를 획득하는 단계;
상기 병합된 데이터를 기초로 단락 에러, 개방 에러 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출하는 단계; 및
검출된 에러에 관한 정보를 포함하는 상기 검증 결과를 생성하는 단계를 포함하는 것을 특징으로 하는 방법. - 제4항에 있어서,
상기 제2 데이터는,
상기 복수의 셀들에 대응되는 복수의 행들(rows) 및 복수의 파워 및 신호 라인들에 대응되는 복수의 열들을 포함하는 행렬(matrix)을 포함하고,
상기 행렬의 요소들 각각은,
행에 대응되는 셀이 열에 대응되는 파워 라인 또는 신호 라인에 연결되었는지 여부, 또는 상기 대응되는 셀이 상기 대응되는 파워 라인 또는 신호 라인에 공급하는 파워 소스의 종류 또는 제어 신호의 종류를 나타내는 데이터를 포함하는 것을 특징으로 하는 방법. - 제5항에 있어서,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각에 서로 다른 적어도 두 종류의 파워 소스들이 연결되는 것에 응답하여 상기 단락 에러를 검출하는 단계를 포함하는 것을 특징으로 하는 방법. - 제5항에 있어서,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각에 연결된 파워 소스가 존재하지 않는 것에 응답하여 상기 개방 에러(float error)를 검출하는 단계를 포함하는 것을 특징으로 하는 방법. - 제5항에 있어서,
상기 제2 데이터는,
상기 복수의 셀들 각각에 대응되는 복수의 라이브러리 정보들을 더 포함하고,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 라이브러리 정보들을 기초로, 상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각 내에 서로 다른 라이브러리들에 대응되는 셀들이 있는지 여부를 체크하는 단계; 및
상기 대응되는 열에 포함된 링 각각 내에 서로 다른 라이브러리들에 대응되는 셀들이 포함된 것에 응답하여 상기 이종 라이브러리 에러를 검출하는 단계를 포함하는 것을 특징으로 하는 방법. - 제5항에 있어서,
상기 병합된 데이터를 획득하는 단계는,
상기 복수의 셀들 각각에 대응되는 복수의 라이브러리 정보들을 포함하는 제3 데이터, 상기 제1 데이터 및 상기 제2 데이터를 병합함으로써 상기 병합된 데이터를 획득하는 것을 특징으로 하고,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 라이브러리 정보들을 기초로, 상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각 내에 서로 다른 라이브러리들에 대응되는 셀들이 있는지 여부를 체크하는 단계; 및
상기 대응되는 열에 포함된 링 각각 내에 서로 다른 라이브러리들에 대응되는 셀들이 포함된 것에 응답하여 상기 이종 라이브러리 에러를 검출하는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 검증 결과에 포함된 에러의 종류 및 에러의 내용을 기초로, 상기 제1 데이터 및/또는 상기 제2 데이터에 대한 에러 교정(correction) 방법에 대한 정보를 포함하는 교정 정보를 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 반도체 칩을 설계하기 위한 방법으로서,
복수의 셀들의 상기 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터를 획득하는 단계;
상기 복수의 셀들과 파워 소스들 사이의 라우팅에 관한 정보 및 상기 복수의 셀들에 대응되는 복수의 라이브러리 정보들을 포함하는 제2 데이터를 획득하는 단계;
상기 제1 데이터에 포함된 상기 복수의 셀들 각각에 대해, 상기 제2 데이터 중 대응되는 셀에 대한 라우팅 정보를 병합함으로써 병합된 데이터를 획득하는 단계;
상기 병합된 데이터를 기초로 단락 에러, 개방 에러 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출하는 단계; 및
검출된 에러에 관한 정보를 포함하는 검증 결과를 출력하는 단계를 포함하는 방법. - 제11항에 있어서,
상기 제2 데이터는,
상기 복수의 셀들에 대응되는 복수의 행들(rows) 및 복수의 파워 및 신호 라인들에 대응되는 복수의 열들을 포함하는 행렬(matrix)을 포함하고,
상기 행렬의 요소들 각각은,
행에 대응되는 셀이 열에 대응되는 파워 라인 또는 신호 라인에 연결되었는지 여부, 또는 상기 대응되는 셀이 상기 대응되는 파워 라인 또는 신호 라인에 공급하는 파워 소스의 종류 또는 제어 신호의 종류를 나타내는 데이터를 포함하는 것을 특징으로 하는 방법. - 제12항에 있어서,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각에 서로 다른 적어도 두 개의 파워 소스들이 연결되는 것에 응답하여 상기 단락 에러를 검출하는 단계를 포함하는 것을 특징으로 하는 방법. - 제12항에 있어서,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각에 연결된 파워 소스가 존재하지 않는 것에 응답하여 상기 개방 에러(float error)를 검출하는 단계를 포함하는 것을 특징으로 하는 방법. - 제12항에 있어서,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 라이브러리 정보들을 기초로, 상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각 내에 서로 다른 라이브러리들에 대응되는 셀들이 있는지 여부를 체크하는 단계; 및
상기 대응되는 열에 포함된 링 각각 내에 서로 다른 라이브러리들에 대응되는 셀들이 포함된 것에 응답하여 상기 이종 라이브러리 에러를 검출하는 단계를 포함하는 것을 특징으로 하는 방법. - 컴퓨팅 장치로서,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서에 의해 실행되는 경우, 상기 가열 장치가 다음을 수행하도록 하는 인스트럭션들을 저장하는 메모리를 포함하고,
상기 인스트럭션들은, 상기 컴퓨팅 장치가
복수의 셀들의 상기 반도체 칩 상의 배치에 관한 정보를 포함하는 제1 데이터를 획득하는 단계;
상기 복수의 셀들과 적어도 하나의 파워 라인 및 적어도 하나의 신호 라인을 포함하는 파워 및 신호 라인들 사이의 라우팅에 관한 정보를 포함하는 제2 데이터를 획득하는 단계; 및
상기 제1 데이터 및 상기 제2 데이터를 매칭(match)하는 것에 기초하여 상기 복수의 셀들의 배치에 대한 에러를 검출함으로써 검증 결과를 출력하는 단계를 수행하도록 하는 것을 특징으로 하는 컴퓨팅 장치. - 제16항에 있어서,
상기 검증 결과를 출력하는 단계는,
상기 제1 데이터에 포함된 상기 복수의 셀들 각각에 대해, 상기 제2 데이터 중 대응되는 셀에 대한 라우팅 정보를 병합함으로써 병합된 데이터를 획득하는 단계;
상기 병합된 데이터를 기초로 단락 에러, 개방 에러 및 이종 라이브러리 에러 중 적어도 하나의 에러를 검출하는 단계; 및
검출된 에러에 관한 정보를 포함하는 상기 검증 결과를 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨팅 장치. - 제17항에 있어서,
상기 제2 데이터는,
상기 복수의 셀들에 대응되는 복수의 행들(rows) 및 복수의 파워 및 신호 라인들에 대응되는 복수의 열들을 포함하는 행렬(matrix)을 포함하고,
상기 행렬의 요소들 각각은,
행에 대응되는 셀이 열에 대응되는 파워 라인 또는 신호 라인에 연결되었는지 여부, 또는 상기 대응되는 셀이 상기 대응되는 파워 라인 또는 신호 라인에 공급하는 파워 소스의 종류 또는 제어 신호의 종류를 나타내는 데이터를 포함하는 것을 특징으로 하는 컴퓨팅 장치. - 제18항에 있어서,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각에 서로 다른 적어도 두 개의 파워 소스들이 연결되는 것에 응답하여 상기 단락 에러를 검출하는 단계를 포함하는 것을 특징으로 하는 컴퓨팅 장치. - 제18항에 있어서,
상기 적어도 하나의 에러를 검출하는 단계는,
상기 병합된 데이터에서, 상기 복수의 파워 및 신호 라인들 각각에 대응되는 상기 복수의 열들을 스캔하는 단계; 및
상기 복수의 열들 각각에 대해, 대응되는 열에 포함된 링 각각에 연결된 파워 소스가 존재하지 않는 것에 응답하여 상기 개방 에러(float error)를 검출하는 단계를 포함하는 것을 특징으로 하는 컴퓨팅 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200086439A KR20220008171A (ko) | 2020-07-13 | 2020-07-13 | 반도체 칩 설계 방법 및 그것을 수행하기 위한 컴퓨팅 장치 |
US17/171,267 US11409941B2 (en) | 2020-07-13 | 2021-02-09 | Semiconductor chip design method and computing device for performing the same |
TW110117488A TW202203068A (zh) | 2020-07-13 | 2021-05-14 | 設計半導體晶片的方法、計算裝置及非暫態電腦可讀取記錄媒體 |
CN202110537915.6A CN113935278A (zh) | 2020-07-13 | 2021-05-18 | 设计半导体芯片的方法和用于执行该方法的计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200086439A KR20220008171A (ko) | 2020-07-13 | 2020-07-13 | 반도체 칩 설계 방법 및 그것을 수행하기 위한 컴퓨팅 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220008171A true KR20220008171A (ko) | 2022-01-20 |
Family
ID=79173722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200086439A KR20220008171A (ko) | 2020-07-13 | 2020-07-13 | 반도체 칩 설계 방법 및 그것을 수행하기 위한 컴퓨팅 장치 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11409941B2 (ko) |
KR (1) | KR20220008171A (ko) |
CN (1) | CN113935278A (ko) |
TW (1) | TW202203068A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220008171A (ko) * | 2020-07-13 | 2022-01-20 | 삼성전자주식회사 | 반도체 칩 설계 방법 및 그것을 수행하기 위한 컴퓨팅 장치 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557572A (en) * | 1992-04-24 | 1996-09-17 | Nippon Steel Corporation | Non-volatile semiconductor memory device |
JPH0677403A (ja) * | 1992-08-26 | 1994-03-18 | Mitsubishi Electric Corp | 半導体集積回路装置及びその設計方法 |
US5991308A (en) * | 1995-08-25 | 1999-11-23 | Terayon Communication Systems, Inc. | Lower overhead method for data transmission using ATM and SCDMA over hybrid fiber coax cable plant |
JP2004047829A (ja) | 2002-07-12 | 2004-02-12 | Toshiba Corp | 半導体装置の接続端子設計装置、半導体装置の接続端子設計方法、及び半導体装置の接続端子設計プログラム |
US7103862B2 (en) * | 2004-03-23 | 2006-09-05 | Taiwan Semiconductor Manufacturing Company | Method to design and verify an integrated circuit device with multiple power domains |
JP2006084421A (ja) | 2004-09-17 | 2006-03-30 | Fujitsu Ltd | 半導体集積回路装置のi/oセルチェック方式 |
JP2009140225A (ja) | 2007-12-06 | 2009-06-25 | Toshiba Corp | 半導体集積回路の設計支援方法及び装置 |
US8037442B2 (en) | 2008-11-26 | 2011-10-11 | Synopsys, Inc. | Method and apparatus for scaling I/O-cell placement during die-size optimization |
US9135373B1 (en) | 2010-04-12 | 2015-09-15 | Cadence Design Systems, Inc. | Method and system for implementing an interface for I/O rings |
TW201346760A (zh) | 2012-05-07 | 2013-11-16 | Realtek Semiconductor Corp | 檢查晶片設計中輸入輸出元件是否有連線錯誤的方法及相關的電腦可讀媒體 |
CN103343681B (zh) | 2013-06-24 | 2015-08-05 | 宝鸡石油机械有限责任公司 | 基于ipc与plc的钻机集成双环网络耦合控制*** |
DE112018006743T5 (de) * | 2017-12-30 | 2020-10-01 | Intel Corporation | Verfahren und geräte für drahtlose kommunikationen |
KR20220008171A (ko) * | 2020-07-13 | 2022-01-20 | 삼성전자주식회사 | 반도체 칩 설계 방법 및 그것을 수행하기 위한 컴퓨팅 장치 |
-
2020
- 2020-07-13 KR KR1020200086439A patent/KR20220008171A/ko unknown
-
2021
- 2021-02-09 US US17/171,267 patent/US11409941B2/en active Active
- 2021-05-14 TW TW110117488A patent/TW202203068A/zh unknown
- 2021-05-18 CN CN202110537915.6A patent/CN113935278A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202203068A (zh) | 2022-01-16 |
US20220012403A1 (en) | 2022-01-13 |
CN113935278A (zh) | 2022-01-14 |
US11409941B2 (en) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204698B2 (en) | Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic | |
KR102294127B1 (ko) | 누설 전류 감지 장치 및 이를 포함하는 비휘발성 메모리 장치 | |
US8103920B2 (en) | Memory system configured by using a nonvolatile semiconductor memory | |
US10296405B2 (en) | Nonvolatile memory system and error determination method thereof | |
US8572538B2 (en) | Reconfigurable logic block | |
KR20170059219A (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 복구 검증 방법 | |
CN109308228A (zh) | 存储器***和存储器模块的操作方法以及存储器控制器 | |
KR101337812B1 (ko) | 프로그램 실패 후에 액세스 가능한 정보를 갖는 메모리 버퍼 | |
US20080184065A1 (en) | Methods and apparatus for employing redundant arrays to configure non-volatile memory | |
US9224501B2 (en) | Method of operating memory device, memory device using the same, and memory system including the device | |
US20100195411A1 (en) | Semiconductor memory device and fail bit detection method in semiconductor memory device | |
US7870471B2 (en) | Methods and apparatus for employing redundant arrays to configure non-volatile memory | |
US9437327B2 (en) | Combined rank and linear address incrementing utility for computer memory test operations | |
KR20220008171A (ko) | 반도체 칩 설계 방법 및 그것을 수행하기 위한 컴퓨팅 장치 | |
US9760509B2 (en) | Memory storage device and control method thereof and memory control circuit unit and module | |
EP4312219A2 (en) | Memory system, operating method of the same, and controller of memory device | |
KR20170035540A (ko) | 전력 공급 회로 및 이를 포함하는 저장 장치 | |
US20150199201A1 (en) | Memory system operating method providing hardware initialization | |
US9165686B2 (en) | Test mediation device, system for testing memory device and method for testing memory device | |
KR20110010381A (ko) | 자체 수리 기능을 포함하는 반도체 메모리 장치 및 그것의 자체 수리 방법 | |
US10579470B1 (en) | Address failure detection for memory devices having inline storage configurations | |
US11404135B1 (en) | Runtime identification of bad memory cells based on difference between data pattern and read data | |
JP6051548B2 (ja) | 自動配置配線装置および自動配置配線方法 | |
US11789813B2 (en) | Memory device crossed matrix parity | |
US20240012748A1 (en) | Circuitry for Memory Address Collision Prevention |