KR20100013311A - 스캔 체인들 밸런싱 및 그 밸런스되는 길이의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하는 기술 - Google Patents

스캔 체인들 밸런싱 및 그 밸런스되는 길이의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하는 기술 Download PDF

Info

Publication number
KR20100013311A
KR20100013311A KR1020097022833A KR20097022833A KR20100013311A KR 20100013311 A KR20100013311 A KR 20100013311A KR 1020097022833 A KR1020097022833 A KR 1020097022833A KR 20097022833 A KR20097022833 A KR 20097022833A KR 20100013311 A KR20100013311 A KR 20100013311A
Authority
KR
South Korea
Prior art keywords
scan
scan chains
length
maximum
chains
Prior art date
Application number
KR1020097022833A
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100013311A publication Critical patent/KR20100013311A/ko

Links

Images

Classifications

    • 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/302Contactless testing
    • G01R31/305Contactless testing using electron beams
    • G01R31/307Contactless testing using electron beams of integrated 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/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • 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
    • 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/318544Scanning methods, algorithms and patterns

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

스캔 체인들을 밸런싱하는 방법들 및 시스템이 개시되며, 더 상세하게는 계층적으로(hierarchically) 설계된 집적회로들 내에 스캔 체인들을 로드 밸런싱(load balancing)하는 방법들 및 시스템들이 개시된다. 이 방법은 최대 스캔 체인 길이 L을 산정 또는 계산하는 단계, 및 각각의 계층적 블록에서 길이 L의 스캔 체인들의 최대 수를 생성하는 단계를 포함한다. 이 방법은 부가 스캔 체인들 내에 각각의 계층적 블록에서의 남는 스캔 비트들을 분배하는 단계, 및
최대 길이 L의 스캔 체인들을 사용함에 의해, 그리고 모든 남는 탑 레벨 스캔 비트들에 더하여, 최대 길이 L의 상기 부가 스캔 체인들을, 최대 길이 L의 상기 부가 칩 레벨 스캔 체인들 사이에 분배함에 의해, 칩 레벨 스캔 체인들을 생성하는 단계를 더 포함한다.

Description

스캔 체인들 밸런싱 및 그 밸런스되는 길이의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하는 기술{BALANCING SCAN CHAINS AND INSERTING THE BALANCED-LENGTH SCAN CHAINS INTO HIERARCHICALLY DESIGNED INTEGRATED CIRCUITS}
본 발명은 스캔 체인들(scan chains)을 밸런스(balance)하는 방법들 및 시스템과 관련되고, 더 상세하게는, 본 발명은 스캔 체인들을 계층적으로 설계된(hierarchically designed) 집적회로들에 로드 밸런스(load balance)하는 방법들 및 시스템들과 관련된다.
스캔 체인들(scan chains)은 "테스트를 위한 설계"에서 사용되는 기술로서, 집적회로(integrated circuit, IC)의 모든 플립플롭을 세트하여 관찰할 수 있는 간단한 방법을 제공한다. 각각의 IC는, 제품 하드웨어가 그 제품의 설계된 기능에 나쁜 영향을 미칠 수 있는 어떤 결함들도 포함하지 않는다는 것을 확인하기 위해, 스캔 체인들을 사용하여 테스트될 수 있다.
일반적으로 테스트들은 자동 테스트 장비(Automatic Test Equipment, ATE)에서 실행되는 테스트 프로그램들에 의해 진행된다. 이 ATE로는, 예를 들면, 자동 테스트 패턴 생성(automatic test pattern generation, ATPG) 툴이 있다. 이 ATGP는 입력(또는 테스트) 시퀀스를 찾아내기 위해 사용되는 전자 설계 자동화 툴(electronic design automation tool)이다. 이 입력 시퀀스는, 디지털 회로에 적용될 경우 테스터들에게 정확한(correct) 회로 동작과 결함있는(faulty) 회로 동작(특정 결함에 의해 야기되는)을 구별할 수 있도록 한다. 테스트들은 테스트 패턴과 함께 IC의 스캔 체인들을 로드(load)하여, 하나 또는 그 이상의 클럭들(clocks)을 인가하고, 그런 다음 그 스캔 체인들로부터의 응답들을 언로드(unload)함으로써 적용된다. 이 프로세스는 수 천 번 반복되는데, 여기서 가장 긴 스캔 체인의 길이가 통상적으로 스캔 체인들을 로드/언로드하기 위해 필요한 테스터 사이클들의 수를 결정한다. 그리고, 알려진 것과 같이, 테스트 비용은 테스트 시간과 직접적으로 관련되고, 테스트 시간은 또한 가장 긴 스캔 체인의 길이와 직접적으로 관련된다. 예를 들어, 스캔 체인들이 더 긴 경우에는 로드 및 언로드 시간을 더 많이 필요로 하고, 그리하여 총 비용을 증가시킨다.
테스트 비용이 테스트 시간과 직접적으로 관련된다는 사실을 고려하면, 가장 긴 스캔 체인을 최소화하는 것이 이상적이다. 이러한 이유 때문에, 체인들의 수가 정해져(fixed) 있다고 가정하면, 가장 긴 스캔 체인의 길이는 일반적으로 모든 스캔 체인들이 같은 길이를 가질 때 최소화된다. 정확하게 같은 길이의 스캔 체인들을 달성하는 것은 불가능할 수 있으나, 최대 길이를 평균 길이보다 단지 몇 퍼센트 더 긴 범위에 있도록 스캔 체인들의 길이들을 밸런스(balance)하는 것은 바람직하다. 일 예에서, 만약 스캔 체인들이 예를 들어 평균 길이의 3% 편차 내에 있다면 그들은 밸런스되는 것으로 간주될 수 있다.
알려진 구현 예들에서, 일부 스캔 체인들은 평균보다 상당히 더 짧을 수 있 고, 심지어 길이가 영(0)일 수도 있으나, 그럼에도 "밸런스되는(balanced)" 스캔 체인들이 될 수 있다. 예를 들어, 100개의 스캔 체인들 사이에 분배되는 100,000개의 스캔 셀들을 갖는 가상의 설계는, 길이 1030인 97개의 스캔 체인들, 길이 90인 한 개의 스캔 체인, 및 길이 0인 두 개의 스캔 체인들을 가질 수 있으나, 그럼에도 3% 내에서 밸런스되는 스캔 체인들을 갖는다. 바꿔 말하면, 가장 긴 체인은 평균 길이(1000)보다 3%(1030) 더 길다.
또한, 최근까지, IC에 대한 스캔 체인들의 수는, 스캔을 위해 이용가능할 수 있는 핀들의 수 또는 IC를 테스트하기 위해 사용되는 테스트 장비에 의해 제한되었다. 그러나, 온칩 테스트(on-chip test) 데이터 압축(compression) 및 해제(decompression) 방법들이 출현함에 따라, 스캔 체인들의 수는 대략 20 배 증가했다. 이러한 이유 때문에, 전형적인 16-32 개의 스캔 체인들 대신에, 500 또는 600 개의 스캔 체인들을 갖는 것이 특별한 것은 아니다.
기존의 툴들은, 이용가능한 스캔 체인들 사이에 스캔 비트들을 할당하는 것이 전적으로 자유라고 가정하면, 같은 길이의 스캔 체인들을 생성할 수 있다. 그러나, 일부 스캔 비트들이 이미 스캔 세그먼트들 내에 미리연결(pre-connected)된 상태이고, 그래서 그 툴에게 그들 미리연결된 세그먼트들을 끊는 것(break up)에 대한 자유가 주어지지 않는 경우에는, 결과들이 늘 최적인 것은 아니다. 이러한 점을 주목하면, 계층적 설계들은 이들 툴들에게 특유의 문제를 초래한다.
계층적 설계들에서, 스캔은 각각의 계층적 블록 또는 모듈 내에 인서트(insert)되어야 하고, 그런 다음 칩 레벨 스캔 체인들을 형성하기 위해 미리연결 된 세그먼트들은 탑 레벨(top-level) 스캔 비트들과 함께 스티치(stitch)된다. 즉, 스캔 체인들은 각각의 블록에 대해 생성되고, 그런 다음 칩 레벨 스캔 체인들을 형성하기 위해 함께 스티치된다. 계층적 설계들에서 밸런스되는 길이(balanced-length)의 스캔 체인들을 달성하기 위한 시도로서 두 개의 알려진 프로세스들이 있는데, 이 두 개의 프로세스들은 이하에서 논의되는 것과 같이 단점들을 가진다.
첫 번째 프로세스(프로세스 "1")에서는, 그 제품이 N개의 스캔 체인들을 갖도록 규정된다고 가정하면, 상기 프로세스는 각각의 계층적 블록에 대해 N개의 거의 같은 길이(near-equal-length)의 스캔 체인들을 생성할 것이다. 설계의 탑 레벨에서, 상기 프로세스는 계층적 블록 스캔 체인들을 함께 스티치하여, 모든 탑 레벨 스캔 비트들을 상기 N개의 스캔 체인들 사이에 똑같이 분배(distribute)할 것이다. 이것은 각각의 계층적 블록에서 스캔 비트들의 수가 N보다 훨씬 더 많은 경우들에서는 효과가 좋다. 이 경우 N은 기껏해야 몇 다스(dozen)이다.
두 번째 프로세스(프로세스 "2")에서는, 계층적 블록에서의 스캔 비트들의 수가 N보다 두드러지게 더 크지 않은 경우들에 있어서, 상기 프로세스는 거의 같은 길이의 스캔 체인들을 생성할 것이다. 이 프로세스에서, 가장 긴 스캔 체인은 어떤 한도(limit)(예를 들어, 400 개의 스캔 비트들)를 넘어서지 않는다. 이 한도가 전체 설계에서의 스캔 비트들의 총 수에 비해 상대적으로 작은 한, 탑 레벨에서 알려진 방법들을 사용함으로써, 그 스캔 체인들은 아주 잘 밸런스되어 계층적 블록들의 스캔 체인들을 함께 스티치할 수 있고, 따라서 그 원하는 수의 칩 레벨 스캔 체인들을 형성할 수 있다.
그러나, 이들 프로세스들(즉, 프로세스 "1" 및 프로세스 "2") 둘 다는 각각의 계층적 블록 상에 과도한 수의 스캔 핀들을 필요로 한다. 예를 들어, 500개의 스캔 체인들을 가질 설계에서 20,000개의 스캔 비트들을 갖는 계층적 블록은, 프로세스 "1"을 사용하는 1000개의 스캔 핀들, 또는 프로세스 "2"를 사용하는 100개 스캔 핀들을 갖도록 요구된다(체인 당 400 비트들의 한도를 가지며).
따라서, 위에서 설명된 단점들 및 한계점들을 극복하고자 하는 당해 기술 분야에서의 요구가 있다.
본 발명의 제1 측면에서, 밸런스되는 길이(balanced-length)의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하기 위한 방법은, 최대 스캔 체인 길이 L을 산정(estimate) 또는 계산하는 단계, 각각의 계층적 블록에서 길이 L인 스캔 체인들의 최대 수를 생성하는 단계; 각각의 계층적 블록에서의 모든 남는 스캔 비트들(any remaining scan bits)을 최대 길이 LR(L보다 작은)인 부가 스캔 체인들(additional scan chains) 내에 분배(distribute)하는 단계, 및 칩 레벨 스캔 체인들(chip-level scan chains)을 생성하는 단계를 포함하되, 상기 칩 레벨 스캔 체인들을 생성하는 단계는, 최대 길이 L인 상기 스캔 체인들을 사용함에 의해, 그리고 최대 길이 L인 부가 칩 레벨 스캔 체인들(additional chip-level scan chains) 사이에, 최대 길이 LR인 상기 부가 스캔 체인들 및 남는 모든 탑 레벨 스캔 비트들(any remaining top-level scan bits)을 분배함으로써 최대 길이 L인 상기 부가 칩 레벨 스캔 체인들을 형성함에 의해 생성된다.
실시예들에서, 상기 산정 또는 계산하는 단계는 상기 계층적으로 설계된 집적회로에서의 각각의 블록에 제공된다. 상기 산정 또는 계산하는 단계는 상기 최대 스캔 체인 길이 L을 산정 또는 계산하기 위해 상기 계층적으로 설계된 집적회로의 설계에 관한 정보를 사용한다. 상기 정보는 스캔 비트들의 수, 스캔 체인들의 수 및 밸런싱 기준(criterium) 중 적어도 하나를 포함한다. 상기 방법은 최대 길이 L인 부가 칩 레벨 스캔 체인들의 최소 수를 생성하는 단계를 더 포함한다. 최대 길이 L인 상기 부가 칩 레벨 스캔 체인들은 원하는 수의 스캔 체인들 사이에 동일하게 또는 실질적으로 동일하게 상기 남는 스캔 비트들을 나눔으로써 생성된다. 상기 최대 스캔 체인 길이 L은 평균 길이의 미리결정된 퍼센티지보다 더 크지 않다. 상기 최대 스캔 체인 길이 L은 상기 계층적으로 설계된 집적회로에서 밸런스된다.
본 발명의 다른 측면에서, 상기 방법은 최대 스캔 체인 길이 L을 계산하는 단계, 및 각각의 계층적 블록 i(i=1,2,...,m)에 대해 최대 스캔 체인 길이 L로 스캔 비트들 Bi의 총 수를 나누어 Mi개의 스캔 체인들을 생성하는 단계를 포함한다. 상기 방법은 상기 나누는 단계로부터 남는 스캔 비트들 Ri로부터 나머지 스캔 체인들(remainder scan chains)을 생성하는 단계, 및 최대 길이를 넘어서지 않는 스티치된 스캔 체인들을 형성하기 위해 탑 레벨에서 상기 나머지 스캔 체인들과 상기 스캔 체인들을 함께 스티치하는 단계를 더 포함한다.
실시예들에서, 상기 스티치하는 단계는 상기 탑 레벨에서 생성될 스캔 체인들의 수 "N"을 규정(specify)하는 단계를 포함한다. 다른 실시예들에서, 상기 스티치하는 단계는 상기 탑 레벨에서 생성될 상기 스캔 체인들의 최대 길이를 규정하는 단계를 포함한다. 이 경우, 생성되는 스캔 체인들의 총 수는 N보다 작을 수 있다. 생성되는 스캔 체인들의 수는, 전체 설계에서의 스캔 비트들의 총 수 나누기 L의 올림(roundup) 값, 또는 N 나누기 F(F는 전체 설계를 위한 목표 스캔 밸런싱 팩터)의 올림 값과 동일하다. 상기 Mi개의 스캔 체인들은 상기 최대 스캔 체인 길이 L에 가까운 길이들을 갖지만, 이를 넘어서지는 않는다. 상기 최대 스캔 체인 길이 L은 로드 밸런스(load balanced)된다.
상기 방법은 계층적 블록(Bi)에서의 스캔 비트들의 총 수 및 나머지 스캔 체인들의 최대 길이(LR)를 제공하는 단계를 더 포함한다. 상기 나머지 스캔 체인들은 미리결정된 길이 LR을 넘어서지 않는다. 상기 남는 스캔 비트들(Ri)은 상기 나머지 스캔 체인들을 생성하기 위해 동일하게 또는 실질적으로 동일하게 분배된다.
또 다른 실시예들에서, 상기 방법은 상기 나머지 스캔 체인들 각각에 대해 최대 길이를 결정하는 단계, 및 상기 나머지 스캔 체인들의 수를 최소화하는 단계를 더 포함한다. 상기 계산하는 단계는 수학식 L = (T/N) x F에 기초하고, 여기서, T = 상기 전체 설계에서 스캔 비트들의 총 수, N = 상기 설계 내에 인서트될 스캔 체인들의 원하는 수; 및 F = 상기 설계를 위한 목표 스캔 밸런싱 팩터이다.
또 다른 실시예들에서, 상기 나누는 단계는 수학식 ML = T/N을 사용하여 상기 스캔 체인의 최소 길이 ML을 계산하는 단계를 포함하며, 여기서, T = 상기 전체 설계에서의 스캔 비트들의 총 수, 및 N = 상기 설계 내에 인서트될 스캔 체인들의 총 수이다. 상기 최소 길이 ML은 로드 밸런싱 팩터를 포함한다. 상기 방법의 단계들은 반도체 디바이스들을 제조하기 위해 사용된다.
본 발명의 또 다른 측면에서, 밸런스되는 길이 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하기 위한 시스템은 컴퓨터 기반구조(infrastructure)를 포함하는데, 상기 컴퓨터 기반구조는, 스캔 비트들의 최대 스캔 체인 길이 L를 계산하고, 상기 최대 스캔 체인 길이 L의 Mi 스캔 체인들을 생성하고 - 이는 결국 스캔 비트들의 남는 수를 유도함, 스캔 비트들의 상기 남는 수로부터 나머지 스캔 체인들을 생성하고, 탑 레벨에서 상기 나머지 스캔 체인들과 상기 스캔 체인들을 함께 스티치(stitch)하도록 동작가능하다.
다른 실시예들에서, 상기 컴퓨터 기반구조는 상기 탑 레벨에서 생성될 상기 스캔 체인들의 최대 길이를 규정하도록 동작가능하다. 상기 컴퓨터 기반구조는 N보다 더 작은 스캔 체인들의 총 수를 생성하도록 동작가능하며, 여기서 N은 L에 의해 나눠진 전체 설계에서의 스캔 비트들의 총 수의 올림 값 또는 상기 전체 설계를 위한 목표 스캔 밸런싱 팩터(F)에 의해 나눠진 N의 올림 값과 동일하다. 상기 컴퓨터 기반구조는 Mi개의 스캔 체인들을 생성하도록 동작가능하며, 상기 Mi개의 스캔 체인들은 그 길이들이 상기 최대 스캔 체인 길이 L에 가깝지만, 넘어서지는 않는다. 상기 컴퓨터 기반구조는 상기 최대 스캔 체인 길이 L을 로드 밸런스(load balance)하도록 동작가능하다.
본 발명의 또 다른 측면에서, 컴퓨터 프로그램 제품은 컴퓨터 사용가능 매체를 포함하며, 상기 컴퓨터 사용가능 매체는 그 매체에 구현된 컴퓨터 판독가능 프로그램을 갖는다. 상기 컴퓨터 판독가능 프로그램이 컴퓨팅 디바이스 상에서 실행될 경우에 상기 컴퓨팅 디바이스는,
최대 스캔 체인 길이 L을 산정 또는 계산하고, 각각의 계층적 블록에서 길이 L인 스캔 체인들의 최대 수를 생성하며, 각각의 계층적 블록에서의 남는 스캔 비트들을 부가 스캔 체인들 내에 분배하고, 길이 L인 상기 스캔 체인들 및 상기 부가 스캔 체인들을 사용하여 최대 길이 L인 부가 칩 레벨 체인들의 최소 수 사이에 최대 길이 LR인 스캔 세그먼트들을 분배함에 의해 칩 레벨 스캔 체인들을 생성하도록 동작가능하다.
본 발명은 발명의 예시적인 실시예들의 예들을 보여주기 위해 기재된 복수의 도면들을 참조하여 다음의 상세한 설명들에서 설명되나, 이러한 것들로 제한되는 것은 아니다.
도 1은 본 발명에 따른 프로세스들을 구현하기 위한 환경들을 보여준다.
도 2는 본 발명에 따른 프로세스들을 구현하는 흐름도이다.
도 3은 본 발명의 실시예들에 따른 프로세스들을 구현하는 흐름도이다.
도 4는 본 발명의 실시예들에 따른 다른 실시예들을 구현하는 흐름도이다.
본 발명은 스캔 체인들을 밸런싱하는 방법들 및 시스템과 관련되며, 더 상세하게는, 본 발명은 계층적으로 설계된 집적회로들에서 스캔 체인들을 로드 밸런 스(load balance)하는 방법들 및 시스템과 관련된다. 더욱더 상세하게는, 본 발명은, 계층적으로 설계된 집적회로의 블록들로부터의 "남는(ramaining)" 스캔 체인들을 밸런스되는 칩 레벨 스캔 체인들 내에 함께 스티치(stitch)하도록 구성된다. 그런 다음, 상기 밸런스되는 칩 레벨 스캔 체인들은 상기 계층적으로 설계된 집적회로들 내에 인서트된다. 이러한 방법으로, 본 발명의 방법들 및 시스템을 구현함으로써, 탑 레벨 와이어링(top-level wiring)을 감소시키는 것이 가능하다.
실시예들에서, 본 발명의 방법들 및 시스템은 계층적으로 설계된 집적회로의 각 블록 내에 가능한 한 많은 "긴(long)" 스캔 체인들을 생성한다. 실시예들에서, 상기 스캔 체인들은 탑 레벨 프로세스가 이들 스캔 체인들에 어떤 스캔 셀들을 부가하지 않을 정도로 충분히 길다. "긴" 스캔 체인들에 할당되지 않은 각 블록에서의 어떤 플롭들은 나머지들(remainders)로 간주되어, 미리결정된 길이의 "더 짧은" 스캔 체인들에 할당된다. 상기 탑 레벨에서, 상기 탑 레벨 스캔 체인들의 서브세트(subset)는 블록들에서 "긴" 스캔 체인들과 함께 생성된다. 상기 남는 플롭들 및 어떤 "더 짧은" 스캔 체인들은 통상적인 "로드-밸런싱" 알고리즘을 사용하여 남는 탑 레벨 스캔 체인들에 할당된다. 이러한 방법으로, 상기 칩 레벨에서 밸런스되는 스캔 체인들을 함께 스티치하는 것이 가능하고, 이는 스캔 체인들의 수, 특히 상기 탑 레벨에서의 짧은 스캔 체인들의 수를 감소시킨다.
본 발명에서는 몇몇 툴들이 사용될 수 있다. 스캔 체인들을 인서트하기 위한 툴들은 설계에서 다양하지만, 전형적으로는 두 가지 형태를 취한다. 제1 형태의 툴(툴 "1")에서는, 사용자는 스캔 체인들의 원하는 수를 규정하고 그 툴은 스캔 체 인들의 그 원하는 수 사이에 동일하게(또는 가능한 한 "동일하게") 그 설계에서의 스캔 비트들을 나눈다. 제2 형태의 툴(툴 "2)에서는, 사용자는 원하는 최대 길이의 스캔 체인을 규정하고 그 툴은 그 설계에서의 스캔 비트들의 전체 수에 기초하여 스캔 체인들의 최대 수를 계산한다. 이것이 수행되는 경우, 그들 스캔 체인들 사이에 동일하게 그 스캔 비트들을 할당하기 위해 툴 "2"의 프로세스들은 툴 "1"의 프로세스들로 되돌아 간다.
<시스템 환경>
도 1은 본 발명에 따른 프로세스들을 관리하기 위한 예시적인 환경들(10)을 보여준다. 상기 예시적인 환경(10)은 설계를 위한 테스트(design-for-test, DFT) 툴로서, 이는 스캔 체인들을 밸런스하고 그 밸런스되는 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하도록 구성된다.
상기 환경은 컴퓨팅 디바이스(14)를 갖는 컴퓨터 기반구조(12)를 포함한다. 컴퓨팅 디바이스(14)는 프로그램(16)을 포함하며, 이 프로그램(16)은 다른 프로세스들 사이에서 계층적으로 설계된 집적회로들에 각각의 블록에 대한 미리결정된 길이의 스캔 체인들의 N 수를 생성하도록 구성되고 구축된다. 컴퓨팅 디바이스(14)는 미리결정된 길이의 스캔 체인들의 N 수 내에 할당되지 않을 수 있는 어떤 남는 플롭들이 미리결정된 길이의 더 짧은 스캔 체인들에 할당되도록 더 구성된다. 더 짧은 스캔 체인들을 사용함으로써, 컴퓨터 디바이스(14)는 그 칩 레벨에서 스캔 체인들을 생성하는 경우 미리결정된 길이의 하나 또는 그 이상의 더 긴 스캔 체인들을 생성하기 위해 상기 더 짧은 스캔 체인들을 함께 스티치할 수 있다. 그리하여, 그 더 짧은 스캔 체인들을 함께 스티치함으로써, 그 칩 레벨에서, 스캔 체인들의 수, 특히 그 칩 레벨에서의 짧은 스캔 체인들의 수를 감소시키는 것이 가능하다. 이러한 방법에서, 상기 컴퓨팅 디바이스는 밸런스되는 스캔 체인들을 계층적으로 설계된 집적회로 내에 인서트할 수 있다. (본 발명의 프로세스는 도 2-4를 참조하여 더 상세히 설명되나, 이 도면들 각각은 컴퓨팅 디바이스(14)에 의해 구현될 수 있다.)
도 1을 다시 참조하면, 실시예들에서, 프로그램(16)은 실행가능한 코드를 포함하며, 그 실행가능한 코드는 메모리(22A)에 임시로 또는 영구적으로 저장될 수 있다. 그 실행가능한 코드는 본 발명의 프로세스 흐름들을 지시한다. 즉, 그 실행가능한 코드는 본 발명의 프로세스들을 구현하도록 구성된다. 메모리(22A)는 프로그램 코드의 실제 실행 동안 채용된 로컬 메모리, 벌크 스토리지, 및 적어도 일부 프로그램의 임시 스토리지를 제공하는 캐시 메모리들을 포함할 수 있는데, 이들은 실행 동안 코드가 벌크 스토리지로부터 리트리브(retrieve)되어야 하는 횟수를 감소시킨다.
컴퓨터 기반구조(12)는 입력/출력(I/O) 인터페이스(24), 버스(26), 스토리지 "S", ROM, RAM 및 외부 I/O 디바이스/리소스(28)를 더 포함한다. 스토리지 "S"는 어떤 종류의 적절한 데이터베이스일 수 있다. 외부 I/O 디바이스/리소스(28)는 키보드, 디스플레이, 포인팅 디바이스 등일 수 있다.
프로세서(20)는 본 발명의 방법 및 시스템의 로직 및 컴퓨터 프로그램 코드를 실행하는데, 이는 메모리(22A)에 저장된다. 컴퓨터 프로그램 코드 등을 실행할 때, 프로세서(20)는 메모리(22A), 스토리지 시스템(22B), 스토리지 "S" 및/또는 I/O 인터페이스로부터 데이터를 읽고/읽거나 이들에 데이터를 쓸 수 있다. 버스(26)는 컴퓨팅 디바이스(14)에서의 컴포넌트들 각각 사이의 통신 링크를 제공한다.
<본 발명의 단계들을 구현하는 흐름도>
도 2-4는 본 발명의 다양한 실시예들의 프로세스들을 구현하는 흐름도를 나타낸다. 도 2-4의 프로세스들은 도 1의 환경에서 구현될 수 있다. 도 2-4의 프로세스들은 본 발명의 높은 레벨의 블록도를 동일하게 나타낼 수 있다.
본 발명은 전적으로 하드웨어 구현, 전적으로 소프트웨어 구현, 또는 하드웨어와 소프트웨어 요소들 둘 다를 포함하는 구현의 형태를 취할 수 있다. 하드웨어와 소프트웨어 요소들은 도 1의 환경을 나타낼 수 있다. 소프트웨어 요소들은 펌웨어, 상주 소프트웨어, 마이크로코드 등일 수 있다. 더 나아가, 본 발명은 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체로부터 접근가능한 컴퓨터 프로그램의 형태를 취할 수 있으며, 이 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체는 컴퓨터 또는 어떤 명령 실행 시스템과 관련하여 또는 그 컴퓨터 또는 어떤 명령 실행 시스템에 의해 사용하기 위한 프로그램 코드를 제공한다. 이 설명을 위해, 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체는 명령 실행 시스템, 장치, 또는 디바이스와 관련하여 또는 그 명령 실행 시스템, 장치, 또는 디바이스에 의해 사용하기 위한 프로그램을 포함, 저장, 전달, 전파, 또는 전송할 수 있는 어떤 장치일 수 있다. 상기 매체는 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템(또는 장치 또는 디바이스) 또는 전파 매체일 수 있다. 컴퓨터 판독가능 매체의 예들은 반도체 또는 솔리트 스테이트 메모리(solid state memory), 자기 테이프, 착탈식 컴퓨터 디스켓, RAM, ROM, 경성 자기 디스크 또는 광 디스크를 포함한다. 광 디스크들의 현재의 예들은 CD-ROM, CD-R/W 및 DVD를 포함한다.
실시예들에서, 본 발명은 서비스 제공자에 의해 제공될 수 있으며, 이 서비스 제공자는 하나 또는 그 이상의 커스터머들을 위해 본 발명의 프로세스 단계들을 수행하는 컴퓨터 기반구조를 생성, 유지(maintain), 배치(deploy), 지원 등을 한다. 또한, 서비스 제공자는 커스터머(들)로부터 보수(payment)를 받을 수 있다.
이제 도 2를 참조하면, 단계 200에서, 계층적으로 설계된 집적회로의 설계에 관한 정보를 고려하면, 이 프로세스는 계층적으로 설계된 집적회로에 각 블록에 대한 스캔 체인의 최대 길이를 계산 또는 산정(estimate)하는 프로세스이다. 디자인에 관한 정보는, 예를 들면, 스캔 비트들의 수, 스캔 체인들의 수, 밸런싱 기준 등을 포함할 수 있다.
단계 205에서, 블록들 각각에 대해, 본 발명의 이 프로세스는 최대 길이의 가능한 한 많은 스캔 체인들을 생성한다. 즉, 이 프로세스는 각 계층적 블록에서 길이 L의 스캔 체인들의 최대 수를 생성한다.
단계 210에서, 각각의 블록에서 남는 스캔 비트들은 그 블록에 대해 더 작은 스캔 체인들 사이에 분배된다. 실시예들에서, 상기 더 작은 스캔 체인들은 계층적으로 설계된 집적회로에서 각각의 블록에 대해 그 스캔 체인의 최대 길이보다 더 작다. 실시예들에서, 위에서 설명된 툴 "2"는 상기 더 작은 스캔 체인들을 생성하 기 위해 사용될 수 있다.
단계 215에서, 칩 레벨 스캔 체인들은 기존의 스캔 인서트 툴을 사용하여 계층적으로 설계된 집적회로의 칩 레벨에서의 더 긴 스캔 체인들 내에 더 작은 스캔 체인들을 함께 스티치함으로써 생성된다. 예를 들어, 일 실시예에서, 상기 칩 레벨 스캔 체인들은 최대 길이 L의 부가 칩 레벨 체인들의 최소 수 사이에 최대 길이 LR의 스캔 세그먼트들을 분배함으로써 생성된다. 이러한 방법으로, 상기 스캔 체인들은 계층적으로 설계된 집적회로에 밸런스될 수 있다.
도 3은 본 발명에 따른 프로세스들을 구현하는 바람직한 실시예를 보여준다. 단계 300에서, 정보가 툴에 제공되고, 이 툴은 상기 계층적으로 설계된 집적회로의 설계와 관련된다. 예를 들어, 본 발명에 따라 다음의 정보가 제공된다.
- T : 전체 설계에서의 스캔 비트들의 총 수;
- N : 그 설계 내에 인서트될 스캔 체인들의 원하는 수;
- F : 그 설계를 위한 목표 스캔 밸런싱 팩터(이는 또한 여기서는 "로드 밸런싱 팩터"로도 일컬어짐);
- Bi : 계층적 블록에서의 스캔 비트들의 총 수; 및
- LR : "나머지 스캔 체인들"의 최대 길이.
실시예들에서, 상기 명칭들(designations) "T", "N", "F", "Bi" 및 "LR" 은 임의로 명명된 것들이므로 이들이 발명을 한정하는 특징으로 고려되어서는 아니된 다. 상기 명칭 Bi에서, "i"는 계층적 블록들의 수를 나타내며, 여기서 i=1,2,...,"m"이며, "m"은 계층적 블록 예들의 수이다.
실시예들에서, 목표 스캔 밸런스는 약 3%일 수 있다. 예를 들어, 만약 가장 긴 스캔 체인이 평균보다 단지 3% 길다면, F=1.03이다. 그러나, 예를 들어, 3% 내지 5%, 1% 내지 3% 및 심지어 1% 내지 2%의 범위들과 같은 다른 목표 스캔 밸런스들이 본 발명에 의해 또한 고려될 수 있다는 것이 이해되어야 한다. 실시예들에서, 상기 목표 스캔 밸런스는 약 10% 이상일 수도 있고, 혹은 약 10%의 이상에서의 어떤 퍼센트 또는 범위일 수도 있다.
로드 밸런싱 팩터를 결정하는 경우 많은 다른 팩터들이 고려될 수 있다. 예를 들어, 고려될 수 있는 팩터들은 생성될 스캔 체인들의 수 뿐만 아니라 각 스캔 체인에 대해 설정된 최대 길이를 포함한다. 만약 스캔 체인의 최대 길이가 1000개의 스캔 비트들로 설정된다면, 3% 내지 5%의 로드 밸런싱 팩터를 사용하는 것이 바람직할 수 있고, 만약 그 스캔 체인의 최대 길이가 100개의 스캔 비트들로 설정된다면, 1% 내지 2%의 로드 밸런싱 팩터를 사용하는 것이 더 바람직할 수 있다. 그러나 이러한 것들로 한정되는 것은 아니다.
단계 305에서, 이 프로세스는 최대 스캔 체인 길이 L을 계산하는 프로세스이다. 일 실시예에서, 그 최대 스캔 체인 길이는 다음의 수학식을 사용하여 계산된다.
L = (T/N) x F
단계 310에서, 각각의 계층적 블록 i(i=1,2,...,m)에서, 스캔 비트들 Bi의 총 수는 최대 스캔 체인 길이 L로 나눠지고, 그 결과 각 블록에 대한 스캔 체인들의 수가 유도된다. 스캔 체인들의 수는 정수, 예를 들어, Mi일 것이다. 대부분의 경우, 스캔 비트들의 수(Bi)가 최대 스캔 체인 길이 "L"로 나눠진 이후에는 일부 또는 모든 블록들에서의 스캔 비트들의 수에 기인하여, 스캔 비트들의 수는, 예를 들어, Ri로 남을 것이다. 예를 들어, 만약 L=2060 이고 Bi=20,000 이면, Mi=9 이고 Ri=1460이다.
단계 315에서, 이 프로세스는 최대 길이 L에 가깝지만 넘어서지 않는 길이들을 가지고 계층적 블록 상에 Mi 스캔 체인들을 생성하는 프로세스이다. 최대 길이 L은 많은 다른 변수들에 의존할 수 있는데, 예를 들어, 이 변수들에는 블록에서의 스캔 비트들의 수가 포함된다. 실시예들에서, 최대 길이는 이미 목표 스캔 밸런스 퍼센티지, 예를 들어 3%-5%의 로드 밸런싱 팩터를 포함하고 있다.
단계 320에서, 이 프로세스는, 실시예들에서는 길이 LR을 넘지 않는 계층적 블록 상의 부가 "나머지 스캔 체인들" 을 생성한다. 실시예들에서, 그 길이 LR은 최대 길이의 약 10%로 설정될 수 있지만, 예를 들어, 처음에 설정된 최대 길이에 의존하여, 다른 퍼센티지 또는 정해진(fixed) 수들의 스캔 비트들이 또한 본 발명에 의해 고려될 수 있다. 단계 320의 프로세스는 그 계층적 설계에서 각각의 블록들에 대해 반복된다.
일 실시예에서, 어떤 남는 스캔 비트들 Ri은, "나머지 스캔 체인들"을 생성하기 위해 동일하게 분배될 수 있지만, 본 발명은 다른 분배 방법들을 더 고려할 수 있다. 상기 남는 스캔 비트들 Ri을 대략 동일한 길이의 스캔 체인들 내에 분배하는 프로세스는, 기존의 스캔 인서트 툴들을 가지고 달성될 수 있다. 만약 그 계층적 설계 블록이 단계 315에서 인서트된 Mi 스캔 체인들을 가지며 그 스캔 인서트 툴이 Ji개의 스캔 체인들(Ji>Mi)을 인서트하도록 "지시(told)" 받는다면, 그 툴은 남는 Ri개의 스캔 비트들을 Ji-Mi개의 스캔 체인들 내에 분배할 것이고, 그 기존의 Mi개의 스캔 체인들은 변경되지 않는 상태로 둘 것이다.
다른 접근법에서, 본 발명은 남는 스캔 비트들(Ri)이 "나머지 스캔 체인들" 내에 다른 방법들로(예, 동일하지 않게) 분배될 수 있다는 것이 더 고려된다. 이 접근법에서, 비록 필수적인 것은 아니지만, 그 결과로 발생하는 나머지 스캔 체인들 각각이 어떤 편차(variance)(예, 밸런스되는 로드 팩터) 이내에 있는 것이 더 바람직하다. 예를 들어, "나머지 스캔 체인들"의 목표 스캔 로드 밸런스는 약 3%-5%일 수 있으나, 다른 목표 스캔 로드 밸런스들이 또한 본 발명에 의해 고려될 수 있다. 또한, 실시예들에서, 나머지 스캔 체인들의 수를 최소화하는 것이 바람직하 다. 또한, 다른 실시예들에서, 그 분배 방법에 관계없이, "나머지 스캔 체인들"의 분배들 중 어떤 것도 길이 LR을 넘어서지 않는다(실시예들에서, 로드 밸런스 팩터에 더하여).
단계 320의 예에 따르면, 만약 LR=400 이고 Ri=1460이라면, 남는 스캔 비트들 Ri는 길이 365인 동일한 네 개의 스캔 체인들로 동일하게 분배될 수 있다. 그러나 이러한 예로 한정되는 것은 아니다. 비록 동일한 길이들을 갖는 것이 바람직하지만, 단계 320의 다른 예에 따르면, 만약 LR=400이고 Ri=1460이라면, 스캔 비트들은 다른 길이들을 갖는 네 개의 그룹들로 나눠질 수 있다. 그러나 이러한 예로 한정되는 것은 아니다. 예를 들어, 그룹들 "A", "B" 및 "C" 는 400의 최대 길이를 각각 가질 수 있고, 그룹 "D"는 260의 길이를 가질 수 있다. 어떤 분배 스킴에서는, 생성된 나머지 스캔 체인들의 수를 최소화하는 것이 바람직하다. 이 경우에는, 상기 예를 사용하여, 단지 네 그룹들을 생성하는 것이 바람직하다.
단계 325에서, 본 발명의 이 프로세스는 기존의 툴들을 사용하여 탑 레벨에서 스캔 체인들을 생성한다. 예를 들어, 만약 툴 "1"이 사용된다면, 사용자는 스캔 체인들의 "N" 수가 생성되도록 그 툴에게 규정할 것이다. 만약 툴 "2"가 사용될 것이라면, 사용자는 최대 길이 L의 스캔 체인들이 생성되도록 그 툴에게 특정할 것이다. 실시예들에서, 생성되는 스캔 체인들의 총 수는 "N"보다 적을 수 있고, 여기서 생성되는 스캔 체인들의 수는 (T/L)의 올림(roundup) 값과 동일하며, 이 (T/L)의 올림 값은 또한 (N/F)의 올림 값과 동일하다. 그리하여, 예를 들어 일 실시예에서, 칩 레벨 스캔 체인들은 최대 길이 L의 부가 칩 레벨 체인들의 최대 수 사이에 최대 길이 LR의 스캔 세그먼트들을 분배함으로써 생성될 수 있다.
도 4는 본 발명에 따른 프로세스들을 구현하는 예시적인 실시예들을 보여준다. 도 4의 프로세스 단계들은 단계 315를 단계 415'로 표기한 것 이외에는 도 3을 참조하여 보여지고 설명된 것과 실질적으로 동일하다.
더 상세하게는, 단계 400에서, 툴에 정보가 제공되며, 이 툴은 계층적으로 설계된 집적회로의 설계와 관련된다. 이 정보는 단계 300의 프로세스를 참조하여 개시된 것과 동일한 정보일 수 있으며, 동일 또는 유사한 실시예들을 포함한다. 단계405에서, 이 프로세스는 수학식 1을 사용하여 최대 스캔 체인 길이를 계산한다.
단계 410에서, 각각의 계층적 블록 i(i=1,2,...,m)에 대해, 스캔 비트들 Bi의 총 수는 최대 스캔 체인 길이 "L"에 의해 나눠지고, 그 결과 각각의 블록에 대한 스캔 체인들의 수가 유도된다. 스캔 체인들의 수는 정수, 예를 들어 Mi일 것이고, 나머지 Ri를 갖는다.
단계 415'에서, 본 발명의 이 프로세스는 이하에서 보여지는 수학식 2를 사용하여 스캔 체인의 최대 길이 ML를 계산한다.
ML = T/N
일 실시예에서, 최소 길이 ML은 계층적 설계에서 미리 연결된 스캔 세그먼트들 때문에 계산된다. 또한, 최대 길이에서와 같이, 최소 길이 ML은 또한 예를 들어 3%-5%의 로드 밸런싱 팩터의 목표 스캔 밸런스 퍼센티지를 포함할 수 있다. 또한, 이 프로세스 단계에서, 이 프로세스는 최대 길이 L에 가까우나 이를 넘어서지 않는 길이들을 갖고서 그 계층적 블록 상의 Mi개의 스캔 체인들을 생성한다.
이 방법에서, 단계 415'의 프로세스는 규정된 최소 길이 ML과 적어도 같이, 그러나 최대 길이 L을 넘어서지 않게, 계층적 블록 상에 Mi 스캔 체인들을 생성하도록 제한된다. 다시, 최대 길이 L은, 예를 들면, 블록에서의 스캔 비트들의 수를 포함하는 많은 다른 변수들에 의존하며, 실시예들에서는 이미 목표 스캔 밸런스 퍼센티지, 예를 들면 3%-5%의 로드 밸런싱 팩터를 포함하고 있다.
단계 420에서, 이 프로세스는 실시예들에서 길이 LR을 넘어서지 않는 계층적 블록 상에 부가 "나머지 스캔 체인들"을 생성한다. 단계 420의 이 프로세스는 설계에서의 각각의 계층적 블록에 대해 반복된다. 단계 420은 320을 참조하여 논의된 다양한 실시예들을 구현할 수 있고, 그래서 여기서는 더 이상 논의되지 않는다.
단계 425에서, 본 발명의 이 프로세스는 기존의 툴들을 사용하여 탑 레벨에서 스캔 체인들을 생성한다. 예를 들어, 만약 툴 "1"이 사용된다면, 사용자는 스캔 체인들의 N 수가 생성되도록 그 툴에 규정할 것이다. 만약 툴 "2"가 사용될 것이라면, 사용자는 최대 길이 "L"의 스캔 체인들이 생성되도록 그 툴에 규정할 것이다. 실시예들에서, 생성된 스캔 체인들의 총 수는 N보다 작을 수 있고, 여기서 생성된 스캔 체인들의 수는 (T/L)의 올림 값과 동일하고, 이 (T/L)의 올림 값은 또한 (N/E)의 올림 값과 동일하다.
<사용의 예>
예시적인 실시예에서, 각각의 계층적 블록 상에는 과도한 수의 스캔 핀들이 전형적으로 요구된다. 예를 들어, 500개의 스캔 체인들을 가질 설계에서의 20,000개의 스캔 비트들을 갖는 계층적 블록은 프로세스 "1"을 사용하는 1000개의 스캔 핀들을 가질 것이 요구되고, 또는 프로세스 "2"를 사용하는 100개의 스캔 핀들을 가질 것이 요구된다(체인 당 400 비트들의 한도(limit)를 갖고서). 그러나, 본 발명의 방법들 및 시스템들을 구현함으로써, 500개의 스캔 체인들 사이에 분배된 1백만개의 스캔 비트들의 전체를 갖는 칩 상의 20,000개의 스캔 비트들의 동일한 계층적 블록은, 만약 3%(F=1.03) 이내에서 밸런스되고 나머지 스캔 체인들이 최대 길이 LR = 400으로 한정된다면, 단지 26개의 스캔 핀들(13개의 스캔 체인들)을 요구할 것이고, 계층적 블록에 대해 많아야 20개의 스캔 핀들(10개의 스캔 체인들)을 가질 수 있다.
다른 예에서, 도 3의 프로세스들을 사용하여, 툴에는 다음의 정보가 제공된다.
- 칩 에서의 스캔 비트들의 총 수 T = 400,000
- 스캔 체인들의 원하는 수 N = 400
- 목표 스캔 밸런싱 팩터 F = 1.03
- 각각의 스캔 체인은 L = (T/N) x F = 1030의 최대 길이 스캔 비트들이어야 하고,
- 블록 A는 103,000개의 스캔 비트들을 가지며, 블록 B는 257,000개의 스캔 비트들을 가지며, 블록 C는 29,000개의 스캔 비트들을 가지며, 모듈(블록) D는 10,000개의 스캔 비트들을 가지며, 설계의 탑 레벨에서 1000개의 스캔 비트들이 있다.
각각의 계층적 블록 i(i=1,2,...,m)에 대해, 스캔 비트들의 총 수는 최대 스캔 체인 길이로 나누어지고, 그 결과 각각의 블록에 대한 스캔 체인들의 수로 된다. 이 예에서,
- 블록 A는 100개의 스캔 체인들을 가지며;
- 블록 B는 249개의 체인들을 가지며, 530개의 스캔 비트들의 나머지를 가지며;
- 블록 C는 28개의 스캔 체인들을 가지며, 160개의 스캔 비트들의 나머지를 가지며;
- 블록 D는 9개의 스캔 체인들을 가지며, 730개의 스캔 비트들의 나머지를 가진다.
블록들 B, C, 및 D에서의 나머지 스캔 비트들은 계층적 블록 상의 부가 "나머지 스캔 체인들"을 생성하기 위해 사용되며, 실시예들에서 이 계층적 블록 상의 부가 "나머지 스캔 체인들"은 길이 LR을 넘어서지 않는다. 이 예에서, 길이 LR은 100개의 스캔 비트들로 설정되며, 이는 1030개의의 최대 길이의 크기의 약 10%이 다. 블록 C에서, 이는 결과적으로 두 개의 부가 스캔 체인들로 되며, 각각은 80개의 스캔 비트들의 동일한 길이를 갖는다. 그러나, 이들 스캔 체인들 각각은 다른 길이들, 예를 들면, 100개의 스캔 비트들의 제1 스캔 체인 및 60개의 스캔 비트들의 제2 스캔 체인을 가질 수 있다. 블록들 B 및 D는 각각 6 및 8개의 부가 스캔 체인들을 가지며, 각각은 최대 길이 100을 갖는다.
상기 예는 기존의 툴들을 사용하여 탑 레벨에서 스캔 체인들을 생성하는 것으로 계속된다. 예를 들어, 툴 "1"을 사용하여, 사용자는 N(400)개의 스캔 체인들이 생성도록 그 툴에 규정할 것이다. 만약 툴 "2"를 사용한다면, 사용자는 최대 길이 L(1030)의 스캔 체인들이 생성되도록 그 툴에 규정할 것이다. 어느 하나의 툴은, 블록 A로부터의 100개의 스캔 체인들, 블록 B로부터의 249개의 스캔 체인들, 블록 C로부터의 28개의 스캔 체인들, 및 블록 D로부터의 9개의 스캔 체인들을 이용하여, 길이 1030의 386개의 스캔 체인들을 생성할 것이다. 툴 "1"은, 14개의 부가 스캔 체인들 사이에 남는 2420개의 스캔 비트들(예, 블록 B로부터의 530개, 블록 C로부터의 160개, 블록 D로부터의 730개, 및 탑 레벨로부터의 1000개)을 분배하여, 평균 길이 1000을 갖는 총 400개의 스캔 체인들을 달성하도록 도모할 것이다. 툴 "2"는 1030의 최대 규정된 길이를 조건으로 하여, 가능한 한 적은 수의 스캔 체인들 내에 나머지 2420개의 스캔 비트들을 분배하여, 단지 389개의 스캔 체인들을 달성하도록 도모할 것이다.
<반도체 디바이스들>
본 명세서에서 설명되는 방법 및 시스템은 반도체 디바이스들의 제조 및/또 는 테스팅에 사용될 수 있다. 그 반도체 디바이스들은 집적회로 칩 설계의 일부분일 수 있다. 실시예들에서, 그 칩 설계는 그래피컬 컴퓨터 프로그래밍 언어에서 생성되어 컴퓨터 스토리지 매체(디스크, 테이프, 물리적 하드 드라이브, 또는 스토리지 억세스 네트워크에서와 같은 가상 하드 드라이브와 같은)에 저장된다. 만약 설계자가 칩을 제조하기 위해 사용되는 포토리소그래피 마스크들 또는 칩들을 제조하지 않는다면, 그 설계자는 물리적 수단들에 의해(예, 그 설계를 저장하고 있는 스토리지 매체의 카피를 제공함에 의해), 또는 전자적으로(예, 인터넷을 통해), 그 결과적인 설계를 그러한 엔티티들로 직접 또는 간접적으로 전달한다. 저장된 설계는 그 후 포토리소그래피 마스크들의 제조를 위한 적절한 포맷(예, GDSII)으로 변환되는데, 이는 전형적으로 웨이퍼 상에 형성될 당해 칩 설계의 다수의 카피들을 포함한다. 상기 포토리소그래피 마스크들은 식각되거나 혹은 처리될 웨이퍼의 영역들(및/또는 그 상의 층들)을 제한하기 위해 이용된다.
위에서 설명되는 방법은 집적회로 칩들의 제조에서 사용된다. 결과적인 집적회로 칩들은 베어 다이(bare die)로서 원(raw) 웨이퍼 형태로(즉, 다수의 패키지되지 않은 칩들을 갖는 하나의 웨이퍼와 같은), 또는 패키지된 형태로, 제조자에 의해 분배될 수 있다. 후자의 경우, 칩은 싱글 칩 패키지(마더보드 또는 다른 고 레벨 캐리어에 고정되는 리드들(leads)을 갖는 플라스틱 캐리어와 같은)에, 또는 멀티칩 패키지(어느 하나 또는 양 표면 인터커넥션들 또는 매립된 인터커넥션들을 갖는 세라믹 캐리어와 같은)에 실장된다. 어느 경우에서든, 그 칩은 이후에 다른 칩들, 개별 회로 소자들, 및/또는 (a) 마더보드와 같은 중간 제품, 또는 (b) 최종 제 품의 일부인 다른 신호 처리 디바이스들과 집적된다. 상기 최종 제품은 집적회로 칩들을 포함하는 어떤 제품일 수 있다 이들 제품들은, 장난감 및 기타 저급의 어플리케이션들에서부터 디스플레이, 키보드 또는 다른 입력 디바이스, 및 중앙처리장치를 갖는 진보된 컴퓨터 제품들에 이른다.
본 발명은 실시예들에 의해 설명되었으나, 당해 기술 분야에서 숙련된 자들이라면 본 발명이 첨부되는 청구항들의 사상 및 범위 내에서 그리고 그들의 변경들로써 실행될 수 있다는 것을 알 수 있을 것이다.

Claims (28)

  1. 밸런스되는 길이(balanced-length)의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트(insert)하기 위한 방법에 있어서,
    최대 스캔 체인 길이 L을 산정(estimate) 또는 계산하는 단계;
    각각의 계층적 블록에서 길이 L인 스캔 체인들의 최대 수를 생성하는 단계;
    각각의 계층적 블록에서의 모든 남는 스캔 비트들(any remaining scan bits)을 L보다 작은 최대 길이 LR인 부가 스캔 체인들(additional scan chains) 내에 분배하는 단계; 및
    최대 길이 L인 상기 스캔 체인들을 사용함에 의해, 그리고 최대 길이 L인 부가 칩 레벨 스캔 체인들 사이에, 최대 길이 LR인 상기 부가 스캔 체인들 및 모든 남는 탑 레벨 스캔 비트들을 분배함으로써 최대 길이 L인 상기 부가 칩 레벨 스캔 체인들을 형성함에 의해, 칩 레벨 스캔 체인들을 생성하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 산정 또는 계산하는 단계는 상기 계층적으로 설계된 집적회로에서의 각각의 블록에 제공되는, 방법.
  3. 청구항 1에 있어서, 상기 산정 또는 계산하는 단계는 상기 최대 스캔 체인 길이 L을 산정 또는 계산하기 위해 상기 계층적으로 설계된 집적회로의 설계에 관한 정보를 사용하는, 방법.
  4. 청구항 3에 있어서, 상기 정보는 스캔 비트들의 수, 스캔 체인들의 수 및 밸런싱 기준(criterium) 중 적어도 하나를 포함하는, 방법.
  5. 청구항 1에 있어서, 상기 방법은 최대 길이 L인 부가 칩 레벨 스캔 체인들의 최대 수를 생성하는 단계를 더 포함하는, 방법.
  6. 청구항 1에 있어서, 최대 길이 L인 상기 부가 칩 레벨 스캔 체인들은 원하는 수의 스캔 체인들 사이에 동일하게 또는 실질적으로 동일하게 상기 남는 스캔 비트들을 나눔으로써 생성되는, 방법.
  7. 청구항 1에 있어서, 상기 최대 스캔 체인 길이 L은 평균 길이의 미리결정된 퍼센티지보다 더 크지 않은, 방법.
  8. 청구항 1에 있어서, 상기 최대 스캔 체인 길이 L은 상기 계층적으로 설계된 집적회로에서 밸런스되는, 방법.
  9. 최대 스캔 체인 길이 L을 계산하는 단계;
    Mi개의 스캔 체인들을 생성하기 위해 각각의 계층적 블록 i(i=1,2,...,m)에 대해 최대 스캔 체인 길이 L로 스캔 비트들(Bi)의 총 수를 나누는 단계;
    상기 나누는 단계로부터 남는 스캔 비트들(Ri)로부터 나머지 스캔 체인들(remainder scan chains)을 생성하는 단계; 및
    최대 길이를 넘어서지 않는 스티치된(stitched) 스캔 체인들을 형성하기 위해 탑 레벨에서 상기 나머지 스캔 체인들과 상기 스캔 체인들을 함께 스티치하는 단계를 포함하는, 방법.
  10. 청구항 9에 있어서, 상기 스티치하는 단계는 상기 탑 레벨에서 생성될 스캔 체인들의 수 "N"을 규정하는 단계를 포함하는, 방법.
  11. 청구항 9에 있어서, 상기 스티치하는 단계는 상기 탑 레벨에서 생성될 상기 스캔 체인들의 최대 길이를 규정하는 단계를 포함하는, 방법.
  12. 청구항 11에 있어서, 생성된 스캔 체인들의 총 수는, 전체 설계에서의 스캔 비트들의 총 수 나누기 상기 최대 스캔 체인 길이 L의 올림(roundup) 값과 동일한, 방법.
  13. 청구항 9에 있어서, 상기 Mi 스캔 체인들은 상기 최대 스캔 체인 길이 L에 가까운 길이들을 갖지만, 이를 넘어서지는 않는, 방법.
  14. 청구항 9에 있어서, 상기 최대 스캔 체인 길이 L은 로드 밸런스되는(load balanced), 방법.
  15. 청구항 9에 있어서, 상기 방법은 계층적 블록(Bi)에서의 스캔 비트들의 총 수 및 나머지 스캔 체인들의 최대 길이(LR)를 제공하는 단계를 더 포함하는, 방법.
  16. 청구항 9에 있어서, 상기 나머지 스캔 체인들은 미리결정된 길이 LR을 넘어서지 않는, 방법.
  17. 청구항 9에 있어서, 상기 남는 스캔 비트들(Ri)은 상기 나머지 스캔 체인들을 생성하기 위해 동일하게 또는 실질적으로 동일하게 분배되는, 방법.
  18. 청구항 9에 있어서, 상기 방법은 상기 나머지 스캔 체인들 각각에 대해 최대 길이를 결정하는 단계, 및 상기 나머지 스캔 체인들의 수를 최소화하는 단계를 더 포함하는, 방법.
  19. 청구항 9에 있어서, 상기 계산하는 단계는 수학식 L = (T/N) x F에 기초하고, 여기서, T = 상기 전체 설계에서 스캔 비트들의 총 수, N = 상기 설계 내에 인 서트될 스캔 체인들의 원하는 수; 및 F = 상기 설계를 위한 목표 스캔 밸런싱 팩터인, 방법.
  20. 청구항 9에 있어서, 상기 나누는 단계는 수학식 ML = T/N을 사용하여 상기 스캔 체인의 최소 길이 ML을 계산하는 단계를 더 포함하며, 여기서, T = 상기 전체 설계에서 스캔 비트들의 총 수이고, N = 상기 설계 내에 인서트될 스캔 체인들의 총 수인, 방법.
  21. 청구항 20에 있어서, 상기 최소 길이 ML은 로드 밸런싱 팩터(load balancing factor)를 포함하는, 방법.
  22. 청구항 9에 있어서, 상기 단계들은 반도체 디바이스들을 제조하기 위해 사용되는, 방법.
  23. 밸런스되는 길이(balanced-length)의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하기 위한 시스템에 있어서, 상기 시스템은 컴퓨터 기반구조(infrastructure)를 포함하되, 상기 컴퓨터 기반구조는,
    스캔 비트들의 최대 스캔 체인 길이 L을 계산하고;
    상기 최대 스캔 체인 길이 L인 Mi개의 스캔 체인들을 생성하고 - 이는 결국 스캔 비트들의 남는 수를 유도함;
    스캔 비트들의 상기 남는 수로부터 나머지 스캔 체인들을 생성하고;
    탑 레벨에서 상기 나머지 스캔 체인들 및 상기 스캔 체인들을 함께 스티치(stitch)하도록 동작가능한, 시스템.
  24. 청구항 23에 있어서, 상기 컴퓨터 기반구조는 상기 탑 레벨에서 생성될 상기 스캔 체인들의 최대 길이를 규정하도록 동작가능한, 시스템
  25. 청구항 23에 있어서, 상기 컴퓨터 기반구조는 전체 설계에서의 스캔 비트들의 총 수 나누기 L의 올림(roundup) 값과 동일한 스캔 체인들의 총 수를 생성하도록 동작가능한, 시스템.
  26. 청구항 23에 있어서, 상기 컴퓨터 기반구조는 상기 Mi개의 스캔 체인들을 생성하도록 동작가능하며, 상기 Mi개의 스캔 체인들은 상기 최대 스캔 체인 길이 L에 가깝지만 넘어서지는 않는, 시스템.
  27. 청구항 23에 있어서, 상기 컴퓨터 기반구조는 상기 최대 스캔 체인 길이 L을 로드 밸런스(load balance)하도록 동작가능한, 시스템.
  28. 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 사용가능 매체는 상기 컴퓨터 사용가능 매체 내에 구현되는 컴퓨터 판독가능 프로그램을 가지되,
    상기 컴퓨터 판독가능 프로그램이 컴퓨팅 디바이스 상에서 실행되는 경우에 상기 컴퓨팅 디바이스는,
    최대 스캔 체인 길이 L을 산정(estimate) 또는 계산하고;
    각각의 계층적 블록에서 길이 L인 스캔 체인들의 최대 수를 생성하고;
    부가 스캔 체인들 내에 각각의 계층적 블록에서의 남는 스캔 비트들을 분배하고;
    길이 L인 상기 스캔 체인들 및 상기 부가 스캔 체인들을 사용하여 최대 길이 L인 부가 칩 레벨 체인들의 최소 수 사이에 최대 길이 LR의 스캔 세그먼트들을 분배함에 의해 칩 레벨 스캔 체인들을 생성하도록 동작가능한, 컴퓨터 프로그램 제품.
KR1020097022833A 2007-05-15 2008-04-25 스캔 체인들 밸런싱 및 그 밸런스되는 길이의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하는 기술 KR20100013311A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/748,736 US7823035B2 (en) 2007-05-15 2007-05-15 System and methods of balancing scan chains and inserting the balanced-length scan chains into hierarchically designed integrated circuits
US11/748,736 2007-05-15

Publications (1)

Publication Number Publication Date
KR20100013311A true KR20100013311A (ko) 2010-02-09

Family

ID=40028760

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097022833A KR20100013311A (ko) 2007-05-15 2008-04-25 스캔 체인들 밸런싱 및 그 밸런스되는 길이의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하는 기술

Country Status (6)

Country Link
US (1) US7823035B2 (ko)
JP (1) JP5209045B2 (ko)
KR (1) KR20100013311A (ko)
IL (1) IL200642A (ko)
TW (1) TW200900712A (ko)
WO (1) WO2008144167A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958472B2 (en) * 2008-09-30 2011-06-07 Synopsys, Inc. Increasing scan compression by using X-chains
TWI403745B (zh) * 2009-01-17 2013-08-01 Univ Nat Taiwan 非同步掃描鍊電路
CN102305911B (zh) * 2011-06-16 2013-05-01 哈尔滨工业大学 利用差值进行二次分配的扫描链平衡方法
US9689922B2 (en) * 2013-12-20 2017-06-27 Advantest Corporation Online design validation for electronic devices
US10168386B2 (en) 2017-01-13 2019-01-01 International Business Machines Corporation Scan chain latency reduction

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428622A (en) * 1993-03-05 1995-06-27 Cyrix Corporation Testing architecture with independent scan paths
JP3610095B2 (ja) * 1993-07-30 2005-01-12 テキサス インスツルメンツ インコーポレイテツド 電気回路のストリームライン化(Streamlined)された同時試験方法と装置
US5719878A (en) * 1995-12-04 1998-02-17 Motorola Inc. Scannable storage cell and method of operation
US5949692A (en) * 1996-08-28 1999-09-07 Synopsys, Inc. Hierarchical scan architecture for design for test applications
US6519729B1 (en) * 1998-06-27 2003-02-11 Texas Instruments Incorporated Reduced power testing with equally divided scan paths
JP2954192B1 (ja) * 1998-09-10 1999-09-27 日本電気アイシーマイコンシステム株式会社 テスト容易化半導体集積回路の設計方法
US6654920B1 (en) * 1999-12-20 2003-11-25 Texas Instruments Incorporated LBIST controller circuits, systems, and methods with automated maximum scan channel length
US6665828B1 (en) * 2000-09-19 2003-12-16 International Business Machines Corporation Globally distributed scan blocks
US6681356B1 (en) * 2000-09-29 2004-01-20 International Business Machines Corporation Scan chain connectivity
US7234092B2 (en) * 2002-06-11 2007-06-19 On-Chip Technologies, Inc. Variable clocked scan test circuitry and method
US7032202B2 (en) * 2002-11-19 2006-04-18 Broadcom Corporation System and method for implementing a flexible top level scan architecture using a partitioning algorithm to balance the scan chains
JP2004286549A (ja) * 2003-03-20 2004-10-14 Matsushita Electric Ind Co Ltd スキャンテスト装置およびその設計方法
JP2005276069A (ja) * 2004-03-26 2005-10-06 Nec Electronics Corp テスト容易化回路の設計システム、設計方法及びプログラム

Also Published As

Publication number Publication date
IL200642A0 (en) 2010-05-17
US20080288841A1 (en) 2008-11-20
IL200642A (en) 2013-05-30
TW200900712A (en) 2009-01-01
JP5209045B2 (ja) 2013-06-12
WO2008144167A1 (en) 2008-11-27
US7823035B2 (en) 2010-10-26
JP2010527487A (ja) 2010-08-12

Similar Documents

Publication Publication Date Title
US8954918B2 (en) Test design optimizer for configurable scan architectures
US7131081B2 (en) Scalable scan-path test point insertion technique
US5479414A (en) Look ahead pattern generation and simulation including support for parallel fault simulation in LSSD/VLSI logic circuit testing
US8543966B2 (en) Test path selection and test program generation for performance testing integrated circuit chips
US20130096866A1 (en) Method And Apparatus For Designing A Custom Test System
US20080201669A1 (en) Method and apparatus for identifying redundant scan elements
KR20100013311A (ko) 스캔 체인들 밸런싱 및 그 밸런스되는 길이의 스캔 체인들을 계층적으로 설계된 집적회로들 내에 인서트하는 기술
Mukherjee et al. Time and area optimized testing of automotive ICs
US20080072112A1 (en) Sequential Scan Technique Providing Reliable Testing of an Integrated Circuit
CN110637235B (zh) 集成电路测试设备和方法
Bernardi et al. Applicative system level test introduction to increase confidence on screening quality
US7260760B2 (en) Method and apparatus to disable compaction of test responses in deterministic test-set embedding-based BIST
US8615692B1 (en) Method and system for analyzing test vectors to determine toggle counts
Elm et al. Scan chain clustering for test power reduction
US7555687B2 (en) Sequential scan technique for testing integrated circuits with reduced power, time and/or cost
US11693054B2 (en) Computer-readable recording medium storing analysis program, analysis method, and analysis device
US6876934B2 (en) Method for determining fault coverage from RTL description
CN111241766B (zh) 测试方法与测试系统
US7305636B2 (en) Method and system for formal unidirectional bus verification using synthesizing constrained drivers
US7500165B2 (en) Systems and methods for controlling clock signals during scan testing integrated circuits
JP2012146865A (ja) 半導体集積回路、スキャンテスト回路設計方法
US20030188239A1 (en) Compacted test plan generation for integrated circuit testing, test sequence generation, and test
Zhang et al. Three-stage optimization of pre-bond diagnosis of TSV defects
JP2011141140A (ja) Lsi試験装置および試験方法
Totton et al. Self-test: the solution to the VLSI test problem?

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
NORF Unpaid initial registration fee