KR102634706B1 - 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법 - Google Patents

데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법 Download PDF

Info

Publication number
KR102634706B1
KR102634706B1 KR1020230070266A KR20230070266A KR102634706B1 KR 102634706 B1 KR102634706 B1 KR 102634706B1 KR 1020230070266 A KR1020230070266 A KR 1020230070266A KR 20230070266 A KR20230070266 A KR 20230070266A KR 102634706 B1 KR102634706 B1 KR 102634706B1
Authority
KR
South Korea
Prior art keywords
macro
placement
size
macros
integrated circuit
Prior art date
Application number
KR1020230070266A
Other languages
English (en)
Inventor
팜 투옌 르
윤도균
뉴엔휴
백승열
Original Assignee
주식회사 애자일소다
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 애자일소다 filed Critical 주식회사 애자일소다
Priority to KR1020230070266A priority Critical patent/KR102634706B1/ko
Application granted granted Critical
Publication of KR102634706B1 publication Critical patent/KR102634706B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/12Sizing, e.g. of transistors or gates

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Power Engineering (AREA)
  • Architecture (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법을 개시한다. 본 발명은 매크로의 배치가 가능한 위치를 강화학습을 통해 결정하여 아무것도 배치되지 않는 데드 스페이스의 발생을 최소화 할 수 있고, 효율적인 배치를 통해 반도체 칩의 크기를 감소시킬 수 있다.

Description

데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법{INTEGRATED CIRCUITS DESIGN APPARATUS AND METHOD FOR MINIMIZING DEAD SPACE}
본 발명은 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법에 관한 발명으로서, 더욱 상세하게는 매크로의 배치가 가능한 위치를 강화학습을 통해 결정하여 아무것도 배치되지 않는 데드 스페이스의 발생을 최소화하는 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법에 관한 것이다.
집적회로를 제작하기 위해서는 다양한 조건들을 만족시켜야 하고, 설계 단계에서 작업자들은 수작업으로 설계를 진행하고 있다.
작업자는 수작업을 통해 집적회로의 스탠다드 셀과 포트, 매크로들을 배치함에 있어 최적의 위치를 찾아 설계를 진행해야만 하여 작업 시간 및 인력이 증가하고, 업무 효율이 현저하게 낮아지는 문제점이 있다.
또한, 각 작업자마다 노하우가 다르기 때문에 양산 제품에 대한 결과물이 일관되지 않는 문제점이 있다.
강화 학습은 환경(environment)과 상호작용하며 목표를 달성하는 에이전트를 다루는 학습 방법으로서, 인공 지능 분야에서 많이 사용되고 있다.
도1은 일반적인 강화 학습 장치의 구성을 나타낸 블록도로서, 도 1에 나타낸 바와 같이, 에이전트(10)가 강화 학습 모델의 학습을 통해 액션(Action, 또는 행동) A를 결정하는 방법을 학습시키고, 각 액션인 A는 그 다음 상태(state) S에 영향을 끼치며, 성공한 정도는 보상(Reward) R로 측정할 수 있다.
즉, 보상은 강화 학습 모델을 통해 학습을 진행할 경우, 어떤 상태(State)에 따라 에이전트(10)가 결정하는 액션(행동)에 대한 보상 점수로서, 학습에 따른 에이전트(10)의 의사 결정에 대한 일종의 피드백이다.
환경(20)은 에이전트(10)가 취할 수 있는 행동, 그에 따른 보상 등 모든 규칙으로서, 상태, 액션, 보상 등은 모두 환경의 구성요소이고, 에이전트(10) 이외의 모든 정해진 것들이 환경이다.
이러한 강화 학습은 학습의 행동 주체인 강화 학습 에이전트(Agent)가 어떤 행동을 해야 더 많은 보상(Reward)을 받을지 알아내는 것을 목적으로 한다.
즉, 정해진 답이 없는 상태에서도 보상을 최대화시키기 위해 무엇을 할 것인가를 배우는 것으로서, 입력과 출력이 명확한 관계를 갖고 있는 상황에서 사전에 어떤 행위를 할 것인지 듣고 하는 것이 아니라, 시행착오를 거치면서 보상을 최대화시키는 것을 배우는 과정을 거친다.
최근 들어, 반도체 설계 데이터를 이용한 강화학습을 통해 반도체 소자를 배치하는 연구가 많이 이루어지고 있다.
도 2는 종래기술에 따른 강화학습을 이용하여 반도체 소자 배치를 자동으로 배치한 반도체 설계 데이터를 나타낸 예시도이다.
도 2와 같이, 강화학습을 이용한 반도체 소자의 설계 데이터는 사용자의 개입 없이 칩 캔버스(30)에 매크로, 스텐다드 셀, 포트 등의 배치를 자동으로 생성할 수 있다.
이러한, 자동화된 반도체 소자의 배치는 칩 캔버스(30)의 어디든 상관없이 매크로, 스텐다드 셀, 포트를 배치하거나 또는 보상을 통해 서로 가깝게 배치하도록 유도한다.
그러나 종래기술에 따른 반도체 소자의 배치는 자동화 배치를 통해 어디든 상관없이 가깝게만 배치하여 매크로뿐만 아니라 스텐다드 셀 조차 배치되지 않는 공간, 즉 아무것도 배치되지 않은 데드 스페이스(40, 41, 42, 43, 44, 45; Dead space)가 발생되는 문제점이 있다.
또한, 종래기술에 따른 반도체 소자의 배치는 데드 스페이스로 인한 공간의 낭비와, 그로 인한 반도체 칩의 크기가 증가하는 문제점이 있다.
한국 등록특허공보 등록번호 제10-2208989호(발명의 명칭: 강화 학습을 통한 디바이스 배치 최적화)
이러한 문제점을 해결하기 위하여, 본 발명은 매크로의 배치가 가능한 위치를 강화학습을 통해 결정하여 아무것도 배치되지 않는 데드 스페이스의 발생을 최소화하는 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여 본 발명의 일 실시 예는 데드 스페이스의 최소화를 위한 집적회로 설계 장치로서, 임의의 집적회로에 대한 넷리스트 데이터를 입력받아 파싱(Parsing)하고, 상기 파싱된 넷리스트 데이터를 기반으로 스탠다드 셀, 포트(Port) 및 매크로(Macros)에 대한 배치를 수행하되, 상기 매크로의 크기별로 분류하여 배치 대상 매크로의 크기가 이전에 배치한 매크로의 크기와 동일하면, 상기 배치 대상 매크로를 이전에 배치한 매크로의 인접한 주변에 배치하고, 상기 배치 대상 매크로의 크기가 이전에 배치한 매크로의 크기와 다르면, 상기 이전에 배치한 다른 크기의 매크로 중에서 첫 번째 배치된 매크로의 주변에 배치하는 배치 최적화부를 포함한다.
또한, 상기 실시 예에 따른 배치 최적화부는 배치 대상 매크로를 이전에 배치한 매크로 주변에 배치할 수 없으면, 이미 배치된 매크로 중에서 배치 가능한 임의의 매크로 주변에 배치하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 배치 최적화부는 매크로의 크기가 가장 큰 매크로부터 작은 크기의 매크로까지 순차적으로 배치하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 배치 최적화부는 배치 대상 매크로를 이전에 배치한 매크로의 상측, 하측, 좌측, 및 우측 중 어느 하나에 배치하는 것을 특징으로 한다.
또한, 본 발명의 일 실시 예는 데드 스페이스의 최소화를 위한 집적회로 설계 방법으로서, a) 배치 최적화부가 임의의 집적회로에 대한 넷리스트 데이터를 입력받아 파싱하고, 파싱된 넷리스트 데이터를 기반으로 스탠다드 셀, 포트 및 매크로에 대한 배치를 수행하되, 매크로의 크기별로 분류하여 첫 번째 매크로를 칩 캔버스의 임의의 위치에 배치하는 단계; b) 상기 배치 최적화부가 배치 대상 매크로를 선택하고, 선택된 배치 대상 매크로의 크기와 이전에 배치한 매크로의 크기를 비교하는 단계; 및 c) 상기 비교 결과, 매크로의 크기가 동일하면 상기 배치 최적화부는 배치 대상 매크로를 이전에 배치된 매크로의 주변에 배치하고, 매크로의 크기가 다르면 상기 이전에 배치한 다른 크기의 매크로 중에서 첫 번째 배치된 매크로의 주변에 상기 배치 대상 매크로를 배치하는 단계;를 포함한다.
또한, 상기 실시 예는 d) 배치 최적화부가 배치 대상 매크로를 이전에 배치한 매크로 주변에 배치할 수 없으면, 이미 배치된 매크로 중에서 배치 가능한 임의의 매크로 주변에 배치하는 단계;를 더 포함하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 a) 단계에서 배치되는 첫 번째 매크로는 매크로의 크기가 가장 큰 매크로 중에서 선택되는 임의의 매크로인 것을 특징으로 한다.
또한, 상기 실시 예에 따른 배치 최적화부가 배치 대상 매크로를 이전에 배치한 매크로의 상측, 하측, 좌측, 및 우측 중 어느 하나에 배치하는 것을 특징으로 한다.
본 발명은 매크로의 배치가 가능한 위치를 강화학습을 통해 결정하여 아무것도 배치되지 않는 데드 스페이스의 발생을 최소화 할 수 있는 장점이 있다.
또한, 본 발명은 효율적인 배치를 통해 반도체 칩의 크기를 감소시킬 수 있는 장점이 있다.
도 1은 일반적인 강화학습 장치의 구성을 나타낸 블록도.
도 2는 종래기술에 따른 강화학습을 이용하여 반도체 소자 배치를 자동으로 배치한 반도체 설계 데이터를 나타낸 예시도.
도 3은 본 발명의 일 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 장치를 나타낸 블록도.
도 4는 본 발명의 일 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 방법을 설명하기 위해 나타낸 흐름도.
도 5는 도 4의 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 방법의 매크로 배치 과정을 설명하기 위해 나타낸 예시도.
도 6은 도 4의 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 방법의 매크로 배치 과정을 설명하기 위해 나타낸 다른 예시도.
도 7은 도 4의 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 방법의 매크로 배치 과정을 설명하기 위해 나타낸 또 다른 예시도.
이하에서는 본 발명의 바람직한 실시 예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명하기로 한다.
본 발명의 실시를 위한 구체적인 내용을 설명하기에 앞서, 본 발명의 기술적 요지와 직접적 관련이 없는 구성에 대해서는 본 발명의 기술적 요지를 흩뜨리지 않는 범위 내에서 생략하였음에 유의하여야 할 것이다.
또한, 본 명세서 및 청구범위에 사용된 용어 또는 단어는 발명자가 자신의 발명을 최선의 방법으로 설명하기 위해 적절한 용어의 개념을 정의할 수 있다는 원칙에 입각하여 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다.
본 명세서에서 어떤 부분이 어떤 구성요소를 "포함"한다는 표현은 다른 구성요소를 배제하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
또한, "‥부", "‥기", "‥모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는 그 둘의 결합으로 구분될 수 있다.
또한, "적어도 하나의" 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법의 바람직한 실시예를 상세하게 설명한다.
도 3은 본 발명의 일 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 장치를 나타낸 블록도이다.
도 3을 참조하면, 본 발명의 일 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 장치(100)는 매크로의 배치가 가능한 위치를 강화학습을 통해 결정하여 아무것도 배치되지 않는 데드 스페이스의 발생을 최소화 하고, 효율적인 배치를 통해 반도체 칩의 크기가 감소될 수 있도록 배치 최적화부(110)를 포함하여 구성될 수 있다.
배치 최적화부(110)는 집적회로에 대한 넷리스트 데이터를 입력받아 파싱(Parsing)할 수 있다.
또한, 배치 최적화부(110)는 파싱된 넷리스트 데이터를 기반으로 스탠다드 셀, 포트(Port) 및 매크로(Macros)에 대한 배치를 수행할 수 있다.
또한, 배치 최적화부(110)는 매크로를 크기별로 분류하고, 분류된 매크로를 배치하되, 매크로의 크기에 따라 배치 가능한 위치를 결정하여 배치할 수 있고, 매크로의 크기는 매크로의 너비와 높이에 따라 분류될 수 있다.
또한, 배치 최적화부(110)는 배치 대상 매크로들 중에서 매크로의 크기가 가장 큰 임의의 매크로들을 분류하고, 분류된 매크로들 중에서 임의의 매크로를 첫 번째 매크로로 선택하여 칩 캔버스의 임의의 위치에 배치할 수 있다.
이때, 배치 최적화부(110)는 첫 번째 배치되는 매크로에 번호, 예를 들어 '0'을 인덱스로 부여할 수 있다.
또한, 배치 최적화부(110)는 다음 매크로를 배치할 경우, 배치 대상 매크로에 인덱스(예를 들어 '1')를 부여하고, 배치 대상 매크로의 크기와 이전에 배치한 매크로의 크기를 비교할 수 있다.
비교 결과, 매크로의 크기가 동일하면 배치 최적화부(110)는 배치 대상 매크로(인덱스 '1')를 이전에 배치한 매크로(인덱스 '0')의 인접한 주변에 배치할 수 있다.
여기서, 배치 대상 매크로는 이전에 배치한 매크로의 상측, 하측, 좌측, 및 우측 중 어느 하나에 인접한 주변에 배치될 수 있다.
또한, 배치 최적화부(110)는 배치 대상 매크로의 크기가 이전에 배치한 매크로의 크기와 다르면, 이전에 배치한 다른 크기의 매크로 중에서 첫 번째 배치된 매크로의 주변에 배치할 수 있다.
즉, 배치 최적화부(110)는 동일한 크기를 갖는 매크로는 이전에 배치된 매크로의 주변에 배치하고, 이전에 배치된 매크로와 다른 크기, 예를 들어 작은 크기를 갖는 매크로, 예를 들어 인덱스 '4'인 매크로를 배치하는 경우, 이전 배치한 매크로 중에서 첫 번째 매크로인 인덱스 '0'을 갖는 매크로의 주변에 배치한다.
또한, 배치 최적화부(110)는 인덱스 '4'인 매크로를 배치하면, 인덱스 '4'인 매크로를 해당 크기를 갖는 매크로의 첫 번째 매크로로 설정하고, 다음에 배치할 동일한 크기를 갖는 매크로(예를 들어, 인덱스 '5')는 인덱스 '4'인 첫 번째 매크로 주변에 배치한다.
또한, 배치 최적화부(110)는 인덱스 '5'와 동일한 크기의 매크로(예를 들어, 인덱스 '6')가 입력되면, 이전에 배치된 인덱스 '5'인 매크로 주변에 배치 대상인 인덱스 '6'의 매크로를 배치한다.
한편, 배치 최적화부(110)는 배치 대상 매크로를 이전에 배치한 매크로 주변에 배치할 수 없으면, 이미 배치된 매크로 중에서 배치 가능한 임의의 매크로 주변에 배치할 수 있다.
즉, 다음에 배치할 매크로의 배치 가능한 위치가 이전에 배치한 매크로 주변에 없는 경우, 이미 배치된 다른 매크로들 중에서 배치 가능한 임의의 매크로 주변에 배치할 수 있다.
또한, 배치 최적화부(110)는 매크로의 크기가 가장 큰 매크로부터 작은 크기의 매크로까지 순차적으로 모두 배치한다.
시뮬레이션부(120)는 배치 최적화부(110)에서 배치된 매크로 수, 매크로 정보(예를 들어 매크로 너비, 매크로 높이, 매크로 인덱스, 매크로 오리엔테이션 등), 인접 행렬(Adjacency matrix) 정보를 포함한 상태(State) 정보와, 강화학습 에이전트(130)로부터 제공된 액션(Action)을 기반으로 배치된 넷리스트의 시뮬레이션을 수행할 수 있다.
또한, 시뮬레이션부(120)는 강화학습 에이전트(130)의 의사결정에 대한 피드백으로 시뮬레이션 결과에 따라 집적회로에서의 와이어 길이, 혼잡도, 밀도를 포함한 배치 성능 정보와, 데드 스페이스 면적 정보에 기반하여 산출되는 보상(Reward) 정보를 제공할 수 있다.
강화학습 에이전트(130)는 시뮬레이션부(120)로부터 제공받은 상태 정보와 보상 정보를 기반으로 데드 스페이스가 최소화되도록 매크로 배치를 강화학습을 통해 학습한다.
또한, 강화학습 에이전트(130)는 강화학습을 통해 데드 스페이스를 최소화하기 위한 액션을 결정하여 시뮬레이션부(120)로 제공할 수 있다.
다음은 본 발명의 일 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 방법을 설명한다.
도 4는 본 발명의 일 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 방법을 설명하기 위해 나타낸 흐름도이고, 도 5 내지 도 7은 데드 스페이스의 최소화를 위한 집적회로 설계 방법의 매크로 배치 과정을 설명하기 위해 나타낸 예시도이다.
도 3 내지 도 7을 참조하면, 본 발명의 일 실시 예에 따른 데드 스페이스의 최소화를 위한 집적회로 설계 방법은 배치 최적화부(110)가 임의의 집적회로에 대한 넷리스트 데이터를 입력받아 파싱하고, 파싱된 넷리스트 데이터를 기반으로 스탠다드 셀, 포트 및 매크로에 대한 배치를 수행하되, 매크로의 크기별로 분류하여 첫 번째 매크로를 칩 캔버스(200)의 임의의 위치에 배치(S100)한다.
S100 단계에서, 배치 최적화부(110)는 매크로를 매크로의 너비와 높이에 따라 크기별로 분류하고, 분류된 매크로의 배치 가능한 위치를 결정하여 배치할 수 있다.
또한, 배치 최적화부(110)는 배치 대상 매크로들 중에서 매크로의 크기가 가장 큰 매크로를 분류하고, 분류된 매크로들 중에서 임의의 매크로를 첫 번째 매크로로 선택하여 칩 캔버스(200)의 임의의 위치에 배치할 수 있다.
이때, 배치 최적화부(110)는 첫 번째 배치되는 매크로 1(300)에 인덱스 '0'을 부여하여 배치할 수 있다.
계속해서, 배치 최적화부(110)는 다음에 배치할 매크로 1a(300a)를 선택(S200)하고, 선택한 배치 대상 매크로 1a(300a)에 인덱스 '1'을 부여한 다음, 배치 대상 매크로 1a(300a)의 크기와 이전에 배치한 매크로 1(300)의 크기를 비교할 수 있다.
또한, 배치 최적화부(110)는 동일한 크기의 매크로인지 확인하고, 동일한 크기의 매크로로 확인되면, 이전에 배치한 매크로 1(300) 주변인 상측, 하측, 좌측, 및 우측 중 어느 하나에 인접하여 매크로 1a(300a)의 배치가 가능한지 판단(S300)할 수 있다.
즉, 매크로 1(300) 주변인 배치 영역 1a(400), 배치 영역 1b(400a), 배치 영역 1c(400b)에 매크로 1a(300a)의 배치 가능한지 판단할 수 있다.
S300 단계의 판단 결과, 매크로의 크기가 동일하면 배치 최적화부(110)는 배치 대상 매크로 1a(300a)를 이전에 배치한 매크로 1(300)의 인접한 주변에 배치(S310)할 수 있다.
S300 단계 및 S310 단계를 통해 동일한 매크로 크기를 갖는 매크로 1b(300b), 매크로 1c(300c)를 순차적으로 배치할 수 있고, 배치 대상 매크로에는 순차적으로 인덱스를 부여할 수 있다.
한편, S300 단계의 판단 결과, 매크로 크기가 다른 경우, 예를 들면, S200 단계에서 S200 단계에서 선택된 매크로가 매크로 1(300)과 다른 크기의 매크로 2(310)인 경우, 배치 최적화부(110)는 이전에 배치한 다른 크기의 첫 번째 배치된 매크로 1(300) 주변에 매크로 2(310)를 배치할 수 있는지 여부를 판단(S400)할 수 있다.
즉, 매크로 1(300)의 주변인 배치 영역 2a(410)에 매크로 2(310)의 배치가 가능한지 판단할 수 있다.
S400 단계의 판단 결과, 매크로 1(300)의 주변에 매크로 2(310)의 배치가 가능하면, 배치 최적화부(110)는 배치 대상 매크로 2(310)를 매크로 1(300)의 배치 영역 2a(410)에 배치(S310)한다.
또한, 배치 최적화부(110)는 S300 단계 및 S310 단계를 통해 매크로 2(310)와 동일한 크기를 갖는 매크로들을 배치할 수 있고, 배치되는 매크로들에는 순차적으로 인덱스를 부여할 수 있다.
또한, S400 단계의 판단 결과, 배치 대상 매크로를 이전에 배치한 매크로 주변에 배치할 수 없으면, 이미 배치된 매크로 중에서 배치 가능한 임의의 매크로 주변에 배치(S500)할 수 있다.
즉, S500 단계에서, 배치 최적화부(110)는 매크로 3(320)과 같이 이전 매크로인 매크로 2a(310a) 주변에 배치 불가 영역(420', 420'a)이 발생되어 배치할 수 없으면, 이전에 배치된 매크로 1a(300a), 매크로 1b(300b), 매크로 1c(300c) … 등의 주변 영역인 배치 영역 3a(420), 배치 영역 3b(420a), 배치 영역 3c(420b), 배치 영역 3d(420c), 배치 영역 3e(420d), 배치 영역 3f(420e) 중 임의의 배치 영역에 매크로 3(320)을 배치한다.
계속해서, 배치 최적화부(110)는 마지막 매크로가 입력될 때까지 매크로 배치를 반복 수행(S600)한다.
따라서, 매크로의 배치가 가능한 위치를 강화학습을 통해 결정하여 칩 캔버스에 아무것도 배치되지 않는 데드 스페이스의 발생을 최소화 할 수 있고, 매크로의 효율적인 배치를 통해 반도체 칩의 크기를 감소시킬 수 있다.
상기와 같이, 본 발명의 바람직한 실시 예를 참조하여 설명하였지만 해당 기술 분야의 숙련된 당업자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
또한, 본 발명의 특허청구범위에 기재된 도면번호는 설명의 명료성과 편의를 위해 기재한 것일 뿐 이에 한정되는 것은 아니며, 실시예를 설명하는 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다.
또한, 상술된 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있으므로, 이러한 용어들에 대한 해석은 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
또한, 명시적으로 도시되거나 설명되지 아니하였다 하여도 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기재사항으로부터 본 발명에 의한 기술적 사상을 포함하는 다양한 형태의 변형을 할 수 있음은 자명하며, 이는 여전히 본 발명의 권리범위에 속한다.
또한, 첨부하는 도면을 참조하여 설명된 상기의 실시예들은 본 발명을 설명하기 위한 목적으로 기술된 것이며 본 발명의 권리범위는 이러한 실시예에 국한되지 아니한다.
100 : 설계 장치 110 : 배치 최적화부
120 : 시뮬레이터부 130 : 강화학습 에이전트
200 : 칩 캔버스 300 : 매크로 1
300a : 매크로 1a 300b : 매크로 1b
300c : 매크로 1c 300d : 매크로 1d
310 : 매크로 2 310a : 매크로 2a
320 : 매크로 3 400 : 배치영역 1a
400a : 배치영역 1b 400b : 배치영역 1c
410 : 배치영역 2a 420 : 배치영역 3a
420', 420'a : 배치 불가 영역 420a : 배치영역 3b
420b : 배치영역 3c 420c : 배치영역 3d
420d : 배치영역 3e 420e : 배치영역 3f

Claims (8)

  1. 임의의 집적회로에 대한 넷리스트 데이터를 입력받아 파싱(Parsing)하고, 상기 파싱된 넷리스트 데이터를 기반으로 스탠다드 셀, 포트(Port) 및 매크로(Macros)에 대한 배치를 수행하되,
    상기 매크로의 크기별로 분류하여 배치 대상 매크로의 크기가 이전에 배치한 매크로의 크기와 동일하면, 상기 배치 대상 매크로를 이전에 배치한 매크로의 인접한 주변에 배치하고,
    상기 배치 대상 매크로의 크기가 이전에 배치한 매크로의 크기와 다르면, 상기 이전에 배치한 다른 크기의 매크로 중에서 첫 번째 배치된 매크로의 주변에 배치하되,
    상기 다른 크기를 갖는 배치 대상 매크로는 해당 크기를 갖는 매크로의 첫 번째 매크로로 설정하며,
    다음에 배치할 매크로의 크기가 상기 설정된 해당 크기의 첫 번째 매크로와 동일한 크기를 갖는 매크로이면, 이전에 배치한 해당 크기를 갖는 매크로의 주변에 배치하는 배치 최적화부(110)를 포함하는 데드 스페이스의 최소화를 위한 집적회로 설계 장치.
  2. 제 1 항에 있어서,
    상기 배치 최적화부(110)는 배치 대상 매크로를 이전에 배치한 매크로 주변에 배치할 수 없으면, 이미 배치된 매크로 중에서 배치 가능한 임의의 매크로 주변에 배치하는 것을 특징으로 하는 데드 스페이스의 최소화를 위한 집적회로 설계 장치.
  3. 제 2 항에 있어서,
    상기 배치 최적화부(110)는 매크로의 크기가 가장 큰 매크로부터 작은 크기의 매크로까지 순차적으로 배치하는 것을 특징으로 하는 데드 스페이스의 최소화를 위한 집적회로 설계 장치.
  4. 제 2 항에 있어서,
    상기 배치 최적화부(110)는 배치 대상 매크로를 이전에 배치한 매크로의 상측, 하측, 좌측, 및 우측 중 어느 하나에 배치하는 것을 특징으로 하는 데드 스페이스의 최소화를 위한 집적회로 설계 장치.
  5. a) 배치 최적화부(110)가 임의의 집적회로에 대한 넷리스트 데이터를 입력받아 파싱하고, 파싱된 넷리스트 데이터를 기반으로 스탠다드 셀, 포트 및 매크로에 대한 배치를 수행하되, 매크로의 크기별로 분류하여 첫 번째 매크로를 칩 캔버스(200)의 임의의 위치에 배치하는 단계;
    b) 상기 배치 최적화부(110)가 배치 대상 매크로를 선택하고, 선택된 배치 대상 매크로의 크기와 이전에 배치한 매크로의 크기를 비교하는 단계; 및
    c) 상기 비교 결과, 매크로의 크기가 동일하면 상기 배치 최적화부(110)는 배치 대상 매크로를 이전에 배치된 매크로의 주변에 배치하고, 매크로의 크기가 다르면 상기 이전에 배치한 다른 크기의 매크로 중에서 첫 번째 배치된 매크로의 주변에 상기 배치 대상 매크로를 배치하되, 상기 다른 크기를 갖는 배치 대상 매크로는 해당 크기를 갖는 매크로의 첫 번째 매크로로 설정하며, 다음에 배치할 매크로의 크기가 상기 설정된 해당 크기의 첫 번째 매크로와 동일한 크기를 갖는 매크로이면, 이전에 배치한 해당 크기를 갖는 매크로의 주변에 배치하는 단계;를 포함하는 데드 스페이스의 최소화를 위한 집적회로 설계 방법.
  6. 제 5 항에 있어서,
    d) 상기 배치 최적화부(110)가 배치 대상 매크로를 이전에 배치한 매크로 주변에 배치할 수 없으면, 이미 배치된 매크로 중에서 배치 가능한 임의의 매크로 주변에 배치하는 단계;를 더 포함하는 것을 특징으로 하는 데드 스페이스의 최소화를 위한 집적회로 설계 방법.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기 a) 단계에서 배치되는 첫 번째 매크로는 매크로의 크기가 가장 큰 매크로 중에서 선택되는 임의의 매크로인 것을 특징으로 하는 데드 스페이스의 최소화를 위한 집적회로 설계 방법.
  8. 제 5 항 또는 제 6 항에 있어서,
    상기 배치 최적화부(110)가 배치 대상 매크로를 이전에 배치한 매크로의 상측, 하측, 좌측, 및 우측 중 어느 하나에 배치하는 것을 특징으로 하는 데드 스페이스의 최소화를 위한 집적회로 설계 방법.
KR1020230070266A 2023-05-31 2023-05-31 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법 KR102634706B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230070266A KR102634706B1 (ko) 2023-05-31 2023-05-31 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230070266A KR102634706B1 (ko) 2023-05-31 2023-05-31 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102634706B1 true KR102634706B1 (ko) 2024-02-13

Family

ID=89899413

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230070266A KR102634706B1 (ko) 2023-05-31 2023-05-31 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102634706B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013205A (ja) * 2002-06-03 2004-01-15 Nec Micro Systems Ltd 半導体集積回路のレイアウト方法
JP2006277668A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd レイアウト設計方法及びレイアウト設計装置
KR102208989B1 (ko) 2017-03-24 2021-01-28 구글 엘엘씨 강화 학습을 통한 디바이스 배치 최적화
KR102413005B1 (ko) * 2021-12-28 2022-06-27 주식회사 애자일소다 반도체 설계에서 사용자 학습 환경 기반의 강화학습 장치 및 방법
KR102474856B1 (ko) * 2021-11-18 2022-12-06 주식회사 마키나락스 인공지능 기반의 반도체 설계 자동화 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004013205A (ja) * 2002-06-03 2004-01-15 Nec Micro Systems Ltd 半導体集積回路のレイアウト方法
JP2006277668A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd レイアウト設計方法及びレイアウト設計装置
KR102208989B1 (ko) 2017-03-24 2021-01-28 구글 엘엘씨 강화 학습을 통한 디바이스 배치 최적화
KR102474856B1 (ko) * 2021-11-18 2022-12-06 주식회사 마키나락스 인공지능 기반의 반도체 설계 자동화 방법
KR102413005B1 (ko) * 2021-12-28 2022-06-27 주식회사 애자일소다 반도체 설계에서 사용자 학습 환경 기반의 강화학습 장치 및 방법

Similar Documents

Publication Publication Date Title
US7127686B2 (en) Method for validating simulation results of a system as well as equivalence comparison of digital circuits based on said method
US6249902B1 (en) Design hierarchy-based placement
US8527930B2 (en) Generating and using route fix guidance
US20240095434A1 (en) Layout context-based cell timing characterization
US8543965B1 (en) Methods, systems, and articles of manufacture for smart pattern capturing and layout fixing
US20010038612A1 (en) Automatic routing system for circuit layout
JP2004501439A (ja) 集積回路をパーティション化して、配置及び配線をするシステム
Young et al. Slicing floorplans with boundary constraints
KR102454202B1 (ko) 파티셔닝을 이용한 심층 강화학습 기반의 집적회로 설계 시스템 및 방법
KR102634706B1 (ko) 데드 스페이스의 최소화를 위한 집적회로 설계 장치 및 방법
Fontana et al. ILP-based global routing optimization with cell movements
US8006215B1 (en) Circuit clustering during placement
US7512922B1 (en) Methods of structured placement of a circuit design
US20230351087A1 (en) Using machine trained network during routing to modify locations of vias in an ic design
US20040010765A1 (en) Method and apparatus to optimize an integrated circuit design using transistor folding
US20230259689A1 (en) Automated transistor-level placement for design of integrated circuits
CN116306463A (zh) 芯片单元布局优化方法、装置、设备及可读存储介质
US20210365621A1 (en) Method and system for determining equivalence of design rule manual data and design rule checking data
KR102603130B1 (ko) 강화학습 기반의 면적 및 매크로 배치 최적화를 위한 설계 시스템 및 방법
US7496870B2 (en) Method of selecting cells in logic restructuring
KR102632950B1 (ko) 일반화 모델을 이용한 반도체 배치 시스템 및 방법
US8255856B1 (en) DC path checking in a hierarchical circuit design
KR102645072B1 (ko) 매크로의 핀 방향 최적화를 위한 후처리 장치 및 방법
US7451430B2 (en) Apparatus and method for generating transistor model
US6957406B1 (en) Analytical placement methods with minimum preplaced components

Legal Events

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