KR20200001517A - 머신 러닝 기반 스캔 설계 구현 플랫폼 - Google Patents
머신 러닝 기반 스캔 설계 구현 플랫폼 Download PDFInfo
- Publication number
- KR20200001517A KR20200001517A KR1020190075026A KR20190075026A KR20200001517A KR 20200001517 A KR20200001517 A KR 20200001517A KR 1020190075026 A KR1020190075026 A KR 1020190075026A KR 20190075026 A KR20190075026 A KR 20190075026A KR 20200001517 A KR20200001517 A KR 20200001517A
- Authority
- KR
- South Korea
- Prior art keywords
- scan
- flip flops
- scan flip
- chains
- electronic
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/267—Reconfiguring circuits for testing, e.g. LSSD, partitioning
-
- 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2247—Verification or detection of system hardware configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2257—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using expert systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Geometry (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
다양한 실시예들에서, 본 발명개시의 전자 설계 자동화(electronic design automation; EDA)는 전자 디바이스를 위한 전자 회로부의 설계, 시뮬레이션, 분석, 및 검증을 최적화한다. 전자 디바이스는 다양한 제조 결함들에 대해 전자 회로부를 자율적으로 테스트하는 스캔 플립 플롭들을 포함한다. 본 발명개시의 EDA는 각 스캔 체인 내의 스캔 플립 플롭들이 유사한 특성들, 파라미터들, 또는 속성들을 공유하는 방식으로 스캔 플립 플롭들을 스캔 체인들로 통계적으로 그룹화한다. 그 후, 본 발명개시의 EDA는 전자 회로부의 전력, 성능, 및/또는 면적을 최적화하기 위해 각각의 스캔 체인들 내에서의 스캔 플립 플롭들에 대한 순서를 지능적으로 정렬시킨다.
Description
본 출원은 2018년 6월 27일에 출원된 미국 가특허 출원 62/690,601의 이익을 청구하며, 이 가특허 출원 내용 전체는 참조로서 본 명세서 내에서 원용된다.
기술 및 엔지니어링이 발전함에 따라 설계자 및 제조자는 더 많은 전자 디바이스를 소비자에게 제공할 수 있게 되었다. 스캔 체인 테스트(scan chain testing)는 이러한 전자 디바이스들의 다양한 조합 로직(combinational logic) 회로들 내에서 결함들을 검출하기 위한 테스트 용이 설계(design for testability; DFT) 메커니즘을 나타낸다. 스캔 체인 테스트는 결함들을 검출하기 위해 복수의 스캔 플립 플롭(flip-flop)들을 복수의 스캔 체인(scan chain)들로 그룹화하는 것과, 이들 복수의 스캔 체인들을 전자 디바이스들 내에 배치하는 것을 포함한다. 일부 경우들에서, 스캔 체인들은 통상적으로 이러한 전자 디바이스들에 전용되는 영역(real estate) 면적의 10~40%를 차지한다.
본 발명개시의 양태들은 첨부 도면들과 함께 읽혀질 때 아래의 상세한 설명으로부터 최상으로 이해된다. 본 산업계에서의 표준적인 관행에 따라, 다양한 피처들은 실척도로 작도되지 않았음을 유념한다. 실제로, 다양한 피처들의 치수는 설명의 명료함을 위해 임의적으로 증가되거나 또는 감소될 수 있다.
도 1은 본 발명개시의 예시적인 실시예에 따른 예시적인 설계 환경의 전자 설계 플랫폼의 블록도를 나타낸다.
도 2는 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화에서의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다.
도 3은 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 스캔 플립 플롭들의 하이 레벨 소프트웨어 레벨 디스크립션(high-level software level description)을 생성할 때의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다.
도 4는 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 이상점(outlying) 스캔 플립 플롭들을 필터링할 때의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다.
도 5는 본 발명개시의 예시적인 실시예에 따른 예시적인 설계 환경을 구현하기 위한 예시적인 컴퓨터 시스템의 블록도를 나타낸다.
도 1은 본 발명개시의 예시적인 실시예에 따른 예시적인 설계 환경의 전자 설계 플랫폼의 블록도를 나타낸다.
도 2는 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화에서의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다.
도 3은 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 스캔 플립 플롭들의 하이 레벨 소프트웨어 레벨 디스크립션(high-level software level description)을 생성할 때의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다.
도 4는 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 이상점(outlying) 스캔 플립 플롭들을 필터링할 때의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다.
도 5는 본 발명개시의 예시적인 실시예에 따른 예시적인 설계 환경을 구현하기 위한 예시적인 컴퓨터 시스템의 블록도를 나타낸다.
아래의 발명개시는 제공되는 본 발명내용의 여러 특징들을 구현하기 위한 많은 여러 실시예들 또는 예시들을 제공한다. 본 발명개시를 단순화하기 위해 컴포넌트 및 장치의 특정예들이 아래에서 설명된다. 물론, 이것들은 단지 예시들에 불과하며, 이것들로 한정시키고자 의도한 것은 아니다. 예를 들어, 이후의 상세설명에서 제2 피처 위에서의 제1 피처의 형성은 제1 및 제2 피처들이 직접적으로 접촉하여 형성되는 실시예들을 포함할 수 있으며, 또한 제1 및 제2 피처들이 직접적으로 접촉하지 않을 수 있도록 추가적인 피처들이 제1 및 제2 피처들 사이에서 형성될 수 있는 실시예들을 포함할 수 있다. 또한, 본 발명개시는 다양한 예시들에서 참조 숫자들 및/또는 문자들을 반복할 수 있다. 이러한 반복 그 자체는 논의되는 다양한 실시예들 및/또는 구성들간의 관계를 설명하는 것은 아니다.
개요
다양한 실시예들에서, 본 발명개시의 전자 설계 자동화(electronic design automation; EDA)는 전자 디바이스를 위한 전자 회로부의 설계, 시뮬레이션, 분석, 및 검증을 최적화한다. 전자 디바이스는 다양한 제조 결함들에 대해 전자 회로부를 자율적으로 테스트하는 스캔 플립 플롭들을 포함한다. 본 발명개시의 EDA는 각 스캔 체인 내에서의 스캔 플립 플롭들이 유사한 특성들, 파라미터들, 또는 속성들을 공유하는 방식으로 스캔 플립 플롭들을 스캔 체인들로 통계적으로 그룹화한다. 그 후, 본 발명개시의 EDA는 전자 회로부의 전력, 성능, 및/또는 면적을 최적화하기 위해 각각의 스캔 체인들 내에서의 스캔 플립 플롭들에 대한 순서를 지능적으로 정렬시킨다.
예시적인 전자 설계 플랫폼
도 1은 본 발명개시의 예시적인 실시예에 따른 예시적인 설계 환경의 전자 설계 플랫폼의 블록도를 나타낸다. 도 1에서 도시된 바와 같이, 전자 설계 플랫폼(100)은 전자 디바이스의 전자 회로부를 위한 하나 이상의 전자 아키텍처 설계 레이아웃을 설계하고, 시뮬레이션하고, 분석하고, 및/또는 검증하기 위한 하나 이상의 전자 설계 소프트웨어 툴을 포함하는 설계 흐름을 나타낸다. 도 1에서 도시된 예시적인 실시예에서, 전자 디바이스는 예컨대, 고정화(stuck-at) 결함과 같은 다양한 제조 결함들에 대해 전자 회로부를 테스트하기 위한 하나 이상의 스캔 체인을 포함한다. 하나 이상의 전자 아키텍처 설계 레이아웃은 전자 회로부를 기술하는 기하학적 형상부(geometric shape)들, 기하학적 형상부들의 위치, 및/또는 기하학적 형상부들 간의 상호연결부(interconnection)들의 하나 이상의 이미지 및/또는 하나 이상의 데이터 기반 표현을 나타낸다. 아래에서 더 상세히 설명되는 바와 같이, 전자 설계 플랫폼(100)은 예컨대, 전자 디바이스의 전력 및/또는 영역과 같은 자원들을 보존하기 위해 하나 이상의 전자 아키텍처 설계 레이아웃 내에서의 하나 이상의 스캔 체인의 배치를 최적화하기 위한 반복적인 연산 시퀀스를 수행한다. 일부 경우들에서, 이러한 반복적인 연산 시퀀스 자체는 하나 이상의 전자 아키텍처 설계 레이아웃 내에서의 하나 이상의 스캔 체인의 배치를 최적화하기 위해 반복적으로 되풀이될 수 있다. 예를 들어, 하나 이상의 전자 아키텍처 설계 레이아웃이 불규칙적일 때, 이러한 반복적인 연산 시퀀스 자체는 반복될 수 있다.
도 1에서 도시된 예시적인 실시예에서, 전자 설계 플랫폼(100)은 합성 툴(102), 배치 및 라우팅 툴(104), 머신 러닝(machine learning; ML) 설계 테스트(design-for-test; DFT) 솔루션 툴(106), DFT 시방서 툴(108), ECO(design engineering change order) 툴(110), 이상점 필터링 툴(112), 시뮬레이션 툴(114), 및 검증 툴(116)을 포함한다. 아래에서 더 상세히 설명될 이러한 다양한 툴들은 하나 이상의 컴퓨팅 디바이스, 프로세서, 제어기, 또는 본 발명개시의 사상과 범위를 벗어나지 않으면서 관련 기술 분야(들)의 당업자에게 자명할 다른 디바이스들에 의해 실행될 때, 하나 이상의 전자 아키텍처 설계 레이아웃을 설계하고, 시뮬레이션하고, 분석하고, 및/또는 검증할 수 있는 하나 이상의 전자 설계 레소프트웨어 툴을 나타낸다. 본 발명개시의 실시예들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 본 발명개시의 실시예들은 또한 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는, 머신 판독가능 매체 상에 저장된 명령어들로서 구현될 수 있다. 머신 판독가능 매체는 머신(예를 들어, 컴퓨팅 디바이스)에 의해 판독가능한 형태로 정보를 저장하거나 또는 전송하기 위한 임의의 메커니즘을 포함할 수 있다. 예를 들어, 머신 판독가능 매체는 판독 전용 메모리(read only memory; ROM); 랜덤 액세스 메모리(RAM); 자기 디스크 저장 매체; 광학 저장 매체; 플래시 메모리 디바이스; 전기적, 광학적, 음향적 또는 다른 형태의 전파 신호(예를 들어, 반송파, 적외선 신호, 디지털 신호 등), 및 기타를 포함할 수 있다. 또한, 펌웨어, 소프트웨어, 루틴, 명령어가 본 명세서에서 일정한 동작들을 수행하는 것으로서 설명될 수 있다. 그러나, 이러한 설명들은 단지 편의를 위한 것일 뿐이라는 것과, 이러한 동작들은 실제로 컴퓨팅 디바이스, 프로세서, 제어기, 또는 펌웨어, 소프트웨어, 루틴, 명령어 등을 실행하는 다른 디바이스들로부터 초래된다는 것을 이해해야 한다.
합성 툴(102)은 전자 회로부의 하나 이상의 특성, 파라미터, 또는 속성을 하나 이상의 로직 연산, 하나 이상의 산술 연산, 하나 이상의 제어 연산, 및/또는 본 발명개시의 사상과 범위를 벗어나지 않고서 관련 기술 분야의 당업자에게 자명할 임의의 다른 적절한 연산으로 변환하여, 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션으로 변환시킨다. 예시적인 실시예에서, 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션은 예로서, 넷리스트(netlist)와 같은 전자 회로부의 텍스트 표현; 그래픽 설계 툴, 예컨대, C, 시스템 C, C++, LabVIEW, 및/또는 MATLAB과 같은 하이 레벨 소프트웨어 언어, SysML, SMDL, 및/또는 SSDL와 같은 범용 시스템 설계 언어, 또는 CPF(Common Power Format), UPF(Unified Power Formant)와 같은 하이 레벨 소프트웨어 포맷과 같은 하이 레벨 소프트웨어 포맷을 사용한 전자 회로부의 하이 레벨 소프트웨어 모델; 또는 CAD(computer-aided design) 모델과 같은 전자 회로부의 이미지 기반 표현을 나타낼 수 있다. 도 1에서 도시된 예시적인 실시예에서, 합성 툴(102)은 예를 들어, 고정화 결함과 같은 다양한 제조 결함들에 대해 전자 회로부를 테스트하기 위한 스캔 체인들을 기술하는, 예를 들어, 텍스트 파일과 같은 스캔 체인 리포트를 생성할 수 있다. 이 예시적인 실시예에서, 스캔 체인 리포트는 전자 회로부 내에서의 스캔 체인들의 개수, 각 스캔 체인들 내에서의 스캔 플립 플롭들의 누적 개수, 및/또는 전자 회로부 내에서의 스캔 플립 플롭들의 총 누적 개수의 회계를 나타낸다.
배치 및 라우팅 툴(104)은, 합성 툴(102)로부터의 하나 이상의 로직 연산, 하나 이상의 산술 연산, 하나 이상의 제어 연산, 및/또는 다른 적절한 연산을, 확산층, 폴리실리콘층, 및/또는 금속층뿐만이 아니라, 이들 층들 간의 상호연결부들에 대응하는 다양한 기하학적 형상부의 측면에서 정의하여 하나 이상의 전자 아키텍처 설계 레이아웃을 제공한다. 배치 및 라우팅 툴(104)은 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션에 의해 기술된 전자 회로부의 다양한 전기적, 기계적, 및/또는 전기기계적 컴포넌트들을 전자 설계 영역 상에 논리적으로 배치하여 전자 회로부에 대한 하나 이상의 전자 아키텍처 설계 배치들을 제공한다. 그 후, 배치 및 라우팅 툴(104)은 전자 회로부의 다양한 전기적, 기계적 및/또는 전기기계적 컴포넌트들로 기하학적 형상부들을 할당하고, 기하학적 형상부들에 대한 위치를 전자 설계 영역 내에 할당하고, 및/또는 기하학적 형상부들 간에 상호연결부들을 라우팅하여 하나 이상의 전자 아키텍처 설계 레이아웃을 제공한다. 예시적인 실시예에서, 배치 및 라우팅 툴(104)은 전자 회로부를 기술하는 텍스트 또는 이미지 기반 넷리스트, 전자 디바이스를 제조하기 위한 기술 라이브러리, 전자 디바이스를 제조하기 위한 반도체 파운드리, 및/또는 전자 디바이스를 제조하기 위한 반도체 기술 노드를 이용하여, 다양한 전기적, 기계적, 및/또는 전기기계적 컴포넌트들을 배치하고, 기하학적 형상부들을 전자 회로부의 다양한 전기적, 기계적, 및/또는 전기기계적 컴포넌트들에 할당하고, 기하학적 형상부들에 대한 위치를 전자 설계 영역 내에 할당하고, 및/또는 기하학적 형상부들 간에 상호연결부들을 라우팅한다.
머신 러닝(ML) 설계 테스트(DFT) 솔루션 툴(106)은 스캔 체인들 내에서 스캔 플립 플롭들을 그룹화하고 순서화한다. ML DFT 솔루션 툴(106)은 합성 툴(102)로부터 스캔 체인들을 기술하는 스캔 체인 리포트를 수신하고, 배치 및 라우팅 툴(104)로부터 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃을 수신한다. ML DFT 솔루션 툴(106)은 스캔 플립 플롭들의 위치를 추출하기 위해 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃을 이용한다. ML DFT 솔루션 툴(106)은 예를 들어, 응집 클러스터링(agglomerative clustering)과 같은 계층적 클러스터링(hierarchical clustering)이라고도 불리우는 연결성 기반 클러스터링; 예를 들어, k 평균 클러스터링과 같은 중심 기반 클러스터링, 분포 기반 클러스터링; 및/또는 예를 들어, 밀도 기반 클러스터링과 같은, 스캔 플립 플롭들의 수학적 클러스터 분석을 수행한다. 수학적 클러스터 분석은 다른 스캔 체인들 내에서의 다른 스캔 플립 플롭들의 특성, 파라미터, 또는 속성과 비교할 때, 각 스캔 체인 내에서의 스캔 플립 플롭들이 유사한 특성, 파라미터, 또는 속성을 공유하도록 하는 방식으로 스캔 플립 플롭들을 그룹화한다. 특성, 파라미터, 또는 속성은 스캔 체인들 내에서의 스캔 플립 플롭들 간의 거리, 스캔 체인들 내에서의 스캔 플립 플롭들의 밀도, 및/또는 예를 들어, 스캔 체인들 내에서의 스캔 플립 플롭들의 평균 거리와 같은 통계적 분포를 포함할 수 있다. 예시적인 실시예에서, 스캔 체인들의 개수 및 각각의 스캔 체인들에 대한 스캔 플립 플롭들의 개수는 스캔 체인 리포트에서 식별된다.
스캔 플립 플롭들을 스캔 체인들에 배열시킨 후, ML DFT 솔루션 툴(106)은 각각의 스캔 체인들 내에서의 스캔 플립 플롭들의 최단 경로 문제, 예를 들어, 순회 세일즈맨 문제(travelling salesman problem; TSP)와 같은 수학적 라우팅 분석을 수행하여, 스캔 플립 플롭들에 대한 라우팅 순서를 결정한다. 수학적 라우팅 분석은 스캔 체인들 각각 내에서의 스캔 플립 플롭들에 대한 시퀀스 또는 순서를 반복적으로 배열시켜서, 예컨대, 배선 길이와 같은, 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃의 하나 이상의 라우팅 파라미터를 최적화하여, 스캔 플립 플롭들에 대한 라우팅 순서를 결정한다. 예를 들어, 수학적 라우팅 분석은 제1 시퀀스의 배선 길이가 제2 시퀀스의 배선 길이보다 작을 때 제1 스캔 플립 플롭, 제3 스캔 플립 플롭, 및 제2 스캔 플립 플롭의 제2 시퀀스로부터 제1 스캔 플립 플롭, 제2 스캔 플립 플롭, 및 제3 스캔 플립 플롭의 제1 시퀀스가 되도록 스캔 체인의 시퀀스를 조정할 수 있다. 수학적 라우팅 분석은 하나 이상의 라우팅 파라미터가 최적화될 때까지 스캔 플립 플롭들에 대한 시퀀스 또는 순서를 계속 정렬시킨다. 예시적인 실시예에서, ML DFT 솔루션 툴(106)은 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및 스캔 체인들 각각 내에서의 스캔 플립 플롭들에 대한 라우팅 순서를 기술하는 텍스트 또는 이미지 기반의 넷리스트를 나타내는 스캔 클러스터 리포트를 제공한다.
일부 상황들에서, 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화는 하나 이상의 전자 설계 제약을 받을 수 있다. 예시적인 실시예에서, 하나 이상의 전자 설계 제약은 전자 회로부에 대한 전자 설계 시방서에서 약술될 수 있다. 하나 이상의 전자 설계 제약은, 예를 들어, 하나 이상의 스캔 체인 내에서의 스캔 플립 플롭들의 누적 개수, 하나 이상의 스캔 체인 내에서의 스캔 플립 플롭들의 미리 결정된 그룹화, 및/또는 하나 이상의 스캔 체인 내에서의 스캔 플립 플롭들에 대한 미리결정된 라우팅 순서를 규정할 수 있다. 도 1에서 도시된 바와 같이, 전자 설계 플랫폼(100)은 이러한 전자 설계 제약을 수신하기 위한 DFT 시방서 툴(108)을 포함한다. 예시적인 실시예에서, DFT 시방서 툴(108)은 예컨대, 하나 이상의 전자 설계 제약을 기술하는, 텍스트 파일과 같은, 전자 설계 제약 리포트를 수신할 수 있다. 그러나, 본 발명개시의 사상과 범위를 벗어나지 않고서, 키보드와 같은, 주변 장치를 통한 수동 입력과 같은, 하나 이상의 전자 설계 제약을 수신하기 위한 다른 메커니즘이 가능하다.
설계 엔지니어링 변경 주문(ECO) 툴(110)은 ML DFT 솔루션 툴(106)에 의해 제공되는 스캔 플립 플롭들의 그룹화 및 순서화에 따라 합성 툴(102)에 의해 제공되는 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션을 조정한다. 상술한 바와 같이, 합성 툴(102)은 전자 회로부의 하나 이상의 특성, 파라미터, 또는 속성을 하나 이상의 로직 연산, 하나 이상의 산술 연산, 하나 이상의 제어 연산, 및/또는 다른 적절한 연산으로 변환하여, 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션으로 변환시킨다. 도 1에서 도시된 예시적인 실시예에서, 설계 ECO 툴(110)은 합성 툴(102)에 의해 제공되는 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션으로부터 스캔 플립 플롭들의 그룹화 및 순서화를 제거한다. 그 후, 이 예시적인 실시예에서, 설계 ECO 툴(110)은 ML DFT 솔루션 툴(106)에 의해 제공되는 스캔 플립 플롭들의 그룹화 및 순서화로 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션을 증강(augment)시킨다. 다음으로, 배치 및 라우팅 툴(104)은 설계 ECO 툴(110)에 의해 제공되는 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션에 의해 기술된 바와 같이 ML DFT 솔루션 툴(106)에 의해 제공되는 스캔 플립 플롭들의 그룹화 및 순서화에 따라 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃을 증강시킨다. 일부 상황들에서, 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화는 상술한 바와 같이, 하나 이상의 전자 설계 제약을 받을 수 있다. 이러한 상황에서, 하나 이상의 전자 설계 제약들을 갖는 이러한 스캔 플립 플롭들 및/또는 이러한 스캔 체인들은 설계 ECO 툴(110)에 의한 고려로부터 제거될 수 있다. 이러한 상황들에서, 하나 이상의 전자 설계 제약을 갖는 이러한 스캔 플립 플롭들 및/또는 이러한 스캔 체인들의 그룹화 및/또는 순서화는 합성 툴(102)에 의해 제공되는 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션 내에서 기술된 대로 남는다.
이상점 필터링 툴(112)은 스캔 체인들 내에서의 스캔 플립 플롭들의 통계적 비용 분석을 수행하여, 이상점이라고 칭해지는 하나 이상의 비최적화된(non-optimum) 스캔 플립 플롭들이 스캔 체인들 내에 존재하는지를 식별한다. 도 1에서 도시된 예시적인 실시예에서, 이상점 필터링 툴(112)은 스캔 체인들 내에서의 스캔 플립 플롭들 간의 전기적 연결부들의 하나 이상의 특성, 파라미터, 또는 속성에 대해, 배치 및 라우팅 툴(104)로부터 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃을 분석한다. 예시적인 실시예에서, 하나 이상의 특성, 파라미터, 또는 속성은 스캔 플립 플롭들 간의 스캔 배선들의 길이(L), 스캔 플립 플롭들 간의 거리(D), 및 스캔 체인들을 제조하는데 필요한 금속층들의 개수(M)를 포함할 수 있다. 그 후, 이상점 필터링 툴(112)은 예를 들어, L/D 비용 분석, M/D 비용 분석, 및/또는 M/L 비용 분석과 같은 하나 이상의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 수행하여, 스캔 체인들 내에서의 스캔 플립 플롭들 간의 하나 이상의 비최적화된 전기적 연결부를 식별한다. 이상점 필터링 툴(112)은 예를 들어, 통계적 비용 분석의 평균값으로부터의 2개의 표준 편차, 통계적 비용 분석의 평균값으로부터의 4개의 표준 편차, 및/또는 통계적 비용 분석의 평균값으로부터의 6개의 표준 편자와 같이, 통계적 비용 분석이 컷오프(cutoff) 문턱값 이상인 이들 전기적 연결부들을 비최적화된 전기적 연결부들로서 식별한다. 다음으로, 이상점 필터링 툴(112)은, 이들 비최적화된 전기적 연결부들에 대응하는, 예를 들어, 이에 가장 가까운, 비최적화된 스캔 플립 플롭들이라고 칭해지는 스캔 플립 플롭들을 스캔 체인들 내에서 위치확인한다. 그 후, 이상점 필터링 툴(112)은 스캔 체인들 내에서 이들 비최적화된 스캔 플립 플롭들의 그룹화 및/또는 순서화를 조정한다. 예를 들어, 이상점 필터링 툴(112)은 이들 비최적화된 스캔 플립 플롭들을 ML DFT 솔루션 툴(106)에 의해 제공된 것과는 상이한 스캔 체인들로 이동시킬 수 있다. 그 후, 도 1에서 도시된 예시적인 실시예에서, 설계 ECO 툴(110)은 이상점 필터링 툴(112)에 의해 제공되는 스캔 플립 플롭들의 그룹화 및 순서화로 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션을 증강시킨다. 다음으로, 배치 및 라우팅 툴(104)은 설계 ECO 툴(110)에 의해 제공되는 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션에 의해 기술된 바와 같이 이상점 필터링 툴(112)에 의해 제공되는 스캔 플립 플롭들의 그룹화 및 순서화에 따라 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃을 증강시킨다. 예시적인 실시예에서, 배치 및 라우팅 툴(104)은 대형 크기의 스캔 체인들을 위해 하나 이상의 전자 아키텍처 설계 배치를 증강시킨다. 그렇지 않고, 이 예시적인 실시예에서, 배치 및 라우팅 툴(104)은 더 작은 크기의 스캔 체인들을 위해 하나 이상의 전자 아키텍처 설계 레이아웃을 증강시킨다. 일부 상황들에서, 합성 툴(102)은 이상점 필터링 툴(112)에 의해 제공된 스캔 플립 플롭들의 그룹화 및 순서화에 따라 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션을 증강시킬 수 있다.
시뮬레이션 툴(114)은 기하학적 형상부들의 하나 이상의 특성, 파라미터, 또는 속성, 기하학적 형상부들의 위치, 및/또는 기하학적 형상부들 간의 상호연결부들을 복제하기 위해 하나 이상의 전자 아키텍처 설계 레이아웃에 의해 기술된 바와 같은 기하학적 형상부들, 기하학적 형상부들의 위치, 및/또는 기하학적 형상부들 간의 상호연결부들을 시뮬레이션한다. 예시적인 실시예에서, 시뮬레이션 툴(114)은 정적 타이밍 분석(static timing analysis; STA), IREM 분석이라고도 칭해지는 전압 강하 분석, 클록 도메인 크로싱 검증(Clock Domain Crossing Verification)(CDC 체크), 모델 체킹이라고도 칭해지는 형식 검증, 동치 체킹(equivalence checking), 또는 본 발명개시의 사상과 범위를 벗어나지 않고서 관련 기술 분야의 당업자에게 자명할 임의의 다른 적절한 분석을 제공할 수 있다. 다른 예시적인 실시예에서, 시뮬레이션 툴(114)은 STA, IREM 분석, 또는 다른 적절한 분석을 수행하기 위해, 선형 소신호 주파수 도메인 분석과 같은 교류(AC) 분석, 및/또는 비선형 정지점 계산 또는 전압, 전류, 및/또는 파라미터를 스위핑(sweeping)하면서 계산된 비선형 동작점들의 시퀀스와 같은 직류(DC) 분석을 수행할 수 있다.
검증 툴(116)은 시뮬레이션 툴(114)에 의해 복제된 기하학적 형상부들의 하나 이상의 특성, 파라미터, 또는 속성, 기하학적 형상부들의 위치, 및/또는 기하학적 형상부들 간의 상호연결부들이 전자 설계 시방서를 만족시키는지를 확인한다. 검증 툴(116)은 또한 배치 및 라우팅 툴(104)에 의해 할당된 기하학적 형상부들, 기하학적 형상부들의 위치, 기하학적 형상부들 간의 상호연결부들이 전자 디바이스를 제조하기 위한 반도체 파운드리 및/또는 반도체 기술 노드에 의해 정의되는 바와 같은, 설계 규칙이라고 칭해지는 일련의 권장 파라미터를 만족시키는지 여부를 체크하기 위해, 설계 규칙 체크(design rule check; DRC)라고도 칭해지는 물리적 검증을 수행할 수 있다.
스캔 체인들 내에서의 스캔 플립 플롭들의 예시적인 그룹화 및/또는 순서화
도 2는 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화할 때의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다. 본 발명개시는 이러한 동작 설명으로 한정되지 않는다. 오히려, 다른 동작 제어 흐름들이 본 발명개시의 사상과 범위 내에 있다는 것이 관련 기술분야(들)의 당업자에게 명백할 것이다. 아래의 논의는 전자 디바이스의 전자 회로부 내의 스캔 체인들 내에서 스캔 플립 플롭들을 그룹화 및/또는 순서화하기 위한 예시적인 동작 제어 흐름(200)을 설명한다. 일부 상황들에서, 예시적인 동작 제어 흐름(200)은 전자 디바이스의 전자 회로부 내의 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화를 최적화하기 위해 반복적으로 되풀이될 수 있다. 동작 제어 흐름(200)은 도 1에서 전술한 바와 같이 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화를 결정할 때의 머신 러닝(ML) 설계 테스트(DFT) 솔루션 툴(106)을 위한 예시적인 동작을 나타낼 수 있다.
동작(202)에서, 예시적인 동작 제어 흐름(200)은 전자 회로부의 스캔 플립 플롭들의 개수 및 스캔 체인들의 개수를 결정한다. 예시적인 실시예에서, 예시적인 동작 제어 흐름(200)은 예를 들어, 스캔 체인들을 기술하는 텍스트 파일과 같은, 스캔 체인 리포트를 수신한다. 이 예시적인 실시예에서, 스캔 체인 리포트는 전자 회로부의 스캔 체인들의 개수, 각 스캔 체인들 내에서의 스캔 플립 플롭들의 누적 개수, 및/또는 전자 회로부 내에서의 스캔 플립 플롭들의 총 누적 개수의 회계를 나타낸다. 그러나, 본 발명개시의 사상과 범위를 벗어나지 않고서, 키보드와 같은, 주변 장치를 통한 수동 입력과 같은, 전자 회로부의 스캔 체인들의 개수 및 스캔 플립 플롭들의 개수를 결정하기 위한 다른 메커니즘이 가능하다.
동작(204)에서, 예시적인 동작 제어 흐름(200)은 하나 이상의 전자 아키텍처 설계 레이아웃 내에서의 스캔 플립 플롭들의 위치를 추출한다. 하나 이상의 전자 아키텍처 설계 레이아웃은 전자 회로부를 기술하는 기하학적 형상부들, 기하학적 형상부들의 위치, 및/또는 기하학적 형상부들 간의 상호연결부들의 하나 이상의 이미지 및/또는 하나 이상의 데이터 기반 표현을 나타낸다. 하나 이상의 전자 아키텍처 설계 레이아웃은 전자 회로부에 대응하는 하나 이상의 DEF(Design Exchange Format) 파일, 하나 이상의 LEF(Library Exchange Format) 파일, 하나 이상의 JPEG(Joint Photographic Experts Group) 이미지, JIFF(JPEG File Interchange Format) 이미지, Exif(Exchangeable image file) 이미지, TIFF(Tagged Image File Format) 이미지, GIF(Graphics Interchange Format) 이미지, BMP(Windows bitmap) 이미지, 및/또는 PNG(Portable Network Graphic) 이미지 및/또는 전자 회로부에 대응하는 하나 이상의 거버 데이터 파일, AutoCAD DXF(Drawing Exchange Format) 데이터 파일, PDF(Portable Document Format) 데이터 파일, EDIF(Electronic Design Interchange Format) 데이터 파일, ODB++ 데이터 파일, 예컨대, IPC-2511A, IPC-2511B, 또는 IPC-2581과 같은 하나 이상의 연맹 연결 전자 산업(Association Connecting Electronics Industries)(IPC) 데이터 파일, 예컨대, ISO 10303-210와 같은 하나 이상의 ISO(International Organization for Standardization) 데이터 파일을 표현할 수 있다.
동작(206)에서, 예시적인 동작 제어 흐름(200)은 전자 회로부 내에서의 복수의 스캔 체인들이 최적화되어야 하는지 여부를 결정한다. 일부 상황들에서, 예시적인 동작 제어 흐름(200)은 하나 이상의 전자 아키텍처 설계 레이아웃으로부터 전자 회로부 내에서의 스캔 체인들의 전력, 성능, 및/또는 면적을 평가하고, 스캔 체인들의 이러한 전력, 성능, 및/또는 면적 특성, 파라미터, 또는 속성을 전자 설계 시방서에서 약술된 전력, 성능, 및/또는 면적에 대한 대응하는 특성, 파라미터, 또는 속성에 비교함으로써 전자 회로부 내에서의 스캔 체인들의 개수를 최적화하는 것을 자율적으로 결정할 수 있다. 예시적인 실시예에서, 예시적인 동작 제어 흐름(200)은 전자 회로부 내에서의 스캔 체인들의 개수를 최적화함으로써 전자 회로부 내에서의 스캔 체인들의 전력, 성능, 및/또는 면적을 줄일 수 있다. 다른 상황들에서, 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화는 도 1에서 상술한 바와 같이, 하나 이상의 전자 설계 제약을 받을 수 있다. 도 2에서 도시된 예시적인 실시예에서, 하나 이상의 전자 설계 제약은 전자 회로부 내에서의 스캔 체인들의 개수가 최적화되어야 한다는 표시를 포함할 수 있다. 동작 제어 흐름(200)은 전자 회로부 내에서의 스캔 체인들의 개수를 최적화하기 위한 동작(208)으로 진행한다. 그렇지 않은 경우, 동작 제어 흐름(200)은 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화를 결정하기 위한 동작(210)으로 진행한다.
동작(208)에서, 예시적인 동작 제어 흐름(200)은 전자 회로부에 대한 스캔 체인들의 최적화된 개수를 결정한다. 예시적인 동작 제어 흐름(200)은 스캔 플립 플롭들의 수학적 클러스터 분석을 수행하여, 도 1에서 전술한 바와 같이 스캔 플립 플롭들을 전자 회로부 내에서의 스캔 체인들로 그룹화한다. 그 후, 예시적인 동작 제어 흐름(200)은 예를 들어, 실루엣 클러스터링과 같은, 스캔 플립 플롭들의 수학적 일관성 분석을 수행하여, 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화의 일관성을 해석 및/또는 확인한다. 도 2에서 도시된 예시적인 실시예에서, 수학적 일관성 분석은 예를 들어, 유클리드 거리 또는 맨해튼 거리와 같은, 거리 메트릭을 이용하여, 스캔 체인들 내에서의 스캔 플립 플롭들 간의 거리를 결정한다. 수학적 일관성 분석은 예를 들어, 분리라고 칭해지는, 다른 스캔 체인들의 스캔 플립 플롭들과 비교하여, 응집이라고 칭해지는, 자체 스캔 체인들 내에서의 스캔 플립 플롭들 간의 유사성의 수치를 나타내는, 실루엣 값과 같은 일관성 계수를 제공한다. 예시적인 동작 제어 흐름(200)은 상이한 개수의 스캔 체인들로의 스캔 플립 플롭들의 상이한 그룹화를 결정하기 위해 수학적 클러스터 분석을 반복적으로 되풀이하고, 이러한 상이한 그룹화들의 일관성을 해석 및/또는 확인하기 위해 수학적 일관성 분석을 반복적으로 되풀이한다. 그 후, 예시적인 동작 제어 흐름(200)은 전자 회로부에 대한 스캔 체인들의 최적화된 개수로서 최대 일관성 계수를 갖는 스캔 체인들의 개수를 선택한다.
동작(210)에서, 예시적인 동작 제어 흐름(200)은 k 평균 클러스터링을 수행하여, 동작(208)으로부터 결정되거나 또는 도 1에서 상술한 바와 같은 스캔 체인 리포트에서 식별된 스캔 체인들의 개수로 스캔 플립 플롭들을 그룹화한다. k 평균 클러스터링은 전자 회로부에 대한 전자 설계 영역 내에서의 무작위 중심(random centroid)을 초기화한다. 이러한 각각의 무작위 중심은 스캔 체인 리포트에서 식별된 스캔 체인들 중 하나에 대응한다. 그 후, k 평균 클러스터링은 스캔 체인 리포트에서 또한 식별된 무작위 중심에 스캔 플립 플롭들을 할당한다. 예를 들어, k 평균 클러스터링은 각 스캔 플립 플롭들을 가장 가까운 평균을 갖는 무작위 중심에 할당한다. 다음으로, k 평균 클러스터링은 각 스캔 체인들 내에서의 이전에 할당된 스캔 플립 플롭들 각각으로부터 스캔 체인들에 대한 새로운 중심을 결정한다. 그 후, k 평균 클러스터링은 스캔 체인 리포트에서 또한 식별된 이러한 새로운 무작위 중심에 스캔 플립 플롭들을 할당한다. 스캔 체인들에 대한 새로운 중심을 결정하고 새로운 중심에 스캔 플립 플롭들을 할당하는 이 프로세스는 각 스캔 플립 플롭이 가장 가까운 평균을 갖는 스캔 체인에 속하도록 k 평균 클러스터링이 수렴을 할당할 때까지 반복적으로 되풀이된다. 일부 상황들에서, 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화 및/또는 순서화는 도 1에서 상술한 바와 같이, 하나 이상의 전자 설계 제약을 받을 수 있다. 이러한 상황들에서, 예시적인 동작 제어 흐름(200)은 또한, 중심들에 대한 근접도에 기초하여, k 평균 클러스터링에 의해 결정된 바와 같이 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화를 재분포시켜서 스캔 체인들에 대해 대략 동일한 크기의 클러스터를 생성하여 스캔 체인들의 길이를 밸런싱시킨다.
동작(212)에서, 예시적인 동작 제어 흐름(200)은 도 1에서 상술한 바와 같이 스캔 플립 플롭들에 대한 라우팅 순서를 결정하기 위해 각각의 스캔 체인들 내에서의 스캔 플립 플롭들의 순회 세일즈맨 문제(TSP)를 수행한다. TSP는 각각의 스캔 체인들 내에서의 스캔 플립 플롭들에 대한 시퀀스 또는 순서를 반복적으로 배열시켜서, 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃의, 예컨대, 배선 길이와 같은, 하나 이상의 라우팅 파라미터를 최적화하여, 스캔 플립 플롭들에 대한 라우팅 순서를 결정한다. 예를 들어, TSP는 제1 시퀀스의 배선 길이가 제2 시퀀스의 배선 길이보다 작을 때 제1 스캔 플립 플롭, 제3 스캔 플립 플롭, 및 제2 스캔 플립 플롭의 제2 시퀀스로부터 제1 스캔 플립 플롭, 제2 스캔 플립 플롭, 및 제3 스캔 플립 플롭의 제1 시퀀스가 되도록 스캔 체인의 시퀀스를 조정할 수 있다. TSP는 하나 이상의 라우팅 파라미터가 최적화될 때까지 스캔 플립 플롭들에 대한 시퀀스 또는 순서를 계속 정렬시킨다.
동작(214)에서, 예시적인 동작 제어 흐름(200)은 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃에 대한 엔지니어링 변경 주문(ECO)을 생성한다. 예시적인 실시예에서, ECO는 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃 내에서의 스캔 플립 플롭들의 그룹화 및 순서가 동작(210)과 동작(212)에 의해 결정된 바와 같은 스캔 플립 플롭들의 그룹화 및 순서를 따르게 하기 위해 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃에 필요한 변경들의 텍스트 리스트 및/또는 그래픽 표현을 나타낸다.
스캔 체인들 내에서의 스캔 플립 플롭들의 예시적인 하이 레벨 소프트웨어 레벨 디스크립션
도 3은 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 스캔 플립 플롭들의 하이 레벨 소프트웨어 레벨 디스크립션을 생성할 때의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다. 본 발명개시는 이러한 동작 설명으로 한정되지 않는다. 오히려, 다른 동작 제어 흐름들이 본 발명개시의 사상과 범위 내에 있다는 것이 관련 기술분야(들)의 당업자에게 명백할 것이다. 아래의 논의는 전자 디바이스의 전자 회로부 내의 스캔 체인들 내에서의 스캔 플립 플롭들의 하이 레벨 소프트웨어 레벨 디스크립션을 생성하기 위한 예시적인 동작 제어 흐름(300)을 설명한다. 동작 제어 흐름(300)은 도 1에서 상술한 ML DFT 솔루션 툴(106) 및/또는 도 2에서 상술한 동작 제어 흐름(200)에 의해 제공된 스캔 플립 플롭들의 그룹화 및 순서화에 따라 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션을 생성할 때의 설계 엔지니어링 변경 주문(ECO) 툴(110)에 대한 예시적인 동작을 나타낼 수 있다.
동작(302)에서, 동작 제어 흐름(300)은 전자 디바이스의 전자 회로부 내에서의 스캔 플립 플롭들을 식별한다. 도 3에서 도시된 예시적인 실시예에서, 동작 제어 흐름(300)은 도 1에서 상술한 바와 같은 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션, 하나 이상의 전자 아키텍처 설계 배치, 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃으로부터 스캔 플립 플롭들을 식별한다. 예시적인 실시예에서, 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션, 하나 이상의 전자 아키텍처 설계 배치, 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃은 넷리스트(netlist)와 같은 전자 회로부의 텍스트 표현; 그래픽 설계 툴, 예컨대, C, 시스템 C, C++, LabVIEW, 및/또는 MATLAB과 같은 하이 레벨 소프트웨어 언어, SysML, SMDL, 및/또는 SSDL와 같은 범용 시스템 설계 언어, 또는 CPF(Common Power Format), UPF(Unified Power Formant)와 같은 하이 레벨 소프트웨어 포맷과 같은 하이 레벨 소프트웨어 포맷을 사용한 전자 회로부의 하이 레벨 소프트웨어 모델; 또는 예로서, CAD(computer-aided design) 모델과 같은 전자 회로부의 이미지 기반 표현을 나타낼 수 있다.
동작(304)에서, 동작 제어 흐름(300)은 동작(302)에서 식별된 스캔 플립 플롭들에 대한, 구 회로 연결부라고 칭해지는, 회로 연결부를 제거한다. 일반적으로, 동작 제어 흐름(300)은 도 1에서 상술한 바와 같은 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션, 하나 이상의 전자 아키텍처 설계 배치, 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃으로부터 스캔 플립 플롭들의 순서를 제거한다. 도 3에서 도시된 예시적인 실시예에서, 동작 제어 흐름(300)은 합성 툴(102)에 의해 제공되는 전자 회로부의 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션 내에서, 동작(302)에서 식별된 스캔 플립 플롭들의 그룹화 및 순서를 제거한다.
동작(306)에서, 동작 제어 흐름(300)은 도 1에서 상술된 ML DFT 솔루션 툴(106) 및/또는 이상점 필터링 툴(112)에 의해 제공된 스캔 플립 플롭들의 그룹화 및/또는 순서화 및/또는 도 2에서 상술된 동작 제어 흐름(200)에 따라, 도 1에서 상술된 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션, 하나 이상의 전자 아키텍처 설계 배치, 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃에서, 동작(302)에서 식별된 스캔 플립 플롭들에 대한 새로운 회로 연결부를 생성한다. 일부 상황들에서, 동작 제어 흐름(300)은 동작(302)에서 식별된 스캔 플립 플롭들에 대한 새로운 회로 연결부들을 검증할 수 있다. 예시적인 실시예에서, 동작 제어 흐름(300)은 하나 이상의 하이 레벨 소프트웨어 레벨 디스크립션, 하나 이상의 전자 아키텍처 설계 배치, 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃으로부터 동작(302)에서 식별된 스캔 플립 플롭들에 대한 새로운 회로 연결부들을 되추적(tracing back)함으로써 새로운 회로 연결부들을 검증한다.
스캔 체인들 내에서의 이상점 스캔 플립 플롭들의 예시적인 필터링
도 4는 본 발명개시의 예시적인 실시예에 따른 스캔 체인들 내에서의 이상점 스캔 플립 플롭들을 필터링할 때의 전자 설계 플랫폼의 예시적인 동작의 흐름도를 나타낸다. 본 발명개시는 이러한 동작 설명으로 한정되지 않는다. 오히려, 다른 동작 제어 흐름들이 본 발명개시의 사상과 범위 내에 있다는 것이 관련 기술분야(들)의 당업자에게 명백할 것이다. 아래의 논의는 전자 디바이스의 전자 회로부 내의 스캔 체인들 내에서의, 이상점이라고 칭해지는, 하나 이상의 비최적화된 스캔 플립 플롭들을 식별하기 위한 예시적인 동작 제어 흐름(400)을 설명한다. 동작 제어 흐름(400)은 도 1에서 상술된 스캔 체인들 내에서의, 이상점이라고 칭해지는, 하나 이상의 비최적화된 스캔 플립 플롭들을 식별하기 위해 스캔 체인들 내에서의 스캔 플립 플롭들 간의 전기적 연결부들의 통계적 비용 분석을 수행할 때의 이상점 필터링 툴(112)에 대한 예시적인 동작을 나타낼 수 있다.
동작(402)에서, 동작 제어 흐름(400)은 스캔 체인들 내에서의 스캔 플립 플롭들 간의 전기적 연결부들을 평가하여, 이상점이라고 칭해지는, 하나 이상의 비최적화된 스캔 플립 플롭들을 식별하기 위해, 예컨대, L/D 비용 함수, M/D 비용 함수, 및/또는 M/L 비용 함수 중에서 통계적 비용 함수를 선택한다. 도 4에서 도시된 예시적인 실시예에서, 통계적 비용 함수는 스캔 플립 플롭들 간의 스캔 배선들의 길이(L), 스캔 플립 플롭들 간의 거리(D), 및 스캔 체인들을 제조하는데 필요한 금속층들의 개수(M)를 분석한다. L/D 비용 함수는 스캔 플립 플롭들 간의 스캔 배선의 길이(L)와 스캔 플립 플롭들 간의 거리(D)의 비를 나타낸다. M/D 비용 함수는 스캔 체인들을 제조하는데 필요한 금속층들의 개수(M)와 스캔 플립 플롭들 간의 거리(D)의 비를 나타낸다. M/L 비용 함수는 스캔 체인들을 제조하는데 필요한 금속층들의 개수(M)와 스캔 플립 플롭들 간의 스캔 배선의 길이(L) 간의 비를 나타낸다.
동작(404)에서, 동작 제어 흐름(400)은 동작(402)에서 선택된 통계적 비용 함수에 따라 스캔 체인들 내에서의 스캔 플립 플롭들 간의 전기적 연결부들에 대한 비용 메트릭을 계산한다. 도 4에서 도시된 예시적인 실시예에서, 동작 제어 흐름(400)이 제1 스캔 체인 내에서의 스캔 플립 플롭들 간의 전기적 연결부들에 대한 비용 메트릭을 계산하면, 동작 제어 흐름(400)은 제2 스캔 체인 내에서의 스캔 플립 플롭들 간의 전기적 연결부들에 대한 비용 메트릭을 계산하는 것을 진행한다.
동작(406)에서, 동작 제어 흐름(400)은 스캔 체인들 내에서의 스캔 플립 플롭들 간의 하나 이상의 비최적화된 전기적 연결부를 식별한다. 도 4에서 도시된 예시적인 실시예에서, 동작 제어 흐름(400)은 전기적 연결부들에 대한 비용 메트릭을 컷오프 문턱값과 비교하여 스캔 체인들 내에서의 스캔 플립 플롭들 간의 하나 이상의 비최적화된 전기적 연결부를 식별한다. 예시적인 실시예에서, 컷오프 문턱값은 비용 메트릭의 평균값으로부터의 하나 이상의 표준 편차를 나타낸다. 예를 들어, 컷오프 문턱값은 스캔 플립 플롭들에 대한 전기적 연결부들의 평균 비용 메트릭으로부터의 2개의 표준 편차, 4개의 표준 편차, 또는 6개의 표준 편차를 나타낼 수 있다. 동작 제어 흐름(400)은 각자의 대응하는 비용 메트릭이 컷오프 문턱값보다 클 때 이들 전기적 연결부들을 하나 이상의 비최적화된 전기적 연결부인 것으로서 식별한다.
동작(408)에서, 동작 제어 흐름(400)은 동작(406)에서 식별된 비최적화된 전기적 연결부들에 대응하는, 비최적화된 스캔 플립 플롭들이라고 칭하는, 하나 이상의 스캔 플립 플롭을 스캔 체인들 내에서 식별한다. 도 4에서 도시된 예시적인 실시예에서, 동작 제어 흐름(400)은 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃으로부터, 동작(406)에서 식별된 비최적화된 전기적 연결부들에 대응하는, 예컨대, 이러한 전기적 연결부들과 거리상 가장 가까운, 비최적화된 스캔 플립 플롭들이라고 칭해지는 스캔 플립 플롭들을 스캔 체인들 내에서 식별한다. 동작 제어 흐름(400)은 예컨대, 유클리드 거리 또는 맨해튼 거리와 같은, 거리 메트릭을 이용하여, 스캔 체인들 내에서의 스캔 플립 플롭들 간의 거리 및 비최적화된 전기적 연결부들을 결정할 수 있다.
단계(410)에서, 동작 제어 흐름(400)은 하나 이상의 전자 아키텍처 설계 배치 및/또는 하나 이상의 전자 아키텍처 설계 레이아웃으로부터 스캔 체인들 내에서의 스캔 플립 플롭들의 그룹화를 조정한다. 예를 들어, 동작 제어 흐름(400)은 이러한 비최적화된 스캔 플립 플롭들이 각자의 대응하는 스캔 체인들 내에서의 다른 스캔 플립 플롭들과 유사한 특성, 파라미터, 또는 속성을 공유하도록 하는 방식으로 동작(408)에서 식별된 비최적화된 스캔 플립 플롭들을 그룹화할 수 있다. 특성, 파라미터, 또는 속성은 스캔 체인들 내에서의 스캔 플립 플롭들 간의 거리, 스캔 체인들 내에서의 스캔 플립 플롭들의 밀도, 및/또는 예를 들어, 스캔 체인들 내에서의 스캔 플립 플롭들의 평균 거리와 같은 통계적 분포를 포함할 수 있다.
예시적인 설계 환경을 구현하기 위한 예시적인 컴퓨터 시스템
도 5는 본 발명개시의 예시적인 실시예에 따른 예시적인 설계 환경을 구현하기 위한 예시적인 컴퓨터 시스템의 블록도를 나타낸다. 컴퓨터 시스템(500)은 도 1에서 상술한 바와 같은 전자 설계 플랫폼(100)을 구현하는데 사용될 수 있다. 그러나, 일부 상황들에서는, 하나보다 많은 컴퓨터 시스템(500)이 전자 설계 플랫폼(100)에 사용될 수 있다. 본 설명을 읽은 후에는, 다른 컴퓨터 시스템 및/또는 컴퓨터 아키텍처를 사용하여 실시예들을 구현하는 방법이 본 업계의 당업자에게 명백해질 것이다.
컴퓨터 시스템(500)은 도 1에서 상술된 합성 툴(102), 배치 및 라우팅 툴(104), 머신 러닝(ML) 설계 테스트(DFT) 솔루션 툴(106), DFT 시방서 툴(108), 설계 엔지니어링 변경 주문(ECO) 툴(110), 이상점 필터링 툴(112), 시뮬레이션 툴(114), 및/또는 검증 툴(116)을 실행하기 위해, 중앙 처리 장치 또는 CPU라고도 칭해지는, 하나 이상의 프로세서(504)를 포함한다. 하나 이상의 프로세서(504)는 통신 인프라스트럭처 또는 버스(506)에 연결될 수 있다. 예시적인 실시예에서, 하나 이상의 프로세서(504) 중 하나 이상은 그래픽 처리 유닛(GPU)으로서 구현될 수 있다. GPU는 전자 디바이스 상에서 수학 집약적 애플리케이션을 신속하게 처리하도록 설계된 특수 전자 회로를 나타낸다. GPU는 컴퓨터 그래픽 애플리케이션, 이미지 및 비디오에 있어서 흔한 수학 집약적 데이터와 같이 대규모 데이터 블록을 병렬 처리하는데 효율적인 고도의 병렬 구조를 가질 수 있다.
컴퓨터 시스템(500)은 또한 사용자 입력/출력 인터페이스(들)(502)를 통해 통신 인프라스트럭처(506)와 통신하는 모니터, 키보드, 포인팅 디바이스 등과 같은 사용자 입력/출력 디바이스(들)(503)을 포함한다.
또한, 컴퓨터 시스템(500)은 예를 들어, 랜덤 액세스 메모리(RAM)와 같은 메인 또는 주 메모리(508)를 포함한다. 메인 메모리(508)는 하나 이상의 레벨의 캐시를 포함할 수 있다. 메인 메모리(508)에는 합성 툴(102), 배치 및 라우팅 툴(104), 머신 러닝(ML) 설계 테스트(DFT) 솔루션 툴(106), DFT 시방서 툴(108), 설계 엔지니어링 변경 주문(ECO) 툴(110), 이상점 필터링 툴(112), 시뮬레이션 툴(114), 및/또는 검증 툴(116)과 같은, 제어 로직(즉, 컴퓨터 소프트웨어) 및/또는 데이터가 저장되어 있다.
컴퓨터 시스템(500)은 또한 합성 툴(102), 배치 및 라우팅 툴(104), 머신 러닝(ML) 설계 테스트(DFT) 솔루션 툴(106), DFT 시방서 툴(108), 설계 엔지니어링 변경 주문(ECO) 툴(110), 이상점 필터링 툴(112), 시뮬레이션 툴(114), 및/또는 검증 툴(116)을 저장하기 위한 하나 이상의 2차 저장 디바이스 또는 메모리(510)를 포함할 수 있다. 하나 이상의 2차 저장 디바이스 또는 메모리(510)는 예를 들어, 하드 디스크 드라이브(512) 및/또는 착탈식 저장 디바이스 또는 드라이브(514)를 포함할 수 있다. 착탈식 저장 드라이브(514)는 플로피 디스크 드라이브, 자기 테이프 드라이브, 콤팩트 디스크 드라이브, 광학 저장 디바이스, 테이프 백업 디바이스, 및/또는 임의의 다른 저장 디바이스/드라이브일 수 있다. 착탈식 저장 드라이브(514)는 착탈식 저장 유닛(518)과 상호작용할 수 있다. 착탈식 저장 유닛(518)은 컴퓨터 소프트웨어(제어 로직) 및/또는 데이터가 저장되어 있는 컴퓨터 사용가능 또는 판독가능 저장 디바이스를 포함한다. 착탈식 저장 유닛(518)은 플로피 디스크, 자기 테이프, 콤팩트 디스크, DVD, 광학 저장 디스크, 및/또는 임의의 다른 컴퓨터 데이터 저장 디바이스일 수 있다. 착탈식 저장 드라이브(514)는 공지된 방식으로 착탈식 저장 유닛(518)으로부터 판독하고 및/또는 이 저장 유닛(518)에 기록한다.
예시적인 실시예에 따르면, 하나 이상의 2차 저장 디바이스 또는 메모리(510)는 컴퓨터 프로그램 및/또는 다른 명령어 및/또는 데이터가 컴퓨터 시스템(500)에 의해 액세스될 수 있게 하는 다른 수단, 방편, 또는 다른 접근법을 포함할 수 있다. 그러한 수단, 방편, 또는 다른 접근법은 예를 들어, 착탈식 저장 유닛(522) 및 인터페이스(520)를 포함할 수 있다. 착탈식 저장 유닛(522) 및 인터페이스(520)의 예시들은 (비디오 게임 디바이스에서 발견되는 것과 같은) 프로그램 카트리지 및 카트리지 인터페이스, (EPROM 또는 PROM과 같은) 착탈식 메모리 칩 및 관련 소켓, 메모리 스틱 및 USB 포트, 메모리 카드 및 관련 메모리 카드 슬롯, 및/또는 임의의 다른 착탈식 저장 유닛 및 관련 인터페이스를 포함할 수 있다.
컴퓨터 시스템(500)은 통신 또는 네트워크 인터페이스(524)를 더 포함할 수 있다. 통신 또는 네트워크 인터페이스(524)는 컴퓨터 시스템(500)이 원격 디바이스, 원격 네트워크, 원격 엔티티 등의 임의의 조합(이들은 개별적으로 또는 집합적으로 참조 번호(528)로 참조됨)과 통신하고 상호작용할 수 있게 한다. 예를 들어, 통신 또는 네트워크 인터페이스(524)는 컴퓨터 시스템(500)이 유선 및/또는 무선일 수 있고, LAN, WAN, 인터넷 등의 임의의 조합을 포함할 수 있는 통신 경로(526)를 통해 원격 디바이스(528)와 통신할 수 있게 한다. 제어 로직 및/또는 데이터는 통신 경로(526)를 통해 컴퓨터 시스템(500)으로 전송되거나 컴퓨터 시스템(500)으로부터 전송될 수 있다.
실시예에서, 제어 로직(소프트웨어)이 저장되어 있는 유형적 컴퓨터 사용가능 또는 판독가능 매체를 포함하는 유형적 제조 장치 또는 물품을 본 명세서에서 컴퓨터 프로그램 제품 또는 프로그램 저장 디바이스라고도 칭한다. 이는, 비제한적인 예시로서, 컴퓨터 시스템(500), 메인 메모리(508), 2차 메모리(510), 및 착탈식 저장 유닛(518, 522)뿐만 아니라, 전술한 것의 임의의 조합을 실장한 유형적 제조 물품들을 포함한다. (컴퓨터 시스템(500)과 같은) 하나 이상의 데이터 처리 디바이스에 의해 실행될 때, 그러한 제어 로직은 그러한 데이터 처리 디바이스가 본 명세서에서 설명된 바와 같이 동작하게 한다.
이 개시내용에 포함된 교시내용에 기초하여, 도 5에서 도시된 것과 다른 데이터 처리 디바이스, 컴퓨터 시스템, 및/또는 컴퓨터 아키텍처를 사용하여 본 발명개시를 제조하고 사용하는 방법이 본 업계의 당업자에게 자명해질 것이다. 특히, 실시예들은 본 명세서에서 기술된 것 이외의 소프트웨어, 하드웨어, 및/또는 운영체제 구현예로 동작할 수 있다.
결론
전술한 상세한 설명은 전자 디바이스의 전자 회로부 내에서 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템을 개시한다. 컴퓨터 시스템은 메모리 및 프로세서를 포함한다. 메모리는 하나 이상의 명령어를 저장한다. 프로세서는 하나 이상의 명령어를 실행하고, 하나 이상의 명령어는, 프로세서에 의해 실행될 때, 스캔 플립 플롭들의 클러스터 분석을 수행하여 스캔 플립 플롭들을 스캔 체인들로 그룹화하고; 각 스캔 체인 내에서의 스캔 플립 플롭들의 라우팅 분석을 수행하여 스캔 플립 플롭들에 대한 라우팅 순서를 결정하도록 상기 프로세서를 구성시킨다.
전술한 상세한 설명은 전자 디바이스의 전자 회로부 내에서의 스캔 체인들로의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템을 추가로 개시한다. 컴퓨터 시스템은 메모리 및 프로세서를 포함한다. 메모리는 하나 이상의 명령어를 저장한다. 프로세서는 하나 이상의 명령어를 실행하고, 하나 이상의 명령어는, 프로세서에 의해 실행될 때, 전기적 연결부들 중에서 비최적화된 전기적 연결부를 식별하기 위해 스캔 플립 플롭들 간의 전기적 연결부들의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 수행하고; 스캔 플립 플롭들로부터 비최적화된 전기적 연결부에 대응하는 스캔 플립 플롭을 식별하고 - 상기 스캔 플립 플롭은 스캔 체인들 중에서 제1 스캔 체인을 형성하도록 그룹화된, 스캔 플립 플롭들 중에서의 제1 그룹의 스캔 플립 플롭들 중에서 나온 것임 -; 스캔 플립 플롭을, 제1 그룹의 스캔 플립 플롭들로부터, 스캔 체인들 중에서의 제2 스캔 체인을 형성하도록 그룹화된, 스캔 플립 플롭들 중에서의 제2 그룹의 스캔 플립 플롭들로 이동시키도록 상기 프로세서를 구성시킨다.
전술한 상세한 설명은 전자 디바이스의 전자 회로부 내에서의 스캔 플립 플롭들을 그룹화하고 순서화하는 방법을 더 개시한다. 상기 방법은, 스캔 플립 플롭들을 스캔 체인들로 그룹화하기 위해 스캔 플립 플롭들의 클러스터 분석을 수행하는 단계; 스캔 플립 플롭들에 대한 전기적 연결부들을 결정하기 위해 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들의 라우팅 분석을 수행하는 단계; 전기적 연결부들 중에서 비최적화된 전기적 연결부를 식별하기 위해 스캔 플립 플롭들 간의 전기적 연결부들의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 수행하는 단계; 스캔 플립 플롭들 중에서 비최적화된 전기적 연결부에 대응하는 스캔 플립 플롭을 식별하는 단계 - 상기 스캔 플립 플롭은 스캔 체인들 중에서 제1 스캔 체인을 형성하도록 그룹화된, 스캔 플립 플롭들 중에서의 제1 그룹의 스캔 플립 플롭들 중에서 나온 것임 -; 및 스캔 플립 플롭을, 제1 그룹의 스캔 플립 플롭들로부터, 스캔 체인들 중에서의 제2 스캔 체인을 형성하도록 그룹화된, 스캔 플립 플롭들 중에서의 제2 그룹의 스캔 플립 플롭들로 이동시키는 단계를 포함한다.
전술한 상세한 설명은 본 발명개시의 양태들을 본 발명분야의 당업자가 보다 잘 이해할 수 있도록 여러 개의 실시예들의 특징들을 약술해왔다. 본 발명분야의 당업자는 여기서 소개한 실시예들의 동일한 목적들을 수행하거나 및/또는 동일한 장점들을 달성하기 위한 다른 공정들 및 구조물들을 설계하거나 또는 수정하기 위한 기초로서 본 발명개시를 자신들이 손쉽게 이용할 수 있다는 것을 알아야 한다. 본 발명분야의 당업자는 또한 이와 같은 등가적 구성들은 본 발명개시의 사상과 범위를 이탈하지 않는다는 것과, 본 발명개시의 사상과 범위를 이탈하지 않고서 당업자가 다양한 변경들, 대체들, 및 개조들을 본 발명에서 행할 수 있다는 것을 자각해야 한다.
실시예들
실시예 1. 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭(scan flip-flop)들을 그룹화하고 순서화하기 위한 컴퓨터 시스템에 있어서,
하나 이상의 명령어를 저장한 메모리; 및
상기 하나 이상의 명령어를 실행하도록 구성된 프로세서를 포함하고, 상기 하나 이상의 명령어는, 상기 프로세서에 의해 실행될 때,
상기 복수의 스캔 플립 플롭들을 복수의 스캔 체인(scan chain)들로 그룹화하기 위해 상기 복수의 스캔 플립 플롭들의 클러스터 분석(cluster analysis)을 수행하며;
상기 복수의 스캔 플립 플롭들에 대한 복수의 라우팅 순서들을 결정하기 위해 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들의 라우팅 분석(routing analysis)을 수행하도록 상기 프로세서를 구성시킨 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 2. 실시예 1에 있어서, 상기 하나 이상의 명령어는 또한, 상기 프로세서에 의해 실행될 때, 상기 전자 회로부에 대한 전자 아키텍처 설계 배치 또는 상기 전자 회로부의 전자 아키텍처 설계 레이아웃으로부터 상기 복수의 스캔 플립 플롭들의 복수의 위치들을 추출하도록 상기 프로세서를 구성시킨 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 3. 실시예 1에 있어서, 상기 클러스터 분석은, 상기 복수의 스캔 체인들 중에서의 다른 스캔 체인들 내에서의 스캔 플립 플롭들의 특성, 파라미터, 또는 속성과 비교할 때, 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들이 유사한 특성, 파라미터, 또는 속성을 공유하도록 하는 방식으로, 상기 복수의 스캔 플립 플롭들을 그룹화하도록 구성된 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 4. 실시예 1에 있어서, 상기 특성, 파라미터, 또는 속성은,
상기 복수의 스캔 체인들 내에서의 상기 복수의 스캔 플립 플롭들 간의 복수의 거리들;
상기 복수의 스캔 체인들 내에서의 상기 복수의 스캔 플립 플롭들 내의 스캔 플립 플롭들의 복수의 밀도들; 또는
상기 복수의 스캔 체인들 내에서의 상기 복수의 스캔 플립 플롭들 내의 스캔 플립 플롭들의 복수의 통계적 분포들을 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 5. 실시예 1에 있어서, 상기 하나 이상의 명령어는 또한, 상기 프로세서에 의해 실행될 때,
상기 복수의 스캔 체인들 내에서의 스캔 체인들의 개수; 및
상기 복수의 스캔 체인들 중에서의 스캔 체인들을 위한 스캔 플립 플롭들의 개수를 식별하는 스캔 체인 리포트를 수신하도록 상기 프로세서를 구성시킨 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 6. 실시예 1에 있어서, 상기 클러스터 분석은,
연결성 기반 클러스터링;
중심 기반 클러스터링;
분포 기반 클러스터링; 또는
밀도 기반 클러스터링을 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 7. 실시예 1에 있어서, 상기 라우팅 분석은 최단 경로 문제를 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 8. 실시예 1에 있어서, 상기 라우팅 분석은, 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인에 대한 하나 이상의 라우팅 파라미터를 최적화하도록, 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들에 대한 순서를 배열하도록 구성된 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 9. 실시예 8에 있어서, 상기 하나 이상의 라우팅 파라미터는,
상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들 간의 배선 길이를 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 10. 실시예 1에 있어서, 상기 하나 이상의 명령어는 또한, 상기 프로세서에 의해 실행될 때, 상기 복수의 스캔 체인들로의 상기 복수의 스캔 플립 플롭들의 그룹화, 및 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 상기 복수의 스캔 플립 플롭들에 대한 라우팅 순서를 기술하는 스캔 클러스터 리포트를 제공하도록 상기 프로세서를 구성시킨 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
실시예 11. 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템에 있어서,
하나 이상의 명령어를 저장한 메모리; 및
상기 하나 이상의 명령어를 실행하도록 구성된 프로세서를 포함하고, 상기 하나 이상의 명령어는, 상기 프로세서에 의해 실행될 때,
상기 복수의 스캔 플립 플롭들 간의 복수의 전기적 연결부들의 복수의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 수행하여 상기 복수의 전기적 연결부들 중에서 비최적화된 전기적 연결부를 식별하고;
상기 복수의 스캔 플립 플롭들 중에서 상기 비최적화된 전기적 연결부에 대응하는 스캔 플립 플롭을 식별하며 - 상기 식별된 스캔 플립 플롭은 상기 복수의 스캔 체인들 중에서 제1 스캔 체인을 형성하도록 그룹화된, 상기 복수의 스캔 플립 플롭들 중에서의 제1 그룹의 스캔 플립 플롭들 중에서 나온 것임 -; 및
상기 식별된 스캔 플립 플롭을, 상기 제1 그룹의 스캔 플립 플롭들로부터, 상기 복수의 스캔 체인들 중에서의 제2 스캔 체인을 형성하도록 그룹화된, 상기 복수의 스캔 플립 플롭들 중에서의 제2 그룹의 스캔 플립 플롭들로 이동시키도록 상기 프로세서를 구성시킨 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
실시예 12. 실시예 11에 있어서, 상기 복수의 전기적 연결부들의 상기 복수의 특성, 파라미터, 또는 속성은,
상기 복수의 스캔 플립 플롭들 간의 복수의 스캔 배선들의 복수의 길이들(L);
상기 복수의 스캔 플립 플롭들 간의 복수의 거리들(D); 또는
상기 복수의 스캔 체인들을 제조하는데 필요한 복수의 금속층들(M)을 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
실시예 13. 실시예 12에 있어서, 상기 통계적 비용 분석은,
L/D 비용 분석,
M/D 비용 분석, 또는
M/L 비용 분석을 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
실시예 14. 실시예 11에 있어서, 상기 하나 이상의 명령어는, 상기 프로세서에 의해 실행될 때, 상기 복수의 특성, 파라미터, 또는 속성의 상기 통계적 비용 분석을 컷오프 문턱값(cutoff threshold)과 비교하고, 상기 통계적 비용 분석이 상기 컷오프 문턱값 이상인 상기 비최적화된 전기적 연결부를 식별하도록 상기 프로세서를 구성시킨 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
실시예 15. 실시예 14에 있어서, 상기 컷오프 문턱값은 상기 복수의 특성, 파라미터, 또는 속성의 통계적 비용 분석의 평균값으로부터의 하나 이상의 표준 편차에 대응한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
실시예 16. 실시예 11에 있어서, 상기 하나 이상의 명령어는 또한, 상기 프로세서에 의해 실행될 때, 상기 복수의 스캔 플립 플롭들에 대한 전자 아키텍처 설계 배치를 수신하도록 상기 프로세서를 구성시키며, 상기 전자 아키텍처 설계 배치는 전자 설계 영역(electronic design real estate) 상에서의 상기 복수의 스캔 플립 플롭들의 논리적 배치를 나타낸 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
실시예 17. 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법에 있어서,
상기 복수의 스캔 플립 플롭들을 복수의 스캔 체인들로 그룹화하기 위해 상기 복수의 스캔 플립 플롭들의 클러스터 분석을 수행하는 단계;
상기 복수의 스캔 플립 플롭들에 대한 복수의 전기적 연결부들을 결정하기 위해 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들의 라우팅 분석을 수행하는 단계;
상기 복수의 스캔 플립 플롭들 간의 상기 복수의 전기적 연결부들의 복수의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 수행하여 상기 복수의 전기적 연결부들 중에서 비최적화된 전기적 연결부를 식별하는 단계;
상기 복수의 스캔 플립 플롭들 중에서 상기 비최적화된 전기적 연결부에 대응하는 스캔 플립 플롭을 식별하는 단계 - 상기 식별된 스캔 플립 플롭은 상기 복수의 스캔 체인들 중에서 제1 스캔 체인을 형성하도록 그룹화된, 상기 복수의 스캔 플립 플롭들 중에서의 제1 그룹의 스캔 플립 플롭들 중에서 나온 것임 -; 및
상기 식별된 스캔 플립 플롭을, 상기 제1 그룹의 스캔 플립 플롭들로부터, 상기 복수의 스캔 체인들 중에서의 제2 스캔 체인을 형성하도록 그룹화된, 상기 복수의 스캔 플립 플롭들 중에서의 제2 그룹의 스캔 플립 플롭들로 이동시키는 단계를 포함하는 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법.
실시예 18. 실시예 17에 있어서, 상기 클러스터 분석을 수행하는 단계는,
상기 복수의 스캔 체인들 중에서의 다른 스캔 체인들 내의 스캔 플립 플롭들의 특성, 파라미터, 및 속성과 비교할 때, 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들이 유사한 특성, 파라미터, 또는 속성을 공유하도록 하는 방식으로, 상기 복수의 스캔 플립 플롭들을 그룹화하는 단계를 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법.
실시예 19. 실시예 17에 있어서, 상기 라우팅 분석을 수행하는 단계는,
상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인에 대한 하나 이상의 라우팅 파라미터를 최적화하도록 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들에 대한 순서를 배열하는 단계를 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법.
실시예 20. 실시예 17에 있어서, 상기 식별하는 단계는,
상기 복수의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 컷오프 문턱값과 비교하는 단계; 및
상기 통계적 비용 분석이 상기 컷오프 문턱값 이상인 상기 비최적화된 전기적 연결부를 식별하는 단계를 포함한 것인 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법.
Claims (20)
- 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭(scan flip-flop)들을 그룹화하고 순서화하기 위한 컴퓨터 시스템에 있어서,
하나 이상의 명령어를 저장한 메모리; 및
상기 하나 이상의 명령어를 실행하도록 구성된 프로세서
를 포함하고,
상기 하나 이상의 명령어는, 상기 프로세서에 의해 실행될 때,
상기 복수의 스캔 플립 플롭들을 복수의 스캔 체인(scan chain)들로 그룹화하기 위해 상기 복수의 스캔 플립 플롭들의 클러스터 분석(cluster analysis)을 수행하며;
상기 복수의 스캔 플립 플롭들에 대한 복수의 라우팅 순서들을 결정하기 위해 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들의 라우팅 분석(routing analysis)을 수행하도록, 상기 프로세서를 구성시킨 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템. - 제1항에 있어서,
상기 하나 이상의 명령어는 또한, 상기 프로세서에 의해 실행될 때, 상기 전자 회로부에 대한 전자 아키텍처 설계 배치 또는 상기 전자 회로부의 전자 아키텍처 설계 레이아웃으로부터 상기 복수의 스캔 플립 플롭들의 복수의 위치들을 추출하도록, 상기 프로세서를 구성시킨 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템. - 제1항에 있어서,
상기 클러스터 분석은, 상기 복수의 스캔 체인들 중에서의 다른 스캔 체인들 내에서의 스캔 플립 플롭들의 특성, 파라미터, 또는 속성과 비교할 때, 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들이 유사한 특성, 파라미터, 또는 속성을 공유하도록 하는 방식으로, 상기 복수의 스캔 플립 플롭들을 그룹화하도록 구성된 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템. - 제1항에 있어서,
상기 특성, 파라미터, 또는 속성은,
상기 복수의 스캔 체인들 내에서의 상기 복수의 스캔 플립 플롭들 간의 복수의 거리들;
상기 복수의 스캔 체인들 내에서의 상기 복수의 스캔 플립 플롭들 내의 스캔 플립 플롭들의 복수의 밀도들; 또는
상기 복수의 스캔 체인들 내에서의 상기 복수의 스캔 플립 플롭들 내의 스캔 플립 플롭들의 복수의 통계적 분포들
을 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템. - 제1항에 있어서,
상기 하나 이상의 명령어는 또한, 상기 프로세서에 의해 실행될 때,
상기 복수의 스캔 체인들 내에서의 스캔 체인들의 개수; 및
상기 복수의 스캔 체인들 중에서의 스캔 체인들을 위한 스캔 플립 플롭들의 개수
를 식별하는 스캔 체인 리포트를 수신하도록, 상기 프로세서를 구성시킨 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템. - 제1항에 있어서, 상기 클러스터 분석은,
연결성 기반 클러스터링;
중심 기반 클러스터링;
분포 기반 클러스터링; 또는
밀도 기반 클러스터링을 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템. - 제1항에 있어서, 상기 라우팅 분석은 최단 경로 문제를 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
- 제1항에 있어서, 상기 라우팅 분석은, 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인에 대한 하나 이상의 라우팅 파라미터를 최적화하도록, 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들에 대한 순서를 배열하도록 구성된 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
- 제8항에 있어서, 상기 하나 이상의 라우팅 파라미터는,
상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들 간의 배선 길이를 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템. - 제1항에 있어서, 상기 하나 이상의 명령어는 또한, 상기 프로세서에 의해 실행될 때, 상기 복수의 스캔 체인들로의 상기 복수의 스캔 플립 플롭들의 그룹화, 및 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 상기 복수의 스캔 플립 플롭들에 대한 라우팅 순서를 기술하는 스캔 클러스터 리포트를 제공하도록 상기 프로세서를 구성시킨 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 컴퓨터 시스템.
- 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템에 있어서,
하나 이상의 명령어를 저장한 메모리; 및
상기 하나 이상의 명령어를 실행하도록 구성된 프로세서를 포함하고, 상기 하나 이상의 명령어는, 상기 프로세서에 의해 실행될 때,
상기 복수의 스캔 플립 플롭들 간의 복수의 전기적 연결부들의 복수의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 수행하여 상기 복수의 전기적 연결부들 중에서 비최적화된 전기적 연결부를 식별하고;
상기 복수의 스캔 플립 플롭들 중에서 상기 비최적화된 전기적 연결부에 대응하는 스캔 플립 플롭을 식별하며 - 상기 식별된 스캔 플립 플롭은 상기 복수의 스캔 체인들 중에서 제1 스캔 체인을 형성하도록 그룹화된, 상기 복수의 스캔 플립 플롭들 중에서의 제1 그룹의 스캔 플립 플롭들 중에서 나온 것임 -; 및
상기 식별된 스캔 플립 플롭을, 상기 제1 그룹의 스캔 플립 플롭들로부터, 상기 복수의 스캔 체인들 중에서의 제2 스캔 체인을 형성하도록 그룹화된, 상기 복수의 스캔 플립 플롭들 중에서의 제2 그룹의 스캔 플립 플롭들로 이동시키도록 상기 프로세서를 구성시킨 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템. - 제11항에 있어서, 상기 복수의 전기적 연결부들의 상기 복수의 특성, 파라미터, 또는 속성은,
상기 복수의 스캔 플립 플롭들 간의 복수의 스캔 배선들의 복수의 길이들(L);
상기 복수의 스캔 플립 플롭들 간의 복수의 거리들(D); 또는
상기 복수의 스캔 체인들을 제조하는데 필요한 복수의 금속층들(M)을 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템. - 제12항에 있어서, 상기 통계적 비용 분석은,
L/D 비용 분석,
M/D 비용 분석, 또는
M/L 비용 분석을 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템. - 제11항에 있어서, 상기 하나 이상의 명령어는, 상기 프로세서에 의해 실행될 때, 상기 복수의 특성, 파라미터, 또는 속성의 상기 통계적 비용 분석을 컷오프 문턱값(cutoff threshold)과 비교하고, 상기 통계적 비용 분석이 상기 컷오프 문턱값 이상인 상기 비최적화된 전기적 연결부를 식별하도록 상기 프로세서를 구성시킨 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
- 제14항에 있어서, 상기 컷오프 문턱값은 상기 복수의 특성, 파라미터, 또는 속성의 통계적 비용 분석의 평균값으로부터의 하나 이상의 표준 편차에 대응한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
- 제11항에 있어서, 상기 하나 이상의 명령어는 또한, 상기 프로세서에 의해 실행될 때, 상기 복수의 스캔 플립 플롭들에 대한 전자 아키텍처 설계 배치를 수신하도록 상기 프로세서를 구성시키며, 상기 전자 아키텍처 설계 배치는 전자 설계 영역(electronic design real estate) 상에서의 상기 복수의 스캔 플립 플롭들의 논리적 배치를 나타낸 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 체인들로의 복수의 스캔 플립 플롭들의 그룹화를 최적화하기 위한 컴퓨터 시스템.
- 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법에 있어서,
상기 복수의 스캔 플립 플롭들을 복수의 스캔 체인들로 그룹화하기 위해 상기 복수의 스캔 플립 플롭들의 클러스터 분석을 수행하는 단계;
상기 복수의 스캔 플립 플롭들에 대한 복수의 전기적 연결부들을 결정하기 위해 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들의 라우팅 분석을 수행하는 단계;
상기 복수의 스캔 플립 플롭들 간의 상기 복수의 전기적 연결부들의 복수의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 수행하여 상기 복수의 전기적 연결부들 중에서 비최적화된 전기적 연결부를 식별하는 단계;
상기 복수의 스캔 플립 플롭들 중에서 상기 비최적화된 전기적 연결부에 대응하는 스캔 플립 플롭을 식별하는 단계 - 상기 식별된 스캔 플립 플롭은 상기 복수의 스캔 체인들 중에서 제1 스캔 체인을 형성하도록 그룹화된, 상기 복수의 스캔 플립 플롭들 중에서의 제1 그룹의 스캔 플립 플롭들 중에서 나온 것임 -; 및
상기 식별된 스캔 플립 플롭을, 상기 제1 그룹의 스캔 플립 플롭들로부터, 상기 복수의 스캔 체인들 중에서의 제2 스캔 체인을 형성하도록 그룹화된, 상기 복수의 스캔 플립 플롭들 중에서의 제2 그룹의 스캔 플립 플롭들로 이동시키는 단계를 포함하는, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법. - 제17항에 있어서, 상기 클러스터 분석을 수행하는 단계는,
상기 복수의 스캔 체인들 중에서의 다른 스캔 체인들 내의 스캔 플립 플롭들의 특성, 파라미터, 및 속성과 비교할 때, 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들이 유사한 특성, 파라미터, 또는 속성을 공유하도록 하는 방식으로, 상기 복수의 스캔 플립 플롭들을 그룹화하는 단계를 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법. - 제17항에 있어서, 상기 라우팅 분석을 수행하는 단계는,
상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인에 대한 하나 이상의 라우팅 파라미터를 최적화하도록 상기 복수의 스캔 체인들 중에서의 각각의 스캔 체인 내에서의 스캔 플립 플롭들에 대한 순서를 배열하는 단계를 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법. - 제17항에 있어서, 상기 식별하는 단계는,
상기 복수의 특성, 파라미터, 또는 속성의 통계적 비용 분석을 컷오프 문턱값과 비교하는 단계; 및
상기 통계적 비용 분석이 상기 컷오프 문턱값 이상인 상기 비최적화된 전기적 연결부를 식별하는 단계를 포함한 것인, 전자 디바이스의 전자 회로부 내에서의 복수의 스캔 플립 플롭들을 그룹화하고 순서화하기 위한 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862690601P | 2018-06-27 | 2018-06-27 | |
US62/690,601 | 2018-06-27 | ||
US16/173,448 | 2018-10-29 | ||
US16/173,448 US11113444B2 (en) | 2018-06-27 | 2018-10-29 | Machine-learning based scan design enablement platform |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200001517A true KR20200001517A (ko) | 2020-01-06 |
KR102227683B1 KR102227683B1 (ko) | 2021-03-16 |
Family
ID=68886235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190075026A KR102227683B1 (ko) | 2018-06-27 | 2019-06-24 | 머신 러닝 기반 스캔 설계 구현 플랫폼 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11113444B2 (ko) |
KR (1) | KR102227683B1 (ko) |
CN (1) | CN110647901B (ko) |
DE (1) | DE102019116870A1 (ko) |
TW (1) | TWI715945B (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102279047B1 (ko) * | 2020-03-31 | 2021-07-16 | 연세대학교 산학협력단 | 필터를 이용한 스캔 체인 고장 진단 방법 및 그를 위한 장치 |
WO2022011192A1 (en) * | 2020-07-09 | 2022-01-13 | Tektronix, Inc. | Automated assisted circuit validation |
KR20230059327A (ko) * | 2021-10-26 | 2023-05-03 | 연세대학교 산학협력단 | 저전력 테스트를 위한 스캔 상관관계 기반 스캔 클러스터 리오더링 방법 및 장치 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761131B1 (en) * | 2018-09-25 | 2020-09-01 | Cadence Design Systems, Inc. | Method for optimally connecting scan segments in two-dimensional compression chains |
TWI684987B (zh) * | 2019-05-31 | 2020-02-11 | 創意電子股份有限公司 | 電路校正系統與增加掃描測試涵蓋率的方法 |
US11055461B1 (en) | 2020-05-13 | 2021-07-06 | International Business Machines Corporation | Designing semiconductor circuit test elements |
US11507721B2 (en) * | 2020-09-25 | 2022-11-22 | International Business Machines Corporation | Scan chain wirelength optimization using Q-learning based reinforcement learning |
US11347920B2 (en) * | 2020-10-21 | 2022-05-31 | Taiwan Semiconductor Manufacturing Company, Ltd. | Circuit synthesis optimization for implements on integrated circuit |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005276069A (ja) * | 2004-03-26 | 2005-10-06 | Nec Electronics Corp | テスト容易化回路の設計システム、設計方法及びプログラム |
JP2006163688A (ja) * | 2004-12-06 | 2006-06-22 | Fujitsu Ltd | スキャンチェーンの形成方法および集積回路の試験方法 |
JP2010157009A (ja) * | 2008-12-26 | 2010-07-15 | Renesas Technology Corp | Edaツール、半導体装置およびスキャンチェイン構成方法 |
JP2017106826A (ja) * | 2015-12-10 | 2017-06-15 | 株式会社リコー | スキャンテスト回路生成装置およびスキャンテスト回路生成方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282506B1 (en) * | 1996-02-20 | 2001-08-28 | Matsushita Electric Industrial Co., Ltd. | Method of designing semiconductor integrated circuit |
US5983376A (en) * | 1997-09-24 | 1999-11-09 | Sun Microsystems, Inc. | Automated scan insertion flow for control block design |
US6305004B1 (en) * | 1999-08-31 | 2001-10-16 | International Business Machines Corporation | Method for improving wiring related yield and capacitance properties of integrated circuits by maze-routing |
JP4887552B2 (ja) * | 2000-07-04 | 2012-02-29 | 富士通セミコンダクター株式会社 | Lsiチップのレイアウト設計方法 |
JP2002083000A (ja) * | 2000-09-06 | 2002-03-22 | Fujitsu Ltd | 論理回路設計方法及び論理回路 |
US7139992B2 (en) * | 2000-12-01 | 2006-11-21 | Sun Microsystems, Inc. | Short path search using tiles and piecewise linear cost propagation |
TW200502805A (en) | 2003-05-09 | 2005-01-16 | Incentia Design Systems Corp | Timing based scan chain implementation in an IC design |
JP2005032102A (ja) * | 2003-07-09 | 2005-02-03 | Matsushita Electric Ind Co Ltd | スキャンテスト設計方法、スキャンテスト回路、スキャンフリップフロップ回路、スキャンテスト回路挿入用cadプログラム、大規模集積回路及び携帯デジタル機器 |
FR2857535A1 (fr) * | 2003-07-09 | 2005-01-14 | Atmel Corp | Procede et systeme pour brouiller le contenu d'une cellule dans un circuit integre. |
US20050273683A1 (en) * | 2004-06-07 | 2005-12-08 | Logicvision, Inc. | Insertion of embedded test in RTL to GDSII flow |
US7555688B2 (en) * | 2005-04-26 | 2009-06-30 | Lsi Logic Corporation | Method for implementing test generation for systematic scan reconfiguration in an integrated circuit |
US7949971B2 (en) * | 2007-03-27 | 2011-05-24 | International Business Machines Corporation | Method and apparatus for on-the-fly minimum power state transition |
JP2009038072A (ja) * | 2007-07-31 | 2009-02-19 | Nec Electronics Corp | 半導体集積回路及びその開発方法 |
US7996805B2 (en) * | 2008-01-08 | 2011-08-09 | National Semiconductor Corporation | Method of stitching scan flipflops together to form a scan chain with a reduced wire length |
US8584073B2 (en) * | 2008-07-21 | 2013-11-12 | Synopsys, Inc. | Test design optimizer for configurable scan architectures |
JP2010087244A (ja) * | 2008-09-30 | 2010-04-15 | Oki Semiconductor Co Ltd | 半導体集積回路、半導体集積回路のレイアウト方法、及び半導体集積回路のレイアウトプログラム |
JP5293461B2 (ja) * | 2009-07-03 | 2013-09-18 | 富士通セミコンダクター株式会社 | スキャンチェーンの生成方法、スキャンチェーンの生成プログラムおよび集積回路 |
US9599671B2 (en) * | 2011-02-24 | 2017-03-21 | New York University | Architecture, system, method, and computer-accessible medium for partial-scan testing |
CN102323538B (zh) * | 2011-07-08 | 2013-09-11 | 哈尔滨工业大学 | 基于改进测试向量集的部分扫描的扫描单元的设计方法 |
KR20130031036A (ko) * | 2011-09-20 | 2013-03-28 | 삼성전자주식회사 | Eco 논리 셀 및 eco 논리 셀을 이용한 설계 변경 방법 |
US9336144B2 (en) * | 2013-07-25 | 2016-05-10 | Globalfoundries Inc. | Three-dimensional processing system having multiple caches that can be partitioned, conjoined, and managed according to more than one set of rules and/or configurations |
US9166595B2 (en) * | 2013-12-27 | 2015-10-20 | Freescale Semiconductor, Inc | Configurable flip-flop circuit |
US9535121B1 (en) * | 2015-04-13 | 2017-01-03 | Qualcomm Incorporated | Methods and apparatuses to enhance timing delay fault coverage with test logic that includes partitions and scan flip-flops |
US9953121B2 (en) * | 2016-05-03 | 2018-04-24 | International Business Machines Corporation | Accommodating engineering change orders in integrated circuit design |
US10539617B2 (en) * | 2016-06-02 | 2020-01-21 | Taiwan Semiconductor Manufacturing Co., Ltd. | Scan architecture for interconnect testing in 3D integrated circuits |
CN106709141A (zh) * | 2016-11-19 | 2017-05-24 | 天津大学 | 基于整数规划模型的部分扫描触发器选择优化方法 |
-
2018
- 2018-10-29 US US16/173,448 patent/US11113444B2/en active Active
-
2019
- 2019-03-13 TW TW108108521A patent/TWI715945B/zh active
- 2019-04-17 CN CN201910306360.7A patent/CN110647901B/zh active Active
- 2019-06-24 KR KR1020190075026A patent/KR102227683B1/ko active IP Right Grant
- 2019-06-24 DE DE102019116870.8A patent/DE102019116870A1/de active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005276069A (ja) * | 2004-03-26 | 2005-10-06 | Nec Electronics Corp | テスト容易化回路の設計システム、設計方法及びプログラム |
JP2006163688A (ja) * | 2004-12-06 | 2006-06-22 | Fujitsu Ltd | スキャンチェーンの形成方法および集積回路の試験方法 |
JP2010157009A (ja) * | 2008-12-26 | 2010-07-15 | Renesas Technology Corp | Edaツール、半導体装置およびスキャンチェイン構成方法 |
JP2017106826A (ja) * | 2015-12-10 | 2017-06-15 | 株式会社リコー | スキャンテスト回路生成装置およびスキャンテスト回路生成方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102279047B1 (ko) * | 2020-03-31 | 2021-07-16 | 연세대학교 산학협력단 | 필터를 이용한 스캔 체인 고장 진단 방법 및 그를 위한 장치 |
WO2022011192A1 (en) * | 2020-07-09 | 2022-01-13 | Tektronix, Inc. | Automated assisted circuit validation |
US11520966B2 (en) | 2020-07-09 | 2022-12-06 | Tektronix, Inc. | Automated assisted circuit validation |
KR20230059327A (ko) * | 2021-10-26 | 2023-05-03 | 연세대학교 산학협력단 | 저전력 테스트를 위한 스캔 상관관계 기반 스캔 클러스터 리오더링 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
DE102019116870A1 (de) | 2020-01-02 |
TWI715945B (zh) | 2021-01-11 |
CN110647901A (zh) | 2020-01-03 |
TW202001630A (zh) | 2020-01-01 |
US20200004913A1 (en) | 2020-01-02 |
KR102227683B1 (ko) | 2021-03-16 |
US11113444B2 (en) | 2021-09-07 |
CN110647901B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102227683B1 (ko) | 머신 러닝 기반 스캔 설계 구현 플랫폼 | |
US11017149B2 (en) | Machine-learning design enablement platform | |
US9147032B2 (en) | Machine-learning based datapath extraction | |
US9171124B2 (en) | Parasitic extraction in an integrated circuit with multi-patterning requirements | |
US20140298281A1 (en) | Method of global design closure at top level and driving of downstream implementation flow | |
TWI683228B (zh) | 開發電子裝置的電子架構設計的系統、開發多個標準電路元件庫的方法及將電子裝置製作至半導體基底上的系統 | |
CN115315702A (zh) | 早期阶段电路设计中基于机器学习的度量的预测 | |
Xie et al. | Preplacement net length and timing estimation by customized graph neural network | |
US8898602B2 (en) | Apparatus for design assist and method for selecting signal line onto which test point for test controlling is to be inserted in circuit to be designed | |
US20150135151A1 (en) | Canonical Forms Of Layout Patterns | |
EP4381415A1 (en) | Multiply-instantiated block modeling for circuit component placement in integrated circuit | |
US11704472B2 (en) | Standard cells and variations thereof within a standard cell library | |
Maynard et al. | Measurement and reduction of critical area using Voronoi diagrams | |
JP2007188517A (ja) | タイミング配分装置 | |
US20240095424A1 (en) | Alignment Cost for Integrated Circuit Placement | |
JP2977422B2 (ja) | 製品仕様推定方法、論理回路の分類評価装置、製品仕様データベース作成装置、製品仕様推定装置および論理回路自動階層生成装置 | |
Scheffer | Industrial Floorplanning and Prototyping | |
Putra | Area Minimization of the DTB Multiplexer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |