KR102611888B1 - 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치 - Google Patents

스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치 Download PDF

Info

Publication number
KR102611888B1
KR102611888B1 KR1020160147685A KR20160147685A KR102611888B1 KR 102611888 B1 KR102611888 B1 KR 102611888B1 KR 1020160147685 A KR1020160147685 A KR 1020160147685A KR 20160147685 A KR20160147685 A KR 20160147685A KR 102611888 B1 KR102611888 B1 KR 102611888B1
Authority
KR
South Korea
Prior art keywords
flip
flop
clock
semiconductor device
output
Prior art date
Application number
KR1020160147685A
Other languages
English (en)
Other versions
KR20180051708A (ko
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 KR1020160147685A priority Critical patent/KR102611888B1/ko
Priority to US15/701,110 priority patent/US10103715B2/en
Publication of KR20180051708A publication Critical patent/KR20180051708A/ko
Application granted granted Critical
Publication of KR102611888B1 publication Critical patent/KR102611888B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318541Scan latches or cell details
    • 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
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/01Details
    • H03K3/012Modifications of generator to improve response time or to decrease power consumption

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

본 발명의 실시 예에 따른 반도체 장치의 레이아웃 배치 방법은, 플립-플롭을 배치하는 단계, 및 상기 플립-플롭을 재배치하는 단계를 포함한다. 상기 플립-플롭은 클럭 게이팅 셀로부터 클럭 라인을 통하여 클럭을 수신하고, 입력 라인을 통하여 입력 신호를 수신하고, 출력 라인을 통하여 출력 신호를 출력하도록 구성될 수 있다. 상기 플립-플롭은 상기 클럭 라인의 길이, 상기 클럭이 기준 시간당 토글링되는 횟수, 상기 입력 라인과 상기 출력 라인의 길이, 및 상기 입력 신호 또는 상기 출력 신호가 상기 기준 시간당 토글링되는 횟수를 고려하여 재배치될 수 있다.

Description

스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치{LAYOUT METHOD FOR SEMICONDUCTOR DEVICE BASED ON SWICHING ACTIVITY AND MANUFACTURING}
본 발명은 반도체 장치의 배치 방법에 관한 것으로, 좀 더 상세하게는, 반도체 소자에 대한 신호의 스위칭 액티비티를 고려하여 반도체 소자를 배치하는 방법에 관한 것이다.
반도체 장치는 AND, NAND, OR, NOR 게이트와 같은 다양한 논리 소자들, 및 다양한 종류의 플립-플롭 등을 포함할 수 있다. 특히, 플립-플롭은 클럭과 입력 신호를 수신하여, 출력 신호를 생성한다.
한편, 클럭은 기준 주기를 가지고 끊임없이 토글링 되기 때문에, 클럭의 토글링에 의한 소비 전력은 상당하다. 따라서, 만일 클럭을 출력하는 클럭 게이팅 셀 가까이로 플립-플롭을 이동시킨다면, 클럭에 의한 소비 전력은 감소할 것이다. 그러나, 이는 플립-플롭으로부터의 출력 신호를 수신하는 소자와 플립-플롭 간의 거리 증가를 초래할 수 있다. 즉, 출력 신호의 토글링에 의한 소비 전력이 증가할 수 있다.
따라서, 클럭의 토글링 뿐만 아니라, 반도체 장치의 소비 전력을 감소시킬 수 있는 다양한 요소들을 고려하여 반도체 장치를 구성하는 소자들을 배치하는 것은 매우 중요하다.
본 발명의 목적은 반도체 소자로 입력되는 클럭 라인의 길이를 감소시키기 위해서 플립-플롭을 클럭 게이팅 셀 근처로 옮겨서 소비 전력을 감소시킬 수 있는 반도체 장치의 배치 방법을 제공하는데 있다.
본 발명의 목적은 반도체 장치의 스캔 시프트 테스트 모드시 소비 전력을 감소시킬 수 있는 반도체 장치의 배치 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 반도체 장치의 배치 방법은, 클럭 라인을 통하여 클럭을 수신하고, 입력 라인을 통하여 입력 신호를 수신하고, 출력 라인을 통하여 출력 신호를 출력하도록 구성된 플립-플롭을 배치하는 단계, 그리고 클럭 신호 라인의 길이, 상기 클럭이 기준 시간당 토글링되는 횟수(이하, 제 1 스위칭 액티비티), 상기 입력 라인과 상기 출력 라인의 길이, 및 상기 입력 신호 또는 상기 출력 신호가 상기 기준 시간당 토글링되는 횟수(이하, 제 2 스위칭 액티비티)를 고려하여 상기 플립-플롭을 재배치하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 반도체 장치는, 클럭 게이팅 셀, 그리고 클럭 라인을 통하여 상기 클럭 게이팅 셀로부터 클럭을 수신하고, 입력 라인을 통하여 입력 신호를 수신하고, 출력 라인을 통하여 출력 신호를 출력하도록 구성된 플립-플롭을 포함하되, 상기 플립-플롭은 상기 클럭 라인의 길이, 상기 클럭이 기준 시간당 토글링되는 횟수(이하, 제 1 스위칭 액티비티), 상기 입력 라인과 상기 출력 라인의 길이, 및 상기 입력 신호 또는 상기 출력 신호가 상기 기준 시간당 토글링되는 횟수(이하, 제 2 스위칭 액티비티)를 고려하여 배치될 수 있다.
본 발명의 실시 예에 따르면, 반도체 소자에 대한 스위칭 액티비티를 고려하여 반도체 소자가 배치되므로, 클럭 및 신호에 의한 소비 전력을 감소시킬 수 있다.
본 발명의 실시 예에 따르면, 스캔 시프트 테스트 모드에서의 스위칭 액티비티와 기능 모드에서의 스위칭 액티비티를 고려하여 블로킹 셀이 배치되므로, 블로킹 셀의 삽입에 따른 소비 전력을 감소시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 반도체 장치를 설계하기 위한 컴퓨팅 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 반도체 장치의 설계 및 제조 방법을 보여주는 순서도이다.
도 3은 클럭 게이팅 셀과 플립-플롭들로 구성된 반도체 장치의 레이아웃을 예시적으로 보여주는 도면이다.
도 4는 도 3에 도시된 플립-플롭들에 대해 클럼핑을 수행한 예를 보여주는 도면이다.
도 5 는 도 3에 도시된 플립-플롭들에 대해 클럼핑을 수행한 다른 예를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 반도체 장치의 레이아웃 배치 방법을 보여주는 순서도이다.
도 7은 본 발명의 실시 예에 따른 반도체 장치를 예시적으로 보여주는 회로도이다.
도 8a는 스캔 시프트 모드에서 플립-플롭들이 서로 연결되는 예를 보여주는 도면이다.
도 8b는 기능 모드와 스캔 시프트 모드에서, 제 1 플립-플롭으로부터 출력되는 신호와, 제 1 플립-플롭으로 입력되는 클럭의 파형을 예시적으로 보여주는 도면이다.
도 9a는 스캔 시프트 모드에서 플립-플롭들이 서로 연결되는 예를 보여주는 도면이다.
도 9b는 기능 모드와 스캔 시프트 모드에서, 제 3 플립-플롭으로부터 출력되는 신호와, 제 3 플립-플롭으로 입력되는 클럭의 파형을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따라 반도체 장치의 레이아웃 배치 방법을 보여주는 순서도이다.
도 11은 본 발명의 실시 예에 따른 반도체 장치의 설계 및 제조 방법을 보여주는 순서도이다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 반도체 장치를 설계하기 위한 컴퓨팅 시스템을 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(100)은 적어도 하나의 프로세서(110), 워킹 메모리(120), 입출력 장치(130), 및 저장 장치(140)를 포함할 수 있다. 여기서, 컴퓨팅 시스템(100)은 본 발명의 레이아웃을 설계하기 위한 전용 장치로 제공될 수 있다. 그리고 컴퓨팅 시스템(100)은 다양한 설계 및 검증 시뮬레이션 프로그램을 구동하도록 구성될 수 있다.
프로세서(110)는 컴퓨팅 시스템(100)에서 수행될 소프트웨어(예를 들어, 응용 프로그램, 운영 체제, 장치 드라이버들)를 실행할 수 있다. 프로세서(110)는 워킹 메모리(120)에 로드되는 운영 체제(OS, 미도시)를 실행할 수 있다. 프로세서(110)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)을 실행할 수 있다. 예를 들어, 프로세서(110)는 워킹 메모리(120)에 로딩된 레이아웃 디자인 툴(122)을 실행할 수 있다.
워킹 메모리(120)에는 운영 체제(OS)나 응용 프로그램들이 로딩될 수 있다. 컴퓨팅 시스템(100)의 부팅시에 저장 장치(140)에 저장된 OS 이미지(미도시)가 부팅 시퀀스에 따라 워킹 메모리(120)로 로딩될 수 있다. 운영 체제(OS)에 의해서 컴퓨팅 시스템(100)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자의 의하여 선택되거나 기본적인 서비스 제공을 위해서 응용 프로그램들이 워킹 메모리(120)에 로딩될 수 있다. 특히, 본 발명의 레이아웃 설계를 위한 레이아웃 디자인 툴(122)도 저장 장치(140)로부터 워킹 메모리(120)에 로딩될 수 있다.
레이아웃 디자인 툴(122)은 특정 레이아웃 패턴들의 형태 및 위치를 디자인 룰에 의해서 정의된 것과 다르게 변경할 수 있는 바이어싱 기능을 구비할 수 있다. 그리고 레이아웃 디자인 툴(122)은 변경된 바이어싱 데이터 조건에서 설계 규칙 검사(Design Rule Check; DRC)를 수행할 수 있다. 워킹 메모리(120)는 SRAM (Static Random Access Memory), 또는 DRAM (Dynamic Random Access Memory)과 같은 휘발성 메모리를 포함할 수 있다. 그러나, 워킹 메모리(120)는 이에 한정되지 않으며, PRAM (Phase-change RAM), MRAM (Magnetic Random Access Memory), ReRAM (Resistance RAM), FRAM (Ferroelectric RAM), 플래시 메모리와 같은 불휘발성 메모리를 포함할 수 있다.
워킹 메모리(120)에는 설계된 레이아웃 데이터에 대해서 광근접 보정(Optical Proximity Correction; OPC)을 수행하는 시뮬레이션 툴(124)이 더 로딩될 수 있다.
입출력 장치(130)는 키보드, 마우스, 또는 모니터와 같이 설계자로부터 정보를 제공받거나 설계자에게 정보를 제공할 수 있는 다양한 장치를 포함할 수 있다. 예를 들어, 입출력 장치(130)를 통하여 시뮬레이션 툴(124)의 처리 과정 및 처리 결과 등이 표시될 수 있다.
저장 장치(140)는 컴퓨팅 시스템(100)의 저장 매체(Storage Medium)로서 제공된다. 저장 장치(140)는 응용 프로그램들(Application Program), 운영 체제 이미지 및 각종 데이터를 저장할 수 있다. 예를 들어, 저장 장치(140)는 SSD (Solid State Drive), eMMC (embedded Multi Media Card), 또는 HDD (Hard Disk Drive) 등으로 제공될 수 있다. 저장 장치(140)는 낸드 플래시 메모리(NAND Flash memory)를 포함할 수 있다. 그러나 이에 한정되지 않으며, 저장 장치(140)는 PRAM, MRAM, ReRAM, FRAM 등과 같은 불휘발성 메모리 또는 NOR 플래시 메모리를 포함할 수 있다.
도 2는 본 발명의 실시 예에 따른 반도체 장치의 설계 및 제조 방법을 보여주는 순서도이다.
S110 단계에서, 도 1의 컴퓨팅 시스템(100)을 이용하여 반도체 장치의 상위 수준 설계(High Level Design)가 수행될 수 있다. 상위 수준 설계란, 설계 대상 집적회로를 컴퓨터 언어의 상위 언어로 기술하는 것을 의미할 수 있다. 예를 들어, C 언어와 같은 상위 언어가 사용될 수 있다. 상위 수준 설계에 의해서 설계된 회로들은 레지스터 전송 레벨(Register Transfer Level; RTL) 코딩이나 시뮬레이션에 의해서 보다 구체적으로 표현될 수 있다. 나아가, 상기 레지스터 전송 레벨 코딩에 의해서 생성된 코드는 넷리스트(Netlist)로 변환되어 전체 반도체 장치로 합성될 수 있다. 합성된 스키매틱(schematic) 회로는 시뮬레이션 툴(124)에 의해서 검증되고, 검증 결과에 따라 조정 과정이 수반될 수 있다.
S120 단계에서, 논리적으로 완성된 반도체 집적회로를 실리콘 기판 위에 구현하기 위한 레이아웃 설계가 수행될 수 있다. 예를 들어, 상위 수준 설계에서 합성된 스키매틱 회로 또는 그에 대응하는 넷리스트를 참조하여 레이아웃 설계가 수행될 수 있다. 레이아웃 설계는 규정된 디자인 룰에 따라 셀 라이브러리(Cell Library)에서 제공되는 다양한 표준 셀들을 배치(Place)하고 연결하는 라우팅(Routing) 절차를 포함할 수 있다.
예를 들어, 본 발명의 실시 예에 따른 반도체 장치의 제조 방법에 의하면, 이러한 상위 수준 설계 및 레이아웃 설계 단계에서, 논리 소자의 스위칭 액티비티(switching activity)가 고려될 수 있다. 예를 들어, 스위칭 액티비티는 기준 시간당 토글링 횟수 또는 기준 시간당 토글링 횟수에 따라 소모되는 전력 소모량의 정도로 정의될 수 있다. 즉, 어떠한 신호 또는 클럭의 스위칭 액티비티가 크다는 것은 그 신호 또는 클럭의 토글링의 횟수가 상대적으로 크거나, 또는 토글링에 의해 상대적으로 많은 전력 소모가 일어난다는 것을 의미한다.
예를 들어, 클럭 게이팅 셀(clock gating cell)은 소스 클럭 또는 다른 클럭 게이팅 셀 등으로부터 클럭을 수신하고, 컨트롤러(미도시)로부터 클럭을 인에이블 하는 신호를 수신할 수 있다. 클럭 인에이블 신호에 의해서 클럭이 활성화되거나 비활성화될 수 있다. 클럭 게이팅 셀을 통과한 클럭은 다른 클럭 게이팅 셀 또는 시퀀셜 셀(sequential cell)(예를 들어, 플립-플롭 등)로 전달될 수 있다. 클럭 게이팅 셀은 끊임없이 토글링이 발생하는 클럭을 수신하거나 전달하기 때문에, 클럭 게이팅 셀에 연결된 클럭 라인의 길이는 반도체 장치의 소비 전력을 증가시키는 주요 요인 중 하나이다.
한편, 한편 플립-플롭은 클럭 게이팅 셀로부터 수신된 클럭과, 다른 논리 소자로부터 수신된 입력 신호를 이용하여 다양한 논리 연산을 수행할 수 있다. 만일 클럭 게이팅 셀로부터 플립-플롭으로부터 입력되는 클럭이 수신되는 클럭 라인의 길이를 줄이기 위해 플립-플롭을 클럭 게이팅 셀로 약간 당겼다고 가정해 보자. 이 경우, 클럭 라인의 길이가 줄어듦으로 인하여, 클럭의 토글링에 의한 전력 소모는 감소할 것이다. 그러나, 이는 플립-플롭으로의 입력 신호 또는 플립-플롭으로부터의 출력 신호가 전달되는 신호 라인의 길이 증가를 초래할 수 있다. 즉, 플립-플롭에 대한 입출력 신호의 토글링에 의한 소비 전력의 증가를 초래할 수 있다.
따라서, 본 발명에 의하면, 반도체 장치의 레이아웃 설계 시, 플립-플롭으로 입력되는 클럭의 토글링에 의한 전력 손실뿐만 아니라, 플립-플롭으로 입력되거나 플립-플롭으로부터 출력되는 입출력 신호의 토글링에 의한 전력 손실도 고려한다. 이하, 본 명세서에서, 플립-플롭으로 입력되는 클럭의 토글링에 의한 전력 손실과 플립-플롭에 대한 입출력 신호의 토글링에 의한 전력 손실을 줄이기 위해, 플립-플롭의 위치(예컨대, 그리드(grid)들 중 어느 하나)를 조정하는 것을 클럼핑(clumping)이라 칭하기로 한다.
설명의 이해를 돕기 위해, 클럼핑 시, 플립-플롭으로 입력되는 클럭의 액티비티는 플립-플롭에 대한 입출력 신호의 액티비티의 2개라 가정하자. 즉, 단위 시간당 클럭의 토글링 횟수는 입출력 신호의 토글링 횟수의 2배라 가정하자. 그리고, 클럼핑에 의해 클럭이 전달되는 클럭 라인의 길이는 1/2배로 감소하는데 반해, 플립-플롭의 신호 라인은 2배 증가했다고 가정하자. 이 경우, 클럭 라인의 길이 감소에 따른 소비 전력 감소와, 신호 라인 증가에 따른 소비 전력 증가는 서로 상쇄될 것이다. 즉, 클럼핑을 수행할 실익이 없는 것이다. 물론, 클럭 라인 및 신호 라인의 길이의 변화에 따른 커패시턴스 성분의 변화도 소비 전력에 영향을 미칠 수 있으나, 설명의 간략화를 위해 이는 배제하기로 한다.
또한, 플립-플롭이 멀티 비트 플립-플롭이라 가정하자. 만일 4비트 플립-플롭에 대해 클럼핑을 수행하는 경우, 클럭 라인의 길이 감소에 다른 소비 전력 감소가, 신호 라인의 길이 증가에 따른 소비 전력 증가의 최소한 8배는 되어야 클럼핑을 수행할 실익이 있을 것이다. 4비트 플립-플롭의 경우, 입력 라인과 출력 라인은 각각 4개이기 때문이다.
이상 설명된 바와 같이, 본 발명의 실시 예에 따른 반도체 장치의 제조 방법에 의하면, 레이아웃 설계 시, 클럭의 액티비티 뿐만 아니라 입출력 신호의 액티비티도 함께 고려된다. 뿐만 아니라, 타이밍 슬랙(timing slack), 소자 밀도(density), 클럭의 스큐(skew) 등도 추가로 고려될 수 있다. 이에 대해서는 좀 더 상세하게 후술될 것이다.
계속하여 S120 단계에서, 특정 게이트 레벨의 회로를 레이아웃으로 표현하기 위한 셀 라이브러리가 대부분의 레이아웃 설계 툴에 정의되어 있다. 레이아웃은 실제로 실리콘 기판 상에 형성될 트랜지스터 및 도전 라인들을 구성하기 위한 패턴의 형태나 사이즈를 정의하는 절차일 수 있다. 예를 들어, 인버터 회로를 실제로 실리콘 기판 상에 형성하기 위하여, PMOS, NMOS, N-WELL, 게이트 전극, 및 이들 상에 배치될 도전 라인들과 같은 레이아웃 패턴들을 적절히 배치할 수 있다. 이를 위하여 우선 셀 라이브러리에 이미 정의된 인버터들 중에서 적합한 것을 검색하여 선택할 수 있다. 더불어, 선택 및 배치된 표준 셀들에 대한 라우팅이 수행될 수 있다. 이러한 일련의 과정들은 대부분 상기 레이아웃 설계 툴에 의해서 자동으로 또는 수동적으로 수행될 수 있다.
라우팅 이후, 디자인 룰에 위배되는 부분이 존재하는지 레이아웃에 대한 검증이 수행될 수 있다. 검증 동작의 예로써, 레이아웃이 디자인 룰에 맞게 제대로 되었는지 검증하는 DRC (Design Rule Check), 내부에서 전기적으로 끊어짐 없이 제대로 되었는지 검증하는 ERC (Electronic Rule Check), 및 레이아웃이 게이트 수준 네트리스트와 일치하는지 확인하는 LVS (Layout vs Schematic) 등이 있다.
S130 단계에서, 광근접 보정(Optical Proximity Correction; OPC)이 실행될 수 있다. 포토리소그래피 공정을 이용하여, 레이아웃 설계를 통해서 얻어진 레이아웃 패턴들을 실리콘 기판 상에 구현될 수 있다. 이때, 광근접 보정은 포토리소그래피 공정에서 발생할 수 있는 왜곡 현상을 보정하기 위한 기술일 수 있다. 즉, 광근접 보정을 통하여, 레이아웃된 패턴을 이용한 노광시에 빛의 특성 때문에 발생하는 굴절이나 공정 효과 등의 왜곡 현상을 보정될 수 있다. 광근접 보정을 실행하면서, 설계된 레이아웃 패턴들의 형태 및 위치가 미세하게 변경될 수 있다.
S140 단계에서, 광근접 보정에 의해 변경된 레이아웃에 기초하여 포토마스크들(Photomasks)이 제작될 수 있다. 일반적으로 상기 포토마스크들은 유리 기판 위에 도포된 크롬 박막을 이용하여 레이아웃 패턴들을 묘사하는 방식으로 제작될 수 있다.
S150 단계에서, 제작된 포토마스크들을 이용하여 반도체 장치가 제조될 수 있다. 상기 포토마스크들을 이용한 반도체 장치의 제조 공정에서는 다양한 방식의 노광 및 식각 공정들이 반복될 수 있다. 이러한 공정들을 통해서 실리콘 기판 상에 레이아웃 설계시에 구성된 패턴들의 형태가 순차적으로 형성될 수 있다.
도 3은 클럭 게이팅 셀과 플립-플롭들로 구성된 반도체 장치의 레이아웃을 예시적으로 보여주는 도면이다. 본 도면은 플립-플롭들에 대해 클럼핑을 수행하기 전의 레이아웃을 보여준다.
도 3에 도시된 레이아웃은 제 1 영역(R1)과 제 2 영역(R2)으로 구분되어 있다. 도 3에 도시된 영역들(R1, R2)은 레이아웃 설계 과정에서 레이아웃 설계 툴에 의해 구분된 임의의 영역일 수 있다. 또는 반도체 제조자에 의해, 반도체 공정의 집적도, 해상도(resolution) 등을 고려하여 설정된 영역일 수 있다. 도 3에는 클럭 게이팅 셀(CG)와 플립-플롭들(FF1, FF2)이 도시되었다. 예를 들어, 제 1 플립-플롭(FF1)은 싱글-비트 플립-플롭이고, 제 2 플립-플롭(FF2)은 2-비트 플립-플롭이라 가정한다. 반도체 레이아웃에서, 소자와 소자 사이의 신호가 전달되는 라인은 제 1 방향(D1) 및/또는 제 2 방향(D2)을 따라 배치되는 것으로 도시되었다. 물론, 이는 예시적인 것으로써, 소자와 소자 사이를 연결하는 신호는 제 1 방향(D1) 및 제 2 방향(D2)이 아닌 제 3 방향을 따라 배치될 수도 있다.
클럭 게이팅 셀(CG)은, 예를 들어, 소스 클럭(미도시) 또는 다른 클럭 게이팅 셀(미도시)로부터 수신된 클럭에 대해 논리 연산을 수행하고 이를 플립-플롭들(FF1, FF2)로 전달할 수 있다. 클럭 게이팅 셀(CG)로부터 제 1 플립-플롭(FF1)으로 클럭이 전달되는 클럭 라인의 길이는 5로 표시되었다. 그리고, 클럭 게이팅 셀(CG)로부터 제 2 플립-플롭(FF2)으로 클럭이 전달되는 클럭 라인의 길이는 13으로 표시되었다.
제 1 플립-플롭(FF1)은 클럭을 이용하여 제 1 입력(Input1)으로부터 수신된 입력 신호에 대해 논리 연산을 수행하고, 연산 결과를 제 1 출력(Output1)으로 전달할 수 있다. 설명 및 도시의 간략화를 위해 제 1 입력(Input1) 및 제 1 출력(Output1)으로 표시된 것이며, 이들은 실제로는 다양한 논리 소자일 수 있다. 그리고, 제 1 입력(Input1)으로부터의 제 1 입력 신호가 전달되는 신호 라인의 길이는 11로 표시되었으며, 제 1 출력(Output1)으로 제 1 출력 신호가 출력되는 신호 라인의 길이는 6으로 표시되었다.
제 2 플립-플롭(FF2)은 클럭을 이용하여 제 2 및 3 입력들(Input2, Input3)로부터 수신된 입력 신호를 저장할 수 있으며, 저장된 입력 신호를 다음 클럭 사이클에 제 2 및 3 출력(Output2, Output3)으로 전달할 수 있다. 제 2 입력(Input2)으로부터의 제 2 입력 신호가 전달되는 신호 라인의 길이는 5로 표시되었으며, 제 2 출력(Output2)으로 제 2 출력 신호가 출력되는 신호 라인의 길이는 6으로 표시되었다. 그리고, 제 3 입력(Input3)으로부터의 제 3 입력 신호가 전달되는 신호 라인의 길이는 5로 표시되었으며, 제 3 출력(Output3)으로 제 3 출력 신호가 출력되는 신호 라인의 길이는 6으로 표시되었다.
도 4는 도 3에 도시된 플립-플롭들에 대해 클럼핑을 수행한 예를 보여주는 도면이다. 예시적으로 제 2 플립-플롭(FF2)에 대해서만 클럼핑이 수행되었으며, 클럼핑 결과 제 2 플립-플롭(FF2)과 클럭 게이팅 셀(CG) 사이의 거리는 가까워졌다.
우선 클럼핑 수행 시, 각각의 플립-플롭은 타이밍 슬랙(timing slack)이 일어나지 않는 범위 내에서 배치되어야 한다. 즉, 클럼핑으로 인하여 플립-플롭의 동작 타이밍이 어긋나거나, 플립-플롭이 오작동해서는 안된다. 도면에는 제 1 플립-플롭(FF1)이 이동 가능한 영역은 제 1 타이밍 슬랙 프리 영역(Timing slack free region1)으로 도시되었고, 제 2 플립-플롭(FF2)이 이동 가능한 영역은 제 2 타이밍 슬랙 프리 영역(Timing slack free region2)으로 도시되었다.
제 2 플립-플롭(FF2)에 대해 클럼핑을 수행함으로써, 제 2 플립-플롭(FF2)과 연결되는 클럭 라인의 길이는 7로 변경되었으며, 제 2 및 제 3 입력 라인들의 길이는 각각 12, 13으로 변경되었으며, 제 2 및 제 3 출력 라인들의 길이는 각각 2, 14로 변경되었다.
도 4에 도시된, 제 2 플립-플롭(FF2)에 대한 클럼핑이 전력 소모 측면에서 적합한지 여부에 대해 아래와 같은 수학식이 고려될 수 있다. 즉, 아래의 수학식을 만족하는 경우에만, 제 2 플립-플롭(FF2)에 대한 클럼핑이 수행될 것이다. 본 명세서에서, 아래의 수학식 1을 비용 함수(cost function)이라 칭하기로 한다.
Figure 112016108754512-pat00001
여기서 △A는 신호 라인 길이의 증가량이고, △B는 클럭 라인 길이의 감소량이다. Switching ActivityA는 신호 라인을 통하여 플립-플롭으로 입력되거나 플립-플롭으로부터 출력되는 신호의 액티비티(즉, 단위 시간당 토글링되는 횟수)이고, Switching ActivityB는 클럭 라인을 통하여 플립-플롭으로 입력되는 클럭의 액티비티이다. 예시시적으로, 신호의 액티비티는 1이고, 클럭의 액티비티는 2라 가정한다. T는 사용자 고유의 파라미터(user specific parameter)로써, 레이아웃 설계 단계에서 메모리 벤더에 의해 설정되는 상수이다. 예를 들어, T는 클럭의 액티비티, 신호의 액티비티, 클럭 라인 및 신호 라인의 길이 변화에 따른 커패시턴스 변화량, 플립-플롭이 멀티-비트 플립-플롭인지 여부, 소자 밀도, 클럭 스큐 등 다양한 요소에 의해 결정될 수 있다. 예시적으로 설명의 간략화를 위해 T는 1이라 가정한다.
수학식 1에 의하면, 제 1 플립-플롭(FF1)의 경우, 신호 라인 길이의 변화량 및 클록 라인 길이의 변화량은 0이다. 제 2 플립-플롭(FF2)의 경우, 신호 라인 길이의 증가량(△A)은 (13-5)+(12-5)+(14-6)+(2-6)=19이고, 클럭 라인 길이의 감소량(△B)은 6이다. 이값을 위의 수학식 1에 대입해 보면, (19*1)/(6*2)<1을 만족하지 않는다. 즉, 이는 클럭 라인 길이의 감소에 따른 소비 전력의 감소량보다, 신호 라인 길이의 증가에 따른 소비 전력의 증가가 더 큼을 의미한다. 따라서, 도 4에 도시된 것과 같은, 제 2 플립-플롭(FF2)에 대한 클럼핑은 부적절하다.
도 5 는 도 3에 도시된 플립-플롭들에 대해 클럼핑을 수행한 다른 예를 보여주는 도면이다. 본 실시 예에서는, 도 4에 도시된 실시 예와 달리, 제 1 플립-플롭(FF1) 및 제 2 플립-플롭(FF2)에 대해서 클럼핑이 수행되었다.
수학식 1에 의하면, 제 1 플립-플롭(FF1)의 경우, 신호 라인 길이의 증가량(△A)은 (14-11)+(3-6)=0이고, 클럭 라인 길이의 감소량(△B)은 5-3=2이다. 제 2 플립-플롭(FF2)의 경우, 신호 라인 길이의 증가량(△A)은 (10-5)+(9-5)+(10-6)+(4-6)=11이고, 클럭 라인 길이의 감소량(△B)은 13-9=4이다. 제 1 플립-플롭(FF1) 및 제 2 플립-플롭(FF2)에 대한 위의 계산량을 수학식 1에 대입해 보면, {(0+11)*1}/{(2+4)*2)<1을 만족한다. 즉, 이는 클럭 라인 길이의 감소에 따른 소비 전력의 감소량이 신호 라인 길이의 증가에 따른 소비 전력의 증가보다 더 큼을 의미하므로, 클럼핑을 수행할 실익이 있다.
이상 도 3 내지 도 5를 통하여, 하나의 클럭 게이팅 셀와 두 개의 플립-플롭들을 통하여 클럼핑을 수행하는 것이 예시적으로 설명되었다. 본 발명의 실시 예에 따라 복수의 플립-플롭들에 대해 클럼핑을 수행하는 동작은 아래의 수학식 2를 최소화하는 것으로 이해될 수 있다. 수학식 2에서, 복수의 클럭 게이팅 셀들(I1~Im) 중 클럭 게이팅 셀(Ci)의 좌표는 (XIi, YIi)이다. 그리고 복수의 플립-플롭들(F1~Fn) 중 플립-플롭(Fj)의 좌표는 (XFj, YFj)이다.
Figure 112016108754512-pat00002
앞의 수학식 1의 신호 라인 길이의 증가량을 계산하기 위해, 클럼핑 전과 클럼핑 후의 신호 라인 길이들이 구해져야 한다. 클럼핑 전의 신호 라인 길이와 클럼핑 후의 신호 라인 길이는 각각 수학식 3과 수학식 4와 같이 표현될 수 있다.
Figure 112016108754512-pat00003
Figure 112016108754512-pat00004
여기서, 클럼핑 전의 플립-플롭(Fj)의 좌표는 (XFOj, YFOj)이며, 클럼핑 후의 플립-플롭(Fj)의 좌표는 (XFCj, YFCj)이다. 플립-플롭(Fj)으로 입력되거나 플립-플롭(Fj)으로부터 출력되는 신호의 입/출력들(C1~Cp) 중 어느 하나(Ck)의 좌표(예를 들어, 도 5의 input3의 좌표 등)는 (XCk, YCk)이다. 그리고, SWk는 신호의 스위칭 액티비티이다.
계속하여, 앞의 수학식 1의 클럭 라인 길이의 감소량을 계산하기 위해, 클럼핑 전과 클럼핑 후의 클럭 라인 길이들이 구해져야 한다. 클럼핑 전의 클럭 라인 길이와 클럼핑 후의 클럭 라인 길이는 각각 수학식 5 및 수학식 6과 같이 표현될 수 있다.
Figure 112016108754512-pat00005
Figure 112016108754512-pat00006
여기서, CWj는 클럭의 스위칭 액티비티이다.
이상 수학식 2 내지 수학식 6을 종합하여, 수학식 1을 다시 표현하면, 수학식 7과 같이 표현될 수 있다. 즉, 수학식 7의 분자는 신호의 스위칭 액티비티와 신호 라인 길이의 증가량의 곱이며, 분모는 클럭의 스위칭 액티비티와 클럭 라인 길이의 감소량의 곱을 나타낸다.
Figure 112016108754512-pat00007
한편, 플립-플롭이 타이밍 슬랙 프리 영역에 있는지 여부, 그리고 클럭 라인 길이의 변화와 신호 라인의 길이 변화 외에도, 클럼핑을 수행함에 있어서 다음과 같은 추가적인 요소가 고려될 수 있다.
예를 들어, 특정 영역에 배치된 논리 소자들의 면적이 어떤 임계 값을 초과하는 경우에는 클럼핑이 수행되지 않도록 할 수 있다. 즉, 클럼핑 수행 시, 소자들의 밀도가 추가로 고려될 수 있다. 레이아웃의 어떤 특정한 영역 상에 논리 소자들을 빼곡하게 배치시킬 수는 없으며, 스페어 셀, 라우팅 등을 고려하여 어느 정도 빈 공간이 있어야 하기 때문이다. 이러한 조건은 아래의 수학식 4와 같이 표현될 수 있다.
Figure 112016108754512-pat00008
여기서 AF는 특정 영역(예를 들어, 도 3~5의 R1, R2)에 배치된 플립-플롭들의 면적이고, AC는 논리 소자들(예를 들어, 도 3~5의 CG)의 면적이다. W는 각각의 영역(R1 또는 R2)의 제 1 방향(D1)으로의 길이이며, H는 각각의 영역(R1 또는 R2)의 제 2 방향(D2)으로의 높이이다.
추가로, 클럼핑으로 인하여 클럭 스큐 가 어떤 임계값(예를 들어, 논리 소자에 오작동을 일으키는 범위)을 벗어난다면, 클럼핑은 실행되지 않을 수 있다. 이러한 조건은 아래의 수학식 9와 같이 표현될 수 있다.
Figure 112016108754512-pat00009
여기서 DS는 소스 클럭과 클립-플롭 사이의 최단거리이며, 여기서 Dl는 소스 클럭과 클립-플롭 사이의 최장거리이다.
도 6은 본 발명의 실시 예에 따른 반도체 장치의 레이아웃 배치 방법을 보여주는 순서도이다. 예를 들어, 본 실시 예는 플립-플롭들(FF1, FF2)에 대한 클럼핑 수행 결과에 따라 레이아웃 상에 새로이 변경될 위치에 대하여 실행되는 동작일 수 있다. 본 실시 예에서, 클럼핑을 통해 새로이 변경될 플립-플롭의 위치를 타깃 위치라 칭하기로 한다. 설명의 이해를 돕기 위해 도 5를 함께 참조하여 설명하기로 한다.
S210 단계에서, 플립-플롭이 타이밍 슬랙 프리 영역 내(예컨대, 그리드(grid)들 중 어느 하나)에 위치하도록 배치한다. 플립-플롭을 타깃 위치에 배치 함으로서, 소비 전력이 감소한다 하더라도 플립-플롭이 타이밍 슬랙 프리 영역 밖에 배치되면 반도체 장치는 오작동을 일으킨다. 따라서, 제 1 플립-플롭(FF1)은 제 1 슬랙 프리 영역 내에서 게이팅 셀과 가까운 곳에 배치시킨다.
S220 단계에서, 타깃 위치로의 변경 결과, 비용 함수 조건이 만족하는지 판단될 수 있다. 예를 들어, 비용 함수는 앞서 수학식 1을 통하여 상세하게 설명되었다. 즉, 타깃 위치로의 플립-플롭의 이동에 따라, 클럭 라인 길이의 감소에 의한 소비 전력 감소와 신호 라인 길이의 증가에 따른 소비 전력 증가가 스위칭 액티비티를 고려하여 적절히 비교된다. 만일 비용 함수 조건을 만족하지 못하면, S210 단계가 다시 실행되어 게이팅 셀과 덜 가까운 타깃 위치에 대해 클럼핑이 적절한지 여부가 판단된다. 반면 비용 함수 조건을 만족한다면, S230 단계가 실행된다.
S230 단계에서, 소자들의 밀도 조건이 충족되는지 여부가 판단될 수 있다. 예를 들어, 타깃 위치로의 플립-플롭의 이동에 따라, 소자 밀도가 수학식 4의 요건을 충족하지 못한다면, S210 단계가 다시 실행되어 다른 타깃 위치에 대해 클럼핑이 적절한지 여부가 판단된다. 반면 소자 밀도 조건이 충족된다면, S240 단계가 실행된다.
S240 단계에서, 클럭 스큐 조건이 충족되는지 여부가 판단될 수 있다. 예를 들어, 타깃 위치로의 플립-플롭의 이동에 따라, 클럭 스큐가 수학식 5의 요건을 충족하지 못한다면, S210 단계가 다시 실행되어 다른 타깃 위치에 대해 클럼핑이 적절한지 여부가 판단된다. 반면 클럭 스큐 조건이 충족된다면, S250 단계가 실행된다.
S250 단계에서, 앞서 설명된 동작들에서의 모든 조건이 충족되면 타깃 위치에 플립-플롭이 배치될 수 있다. 즉, 타깃 위치로 플립-플롭을 배치시킴으로써, 논리 소자의 오작동 없이 반도체 장치의 소비 전력을 감소시킬 수 있다.
앞서 설명된 동작들은 하나의 영역(예를 들어, R1 또는 R2)에 대해 플립-플롭이 배치될 수 있는 가능한 모든 장소들 (또는 좌표들)에 대해 반복적으로 실행될 수 있다. 따라서, 하나의 영역(예를 들어, R1 또는 R2) 내에서도 게이팅 셀과 가장 가까운 타깃 위치에 대해 앞서 설명된 동작들에서의 모든 조건들이 만족하는지 검사되고, 만족되지 않으면 두 번째로 게이팅 셀과 가까운 위치에 대해 앞서 설명된 동작들에서의 모든 조건들이 판단될 수 있다. 즉, 모든 조건이 만족할 때까지 반복하여 실행될 수 있다. 이 경우, 앞서 설명된 모든 조건들을 만족하면서, 플립-플롭의 클럭 라인에서 소모되는 전력을 최소화할 수 있는 곳에 플립-플롭이 최종적으로 배치될 수 있다.
본 실시 예에서, 각각의 단계들이 정해진 순서에 따라 실행되는 것으로 설명되었으나, 이는 예시적인 것이다. 예를 들어, 실시 예에 따라서, S230 단계가 S220 단계보다 먼저 실행되거나 S240 단계가 S220 단계보다 먼저 실행될 수도 있다.
이상 도 1 내지 도 6을 통하여, 스위칭 액티비티를 고려하여 플립-플롭에 대해 클럼핑을 수행하는 동작이 실행되었다. 한편, 반도체 장치의 테스트 모드 진입 시 원활한 테스트를 수행하기 위해 게이팅 소자가 반도체 레이아웃에 삽입되는 경우에도, 앞서 설명된 스위칭 액티비티가 고려될 수 있다. 이에 대해서는 도 7 이하에서 설명하기로 한다.
도 7은 본 발명의 실시 예에 따른 반도체 장치(200)를 예시적으로 보여주는 회로도이다. 반도체 장치(200)는 제 1 및 제 2 플립-플롭들(FF1, FF2), 제 1 및 제 2 멀티플렉서들(MUX1, MUX2), 제 1 및 제 2 컴비네이셔널 로직들, 및 블로킹 셀을 포함할 수 있다. 물론, 반도체 장치의 구성은 이와 다를 수 있으며, 도면에 도시된 회로도는 제 1 플립-플롭(FF1), 제 1 컴비네이셔널 로직, 및 제 2 플립-플롭(FF2)의 관점에서 본 발명을 설명하기 위해 예시적으로 도시된 것이다. 그리고, 블로킹 셀은 AND 게이트인 것으로 도시되었으나, 이에 한정되지 않는다.
일반적으로, 반도체 장치는 두 가지 동작 모드를 가질 수 있다. 하나는 반도체 장치의 일반적인 기능을 수행하는 기능 모드(functional mode) (또는 노멀 모드)이고, 다른 하나는 반도체 장치에 대한 테스트를 수행하기 위한 스캔 시프트 모드(scan shift mode)이다.
반도체 장치(200)에 대한 테스트 수행 시, 반도체 장치에 포함된 플립-플롭들(FF1, FF2)에 이상이 있는지 테스트할 필요가 있다. 그러나, 다양한 논리 소자들과 플립-플롭들이 서로 복잡하게 얽혀있는 회로도에서 이상이 있는 특정한 플립-플롭을 찾는 것은 어려운 일이다. 이를 위해, 플립-플롭들(FF1, FF2)을 서로 연결하고, 플립-플롭과 다른 컴비네이셔널 로직(combinational logic)은 서로 신호를 주고받을 수 없도록 차단될 수 있다. 이 경우 사용되는 것이 블로킹 셀(block cell)이다. 블로킹 셀이 삽입되는 위치 등은 반도체 장치의 레이아웃 설계 단계에서 적절히 고려될 수 있다.
기능 모드시, 제 1 플립-플롭(FF1)으로부터의 출력 신호는 제 1 컴비네이셔널 로직으로 입력되도록 구성될 수 있다. 이를 위해 블로킹 셀이 적절하게 동작할 수 있다. 그리고, 제 2 컴비네이셔널 로직으로부터의 신호는 제 2 플립-플롭(FF2)으로 입력될 수 있다. 이를 위해 제 2 멀티플렉서(MUX2)가 적절하게 동작할 수 있다.
스캔 시프트 모드시, 스캔 인에이블 신호(Scan_EN)에 의해 블로킹 셀은 활성화될 수 있으며, 그 결과, 제 1 플립-플롭(FF1)으로부터 출력된 신호는 제 1 컴비네이셔널 로직으로 입력되지 않는다. 대신에, 제 2 멀티플렉서(MUX2)가 인에이블 신호(EN)에 의해 활성화되어, 제 1 플립-플롭(FF1)과 제 2 플립-플롭(FF2)은 서로 연결될 수 있다.
스캔 모드시, 제 2 컴비네이셔널 로직으로부터의 신호는 제 2 플립-플롭(FF2)으로 입력되지 않는다. 물론, 이를 위해 추가적인 블로킹 셀이 필요할 것이다. 그러나, 본 실시 예에서는, 제 1 플립-플롭(FF1)과 제 2 플립-플롭(FF2)의 연결, 그리고 제 1 플립-플롭(FF1)과 제 1 컴비네이셔널 로직의 차단이 설명되므로, 제 2 컴비네이셔널 로직과 제 2 플립-플롭(FF2)을 차단하기 위한 블로킹 셀에 대해서는 생략하기로 한다. 그리고, 제 1 멀티플렉서(MUX1)로 입력되는 스캔-인 신호(Scan-in)는 스캔 시프트 모드시 다른 플립-플롭(미도시)으로부터 수신되는 신호이므로, 이와 관련된 설명도 생략하기로 한다.
본 발명의 실시 예에 의하면, 반도체 장치(200)의 기능 모드에서의 스위칭 액티비티와 스캔 테스트 모드에서의 스위칭 액티비티를 고려하여 블로킹 셀의 삽입 여부가 결정된다. 그리고, 플립-플롭의 출력단에 연결된 부하들의 개수도 함께 고려하여 블로킹 셀의 삽입 여부가 결정된다. 이러한 요소들을 고려하여 블로킹 셀을 삽입할지 여부를 결정하는 예가 도 8a, 8b 및 도 9a, 9b에 도시되었다.
도 8a는 스캔 시프트 모드에서 플립-플롭들(FF1, FF2)이 서로 연결되는 예를 보여주는 도면이다. 앞서 도 7에 도시된 반도체 장치의 구성 요소들 중 제 1 및 제 2 플립-플롭들(FF1, FF2)과 제 1 컴비네이셔널 로직만이 도 8a에 간략히 도시되었다. 도 8b는 기능 모드와 스캔 시프트 모드에서, 제 1 플립-플롭(FF1)으로부터 출력되는 신호와, 제 1 플립-플롭(FF1)으로 입력되는 클럭(CLK)의 파형을 예시적으로 보여주는 도면이다. 도 8a, 8b를 함께 참조하여 설명하기로 한다.
기능 모드에서, 제 1 플립-플롭(FF1)의 출력은 제 1 컴비네이셔널 로직으로 입력된다. 그리고, 스캔 시프트 모드에서 제 1 플립-플롭(FF1)과 제 1 컴비네이셔널 로직의 연결은 서로 차단되며, 제 1 플립-플롭(FF1)은 제 2 플립-플롭(FF2)과 연결된다.
한편, 기능 모드에서 제 1 플립-플롭(FF1)으로부터 출력되는 신호의 액티비티는 스캔 시프트 모드에서 제 2 플립-플롭(FF2)으로부터 출력되는 신호의 액티비티의 1/2배이다. 이는 기준 주기(예를 들어, t0~t1)에서의 토글링 횟수를 비교해보면 알 수 있다.
스캔 시프트 모드에서의 스위칭 액티비티가 기능 모드에서의 스위칭 액티비티보다 더 크기 때문에, 제 1 플립-플롭(FF1)과 제 1 컴비네이션 로직의 연결을 끊고, 제 1 플립-플롭(FF1)과 제 2 플립-플롭(FF2)을 연결시키기 위한 블로킹 셀을 삽입하는 것이 적절해 보일 수 있지만, 제 1 플립-플롭(FF1)의 출력단에 연결된 부하의 개수를 고려하면 이는 비효율적일 수 있다. 즉, 제 1 플립-플롭(FF1)의 출력단에는 하나의 AND 게이트만 연결되어 있기 때문에, 하나의 AND 게이트에 의한 소모 전력을 감소시키는 것은 기대에 미치지 못할 수 있다. 이와 비교되는 예가 도 9a, 9b에 도시되었다.
도 9a는 스캔 시프트 모드에서 플립-플롭들(FF3, FF4)이 서로 연결되는 예를 보여주는 도면이다. 앞서 도 7에 도시된 반도체 장치의 구성 요소들 중 제 1 및 제 2 플립-플롭들(FF1, FF2)에 각각 대응하는 제 3 및 제 4 플립-플롭들(FF3, FF4)과, 제 1 컴비네이셔널 로직에 대응하는 제 3 컴비네이셔널 로직만이 도 9a에 간략히 도시되었다. 제 3 컴비네이셔널 로직은 10개의 AND 게이트 소자로 구성되어 있다고 가정하자. 도 9b는 기능 모드와 스캔 시프트 모드에서, 제 3 플립-플롭(FF3)으로부터 출력되는 신호와, 제 3 플립-플롭(FF3)으로 입력되는 클럭(CLK)의 파형을 예시적으로 보여주는 도면이다. 도 9a, 9b를 함께 참조하여 설명하기로 한다.
기능 모드에서, 제 3 플립-플롭(FF3)의 출력은 제 3 컴비네이셔널 로직으로 입력된다. 그리고, 스캔 시프트 모드에서 제 3 플립-플롭(FF3)과 제 3 컴비네이셔널 로직의 연결은 서로 차단되며, 제 3 플립-플롭(FF3)은 제 4 플립-플롭(FF4)과 연결된다.
한편, 기능 모드에서 제 3 플립-플롭(FF3)으로부터 출력되는 신호의 액티비티는 스캔 시프트 모드에서 제 4 플립-플롭(FF4)으로부터 출력되는 신호의 액티비티의 2배이다. 이는 기준 주기(예를 들어, t0~t1)에서의 토글링 횟수를 비교해보면 알 수 있다.
비록 스캔 시프트 모드에서의 스위칭 액티비티보다 기능 모드에서의 스위칭 액티비티가 더 크기 때문에, 제 3 플립-플롭(FF3)과 제 3 컴비네이션 로직의 연결을 끊고, 제 3 플립-플롭(FF3)과 제 4 플립-플롭(FF4)을 연결시키기 위한 블로킹 셀을 삽입하는 것이 부적절해 보일 수 있지만, 제 3 플립-플롭(FF3)의 출력단에 연결된 부하의 개수를 고려하면 이는 효율적일 수 있다. 즉, 제 3 플립-플롭(FF3)의 출력단에는 10개의 AND 게이트만 연결되어 있기 때문에, 10개의 AND 게이트에 의한 소모 전력을 감소시키는 것은, 소비 전력 측면에서 적어도 도 8a, 8b의 실시 예보다는 유리하다.
따라서, 본 발명의 실시 예에 의하면, 스캔 시프트 모드에서 플립-플롭들을 연결시키기 위한 블로킹 셀의 삽입 시, 스캔 시프트 모드에서의 스위칭 액티비티와 기능 모드에서의 스위칭 액티비티 뿐만 아니라, 플립-플롭의 출력에 연결되는 부하들의 개수도 함께 고려한다. 이를 수식으로 표현하면 아래의 수학식 10과 같다. 그리고, 수학식 10을 만족하는 경우에, 블로킹 셀이 삽입될 수 있다.
Figure 112016108754512-pat00010
여기서, Fi는 기능 모드에서 플립-플롭으로부터 출력되는 신호의 스위칭 액티비티이고, Si는 스캔 시프트 모드에서 플립-플롭으로부터 출력되는 신호의 스위칭 액티비티이다. nfanout은 기능 모드에서 플립-플롭에 의해 구동되는 부하의 개수, 즉, 기능 모드에서 플립-플롭의 출력단에 연결된 부하의 개수이다. T는 사용자 고유의 파라미터(user specific parameter)로써, 블로킹 셀의 삽입 단계에서 설계자에 의해 설정되는 상수이다. 기능 모드에서 소비되는 전력과 스캔 시프트 테스트 모드에서 소비되는 전력 사이에 어느 것에 더 가중치를 두는지에 따라 상수 값이 결정될 수 있다.
한편, 수학식 10의 조건 외에도, 블로킹 셀을 삽입함에 있어서 다양한 요소들이 추가로 고려될 수 있다. 예를 들어, 블로킹 셀의 삽입으로 인하여 임계값을 초과하는 신호의 지연이 발생한다면, 이는 반도체 장치에 대한 테스트 동작 수행시, 오류를 초래할 것이다. 즉, 셋업 슬랙 타이밍은 0 이상이어야 한다. 따라서, 블로킹 셀 삽입시, 아래와 같은 수학식 11이 추가로 고려될 수 있다.
Figure 112016108754512-pat00011
여기서, TCLK는 클럭의 주기이고, Tscansetup은 블로킹 셀의 셋-업 시간이고, Tcomb는 컴비네이셔널 로직의 경로 지연(path delay)이다. TCKQ는 양의 클럭 에지(positive clock edge) 이후 블로킹 셀의 클럭으로부터 출력까지의 전파지연(CLK to Q propagation delay)이다. Tgating은 블로킹 셀의 삽입에 따른 지연이고, Tunc는 클럭 스큐, 지터 등과 같은 기타 요소에 의한 지연이다.
한편, 수학식 11의 조건 외에도 레이아웃 상의 특정 영역에 배치된 논리 소자들의 면적이 어떤 임계값을 초과하는 경우에는 클럼핑이 수행되지 않도록 할 수 있다. 즉, 블로킹 셀의 삽입시 소자들의 밀도가 추가로 고려될 수 있다. 이러한 조건은 아래의 수학식 8에서 표현된 것과 동일하므로 상세한 설명은 생략하기로 한다.
도 10은 본 발명의 실시 예에 따라 반도체 장치의 레이아웃 배치 방법을 보여주는 순서도이다. 예를 들어, 본 실시 예는 스캔 시프트 모드로의 진입에 사용되는 블로킹 셀을 삽입하는 방법에 관한 것이다. 설명의 이해를 돕기 위해 도 7을 함께 참조하여 설명하기로 한다.
S310 단계에서, 블로킹 셀의 삽입에 따라, 비용 함수 조건이 만족하는지 판단될 수 있다. 예를 들어, 앞서 수학식 6의 비용 함수가 이용될 것이다. 같다. 즉, 기능 모드에서의 스위칭 액티비티, 스캔 시프트 모드에서의 스위칭 액티비티 뿐만 아니라, 플립-플롭의 출력단에 연결된 부하들의 개수도 함께 고려될 수 있다. 만일 비용 함수 조건을 만족하지 못하면, 해당 플립-플롭에 대한 블로킹 셀의 삽입은 부적절한 것이므로 절차는 종료한다. 반면, 비용 함수 조건을 만족한다면, S320 단계가 실행된다.
S320 단계에서, 셋업 슬랙 타이밍 조건이 충족되는지 여부가 판단될 수 있다. 예를 들어, 블로킹 셀의 삽입에 따라 셋업 슬랙 타이밍이 0미만이 된다면, 이는 반도체 장치의 동작에 오류를 일으키는 시연의 지연을 야기할 수 있다. 따라서, 셋업 슬랙 타이밍 조건을 만족하지 못하면, 해당 플립-플롭에 대한 블로킹 셀의 삽입은 부적절한 것이므로, 절차는 종료한다. 반면, 셋업 슬랙 타이밍 조건이 충족된다면, S330 단계가 실행된다.
S330 단계에서, 소자들의 밀도 조건이 충족되는지 여부가 판단될 수 있다. 예를 들어, 블로킹 셀의 삽입에 따라, 소자 밀도가 수학식 4의 요건을 충족하지 못한다면, 해당 플립-플롭에 대한 블로킹 셀의 삽입은 부적절한 것이므로, 절차는 종료한다. 반면, 소자 밀도 조건이 충족된다면, S340 단계가 실행된다.
S340 단계에서, 블로킹 셀의 삽입이 실행된다. 블로킹 셀의 삽입에 따라, 스캔 시프트 모드시 플립-플롭과 컴비네이셔널 로직은 단절되며, 플립-플롭은 다른 플립-플롭과 연결될 수 있다.
본 실시 예에서 설명된, S310 내지 S330 단계들이 실행되는 순서는 예시적인 것이다. 즉, 각각의 단계들이 실행되는 순서는 이에 한정되지 않는다. 예를 들어, 실시 예에 따라서, S320 단계가 S310 단계보다 먼저 실행되거나 S330 단계가 S310 단계보다 먼저 실행될 수도 있다.
도 11은 본 발명의 실시 예에 따른 반도체 장치의 설계 및 제조 방법을 보여주는 순서도이다.
S410 단계에서, 도 1의 컴퓨팅 시스템(100)을 이용하여 반도체 장치의 상위 수준 설계(High Level Design)가 수행될 수 있다. 상위 수준 설계에 의해서 설계된 회로들은 레지스터 전송 레벨(RTL) 코딩이나 시뮬레이션에 의해서 보다 구체적으로 표현될 수 있으며, 이는 넷리스트(Netlist)로 변환되어 전체 반도체 장치로 합성될 수 있다.
S420 단계에서, 제 1 비용 함수에 기초하여 블로킹 셀이 삽입될 수 있다. 여기서 제 1 비용 함수는 수학식 6을 의미할 수 있다. 즉, 블로킹 셀이 연결되는 플립-플롭과 관련하여, 기능 모드에서의 스위칭 액티비티, 스캔 시프트 모드에서의 스위칭 액티비티, 플립-플롭의 출력단에 연결된 부하들의 개수 등 다양한 요소들을 고려하여 블로킹 셀을 삽입하는 것이 적절한지 여부가 판단될 수 있다.
뿐만 아니라, 본 단계에서는 비용 함수 외에도, 수학식 4에 표현된 밀도 조건, 수학식 7에 표현된 본 단계에서, 반도체 장치의 레이아웃에 포함된 슬랙 셋업 타이밍 조건이 추가로 고려될 수 있다.
S430 단계에서, 로직 셀들, 플립-플롭들, 및 블로킹 셀들이 가상의 레이아웃 상에 배치될 수 있다. 예를 들어, 상위 수준 설계에서 합성된 스키매틱 회로 또는 그에 대응하는 넷리스트를 참조하여, 규정된 디자인 룰에 따라 셀 라이브러리(Cell Library)에서 제공되는 다양한 표준 셀들, 플립-플롭들, 및 블로킹 셀들이 배치될 것이다.
S440 단계에서, 제 2 비용 함수에 기초하여 플립-플롭에 대한 클럼핑이 수행될 수 있다. 여기서 제 2 비용 함수는 수학식 1을 의미할 수 있다. 즉, 반도체 장치의 레이아웃 상에 재배치되는 플립-플롭과 관련하여, 신호 라인 길이의 증가량, 클럭 라인 길이의 감소량, 신호의 스위칭 액티비티, 클럭의 스위칭 액티비티, 타이밍 슬랙, 소자 밀도, 클럭 스큐 등을 고려하여, 반도체 장치의 소비 전력을 감소시키는 최적의 위치에 플립-플롭이 배치될 수 있다.
S450 단계에서, 클럭 트리 네트워크에 의한 전력 소모를 감소시키기 위해, 클럭 트리가 합성될 수 있다.
S460 단계에서, 반도체 장치의 레이아웃 상에 배치된 소자들을 연결하는 라우팅이 실행될 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 위에서 설명한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
100: 컴퓨팅 시스템
110: 프로세서
120: 워킹 메모리
130: 입출력 장치
140: 저장 장치
200: 반도체 장치

Claims (10)

  1. 반도체 장치의 배치 방법에 있어서:
    클럭 라인을 통하여 클럭을 수신하고, 입력 라인을 통하여 입력 신호를 수신하고, 출력 라인을 통하여 출력 신호를 출력하도록 구성된 플립-플롭을 배치하는 단계; 그리고
    상기 클럭 라인의 길이, 상기 클럭이 기준 시간당 토글링되는 횟수(이하, 제 1 스위칭 액티비티), 상기 입력 라인과 상기 출력 라인의 길이, 및 상기 입력 신호 또는 상기 출력 신호가 상기 기준 시간당 토글링되는 횟수(이하, 제 2 스위칭 액티비티)를 고려하여 상기 플립-플롭을 재배치하는 단계를 포함하는 반도체 장치의 배치 방법.
  2. 제 1 항에 있어서,
    기준 면적에 대한, 상기 클럭을 생성하는 클럭 게이팅 셀의 면적과 상기 플립-플롭의 면적이 차지하는 비율을 고려하여 상기 플립-플롭을 재배치하는 단계를 더 포함하는 반도체 장치의 배치 방법.
  3. 제 2 항에 있어서,
    상기 플립-플롭의 위치에 따른 클럭 스큐를 고려하여 상기 플립-플롭을 재배치하는 단계를 더 포함하는 반도체 장치의 배치 방법.
  4. 제 1 항에 있어서,
    상기 플립-플롭을 재배치하는 단계는, 상기 플립-플롭이 멀티-비트 데이터를 저장하는지 여부를 고려하여 실행되는 반도체 장치의 배치 방법.
  5. 제 1 항에 있어서,
    상기 플립-플롭은 제 1 플립-플롭이고,
    상기 반도체 장치의 테스트를 위한 스캔 시프트 모드시, 상기 제 1 플립-플롭의 출력단에 연결되는 컴비네이셔널 로직과 상기 제 1 플립-플롭의 연결을 차단하고, 상기 제 1 플립-플롭과 제 2 플립-플립을 연결시키도록 구성되는 블로킹 셀을 배치하는 단계를 더 포함하는 반도체 장치의 배치 방법.
  6. 제 5 항에 있어서,
    상기 블로킹 셀을 배치하는 단계는, 기능 모드에서 상기 제 1 플립-플롭에 대한 입력 신호 또는 출력 신호가 상기 기준 시간당 토글링되는 횟수(이하, 제 3 스위칭 액티비티), 상기 스캔 시프트 모드에서 상기 제 1 플립-플롭에 대한 입력 신호 또는 출력 신호가 상기 기준 시간당 토글링되는 횟수(이하, 제 4 스위칭 액티비티), 및 상기 기능 모드시 상기 제 1 플립-플롭의 출력단에 연결되는 부하의 개수를 고려하여 실행되는 반도체 장치의 배치 방법.
  7. 제 6 항에 있어서,
    상기 블로킹 셀은, 상기 제 4 스위칭 액티비티와 상기 부하의 개수에 대한 상기 제 3 스위칭 액티비티의 비율이 기준값 이하인 경우 배치되는 반도체 장치의 배치 방법.
  8. 제 6 항에 있어서,
    상기 블로킹 셀을 재배치하는 단계에서, 상기 블로킹 셀의 삽입에 따른 셋업 슬랙 타이밍이 고려되는 반도체 장치의 배치 방법.
  9. 반도체 장치에 있어서:
    클럭 게이팅 셀; 그리고
    클럭 라인을 통하여 상기 클럭 게이팅 셀로부터 클럭을 수신하고, 입력 라인을 통하여 입력 신호를 수신하고, 출력 라인을 통하여 출력 신호를 출력하도록 구성된 플립-플롭을 포함하되,
    상기 플립-플롭은 상기 클럭 라인의 길이, 상기 클럭이 기준 시간당 토글링되는 횟수(이하, 제 1 스위칭 액티비티), 상기 입력 라인과 상기 출력 라인의 길이, 및 상기 입력 신호 또는 상기 출력 신호가 상기 기준 시간당 토글링되는 횟수(이하, 제 2 스위칭 액티비티)를 고려하여 배치되는 반도체 장치.
  10. 제 9 항에 있어서,
    상기 플립-플롭은,
    기준 면적에 대한, 상기 클럭 게이팅 셀의 면적과 상기 플립-플롭의 면적이 차지하는 비율을 고려하여 배치되거나,
    상기 플립-플롭은 상기 플립-플롭이 멀티-비트 데이터를 저장하는지 여부를 고려하여 배치되는 반도체 장치.
KR1020160147685A 2016-11-07 2016-11-07 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치 KR102611888B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160147685A KR102611888B1 (ko) 2016-11-07 2016-11-07 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치
US15/701,110 US10103715B2 (en) 2016-11-07 2017-09-11 Method of laying out a semiconductor device based on switching activity and semiconductor device produced thereby

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160147685A KR102611888B1 (ko) 2016-11-07 2016-11-07 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치

Publications (2)

Publication Number Publication Date
KR20180051708A KR20180051708A (ko) 2018-05-17
KR102611888B1 true KR102611888B1 (ko) 2023-12-11

Family

ID=62064137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160147685A KR102611888B1 (ko) 2016-11-07 2016-11-07 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치

Country Status (2)

Country Link
US (1) US10103715B2 (ko)
KR (1) KR102611888B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558775B2 (en) 2017-12-20 2020-02-11 International Business Machines Corporation Memory element graph-based placement in integrated circuit design
US10990745B2 (en) * 2018-09-20 2021-04-27 Taiwan Semiconductor Manufacturing Company Ltd. Integrated circuit and method of forming same and a system
US11030367B2 (en) 2019-09-11 2021-06-08 International Business Machines Corporation Out-of-context feedback hierarchical large block synthesis (HLBS) optimization

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3178127B2 (ja) * 1992-12-07 2001-06-18 日本電気株式会社 自動レイアウト手法による半導体集積回路のブロック配置方法
KR0145220B1 (ko) * 1995-05-25 1998-07-01 김광호 입력특성이 개선된 반도체 메모리장치 및 회로배치방법
US7546559B2 (en) 2003-08-01 2009-06-09 Atrenta, Inc. Method of optimization of clock gating in integrated circuit designs
US7257782B2 (en) 2004-10-22 2007-08-14 Synopsys, Inc. Method and apparatus for reducing power consumption in an integrated circuit chip
JP2011238163A (ja) * 2010-05-13 2011-11-24 Renesas Electronics Corp 半導体集積回路のレイアウト方法、レイアウトシステム及びレイアウトプログラム
JP2012174226A (ja) * 2011-02-24 2012-09-10 Renesas Electronics Corp 半導体集積回路のレイアウト設計方法
US8566658B2 (en) 2011-03-25 2013-10-22 Lsi Corporation Low-power and area-efficient scan cell for integrated circuit testing
US8704577B2 (en) 2011-05-27 2014-04-22 Drexel University Clock mesh synthesis with gated local trees and activity driven register clustering
US8661374B2 (en) 2011-09-14 2014-02-25 Texas Instruments Incorporated Placement aware clock gate cloning and fanout optimization
US8788896B2 (en) 2012-01-11 2014-07-22 Lsi Corporation Scan chain lockup latch with data input control responsive to scan enable signal
US20130194016A1 (en) 2012-01-31 2013-08-01 Shmuel Wimer System and method for generating a clock gating network for logic circuits
US20160049937A1 (en) 2014-08-15 2016-02-18 Qiang Tong Activity correlation based optimal clustering for clock gating for ultra-low power vlsi
US9842185B2 (en) * 2015-08-21 2017-12-12 Qualcomm Incorporated Systems and methods for group constraints in an integrated circuit layout

Also Published As

Publication number Publication date
US20180131351A1 (en) 2018-05-10
KR20180051708A (ko) 2018-05-17
US10103715B2 (en) 2018-10-16

Similar Documents

Publication Publication Date Title
US9536038B1 (en) Method and algorithm for functional critical paths selection and critical path sensors and controller insertion
US8141016B2 (en) Integrated design for manufacturing for 1×N VLSI design
US20070234266A1 (en) Method of optimizing IC logic performance by static timing based parasitic budgeting
CN109408846B (zh) 集成电路、非暂时性计算机可读介质以及计算系统
US20100058275A1 (en) Top Level Hierarchy Wiring Via 1xN Compiler
US11030383B2 (en) Integrated device and method of forming the same
US10928442B2 (en) Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line
KR102611888B1 (ko) 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치
US9519611B2 (en) Hardware data structure for tracking ordered transactions
US10235485B1 (en) Partial reconfiguration debugging using hybrid models
US8146041B1 (en) Latch based optimization during implementation of circuit designs for programmable logic devices
US10878155B2 (en) System and method for estimating leakage power of circuit design at early stage
US10339241B1 (en) Methods for incremental circuit design legalization during physical synthesis
US20230274064A1 (en) On-the-fly multi-bit flip flop generation
US11270052B2 (en) System and method of timing characterization for semiconductor circuit
US11328109B2 (en) Refining multi-bit flip flops mapping without explicit de-banking and re-banking
US9721051B2 (en) Reducing clock skew in synthesized modules
US7191416B2 (en) System and method for modifying integrated circuit hold times
US10796051B1 (en) Adaptive model interface for a plurality of EDA programs
US10936772B1 (en) Methods for incremental circuit physical synthesis
US20220114321A1 (en) Systems And Methods For Generating Placements For Circuit Designs Using Pyramidal Flows
US20220335187A1 (en) Multi-cycle test generation and source-based simulation
US20240193323A1 (en) Method of semiconductor process simulation
JP2011077426A (ja) 半導体装置の製造方法及び半導体装置
US10747924B2 (en) Method for manufacturing integrated circuit with aid of pattern based timing database indicating aging effect

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant