KR102644204B1 - Design Automation Method and System for CMOS Circuitry - Google Patents
Design Automation Method and System for CMOS Circuitry Download PDFInfo
- Publication number
- KR102644204B1 KR102644204B1 KR1020220163612A KR20220163612A KR102644204B1 KR 102644204 B1 KR102644204 B1 KR 102644204B1 KR 1020220163612 A KR1020220163612 A KR 1020220163612A KR 20220163612 A KR20220163612 A KR 20220163612A KR 102644204 B1 KR102644204 B1 KR 102644204B1
- Authority
- KR
- South Korea
- Prior art keywords
- layout
- coordinate system
- code
- cmos
- grid
- Prior art date
Links
- 238000013461 design Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004088 simulation Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 47
- 238000012795 verification Methods 0.000 claims description 11
- 239000002184 metal Substances 0.000 claims description 9
- 229910052751 metal Inorganic materials 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012938 design process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 150000002739 metals Chemical class 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- OENIXTHWZWFYIV-UHFFFAOYSA-N 2-[4-[2-[5-(cyclopentylmethyl)-1h-imidazol-2-yl]ethyl]phenyl]benzoic acid Chemical compound OC(=O)C1=CC=CC=C1C(C=C1)=CC=C1CCC(N1)=NC=C1CC1CCCC1 OENIXTHWZWFYIV-UHFFFAOYSA-N 0.000 description 1
- 102100027961 BAG family molecular chaperone regulator 2 Human genes 0.000 description 1
- 101000697872 Homo sapiens BAG family molecular chaperone regulator 2 Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/20—Design optimisation, verification or simulation
-
- 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
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/12—Sizing, 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)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
CMOS 기반 회로 설계 자동화 방법 및 시스템이 제시된다. 본 발명에서 제안하는 CMOS 기반 회로 설계 자동화 방법은 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성하는 단계 및 상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 단계를 포함한다. A CMOS-based circuit design automation method and system is presented. The CMOS-based circuit design automation method proposed in the present invention is a code-based final drawing using a template of an instance with guaranteed DRC (Design Rule Check) and a grid to be placed through CMOS circuit-based layout automation. It includes a step of generating and measuring specification values for the circuit by conducting post simulation based on the layout information of the generated drawing.
Description
본 발명은 CMOS 기반 회로 설계 자동화 방법 및 시스템에 관한 것이다.The present invention relates to a CMOS-based circuit design automation method and system.
반도체 회로 설계의 과정은 크게 프론트-엔드(Front-end)(Logical Design)과 백-엔드(Back-end)(Physical Design) 두 부류로 나뉜다. 두 부류 중에서 백-엔드 과정에서는 물리적 설계(Physical Design)가 진행된다. 완성된 디자인에 대해서 검증(Verification)하는 과정이 진행되는데, 이 과정에 대한 소요 시간은 대폭으로 증가했다. 그 이유는 디자인 룰(Design Rule)이 매우 엄격하고 직관적이지 않기 때문이다. 따라서, 이 룰을 만족하는 도면을 생성하기 위해서는 디자이너가 복잡한 배치 및 배선을 설계하는 과정을 거치고 최종적으로 디자인 룰을 만족 하게 설계해야 한다. 이러한 회로 설계의 과정은 많은 시간이 소요되며, 이는 새로운 시스템 아키텍쳐(System Architecture)를 연구하려는 디자이너의 능력을 감소 시킨다. 즉, 백-엔드 과정에서 설계 시간의 증가는 현재 반도체 설계 과정에서 매우 크리티컬(Critical)한 문제이다. 이를 개선하기 위해서 디자인 룰이 보장되는 레이아웃을 설계할 수 있도록 Python을 활용한 레이아웃 설계 자동화 시스템을 필요로 한다. The semiconductor circuit design process is largely divided into two categories: front-end (Logical Design) and back-end (Physical Design). Among the two categories, physical design is carried out in the back-end process. A verification process is underway for the completed design, and the time required for this process has increased significantly. The reason is that the design rules are very strict and unintuitive. Therefore, in order to create a drawing that satisfies this rule, the designer must go through a process of designing complex layout and wiring and ultimately design it to satisfy the design rule. This circuit design process takes a lot of time, which reduces the designer's ability to research new system architectures. In other words, the increase in design time in the back-end process is a very critical problem in the current semiconductor design process. To improve this, a layout design automation system using Python is needed to design a layout that guarantees design rules.
본 발명이 이루고자 하는 기술적 과제는 디자인 룰(Design Rule)을 보장하고 있는 템플릿(Template)을 사용 하고 추상 좌표계에서 그리드(Grid)를 기반으로 하는 배치 및 배선을 사용해서 Python 코드 기반 레이아웃 설계 자동화 방법 및 시스템을 제공하는데 있다.The technical problem to be achieved by the present invention is a Python code-based layout design automation method and method using a template that guarantees design rules and grid-based arrangement and wiring in an abstract coordinate system. The goal is to provide a system.
일 측면에 있어서, 본 발명에서 제안하는 CMOS 기반 회로 설계 자동화 방법은 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성하는 단계 및 상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 단계를 포함한다. In one aspect, the CMOS-based circuit design automation method proposed in the present invention is a code using a template of an instance where DRC (Design Rule Check) is guaranteed through CMOS circuit-based layout automation and a grid to be placed. It includes the step of generating a final drawing and performing post simulation based on the layout information of the generated drawing to measure specification values for the circuit.
상기 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성하는 단계는 코드 기반의 최종 도면의 레이아웃을 생성하기 위해 공정 및 소자 파라미터에 영향을 받지 않는 좌표계이며 실제 값이 아닌 특정 값을 추상화해서 나타내는 좌표계인 물리 좌표계의 값을 나타내는 추상 좌표계를 이용한다. The step of creating a code-based final drawing using a template of an instance with guaranteed DRC (Design Rule Check) and a grid to be placed through the CMOS circuit-based layout automation is the layout of the code-based final drawing. To create an abstract coordinate system that represents the values of the physical coordinate system, which is a coordinate system that is not affected by process and device parameters and abstracts and represents specific values rather than actual values, is used.
상기 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성하는 단계는 상기 템플릿 및 그리드의 로드를 생성하고, 인스턴스 생성 및 배치 코드를 작성하며, 와이어 생성 및 정해진 위치로 라우팅하는 함수를 작성하고, 해당되는 메탈에 핀을 생성하고, 작성한 코드를 레이아웃 파일로 추출한다. The step of creating a code-based final drawing using a template of an instance where DRC (Design Rule Check) is guaranteed through the CMOS circuit-based layout automation and a grid to be placed includes loading the template and grid. Create an instance, write an instance creation and placement code, write a function to create a wire and route it to a designated location, create a pin on the corresponding metal, and extract the written code into a layout file.
상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 단계는 상기 생성된 최종 도면의 레이아웃의 각 인스턴스에 대하여 DRC가 보장된 템플릿 및 그리드 기반 배치 및 배선 과정을 통해 포스트 시뮬레이션 진행 시 검증 과정에서의 시간 감축 효과를 가져올 수 있다. The step of measuring specification values for the circuit by performing post simulation based on the layout information of the generated drawing is a template and grid-based arrangement with guaranteed DRC for each instance of the layout of the generated final drawing. and wiring process can result in time reduction in the verification process during post-simulation.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 CMOS 기반 회로 설계 자동화 시스템은 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성하는 회로 설계부 및 상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 시뮬레이션 수행부를 포함한다.In another aspect, the CMOS-based circuit design automation system proposed in the present invention utilizes a template of an instance where DRC (Design Rule Check) is guaranteed and a grid to be placed through CMOS circuit-based layout automation. It includes a circuit design unit that generates a final drawing based on one code, and a simulation performance unit that performs post simulation based on layout information of the generated drawing to measure specification values for the circuit.
본 발명의 실시예들에 따르면 CMOS 회로 기반 D flip-flop의 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 추상적인 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 설계할 수 있다. 설계된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행해 타이밍 사양(timing specification) 값들을 측정할 수 있고, 이를 기반으로 직접 설계한 레이아웃의 도면을 통해 얻는 면적이나, 레이아웃 정보를 통해 얻은 시뮬레이션 값들을 비교하면서 자동화 시스템의 성능을 분석해본다.According to embodiments of the present invention, code-based design using a template of an abstract instance with guaranteed DRC (Design Rule Check) and a grid to be placed through layout automation of a CMOS circuit-based D flip-flop Final drawing can be designed. Post simulation can be performed based on the layout information of the designed drawing to measure timing specification values. Based on this, the area obtained through the drawing of the directly designed layout or simulation obtained through the layout information Analyze the performance of the automation system by comparing the values.
도 1은 본 발명의 일 실시예에 따른 CMOS 기반 회로 설계 자동화 시스템의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 CMOS 기반 회로 설계 자동화 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 트랜스미션 게이트 기반 D 플립플롭을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 상대적인 위치를 기반으로 하는 인스턴스 배치를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 DRC가 보장된 인스턴스 P-타입 및 N-타입 트랜지스터를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 CMOS 기반 회로 설계 자동화 시스템으로부터 생성된 레이아웃을 나타내는 도면이다.
도 7은 종래기술에 따른 방식대로 설계한 D_FF 레이아웃을 나타내는 도면이다. 1 is a diagram for explaining the configuration of a CMOS-based circuit design automation system according to an embodiment of the present invention.
Figure 2 is a flowchart illustrating a method for automating CMOS-based circuit design according to an embodiment of the present invention.
Figure 3 is a diagram showing a transmission gate-based D flip-flop according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating instance arrangement based on relative positions according to an embodiment of the present invention.
Figure 5 is a diagram showing instance P-type and N-type transistors with guaranteed DRC according to an embodiment of the present invention.
Figure 6 is a diagram showing a layout generated from a CMOS-based circuit design automation system according to an embodiment of the present invention.
Figure 7 is a diagram showing the D_FF layout designed according to the prior art.
대부분 레이아웃(Layout)의 DRC(Design Rule Check) 검증(Verification) 과정은 회로 설계자들의 설계 시간을 증가시키는 크리티컬(Critical)한 요인이 된다. 이러한 문제점을 개선하기 위해서 디자인 룰(Design Rule)을 보장하고 있는 템플릿(Template)을 사용 하고 추상 좌표계에서 그리드(Grid)를 기반으로 하는 배치 및 배선을 사용해서 Python 코드 기반 레이아웃 설계 자동화 시스템을 제안한다. In most cases, the layout's DRC (Design Rule Check) verification process is a critical factor that increases the design time of circuit designers. To improve these problems, we propose a Python code-based layout design automation system using a template that guarantees design rules and grid-based placement and wiring in an abstract coordinate system. .
본 방법을 사용해 트래스미션 게이트(Transmission Gate) D flip-flop의 레이아웃을 Cadence Virtuoso Tool에서 Python 기반 코드를 설계해 직접 생성하면서 해당 툴에서 설계한 레이아웃의 DRC 보장 여부를 확인한다. 또한, 코드 기반 레이아웃 도면과 직접 생성한 레이아웃 도면을 통해 면적을 비교하거나, 포스트 시뮬레이션(Post Simulation)을 진행하여 타이밍 사양(timing specification) 값들을 비교함으로써 자동화 시스템을 기반으로 생성된 레이아웃의 성능을 확인한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다. Using this method, the layout of the Transmission Gate D flip-flop is created directly by designing a Python-based code in Cadence Virtuoso Tool, and the DRC of the layout designed by the tool is checked. In addition, the performance of the layout created based on the automated system can be checked by comparing the area through code-based layout drawings and directly created layout drawings, or by comparing timing specification values by performing post simulation. do. Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
도 1은 본 발명의 일 실시예에 따른 CMOS 기반 회로 설계 자동화 시스템의 구성을 설명하기 위한 도면이다. 1 is a diagram illustrating the configuration of a CMOS-based circuit design automation system according to an embodiment of the present invention.
본 실시예에 따른 CMOS 기반 회로 설계 자동화 시스템(100)은 프로세서(110), 버스(120), 네트워크 인터페이스(130), 메모리(140) 및 데이터베이스(150)를 포함할 수 있다. 메모리(140)는 운영체제(141) 및 CMOS 기반 회로 설계 자동화 루틴(142)을 포함할 수 있다. 프로세서(110)는 회로 설계부(111) 및 시뮬레이션 수행부(112)를 포함할 수 있다. 다른 실시예들에서 CMOS 기반 회로 설계 자동화 시스템(100)은 도 1의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, CMOS 기반 회로 설계 자동화 시스템(100)은 디스플레이나 트랜시버(transceiver)와 같은 다른 구성요소들을 포함할 수도 있다.The CMOS-based circuit design automation system 100 according to this embodiment may include a processor 110, a bus 120, a network interface 130, a memory 140, and a database 150. The memory 140 may include an operating system 141 and a CMOS-based circuit design automation routine 142. The processor 110 may include a circuit design unit 111 and a simulation performance unit 112. In other embodiments, the CMOS-based circuit design automation system 100 may include more components than those of FIG. 1 . However, there is no need to clearly show most prior art components. For example, the CMOS-based circuit design automation system 100 may include other components such as a display or transceiver.
메모리(140)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(140)에는 운영체제(141)와 CMOS 기반 회로 설계 자동화 루틴(142)을 위한 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism, 미도시)을 이용하여 메모리(140)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체(미도시)를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 네트워크 인터페이스(130)를 통해 메모리(140)에 로딩될 수도 있다. The memory 140 is a computer-readable recording medium and may include a non-permanent mass storage device such as random access memory (RAM), read only memory (ROM), and a disk drive. Additionally, program codes for an operating system 141 and a CMOS-based circuit design automation routine 142 may be stored in the memory 140. These software components may be loaded from a computer-readable recording medium separate from the memory 140 using a drive mechanism (not shown). Such separate computer-readable recording media may include computer-readable recording media (not shown) such as floppy drives, disks, tapes, DVD/CD-ROM drives, and memory cards. In another embodiment, software components may be loaded into the memory 140 through the network interface 130 rather than a computer-readable recording medium.
버스(120)는 CMOS 기반 회로 설계 자동화 시스템(100)의 구성요소들간의 통신 및 데이터 전송을 가능하게 할 수 있다. 버스(120)는 고속 시리얼 버스(high-speed serial bus), 병렬 버스(parallel bus), SAN(Storage Area Network) 및/또는 다른 적절한 통신 기술을 이용하여 구성될 수 있다.Bus 120 may enable communication and data transfer between components of CMOS-based circuit design automation system 100. Bus 120 may be configured using a high-speed serial bus, parallel bus, storage area network (SAN), and/or other suitable communication technology.
네트워크 인터페이스(130)는 CMOS 기반 회로 설계 자동화 시스템(100)을 컴퓨터 네트워크에 연결하기 위한 컴퓨터 하드웨어 구성요소일 수 있다. 네트워크 인터페이스(130)는 CMOS 기반 회로 설계 자동화 시스템(100)을 무선 또는 유선 커넥션을 통해 컴퓨터 네트워크에 연결시킬 수 있다.The network interface 130 may be a computer hardware component for connecting the CMOS-based circuit design automation system 100 to a computer network. The network interface 130 can connect the CMOS-based circuit design automation system 100 to a computer network through a wireless or wired connection.
데이터베이스(150)는 CMOS 기반 회로 설계 자동화를 위해 필요한 모든 정보를 저장 및 유지하는 역할을 할 수 있다. 도 1에서는 CMOS 기반 회로 설계 자동화 시스템(100)의 내부에 데이터베이스(150)를 구축하여 포함하는 것으로 도시하고 있으나, 이에 한정되는 것은 아니며 시스템 구현 방식이나 환경 등에 따라 생략될 수 있고 혹은 전체 또는 일부의 데이터베이스가 별개의 다른 시스템 상에 구축된 외부 데이터베이스로서 존재하는 것 또한 가능하다.The database 150 may serve to store and maintain all information necessary for automation of CMOS-based circuit design. In Figure 1, it is shown that the database 150 is built and included inside the CMOS-based circuit design automation system 100, but it is not limited to this and may be omitted depending on the system implementation method or environment, or may be added in whole or in part. It is also possible for the database to exist as an external database built on another, separate system.
프로세서(110)는 기본적인 산술, 로직 및 CMOS 기반 회로 설계 자동화 시스템(100)의 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(140) 또는 네트워크 인터페이스(130)에 의해, 그리고 버스(120)를 통해 프로세서(110)로 제공될 수 있다. 프로세서(110)는 회로 설계부(111) 및 시뮬레이션 수행부(112)를 위한 프로그램 코드를 실행하도록 구성될 수 있다. 이러한 프로그램 코드는 메모리(140)와 같은 기록 장치에 저장될 수 있다.The processor 110 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations of the CMOS-based circuit design automation system 100. Commands may be provided to processor 110 by memory 140 or network interface 130 and via bus 120. The processor 110 may be configured to execute program codes for the circuit design unit 111 and the simulation performance unit 112. These program codes may be stored in a recording device such as memory 140.
회로 설계부(111) 및 시뮬레이션 수행부(112)는 도 2의 단계들(210~210)을 수행하기 위해 구성될 수 있다.The circuit design unit 111 and the simulation performance unit 112 may be configured to perform steps 210 to 210 of FIG. 2 .
CMOS 기반 회로 설계 자동화 시스템(100)은 회로 설계부(111) 및 시뮬레이션 수행부(112)를 포함할 수 있다.The CMOS-based circuit design automation system 100 may include a circuit design unit 111 and a simulation performance unit 112.
회로 설계부(111)는 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성한다. The circuit design unit 111 generates a code-based final drawing using a template of an instance with guaranteed DRC (Design Rule Check) and a grid to be placed through CMOS circuit-based layout automation.
회로 설계부(111)는 코드 기반의 최종 도면의 레이아웃을 생성하기 위해 공정 및 소자 파라미터에 영향을 받지 않는 좌표계이며, 실제 값이 아닌 특정 값을 추상화해서 나타내는 좌표계인 물리 좌표계의 값을 나타내는 추상 좌표계를 이용한다. The circuit design unit 111 uses an abstract coordinate system that represents the values of the physical coordinate system, which is a coordinate system that is not affected by process and device parameters and represents abstract values rather than actual values, in order to create the layout of the code-based final drawing. Use it.
회로 설계부(111)는 상기 템플릿 및 그리드의 로드를 생성하고, 인스턴스 생성 및 배치 코드를 작성하며, 와이어 생성 및 정해진 위치로 라우팅하는 함수를 작성하고, 해당되는 메탈에 핀을 생성하고, 작성한 코드를 레이아웃 파일로 추출한다. The circuit design unit 111 creates a load of the template and grid, writes an instance creation and placement code, creates a function to create a wire and routes it to a designated location, creates a pin on the corresponding metal, and writes the written code. Extract it as a layout file.
시뮬레이션 수행부(112)는 상기 생성된 최종 도면의 레이아웃의 각 인스턴스에 대하여 DRC가 보장된 템플릿 및 그리드 기반 배치 및 배선 과정을 통해 포스트 시뮬레이션 진행 시 검증 과정에서의 시간 감축 효과를 가져올 수 있다. The simulation performance unit 112 can reduce the time in the verification process when performing post-simulation through a template and grid-based arrangement and wiring process with DRC guaranteed for each instance of the layout of the generated final drawing.
도 2는 본 발명의 일 실시예에 따른 CMOS 기반 회로 설계 자동화 방법을 설명하기 위한 흐름도이다. Figure 2 is a flowchart illustrating a CMOS-based circuit design automation method according to an embodiment of the present invention.
제안하는 CMOS 기반 회로 설계 자동화 방법은 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성하는 단계(210) 및 상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 단계(220)를 포함할 수 있다. The proposed CMOS-based circuit design automation method generates a code-based final drawing using a template of an instance with guaranteed DRC (Design Rule Check) and a grid to be placed through CMOS circuit-based layout automation. It may include (210) and a step (220) of measuring specification values for the circuit by performing post simulation based on the layout information of the generated drawing.
단계(210)에서, CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성한다. In step 210, a code-based final drawing is generated using a template of an instance where DRC (Design Rule Check) is guaranteed and a grid to be placed through CMOS circuit-based layout automation.
본 발명의 실시예에 따르면, 회로 설계부는 코드 기반의 최종 도면의 레이아웃을 생성하기 위해 공정 및 소자 파라미터에 영향을 받지 않는 좌표계이며, 실제 값이 아닌 특정 값을 추상화해서 나타내는 좌표계인 물리 좌표계의 값을 나타내는 추상 좌표계를 이용한다. According to an embodiment of the present invention, the circuit design unit is a coordinate system that is not affected by process and device parameters to generate the layout of the code-based final drawing, and the value of the physical coordinate system, which is a coordinate system that abstracts and represents specific values rather than actual values. An abstract coordinate system representing is used.
본 발명의 실시예에 따르면, 회로 설계부는 상기 템플릿 및 그리드의 로드를 생성하고, 인스턴스 생성 및 배치 코드를 작성하며, 와이어 생성 및 정해진 위치로 라우팅하는 함수를 작성하고, 해당되는 메탈에 핀을 생성하고, 작성한 코드를 레이아웃 파일로 추출한다. According to an embodiment of the present invention, the circuit design unit creates the template and the load of the grid, writes an instance creation and placement code, creates a function to create a wire and route it to a designated location, and creates a pin on the corresponding metal. And extract the written code into a layout file.
단계(220)에서, 상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 단계(220)In step 220, post simulation is performed based on the layout information of the generated drawing to measure specification values for the circuit (220).
본 발명의 실시예에 따르면, 시뮬레이션 수행부는 상기 생성된 최종 도면의 레이아웃의 각 인스턴스에 대하여 DRC가 보장된 템플릿 및 그리드 기반 배치 및 배선 과정을 통해 포스트 시뮬레이션 진행 시 검증 과정에서의 시간 감축 효과를 가져올 수 있다. According to an embodiment of the present invention, the simulation performance unit will achieve the effect of reducing time in the verification process during post-simulation through a template and grid-based arrangement and wiring process with guaranteed DRC for each instance of the layout of the generated final drawing. You can.
도 3은 본 발명의 일 실시예에 따른 트랜스미션 게이트 기반 D 플립플롭을 나타내는 도면이다. Figure 3 is a diagram showing a transmission gate-based D flip-flop according to an embodiment of the present invention.
본 발명에서는 Cadence Virtuoso Tool과 28nm 공정을 이용해서 대중적인 flip-flop의 한 종류인 트래스미션 게이트(Transmission Gate) D flip-flop의 레이아웃을 설계한다. 먼저 설계하기 위해 flip-flop의 스케매틱(Schematic)은 도 3과 같이 나타낼 수 있다. 위와 같은 스케매틱은 인버터(Inverter), 트래스미션 게이트(Transmission Gate), 3상-인버터(Tri-State Inverter) 총 3개의 인스턴스로 구성되어 있으며, 이들은 각각 P-타입, N-타입 트랜지스터가 1개, 1개, 2개씩으로 이루어져 있다. 이 회로의 노드 위치와 인스턴스 구성 형태를 기반으로 백-엔드 과정에서 레이아웃을 설계한다. In the present invention, the layout of a Transmission Gate D flip-flop, a type of popular flip-flop, is designed using Cadence Virtuoso Tool and a 28nm process. First, for design purposes, the schematic of the flip-flop can be shown as shown in Figure 3. The above schematic consists of a total of 3 instances: Inverter, Transmission Gate, and Tri-State Inverter, which each have 1 P-type and 1 N-type transistor. It consists of 1, 1, and 2 pieces. The layout is designed in the back-end process based on the node location and instance configuration type of this circuit.
도 4는 본 발명의 일 실시예에 따른 상대적인 위치를 기반으로 하는 인스턴스 배치를 설명하기 위한 도면이다. FIG. 4 is a diagram illustrating instance arrangement based on relative positions according to an embodiment of the present invention.
레이아웃을 설계하기 위해서 먼저 28nm 공정의 DRC에 맞게 템플릿을 생성하고, 이 공정의 그리드를 기반으로 하는 배치 및 배선 과정이 진행되도록 설정 해야 한다. 각각 공정이 요구하는 디자인 룰(Design Rule)이 달라서 28nm 공정에 맞는 템플릿(Template) 및 그리드를 만들기 위해서는 먼저 어느 공정에서나 적용할 수 있는 샘플을 만들어서 적용해야 한다. In order to design the layout, a template must first be created according to the DRC of the 28nm process, and the arrangement and wiring process based on the grid of this process must be set to proceed. Since the design rules required for each process are different, in order to create a template and grid suitable for the 28nm process, a sample that can be applied to any process must first be created and applied.
그리고 코드 기반의 레이아웃 생성이므로 물리 좌표계의 값을 간략하게 표현할 방법을 사용해야 적용하기 쉬워진다. 이는 바로 추상 좌표계를 활용하는 것이다. 추상 좌표계란 공정 및 소자 파라미터에 영향을 받지 않는 좌표계이며 실제 값이 아닌 특정 값을 추상화해서 나타내는 좌표계이다. 고유의 값을 사용하지 않아도 실제 좌표계로 값을 변환할 때 알맞은 값으로 변화시킬 수 있는 장점이 있어 코드 기반 레이아웃 생성 시에 재사용성과 이식률을 높인다. 추상 좌표계를 적용하면 템플릿을 배치할 때 상대적인 위치를 기반으로 배치를 진행할 수 있다. 도 4와 같이 처음 템플릿을 배치할 때 추상 좌표계를 기반으로 원점에 배치해 놓게 되면, 배치한 것을 기준으로 여러 가지 템플릿을 Python 모듈에서 정의한 위치 이동 함수들을 사용하면 레이아웃에서 사용되는 인스턴스들을 여러 방향으로 이동시킬 수 있다. 이는 코드의 공정 이식성을 극대 화해 많은 인스턴스를 배치할 때 코드를 활용하여 빠르게 진행할 수 있는 장점이 있다. And since it is code-based layout creation, it becomes easier to apply if you use a method to briefly express the values of the physical coordinate system. This is the use of an abstract coordinate system. An abstract coordinate system is a coordinate system that is not affected by process and device parameters and is a coordinate system that abstracts and represents specific values rather than actual values. It has the advantage of being able to change to an appropriate value when converting the value to the actual coordinate system even without using a unique value, increasing reusability and portability when creating a code-based layout. By applying the abstract coordinate system, you can place templates based on their relative positions. As shown in Figure 4, when placing a template for the first time, if it is placed at the origin based on an abstract coordinate system, the instances used in the layout can be moved in various directions by using position movement functions defined in the Python module for various templates based on the placement. It can be moved. This has the advantage of maximizing the process portability of the code and allowing rapid progress using the code when deploying many instances.
다음 그리드는 추상 좌표계의 사용으로 좌표계가 형성됐고, 이를 기반으로 여러 메탈을 활용하여 배선 작업이 진행된다. 이 작업도 마찬가지로 Python 모듈 함수에 배선 관련 함수들을 활용하여 코드로 구현하게 되면 공정 이식성이 증가한다. The next grid is a coordinate system formed using an abstract coordinate system, and based on this, wiring work is carried out using various metals. Similarly, if this work is implemented as code using wiring-related functions in Python module functions, process portability increases.
도 5는 본 발명의 일 실시예에 따른 DRC가 보장된 인스턴스 P-타입 및 N-타입 트랜지스터를 나타내는 도면이다. Figure 5 is a diagram showing instance P-type and N-type transistors with guaranteed DRC according to an embodiment of the present invention.
본 발명에서는 코드로 템플릿 및 그리드를 사용하기 위해 추상 좌표계를 도입하였고, 최종적으로 사용할 템플릿을 제작해야 한다. 먼저 하나의 인스턴스를 구현하기 위해 기본으로 사용되는 여러 가지 소자들을 해당 DRC에 맞게 레이아웃을 디자인하고 이를 조합하여 새로운 템플릿을 생성한다. 대표적으로 사용되는 인스턴스는 트랜지스터가 될 것이며, DRC가 보장되는 템플릿의 조합이므로 이 인스턴스도 DRC가 보장될 것이며, 이는 최종 레이아웃 생성 시 검증 과정에서의 시간 감축에 큰 영향을 미친다. 도 5에서는 DRC가 보장되는 P-타입 및 N-타입 트랜지스터를 나타내고 있다. In the present invention, an abstract coordinate system is introduced to use templates and grids in code, and a final template to be used must be created. First, to implement one instance, design a layout of various elements used as basics according to the corresponding DRC and combine them to create a new template. A typically used instance will be a transistor, and since it is a combination of templates with guaranteed DRC, this instance will also have guaranteed DRC, which has a significant impact on reducing the time in the verification process when creating the final layout. Figure 5 shows P-type and N-type transistors with guaranteed DRC.
코드 기반 레이아웃을 생성하기 위해서는 코드를 작성해야 하며, Python 기반의 문법으로 설계한다. To create a code-based layout, code must be written and designed using a Python-based grammar.
본 발명의 실시예에 따르면, 먼저, 28nm 공정용 템플릿 및 그리드 로드를 생성하고, 인스턴스 생성 및 배치 코드를 작성한다. 이후, 와이어 생성 및 정해진 위치로 라우팅하는 함수를 작성하고, 해당되는 메탈에 핀 생성 및 작성한 코드를 레이아웃 파일로 추출한다. According to an embodiment of the present invention, first, a template and grid load for the 28nm process are created, and instance creation and placement code are written. Afterwards, write a function to create a wire and route it to a designated location, and extract the pin creation and written code to the corresponding metal as a layout file.
이때, Python에서 사용하는 코드를 이용하기도 하지만, 구조(Structure)를 형성하는 과정에서 그리드 기반 배치 및 배선을 진행할 때 사용되는 사용자 설정 함수를 이용하기도 한다. 트랜스미션 게이트 D_FF 레이아웃은 앞서 설계했던 스케매틱의 정보를 기반으로 코드를 작성한다. At this time, the code used in Python is used, but in the process of forming the structure, a user-set function used when performing grid-based placement and wiring is also used. The transmission gate D_FF layout writes code based on the information from the previously designed schematic.
고려해야 할 정보는 인스턴스의 개수, 라우팅할 노드의 지점, 스케매틱과 일치하는 I/0 및 핀 이름 등이 있다. Information to consider include the number of instances, the point on the node to route to, and the I/0 and pin names that match the schematic.
도 6은 본 발명의 일 실시예에 따른 CMOS 기반 회로 설계 자동화 시스템으로부터 생성된 레이아웃을 나타내는 도면이다. Figure 6 is a diagram showing a layout generated from a CMOS-based circuit design automation system according to an embodiment of the present invention.
코드에서 함수를 사용하여 사전에 만들었던 인스턴스를 생성 및 배치하기도 하며, 코드에서 메탈들을 사용하여 스케매틱과 일치하는 노드에 각각 라우팅을 진행하기도 한다. 최종적으로 설계한 레이아웃은 코드에서 Virtuoso에서 적절한 포맷으로 출력하게 하고 최종 Python 파일을 실행시키면 도 6과 같은 레이아웃을 확인할 수 있다. In the code, functions are used to create and place pre-created instances, and in the code, metals are used to route each node that matches the schematic. The final designed layout can be output as shown in Figure 6 by having Virtuoso output the code in an appropriate format and executing the final Python file.
본 발명의 실시예에 따른 최종 레이아웃을 보게 되면 각 인스턴스는 DRC가 보장된 템플릿이고, 그리드 기반 배치 및 배선 과정도 28nm 공정 룰을 고려해서 설계됨을 확인할 수 있다. 이를 통해서 검증 과정에서 크게 고려할 요소가 사라져 시간 감축에 큰 효과를 가져온다. Looking at the final layout according to an embodiment of the present invention, it can be seen that each instance is a template with guaranteed DRC, and the grid-based placement and wiring process is also designed in consideration of the 28nm process rule. Through this, many factors to be considered during the verification process are eliminated, resulting in a significant reduction in time.
도 7은 종래기술에 따른 방식대로 설계한 D_FF 레이아웃을 나타내는 도면이다.Figure 7 is a diagram showing the D_FF layout designed according to the prior art.
도 6에 도시된 바와 같이, 코드 기반으로 레이아웃을 생성하였고, 이는 4.87㎛ * 2.815㎛ = 13.71μ㎡의 면적을 가지고 있다. 이 레이아웃의 정보를 기반으로 Hspice를 활용한 포스트 시뮬레이션(Post simulation)을 진행하였다. 측정한 값은 셋업 타임(Setup time), 홀드 타임(Hold time), 클락-데이터 타임(Clk-to-Q delay time) 총 3가지이며, 각각 알맞은 인스턴스와 노드 값들을 활용하여 시뮬레이션 후 값들을 측정하였다. 코드 기반 레이아웃의 포스트 시뮬레이션 값은 각각 16.58ps, 10.53ps, 25.94ps임을 확인할 수 있었다. As shown in Figure 6, the layout was created based on the code, and it has an area of 4.87㎛ * 2.815㎛ = 13.71㎡. Post simulation was performed using Hspice based on the information of this layout. There are three measured values: Setup time, Hold time, and Clk-to-Q delay time, and the values are measured after simulation using appropriate instance and node values. did. The post-simulation values of the code-based layout were confirmed to be 16.58ps, 10.53ps, and 25.94ps, respectively.
자동화 시스템으로 설계한 레이아웃과 비교하기 위해 Manual Design을 통한 최적화된 레이아웃을 도 7과 같이 설계한 후 측정하였다. 측정 결과는 다음과 같다. 표1 은 도 6 및 도 7의 레이아웃 면적 및 시뮬레이션 값을 정리해 놓은 것이다.In order to compare with the layout designed by the automated system, the optimized layout through manual design was designed and measured as shown in Figure 7. The measurement results are as follows. Table 1 summarizes the layout area and simulation values of FIGS. 6 and 7.
<표 1><Table 1>
본 발명에서는 Python을 활용하여 레이아웃 시 활 용할 템플릿 및 그리드를 만드는 모듈을 설정하고, 그 모듈을 기반으로 물리적인 제약 조건인 DRC를 통과하는 인스턴스를 사전으로 생성하였다. 그 후에 인스턴스를 배치하고 모듈 안 여러 함수 와 메탈을 활용해서 배치 및 배선의 과정을 진행 하여 최종적으로 코드 기반 레이아웃을 생성하였고 이는 Cadence Virtuoso Tool 상의 DRC를 보장하게 설 계하였다. 하지만 DRC가 보장하게 설계한 레이아웃은 면적이 직접 설계한 레이아웃보다 훨씬 큰 것을 표를 통해 확인할 수 있다. 인스턴스 배치에서 상대적인 위치를 기반으로 진행해 확산(diffusion) 영역을 공유하지 못하고 오직 한 개의 단위로 배치해야 하는 코드 기반 레이아웃 한계 때문이다. 따라서, 자동화 설계 시스템은 많은 회로에 대한 레이아웃을 진행할 때 빠르게 검증 과정을 생략하며 재사용성과 이식성을 높일 수 있는 장점이 있지만, 최소화된 면적을 사용 해야 하는 레이아웃 분야에 사용하기에는 취약한 단점을 표를 통한 측정 결과로 확인할 수 있었다. 물리적 설계 과정 속 많은 인스턴스와 라우팅 과정에서 사소한 DRC 오류를 수정하는 과정이 최 종 도면을 형성하기까지 많은 시간을 투자하게 된 다. 따라서, 이러한 Python 프로그래밍을 활용한 레이아웃 자동화 방식은 검증 과정에서 보장받는 DRC로 설계 과정에서 많은 시간을 절약하며, 회로 디자이너들의 피로도 또한 기존보다 감소해서 더욱 기발한 시스템 아키텍처를 계발할 수 있게 한다. In the present invention, Python was used to set up a module that creates templates and grids to be used in layout, and based on the module, an instance that passed DRC, a physical constraint, was created as a dictionary. After that, the instance was placed and the placement and wiring process was performed using various functions and metals in the module, ultimately creating a code-based layout, which was designed to ensure DRC on the Cadence Virtuoso Tool. However, it can be seen from the table that the layout designed to be guaranteed by DRC has a much larger area than the layout designed directly. This is due to code-based layout limitations where instance placement is based on relative position, so the diffusion area cannot be shared and must be placed only as a single unit. Therefore, the automated design system has the advantage of quickly omitting the verification process when laying out many circuits and increasing reusability and portability, but the disadvantage of being weak for use in layout fields that require the use of a minimized area can be measured through tables. It was confirmed by the results. The process of correcting minor DRC errors in the many instances and routing processes in the physical design process takes a lot of time to form the final drawing. Therefore, this layout automation method using Python programming saves a lot of time during the design process with DRC guaranteed during the verification process, and fatigue of circuit designers is also reduced compared to before, enabling the development of more ingenious system architecture.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), etc. , may be implemented using one or more general-purpose or special-purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. A processing device may execute an operating system (OS) and one or more software applications that run on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. It can be embodied in . Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes optical media (magneto-optical media) and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, various modifications and variations can be made by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims also fall within the scope of the claims described below.
Claims (8)
시뮬레이션 수행부가 상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 단계
를 포함하고,
상기 회로 설계부가 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성하는 단계는,
코드 기반의 최종 도면의 레이아웃을 생성하기 위해 공정 및 소자 파라미터에 영향을 받지 않는 좌표계이며 실제 값이 아닌 특정 값을 추상화해서 나타내는 좌표계인 물리 좌표계의 값을 나타내는 추상 좌표계를 이용하며,
고유의 물리 좌표계의 값을 사용하지 않고 추상 좌표계를 이용하여 실제 좌표계로 값을 변환할 때 해당 공정 및 소자 파라미터 따른 값으로 변화시켜 코드 기반 레이아웃 생성 시에 재사용성과 이식률을 증가시키고,
상기 그리드는 추상 좌표계의 사용으로 좌표계가 형성되고, 추상 좌표계를 적용함으로써 템플릿을 배치할 때 상대적인 위치를 기반으로 배치를 진행하는
CMOS 기반 회로 설계 자동화 방법. A step where the circuit design department generates a code-based final drawing using a template of an instance with guaranteed DRC (Design Rule Check) and a grid to be placed through CMOS circuit-based layout automation; and
A step in which the simulation performance unit performs post simulation based on the layout information of the generated drawing to measure specification values for the circuit.
Including,
The step of the circuit design department generating a code-based final drawing using a template of an instance where DRC (Design Rule Check) is guaranteed through CMOS circuit-based layout automation and a grid to be placed is,
To create the layout of the code-based final drawing, an abstract coordinate system is used that represents the values of the physical coordinate system, which is a coordinate system that is not affected by process and device parameters and represents abstracted specific values rather than actual values.
When converting a value to a real coordinate system using an abstract coordinate system instead of using the value of a unique physical coordinate system, it is changed to a value according to the process and device parameters, increasing reusability and portability when creating a code-based layout.
The grid is a coordinate system formed by using an abstract coordinate system, and when placing a template by applying the abstract coordinate system, arrangement is performed based on the relative position.
A method for automating CMOS-based circuit design.
상기 회로 설계부가 CMOS 회로 기반 레이아웃 자동화를 통해 DRC(Design Rule Check)가 보장된 인스턴스의 템플릿(Template)과 배치할 그리드(Grid)를 활용한 코드 기반의 최종 도면을 생성하는 단계는,
상기 템플릿 및 그리드의 로드를 생성하고, 인스턴스 생성 및 배치 코드를 작성하며, 와이어 생성 및 정해진 위치로 라우팅하는 함수를 작성하고, 해당되는 메탈에 핀을 생성하고, 작성한 코드를 레이아웃 파일로 추출하는
CMOS 기반 회로 설계 자동화 방법. According to paragraph 1,
The step of the circuit design department generating a code-based final drawing using a template of an instance where DRC (Design Rule Check) is guaranteed through CMOS circuit-based layout automation and a grid to be placed is,
Create a load of the above template and grid, write an instance creation and placement code, write a function to create a wire and route it to a designated location, create a pin in the corresponding metal, and extract the written code into a layout file.
A method for automating CMOS-based circuit design.
상기 시뮬레이션 수행부가 상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 단계는,
상기 생성된 최종 도면의 레이아웃의 각 인스턴스에 대하여 DRC가 보장된 템플릿 및 그리드 기반 배치 및 배선 과정을 통해 포스트 시뮬레이션 진행 시 검증 과정에서의 시간 감축 효과를 가져오는
CMOS 기반 회로 설계 자동화 방법. According to paragraph 1,
The step of the simulation performing unit performing post simulation based on the layout information of the generated drawing to measure specification values for the circuit,
The DRC-guaranteed template and grid-based arrangement and wiring process for each instance of the final drawing layout created above results in time reduction in the verification process during post-simulation.
A method for automating CMOS-based circuit design.
상기 생성된 도면의 레이아웃 정보를 기반으로 포스트 시뮬레이션(Post simulation)을 진행하여 회로에 대한 사양 값들을 측정하는 시뮬레이션 수행부
를 포함하고,
상기 회로 설계부는,
코드 기반의 최종 도면의 레이아웃을 생성하기 위해 공정 및 소자 파라미터에 영향을 받지 않는 좌표계이며 실제 값이 아닌 특정 값을 추상화해서 나타내는 좌표계인 물리 좌표계의 값을 나타내는 추상 좌표계를 이용하며,
고유의 물리 좌표계의 값을 사용하지 않고 추상 좌표계를 이용하여 실제 좌표계로 값을 변환할 때 해당 공정 및 소자 파라미터 따른 값으로 변화시켜 코드 기반 레이아웃 생성 시에 재사용성과 이식률을 증가시키고,
상기 그리드는 추상 좌표계의 사용으로 좌표계가 형성되고, 추상 좌표계를 적용함으로써 템플릿을 배치할 때 상대적인 위치를 기반으로 배치를 진행하는
CMOS 기반 회로 설계 자동화 시스템. A circuit design department that creates code-based final drawings using templates of instances with guaranteed DRC (Design Rule Check) and a grid to be placed through CMOS circuit-based layout automation; and
A simulation performance unit that performs post simulation based on the layout information of the generated drawing and measures specification values for the circuit.
Including,
The circuit design department,
To create the layout of the code-based final drawing, an abstract coordinate system is used that represents the values of the physical coordinate system, which is a coordinate system that is not affected by process and device parameters and represents abstracted specific values rather than actual values.
When converting a value to a real coordinate system using an abstract coordinate system instead of using the value of a unique physical coordinate system, it is changed to a value according to the process and device parameters, increasing reusability and portability when creating a code-based layout.
The grid is a coordinate system formed by using an abstract coordinate system, and by applying the abstract coordinate system, placement is performed based on the relative position when placing the template.
CMOS-based circuit design automation system.
상기 회로 설계부는,
상기 템플릿 및 그리드의 로드를 생성하고, 인스턴스 생성 및 배치 코드를 작성하며, 와이어 생성 및 정해진 위치로 라우팅하는 함수를 작성하고, 해당되는 메탈에 핀을 생성하고, 작성한 코드를 레이아웃 파일로 추출하는
CMOS 기반 회로 설계 자동화 시스템.According to clause 5,
The circuit design department,
Create a load of the above template and grid, write an instance creation and placement code, write a function to create a wire and route it to a designated location, create a pin in the corresponding metal, and extract the written code into a layout file.
CMOS-based circuit design automation system.
상기 시뮬레이션 수행부는,
상기 생성된 최종 도면의 레이아웃의 각 인스턴스에 대하여 DRC가 보장된 템플릿 및 그리드 기반 배치 및 배선 과정을 통해 포스트 시뮬레이션 진행 시 검증 과정에서의 시간 감축 효과를 가져오는
CMOS 기반 회로 설계 자동화 시스템. According to clause 5,
The simulation performance unit,
The DRC-guaranteed template and grid-based arrangement and wiring process for each instance of the final drawing layout created above results in time reduction in the verification process during post-simulation.
CMOS-based circuit design automation system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220163612A KR102644204B1 (en) | 2022-11-30 | 2022-11-30 | Design Automation Method and System for CMOS Circuitry |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220163612A KR102644204B1 (en) | 2022-11-30 | 2022-11-30 | Design Automation Method and System for CMOS Circuitry |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102644204B1 true KR102644204B1 (en) | 2024-03-07 |
Family
ID=90271446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220163612A KR102644204B1 (en) | 2022-11-30 | 2022-11-30 | Design Automation Method and System for CMOS Circuitry |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102644204B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170036585A (en) * | 2015-09-24 | 2017-04-03 | 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 | Method of parameter extraction and system thereof |
KR20180127141A (en) * | 2017-05-19 | 2018-11-28 | 삼성전자주식회사 | Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit |
KR20210047286A (en) * | 2020-08-31 | 2021-04-29 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | Method and apparatus for verifying chip, electronic device, storage medium and program |
US20220245316A1 (en) * | 2021-02-02 | 2022-08-04 | Powerchip Semiconductor Manufacturing Corporation | Computer-implemented method of performing voltage rule check in an electronic design automation platform |
-
2022
- 2022-11-30 KR KR1020220163612A patent/KR102644204B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170036585A (en) * | 2015-09-24 | 2017-04-03 | 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 | Method of parameter extraction and system thereof |
KR20180127141A (en) * | 2017-05-19 | 2018-11-28 | 삼성전자주식회사 | Computer-implemented method and computing system for designing integrated circuit and method of manufacturing integrated circuit |
KR20210047286A (en) * | 2020-08-31 | 2021-04-29 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | Method and apparatus for verifying chip, electronic device, storage medium and program |
US20220245316A1 (en) * | 2021-02-02 | 2022-08-04 | Powerchip Semiconductor Manufacturing Corporation | Computer-implemented method of performing voltage rule check in an electronic design automation platform |
Non-Patent Citations (3)
Title |
---|
[1] Jaeduk Han "Laygo: A Template-and-Grid-Based Layout Generation Engine for Advanced CMOS Technologies", IEEE Transactions on Circuits and Systems-1: Regular Papers, VOL. 68, NO. 3, MARCH 2021 |
[2] Eric Chang "BAG2: A Process-Portable Framework for Generator-Based AMS Circuit Design" |
Taeho Shin 외 7명, 'A CUSTOM IC LAYOUT GENERATION ENGINE BASED ON DYNAMIC TEMPLATES AND GRIDS', 2022.07., pp.1-10. 1부.* * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9361415B1 (en) | Method, system, and computer program product for implementing a multi-fabric electronic design spanning across multiple design fabrics | |
Ott et al. | A designer's guide to VHDL synthesis | |
US10031986B1 (en) | System and method for creating a spice deck for path-based analysis of an electronic circuit design using a stage-based technique | |
Su et al. | Performance optimization using variable-latency design style | |
US7584456B1 (en) | Method and apparatus for debugging embedded systems having read only memory | |
US7546560B2 (en) | Optimization of flip flop initialization structures with respect to design size and design closure effort from RTL to netlist | |
JP5004566B2 (en) | System to verify the design | |
US11734480B2 (en) | Performance modeling and analysis of microprocessors using dependency graphs | |
Flake et al. | Verilog HDL and its ancestors and descendants | |
US20210374314A1 (en) | Engineering Change Order Scenario Compression by Applying Hybrid of Live and Static Timing Views | |
KR102592752B1 (en) | Circuit Measurement and Performance Optimization Framework for Full-Custom CMOS Circuit Design | |
US11022634B1 (en) | Rail block context generation for block-level rail voltage drop analysis | |
US10133842B1 (en) | Methods, systems, and articles of manufacture for multi-mode, multi-corner physical optimization of electronic designs | |
KR102644204B1 (en) | Design Automation Method and System for CMOS Circuitry | |
JP4221730B2 (en) | Circuit conjunction standard form generation method, circuit conjunction standard form generation apparatus, hazard check method, and hazard check apparatus | |
Sathyamurthy et al. | Speeding up pipelined circuits through a combination of gate sizing and clock skew optimization | |
KR102545302B1 (en) | Automation Framework for Digital Circuit Design and Verification | |
US9489478B2 (en) | Simplifying modes of an electronic circuit by reducing constraints | |
US20220207225A1 (en) | Lightweight unified power format implementation for emulation and prototyping | |
US20230004698A1 (en) | Dividing a chip design flow into sub-steps using machine learning | |
JP5447547B2 (en) | Macro delay analysis device, macro boundary path delay analysis method, macro boundary path delay analysis program | |
US11657205B2 (en) | Construction, modeling, and mapping of multi-output cells | |
US8959467B2 (en) | Structural rule analysis with TCL scripts in synthesis or STA tools and integrated circuit design tools | |
US10380295B1 (en) | Methods, systems, and articles of manufacture for X-behavior verification of an electronic design | |
Khan et al. | IBTIDA: Fully open-source ASIC implementation of Chisel-generated System on a Chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |