KR20210047127A - 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법 - Google Patents

반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20210047127A
KR20210047127A KR1020190130822A KR20190130822A KR20210047127A KR 20210047127 A KR20210047127 A KR 20210047127A KR 1020190130822 A KR1020190130822 A KR 1020190130822A KR 20190130822 A KR20190130822 A KR 20190130822A KR 20210047127 A KR20210047127 A KR 20210047127A
Authority
KR
South Korea
Prior art keywords
vector
short axis
verification
commands
idle
Prior art date
Application number
KR1020190130822A
Other languages
English (en)
Inventor
김승주
최효진
허인
고정훈
정창욱
박윤식
채준완
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190130822A priority Critical patent/KR20210047127A/ko
Priority to US16/915,786 priority patent/US11669773B2/en
Publication of KR20210047127A publication Critical patent/KR20210047127A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Abstract

본 개시의 기술적 사상의 일측면에 따른 제1 회로 블록 및 제2 회로 블록이 포함된 반도체 회로를 검증하기 위한 검증 벡터를 생성하는 전자 장치에 있어서, 복수의 커맨드들을 포함하는 제1 입력 벡터를 수신하고, 상기 제1 입력 벡터에 대해 시뮬레이션 동작을 수행하여 획득한 상기 제1 회로 블록의 상태 천이를 기반으로, 동일한 상태 천이를 발생시키는 복수의 커맨드들 각각을 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 중복 커맨드 제거기, 상기 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 감소시킨 제1 단축 벡터를 제공하는 단축 벡터 생성기 및 복수의 제1 단축 벡터들 중 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 제1 검증 벡터로써 출력하는 검증 벡터 생성기를 포함할 수 있다.

Description

반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법{An electronic device for generating optimized verification vector for verifying semiconductor circuit and operating method there of}
본 개시의 기술적 사상은 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치에 관한 것으로, 상세하게는 기계 학습을 통해 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법에 관한 것이다.
디지털 회로 디자인 기술의 복잡화 및 제품의 다양화에 따라 회로 디자인을 검증하는 단계 또한 점점 복잡해지고 있다. 검증 과정이 복잡해짐에 따라 검증 벡터의 양이 방대해지고, 불필요한 중복 검증 과정이 발생하게 되었다. 이를 해결하는 기존의 방법으로, 엔지니어의 경험에 기반한 룰 기반 벡터 압축 기법이 존재한다. 하지만, 이러한 방법은 최적화하고자 하는 검증 벡터의 길이는 줄일 수 있지만, 검증 벡터의 구성을 변경하지 못하여 중복된 검증 과정이 그대로 존재할 수 있다. 또한, 검증 벡터를 압축하는데 있어서 룰 기반으로 설정된 한계가 존재하며, 이에 따라 검증 벡터의 길이를 최적화하는데 어려움이 있었다. 하나의 검증 벡터의 길이를 최적화하더라도, 검증 벡터 세트 전체에 대한 최적화를 룰 기반으로 수행하는 것은 시간과 비용 측면에서 어려움이 있었다.
본 개시의 기술적 사상이 해결하려는 과제는, 반도체 회로의 상태 천이가 서로 동일한 중복 커맨드들은 제거하며 기계 학습을 이용하여 높은 커버리지를 갖지만 검증 벡터의 길이를 최소화시킨 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법을 제공하는 것에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 제1 회로 블록 및 제2 회로 블록이 포함된 반도체 회로를 검증하기 위한 검증 벡터를 생성하는 전자 장치에 있어서, 복수의 커맨드들을 포함하는 제1 입력 벡터를 수신하고, 상기 제1 입력 벡터에 대해 시뮬레이션 동작을 수행하여 획득한 상기 제1 회로 블록의 상태 천이를 기반으로, 동일한 상태 천이를 발생시키는 복수의 커맨드들 각각을 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 중복 커맨드 제거기, 상기 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 감소시킨 제1 단축 벡터를 제공하는 단축 벡터 생성기 및 복수의 제1 단축 벡터들 중 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 제1 검증 벡터로써 출력하는 검증 벡터 생성기를 포함할 수 있다.
한편, 본 개시의 기술적 사상의 다른 일측면에 따른 제1 회로 블록 및 제2 회로 블록이 포함된 반도체 회로를 검증하기 위한 검증 벡터를 생성하는 전자 장치에 있어서, 복수의 커맨드들을 포함하는 제1 입력 벡터를 수신하고, 상기 제1 입력 벡터에 포함된 복수의 커맨드들 중 적어도 일부를 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 중복 커맨드 제거기, 상기 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 감소시킨 제1 단축 벡터를 제공하는 단축 벡터 생성기 및 상기 제1 단축 벡터에 포함된 상기 유휴 커맨드들의 개수 및 상기 제1 단축 벡터의 커버리지에 기초하여, 제1 검증 벡터를 추정하기 위한 추정 모델(estimation model)을 학습하고, 학습된 상기 추정 모델에 기반하여 복수의 제1 단축 벡터들 중에서 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 상기 제1 검증 벡터로써 출력하는 검증 벡터 생성기를 포함할 수 있다.
한편, 본 개시의 기술적 사상의 또 다른 일측면에 따른 제1 회로 블록 및 제2 회로 블록이 포함된 반도체 회로를 검증하기 위한 검증 벡터를 생성하는 전자 장치의 동작 방법에 있어서, 복수의 커맨드들을 포함하는 제1 입력 벡터를 수신하는 단계, 상기 제1 입력 벡터에 포함된 복수의 커맨드들 중 적어도 일부를 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 단계, 상기 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 감소시킨 제1 단축 벡터를 제공하는 단계 및 복수의 제1 단축 벡터들 중에서 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 제1 검증 벡터로 선택하고, 상기 제1 검증 벡터를 출력하는 단계를 포함할 수 있다.
한편, 본 개시의 기술적 사상의 또 다른 일측면에 따른 제1 회로 블록 및 제2 회로 블록이 포함된 반도체 회로를 검증하기 위한 검증 벡터를 출력하는 전자 장치에 있어서, 복수의 커맨드들을 포함하는 제1 입력 벡터를 수신하고, 상기 제1 입력 벡터에 포함된 복수의 커맨드들 중 적어도 일부를 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 중복 커맨드 제거기, 상기 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 감소시킨 제1 단축 벡터를 제공하는 단축 벡터 생성기 및 복수의 제1 단축 벡터들 중 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 제1 검증 벡터로 선택하고, 상기 제1 검증 벡터를 출력하는 검증 벡터 생성기를 포함할 수 있다.
본 개시의 기술적 사상에 따른 전자 장치는 중복적인 상태 천이를 일으키는 입력 벡터의 무의미한 커맨드들을 기계학습을 이용한 최적화된 횟수로 감소시킴으로써 벡터의 양을 줄일 수 있으며, 이에 따라 연산량을 감소시키고 중복적인 검증 동작을 배제하여 검증 동작의 퀄리티를 높일 수 있다.
도 1은 본 개시의 예시적인 실시예에 따른 검증 벡터를 생성하기 위한 전자 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적인 실시예에 따른 전자 장치를 설명하기 위한 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 복수의 회로 블록들을 포함한 반도체 회로 및 입력 벡터를 설명하기 위한 블록도이다.
도 4a는 본 개시의 예시적인 실시예에 따른 상태 천이를 설명하기 위한 블록도이며, 도 4b는 본 개시의 예시적인 실시예에 따른 상태 천이를 설명하기 위한 테이블이며, 도 4c는 본 개시의 예시적인 실시예에 따른 커버리지를 설명하기 위한 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 중복 커맨드 제거기를 설명하기 위한 블록도이다.
도 6a는 본 개시의 예시적 실시예에 따른 중복 커맨드 제거기를 설명하기 위한 블록도이다.
도 6b는 본 개시의 예시적 실시예에 따른 변환 벡터를 설명하기 위한 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 중복 벡터 제거기 및 검증 벡터 생성기를 설명하기 위한 블록도이다.
도 8a 및 도 8b는 본 개시의 예시적 실시예에 따른 검증 벡터 생성기의 동작을 설명하기 위한 최적화 모델이다.
도 9는 본 개시의 예시적 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 10은 본 개시의 예시적 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 11은 본 개시의 예시적인 실시예에 따른 양산된 반도체 장치에 대한 검증 방법을 설명하기 위한 흐름도이다.
도 12는 본 개시의 일 실시 예에 따른 회로 디자인 시스템을 설명하기 위한 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적인 실시예에 따른 검증 벡터를 생성하기 위한 전자 시스템을 나타내는 블록도이다.
도 1을 참조하면, 전자 시스템(1)은 전자 장치(2), 메모리(13), 인터페이스(14), GPU(Graphic Processing Unit, 15) 및 버스(16)를 포함할 수 있다. 전자 장치(2)는 CPU(Central Processing Unit, 11) 및 기계 학습부(12)를 포함할 수 있다. 예컨대, 전자 장치(2)는 일종의 프로세싱 유닛으로 구현될 수 있다. 전자 시스템(1)은 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있으며, 또한 다양한 종류의 프로세서를 더 포함할 수 있다. 일 실시 예에 따라, 전자 시스템(1)의 구성들(예컨대, CPU(11), 기계 학습부(12), 메모리(13) 및 인터페이스(14))중 일부 또는 전부는 하나의 반도체 칩에 포함될 수 있다. 예컨대, 전자 시스템(1)은 시스템-온 칩(SoC)으로서 구현될 수 있다. 전자 시스템(1)의 구성들은 버스(16)를 통해 서로 통신할 수 있다.
CPU(11)는 전자 시스템(1)의 전반적인 동작을 제어한다. CPU(11)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(11)는 메모리(13)와 같은 저장 영역에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다.
예를 들어서, CPU(11)는 응용 프로그램(application)을 실행하고, 응용 프로그램의 실행에 따라 요구되는 기계 학습 기반의 태스크들을 수행하도록 기계 학습부(12)를 제어할 수 있다. 예컨대, 기계 학습은 뉴럴 네트워크 연산에 의해 수행될 수 있으며, 뉴럴 네트워크는 CNN(Convolution Neural Network), R-CNN(Region with Convolution Neural Network), RPN(Region Proposal Network), RNN(Recurrent Neural Network), S-DNN(Stacking-based deep Neural Network), S-SDNN(State-Space Dynamic Neural Network), Deconvolution Network, DBN(Deep Belief Network), RBM(Restricted Boltzman Machine), Fully Convolutional Network, LSTM(Long Short-Term Memory) Network, Classification Network 등 다양한 종류의 뉴럴 네트워크 모델들 중 적어도 하나를 포함할 수 있다.
기계 학습부(12)는 수신되는 입력 데이터를 기초로 기계 학습 및 기계 학습에 따른 연산을 수행할 수 있다. 예컨대, 기계 학습부(12)는 뉴럴 네트워크 연산의 수행 결과를 기초로 정보 신호를 생성할 수 있다. 뉴럴 네트워크 장치(12)는 뉴럴 네트워크 연산 가속기, 코프로세서(coprocessor), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit) 등으로 구현될 수 있다.
한편, 본 실시예에 따른 전자 장치(2)는 중복 커맨드 제거기(도 2의 100), 단축 벡터 생성기(도 2의 200) 및 검증 벡터 생성기(도 2의 300)를 포함할 수 있다. 일 예로, 뉴럴 네트워크 장치(12)는 중복 커맨드 제거기(100), 단축 벡터 생성기(200) 및 검증 벡터 생성기(300)의 동작을 수행하기 위한 연산을 처리할 수 있다. 다른 예로, CPU(11)는 중복 커맨드 제거기(100)의 동작을 수행하기 위한 연산을 처리할 수 있으며, 기계 학습부(12)는 단축 벡터 생성기(200) 및 검증 벡터 생성기(300)의 동작을 수행하기 위한 연산(예컨대, 학습 연산)을 처리할 수 있다. 예컨대, 중복 커맨드 제거기(100), 단축 벡터 생성기(200) 및 검증 벡터 생성기(300)는 소프트웨어 로직으로 구현될 수 있다. 이 경우, 메모리(13)는, 비일시적 컴퓨터 판독 가능 기록 매체로써, 중복 커맨드 제거기(100), 단축 벡터 생성기(200) 및 검증 벡터 생성기(300)를 저장할 수 있다. CPU(11) 및/또는 기계 학습부(12)는 메모리(13)에 저장된 소프트웨어 로직을 실행할 수 있다.
전자 시스템(1)은 검증 대상인 반도체 회로를 검증하기 위한 검증 벡터를 생성하며, 검증 벡터는 입력 벡터를 최적화시킨 벡터일 수 있다. 중복 커맨드 제거기(100)는 입력 벡터를 수신하고, 입력 벡터에 포함된 복수의 커맨드들 중 적어도 일부를 유휴 커맨드로 변경한 변환 벡터를 제공할 수 있다. 입력 벡터란 반도체 회로를 검증하기 위한 벡터이지만, 동일한 상태 천이를 일으키는 벡터를 중복적으로 포함하여 커맨드들의 양이 상대적으로 많을 수 있다. 상태 천이란, 입력 벡터 또는 검증 벡터가 반도체 회로에 입력될 때 발생할 수 있는 상태들(예컨대, 0 또는 1로 표현될 수 있음)의 집합을 의미할 수 있다. 유휴 커맨드란, 실질적인 데이터를 포함하지 않는 신호를 의미할 수 있으며, 예컨대, DRAM의 유휴 커맨드는 DES 커맨드(deselect command)일 수 있다.
단축 벡터 생성기(200)는 중복 커맨드 제거기(100)에서 출력된 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 조절한 단축 벡터를 제공할 수 있다. 예컨대, 변환 벡터는 중복된 다수의 유휴 커맨드들을 포함할 수 있다. 유휴 커맨드들은 반도체 회로를 실질적으로 검증하기 위한 커맨드가 아닐 수 있기 때문에, 단축 벡터 생성기(200)는 중복된 다수의 유휴 커맨드들을 제거하고, 제거된 유휴 커맨드들의 후속적인 커맨드(예컨대, 리드 커맨드(read command))로 변경할 수 있다.
검증 벡터 생성기(300)는 단축 벡터 생성기(200)가 생성한 복수의 단축 벡터들 중에서, 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 단축 벡터를 검증 벡터로써 선택할 수 있다. 선택된 검증 벡터는 반도체 회로를 실제로 검증하기 위해 최적화된 벡터일 수 있다. 커버리지란, 검증 벡터에 의해 발생 가능한 상태 천이들의 수를, 반도체 회로가 발생시킬 수 있는 모든 상태 천이들의 수로 나눈 값일 수 있다. 구체적인 내용은 후술하는 도면에서 설명하기로 한다.
메모리(13)는 전자 시스템(1)에서 사용되는 프로그램들 및/또는 데이터를 저장할 수 있다. 메모리(13)는 또한, 기계 학습을 위한 각종 파라미터, 입력 데이터(예를 들면, 입력 벡터) 및 출력 데이터(예를 들면, 회로 블록의 상태)를 저장할 수 있다.
메모리(13)는 DRAM(Dynamic random Access Memory)일 수 있으나, 이에 한정되는 것은 아니다. 메모리(13)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. 휘발성 메모리는 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등을 포함한다. 실시 예에 있어서, 메모리(13)는 HDD(Hard Disk Drive), SSD(Solid State Drive), CF(compact flash) 카드, SD(secure digital) 카드, Micro-SD(micro secure digital) 카드, Mini-SD(mini secure digital) 카드, xD(extreme digital) 카드 또는 Memory Stick 중 적어도 하나를 포함할 수 있다.
인터페이스(14)는 검증 대상이 되는 반도체 회로에 관한 정보를 통신할 수 있다. 예컨대, 인터페이스(14)는 전자 시스템(1)이 탑재되는 회로 디자인 장치 또는 회로 디자인 시스템에서 생성된 회로 디자인에 관한 정보를 수신하여, 전자 장치(2)에 제공할 수 있다. 예컨대, 기계 학습부(12)는 회로 디자인에 관한 정보를 이용하여 학습을 위한 시뮬레이션을 수행할 수 있다.
GPU(15)는 전자 시스템(1)의 연산 동작을 가속화할 수 있다. GPU는 복수의 프로세서 코어들(Multi-Core)을 포함하고, CPU와 PCI-e 및 NVLINK를 통해 다른 GPU와 연결되어 동작할 수 있으며, CUDA(Compute Unified Device Architecture)를 통해 범용 연산 동작을 가속화할 수 있다. GPU(15)는 메모리(13)와 같은 저장 영역에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다.
전자 시스템(1)은 최적화된 검증 벡터를 생성하기 위해, 입력 벡터를 입력받을 수 있다. 전자 시스템은 입력 벡터를 기반으로 훈련(train)(또는 학습(learn))하거나, 입력 벡터를 분석함으로써 입력 데이터에 포함된 정보를 추론(inference)할 수 있다. 전자 시스템(1)은 추론된 정보를 기초로 높은 커버리지를 유지하면서도 불필요한 커맨드는 제거하도록 전자 시스템(1)이 탑재되는 전자 장치의 구성들을 제어할 수 있다. 예컨대, 전자 시스템(1)은 회로를 디자인하고, 이를 검증하는 회로 디자인 장치 또는 회로 디자인 시스템 등에 적용될 수 있으며, 이 외에도 전자 시스템(1)은 다양한 종류의 전자 장치 중 하나에 탑재될 수 있다.
본 개시의 예시적인 실시예에 따른 전자 시스템(1)은 중복적인 상태 천이를 일으키는 입력 벡터의 무의미한 커맨드들을 기계학습을 이용한 최적화된 횟수로 감소시킴으로써 벡터의 양을 줄일 수 있으며, 이에 따라 연산량을 감소시키고 중복적인 검증 동작을 배제하여 검증 동작의 퀄리티를 높일 수 있다.
도 2는 본 개시의 예시적인 실시예에 따른 전자 장치를 설명하기 위한 블록도이다.
도 2를 참조하면, 전자 장치(10)는 중복 커맨드 제거기(100), 단축 벡터 생성기(200) 및 검증 벡터 생성기(300)를 포함할 수 있으며, 검증 벡터 생성기(300)는 트레이닝 모듈(320)을 포함할 수 있다. 전자 장치(10)는 도 1에서 전술한 전자 장치(2)의 일부 또는 전부로써 포함될 수 있다.
중복 커맨드 제거기(100)는 입력 벡터 세트(VS)를 수신하고 변환 벡터 세트(WS)를 제공할 수 있으며, 단축 벡터 생성기(200)는 변환 벡터 세트(WS)를 수신하고 단축 벡터 세트(XS)를 제공할 수 있으며, 검증 벡터 생성기(300)는 단축 벡터 세트(XS)를 수신하고 검증 벡터 세트(YS)를 출력할 수 있다.
단축 벡터 생성기(200)는 변환 벡터 세트(WS)의 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 조절한 단축 벡터를 제공할 수 있으며, 단축 벡터는 단축 벡터 세트(XS)에 포함될 수 있다. 예컨대, 벡터의 양이 최적화된 검증 벡터 세트(YS)를 생성하기 위해, 단축 벡터 생성기(200)는 유휴 커맨드들의 반복 횟수를 감소시킬 수 있으며, 감소량은 검증 벡터 생성기(300)로부터 수신한 추정 모델에 관한 정보(IEM)에 기반하여 결정할 수 있다.
검증 벡터 생성기(300)는 단축 벡터에 포함된 유휴 커맨드들의 개수 및 단축 벡터의 커버리지에 기초하여, 검증 벡터를 추정하기 위한 추정 모델을 학습할 수 있다. 예컨대, 트레이닝 모듈(320)은 단축 벡터의 커버리지가 상기 타겟 커버리지와 일치한 경우에는 제1 함수(예컨대, 감소 함수)에 따른 제1 함수 값을 생성하고, 단축 벡터의 커버리지가 타겟 커버리지보다 작은 경우에는 제2 함수(예컨대, 제1 함수 값보다 큰 값을 갖는 상수 함수)에 따른 제2 함수 값을 생성하며, 제1 함수 값 및 제2 함수 값을 갖는 추정 모델을 학습할 수 있다. 검증 벡터 생성기(300)는 학습된 추정 모델에 관한 정보(IEM)를 단축 벡터 생성기(200)로 제공할 수 있다.
단축 벡터 생성기(200)는 추정 모델에 관한 정보(IEM)를 기반으로 획득 함수(acquisition function)를 도출하고, 획득 함수에서 가장 높은 확률 값을 갖는 유휴 커맨드의 개수를 갖는 단축 벡터를 검증 벡터 생성기(300)로 제공할 수 있다. 검증 벡터 생성기(300)는 수신된 단축 벡터의 커버리지가 타겟 커버리지와 일치하는지 여부를 식별하고, 타겟 커버리지와 일치하는 커버리지를 가지며 유휴 커맨드의 개수가 가장 적은 단축 벡터를 검증 벡터로써 출력할 수 있다.
한편, 중복 커맨드 제거기(100)는 검증 벡터 세트(YS)를 생성하기 위한 입력 벡터 세트(VS)를 수신할 수 있다. 이하에서는, 입력 벡터 세트(VS), 변환 벡터 세트(WS), 단축 벡터 세트(XS) 및 검증 벡터 세트(YS)에 포함된 복수의 벡터들에 관하여, 도 3을 참조하여 설명하기로 한다.
도 3은 본 개시의 예시적인 실시예에 따른 복수의 회로 블록들을 포함한 반도체 회로 및 입력 벡터를 설명하기 위한 블록도이다.
도 2 및 도 3을 참조하면, 입력 벡터 세트(VS)는 복수의 입력 벡터들(V1~VN)을 포함할 수 있다. 복수의 입력 벡터들(V1~VN) 각각은 복수의 회로 블록들(BLK1~BLKN)을 검증할 수 있다. 복수의 회로 블록들(BLK1~BLKN)은 배치 위치, 용도, 기능, 회로적 특성 등이 상이할 수 있으며, 이에 따라, 복수의 입력 벡터들(V1~VN) 각각에 포함된 커맨드들 중 적어도 일부는, 커맨드들의 종류, 커맨드들의 순서가 상이할 수 있다. 일 예로, 검증하기 위한 반도체 회로가 메모리 장치 또는 메모리 컨트롤러인 경우, 커맨드는 메모리 장치를 동작시키는 명령어일 수 있다. 그러나, 검증하기 위한 반도체 회로가 메모리 장치 또는 메모리 컨트롤러에 한정되지는 않으며, 다양한 종류의 반도체 회로를 동작시키기 위한 명령어를 커맨드로 지칭할 수도 있다.
입력 벡터 세트(VS)와 유사하게, 변환 벡터 세트(WS)는 복수의 변환 벡터들(예컨대, N 개의 변환 벡터)을 포함할 수 있고, 단축 벡터 세트(XS)는 복수의 단축 벡터들(예컨대, N 개의 단축 벡터)을 포함할 수 있으며, 검증 벡터 세트(YS)는 복수의 검증 벡터들(예컨대, N 개의 검증 벡터)을 포함할 수 있다. 복수의 검증 벡터들은 복수의 회로 블록들(BLK1~BLKN) 각각을 검증하기 위한 최적화된 벡터일 수 있다.
다시 도 2를 참조하면, 중복 커맨드 제거기(100)는 입력 벡터(예컨대, 도 2의 V1)에 대해 시뮬레이션 동작을 수행하여 획득한 회로 블록(예컨대, 도 2의 BLK1)의 상태 천이를 기반으로, 동일한 상태 천이를 발생시키는 복수의 커맨드들 각각을 유휴 커맨드로 변경한 변환 벡터를 제공할 수 있다. 중복 커맨드 제거기(100)는, 반도체 회로의 검증에 실질적으로 기여하지 않는, 동일한 상태 천이를 발생시키는 복수의 커맨드들 각각을 유휴 커맨드로 변경할 수 있다. 상태 천이와 관련하여 도 4를 참고하여 자세히 후술한다.
도 4a는 본 개시의 예시적인 실시예에 따른 상태 천이를 설명하기 위한 블록도이며, 도 4b는 본 개시의 예시적인 실시예에 따른 상태 천이를 설명하기 위한 테이블이며, 도 4c는 본 개시의 예시적인 실시예에 따른 커버리지를 설명하기 위한 블록도이다.
도 2 및 도 4a를 참조하면, 제1 회로 블록(BLK1)은 복수의 로직 회로들(LC1-LC3)을 포함할 수 있다. 제1 회로 블록(BLK1)의 상태는 복수의 로직 회로들(LC1-LC3)의 입력 또는 출력으로 정의될 수 있으며, 구체적으로, 제1 회로 블록(BLK1)의 상태는 제1 로직 회로(LC1)의 제1 입력(IN1) 및 제2 입력(IN2), 제2 로직 회로(LC2)의 제3 입력(IN3) 및 제1 출력(Q1), 제3 로직 회로(LC3)의 출력(Q2)으로 정의될 수 있다.
도 4b를 참조하면, 제1 회로 블록(BLK1)의 가능한 상태 천이들은 테이블(ST_TB)에 정리된 바와 같이 32가지를 가질 수 있다. 즉, 상태 천이들은 복수의 입력들(IN1~IN3) 및 복수의 출력들(Q1~Q2) 각각이 가질 수 있는 상태들을 의미할 수 있다. 다만, 제1 회로 블록(BLK1)은 회로 디자인 의도상 발생 가능하지 않은 상태 천이를 가질 수 있으며, 이러한 경우는 커버리지를 연산할 때에 고려될 수 있다. 본 개시의 예시적인 실시예들에 따른 커버리지는 회로 블록 단위로 결정될 수 있으며, 커버리지는 회로 블록 내의 하나의 노드의 상태 천이만을 관찰하여 결정되는 것이 아니라, 회로 블록 내의 로직 회로들의 입력들 또는 출력들 중 일부 또는 전부로 구성된 조합의 변화를 관찰하여 결정될 수 있다. 예컨대, 제1 회로 블록(BLK1)의 상태는 제1 회로 블록(BLK1) 내의 카운터(예를 들면, DRAM인 경우 리프레시 카운터), 리드 명령어 FIFO, 라이트 명령어 FIFO 등을 구성하는 로직 회로들의 입력들 또는 출력들에 의해 정의될 수 있다.
도 4c를 참조하면, 일 예로, 제1 입력 벡터(V1)에 의한 제1 회로 블록(BLK1)의 상태 천이(ST)는 ‘0 0 0 0 0’, ‘0 0 0 1 0’, ‘0 0 1 1 0’및 ‘0 0 1 1 1’을 포함할 수 있다. 즉, 제1 회로 블록(BLK1)의 상태 천이(ST)들의 개수는 4 개일 수 있다. 이 경우, 제1 회로 블록(BLK1)의 가능한 모든 상태 천이(ST)들의 개수는 32 개이므로, 제1 입력 벡터(V1)에 의한 제1 회로 블록(BLK1)의 제1 커버리지(COV1)는 4/32 일 수 있으며, 1 보다 작을 수 있다.
다른 예로, 제1 입력 벡터(V1a)에 의한 제1 회로 블록(BLK1)의 상태 천이(ST)들의 개수는 32 개일 수 있다. 또한, 제1 회로 블록(BLK1)의 가능한 모든 상태 천이(ST)들의 개수 역시 32개이므로, 제1 입력 벡터(V1a)에 의한 제1 회로 블록(BLK1)의 커버리지(COV2)는 32/32 = 1 일 수 있다. 마찬가지로, 제1 검증 벡터(Y1a)에 의한 제1 회로 블록(BLK)의 커버리지(COV2)는 32/32 = 1 일 수 있다. 여기서, 제1 검증 벡터(Y1a)는 제1 입력 벡터(V1a)에 기반하여 생성된 벡터일 수 있다. 예컨대, 전자 장치(10)는, 커버리지가 1 인 제1 입력 벡터(V1a)에 기반하여, 동일한 상태 천이를 일으키는 커맨드들 각각을 유휴 커맨드로 변경하고, 변경된 유휴 커맨드들의 개수를 감소시킬 수 있다. 전자 장치(10)는 유휴 커맨드들의 개수가 감소된 복수의 단축 벡터들을 생성할 수 있으며, 복수의 단축 벡터들 중 적어도 일부는 커버리지가 상이할 수 있으며, 복수의 단축 벡터들 중 일부는 유휴 커맨드의 개수가 상이할 수 있다. 전자 장치(10)는 복수의 단축 벡터들 중 커버리지가 타겟 커버리지(예컨대, 타겟 커버리지의 값은 1)와 일치하고 유휴 커맨드의 개수가 최소화된 벡터를 검증 벡터(Y1a)로써 출력할 수 있다. 이 경우, 전자 장치(10)가 동일한 상태 천이를 일으키는 커맨드들 각각을 유휴 커맨드로 변경하는 동작을 도 5, 도 6a 및 도 6b와 함께 설명하기로 한다.
도 5는 본 개시의 예시적 실시예에 따른 중복 커맨드 제거기를 설명하기 위한 블록도이다.
도 5를 참조하면, 중복 커맨드 제거기(100)는 시뮬레이터(110), 커맨드 파서(Command Parser)(120) 및 디텍터(Detector)(130)를 포함할 수 있다. 중복 커맨드 제거기(100)는 복수의 입력 벡터들이 포함된 입력 벡터 세트(VS)를 수신하고, 입력 벡터들 중 적어도 하나의 벡터를 구성하는 커맨드를 변경한 변환 커맨드를 포함하는 변환 커맨드 세트(WS)를 제공할 수 있다. 설명의 편의를 위하여, 도 6a 및 도 6b와 함께 중복 커맨드 제거기(100)에 관하여 설명하기로 한다.
도 6a는 본 개시의 예시적 실시예에 따른 중복 커맨드 제거기를 설명하기 위한 블록도이다.
도 5 및 도 6a를 참조하면, 중복 커맨드 제거기(100)는 제1 입력 벡터(V1)에 포함된 복수의 커맨드들 중에서, 동일한 상태 천이를 일으키는 커맨드들 각각을 유휴 커맨드(DES)로 변경할 수 있다. 이하에서, 복수의 커맨드들을 커맨드 그룹이라고 칭할 수 있다. 일 예로, 제1 입력 벡터(V1)는 다양한 종류의 커맨드들이 시계열적으로 나열될 수 있으며, 예컨대, 커맨드들은 리드 커맨드(RD), 유휴 커맨드(DES), 라이트 커맨드 및 리프레시 커맨드를 포함할 수 있다. 설명의 편의상, 검증 대상이 되는 반도체 회로가 메모리 컨트롤러 또는 메모리 장치인 것으로 예시하였으나, 이에 제한되지는 않으며, 유휴 커맨드(DES)와 유사하게 실질적인 데이터 동작을 지시하지 않는 다양한 종류의 커맨드를 포함할 수 있으며, 리드 커맨드(RD)와 유사하게 실질적인 데이터 동작을 지시하는 다양한 종류의 커맨드를 포함할 수 있다.
본 개시의 예시적 실시예에 따르면, 중복 커맨드 제거기(100)는 제1 커맨드 그룹(CG1)에 대한 시뮬레이션 결과로써 ‘0 0 1 0 0’의 값을 갖는 제1 상태 천이(ST1)를 획득할 수 있다. 또한, 중복 커맨드 제거기(100)는 제2 커맨드 그룹(CG2)에 대한 시뮬레이션 결과로써, 마찬가지로 ‘0 0 1 0 0’의 값을 갖는 제2 상태 천이(ST2)를 획득할 수 있다. 제1 상태 천이(ST1)는 제1 커맨드 그룹(CG1)에 의해 발생될 수 있으며, 제2 상태 천이(ST2)는 제2 커맨드 그룹(CG2)에 의해 발생될 수 있다. 제1 상태 천이(ST1) 및 제2 상태 천이(ST2)의 값은 동일할 수 있다. 제1 상태 천이(ST1)는 제2 상태 천이(ST2)가 발생되기 이전에 발생될 수 있다.
도 6b는 본 개시의 예시적 실시예에 따른 변환 벡터를 설명하기 위한 블록도이다.
도 5, 도 6a 및 도 6b를 참조하면, 중복 커맨드 제거기(100)는 복수의 동일한 상태 천이들 중에서, 가장 먼저 발생된 제1 상태 천이(ST1)를 제외한 나머지 제2 상태 천이(ST2)들에 대응되는 커맨드들 각각을 유휴 커맨드(DES)로 변경할 수 있다.
본 개시의 예시적 실시예에 따르면, 시뮬레이터(110)는 제1 입력 벡터(V1)를 제1 회로 블록(BLK1) 상에서 시뮬레이팅 동작을 수행할 수 있다. 시뮬레이터(110)는 예컨대, 베릴로그 시뮬레이터(Verilog Simulator)를 포함할 수 있다. 시뮬레이터(110)는 시뮬레이션 결과로써 시뮬레이션 로그(LD)를 출력할 수 있다. 시뮬레이터(110)는, 특정 커맨드가 회로 블록 상에서 시뮬레이팅된 시간 정보, 상기 특정 커맨드에 의해 발생된 상태 천이, 상기 상태 천이가 발생한 시간 정보 및 상기 특정 커맨드 중 적어도 하나를 시뮬레이션 로그(LD)에 기록할 수 있다.
일 예로, 시뮬레이터(110)는 제1 커맨드 그룹(CG1)이 제1 회로 블록(BLK1) 상에서 시뮬레이팅된 시간 정보 및 제1 상태 천이(ST1)를 시뮬레이션 로그(LD)에 기록할 수 있다. 다른 예로, 시뮬레이터(110)는 제2 커맨드 그룹(CG2)이 제1 회로 블록(BLK1) 상에서 시뮬레이팅된 시간 정보 및 제2 상태 천이(ST2)를 시뮬레이션 로그(LD)에 기록할 수 있다. 즉, 복수의 동일한 상태 천이들(ST1, ST2)은 제1 입력 벡터(V1)를 제1 회로 블록(BLK1) 상에서 시뮬레이팅하여 획득된 시뮬레이션 로그(LD)에 기록될 수 있다.
도 5 및 도 6a를 참조하면, 커맨드 파서(120)는 시뮬레이션 로그(LD)에 기초하여 동일한 상태 천이들을 일으키는 커맨드들을 식별할 수 있다. 커맨드 파서(120)는 제1 상태 천이(ST1) 및 제2 상태 천이(ST2)를 일으키는 제1 커맨드 그룹(CG1) 및 제2 커맨드 그룹(CG2)을 식별할 수 있다. 구체적으로, 커맨드 파서(120)는 제1 커맨드 그룹(CG1) 및 제2 커맨드 그룹(CG2)에 포함된 복수의 커맨드들의 종류 및 시간 정보를 식별할 수 있다. 커맨드 파서(120)는 제1 커맨드 그룹(CG1) 및 제2 커맨드 그룹(CG2)에 대한 정보를 컨버터(130)로 전송할 수 있다.
도 5, 도 6a 및 도 6b를 참조하면, 컨버터(130)는 동일한 상태 천이를 발생시키는 복수의 커맨드들(예컨대, 제2 커맨드 그룹(CG2)에 포함된 커맨드들) 각각을 유휴 커맨드(DES)로 변경한 제1 변환 벡터(W1)를 생성할 수 있다. 컨버터(130)는 제1 변환 벡터(W1)를 생성한 것과 동일하게, 제2 회로 블록(도 3의 BLK2) 내지 제N 회로 블록(BLKN)에 대응되는 제2 변환 벡터 내지 제N 변환 벡터를 생성할 수 있다. 컨버터(130)는 제1 변환 벡터(W1) 내지 제N 변환 벡터를 포함하는 변환 벡터 세트(WS)를 중복 벡터 제거기(200)로 제공할 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 중복 벡터 제거기 및 검증 벡터 생성기를 설명하기 위한 블록도이다.
전자 장치(10)는 단축 벡터 생성기(200) 및 검증 벡터 생성기(300)를 포함할 수 있으며, 단축 벡터 생성기(200)는 유휴 커맨드 파서(210) 및 유휴 커맨드 감소기(220)를 포함할 수 있고, 검증 벡터 생성기(300)는 시뮬레이터(310), 트레이닝 모듈(320) 및 선택 모듈(330)을 포함할 수 있다.
단축 벡터 생성기(200)는 변환 벡터 세트(WS)를 수신할 수 있으며, 변환 벡터 세트(WS)는 복수의 변환 벡터들을 포함할 수 있다. 단축 벡터 생성기(200)는 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 조절한 단축 벡터를 출력할 수 있으며, 단축 벡터 세트(XS)는 복수의 단축 벡터들을 포함할 수 있다.
유휴 커맨드 파서(210)는 변환 벡터 세트(WS)에 포함된 변환 벡터에서 유휴 커맨드, 유휴 커맨드의 반복 횟수 및 변환 벡터 내의 커맨드들의 발생 시간 정보를 검출할 수 있다. 유휴 커맨드 파서(210)는 검출한 정보들을 기반으로, 반복되는 유휴 커맨드들이 변환 벡터 내에서 위치하는 시간에 관한 정보(즉, 유휴 커맨드 정보(IDES))를 출력할 수 있다.
도 6b 및 도 7을 참조하면, 유휴 커맨드 파서(210)는 제1 변환 벡터(W1)에 포함된 유휴 커맨드(DES)들을 식별할 수 있으며, 유휴 커맨드(DES)들이 반복되는 횟수 및 커맨드들 각각의 발생 시간을 검출할 수 있다. 제3 커맨드 그룹(CG3)을 참조하면, 유휴 커맨드 파서(210)는 유휴 커맨드(DES)들이 5 번 반복됨을 검출할 수 있으며, 각각의 유휴 커맨드(DES)들의 발생 시간을 검출할 수 있다. 반복되는 유휴 커맨드(DES)들은 벡터의 양만 증가시킬 뿐, 실질적인 검증 동작에는 기여하지 못하기 때문에, 단축 벡터 생성기(200)는 유휴 커맨드(DES)들의 반복 횟수를 감소시킬 수 있다.
유휴 커맨드 감소기(220)는 유휴 커맨드 정보(IDES) 및 추정 모델에 관한 정보(IEM)에 기반하여 단축 벡터를 생성할 수 있다. 예컨대, 유휴 커맨드 감소기(200)는 변환 벡터(예컨대, W1)에 포함된 유휴 커맨드(DES)들 중 적어도 일부를 소정의 감소량에 따라 감소(제거)시키고, 제거된 유휴 커맨드(DES)들에 후속하는 커맨드들이 앞당겨진 벡터일 수 있다.
유휴 커맨드 감소기(220)는 획득 함수(AQ)에 기반하여 단축 벡터의 유휴 커맨드들의 개수를 결정할 수 있다. 다시 말해서, 유휴 커맨드 감소기(220)는 획득 함수(AQ)에 기반하여 단축 벡터의 유휴 커맨드들의 개수를 감소시킬 수 있다. 획득 함수(AQ)란 예컨대, 베이지안 최적화 알고리즘(Bayesian Optimization Algorithm)의 Expected Improvement(EI)에 근거할 수 있으나, 이에 제한되지는 않는다. 획득 함수(AQ)와 관련해서는 도 8a 및 도 8b에서 후술하기로 한다. 유휴 커맨드 감소기(220)는 추정 모델에 관한 정보(IEM)에 기반하여 획득 함수(AQ) 상에서 가장 확률이 높은 유휴 커맨드의 개수를 식별할 수 있다. 추정 모델이 학습된 횟수가 많을수록, 획득 함수(AQ) 상에서 가장 확률이 높은 유휴 커맨드의 개수는 감소할 수 있다.
시뮬레이터(310)는 단축 벡터를 수신하고, 단축 벡터의 커버리지(cov)를 타겟 커버리지와 비교하며, 비교 결과를 트레이닝 모듈(320)에 제공할 수 있다. 입력 벡터의 커버리지가 타겟 커버리지와 일치하는 경우에도, 단축 벡터 세트(XS)에 포함된 단축 벡터의 커버리지는 타겟 커버리지와 일치하지 않을 수 있다. 예컨대, 단축 벡터 생성기(200)가 유휴 커맨드들을 감소시키는 과정에서, 입력 벡터가 갖는 상태 천이와 다른 상태 천이를 단축 벡터가 가질 수 있으며, 이 경우에는 입력 벡터의 커버리지가 타겟 커버리지와 일치한다 하더라도, 단축 벡터의 커버리지는 타겟 커버리지보다 작을 수 있다. 따라서, 시뮬레이터(310)는 수신한 단축 벡터가 여전히 커버리지가 타겟 커버리지와 일치하는지 확인하기 위하여, 단축 벡터에 대하여 시뮬레이팅 동작을 수행할 수 있다. 예컨대, 타겟 커버리지의 값은 1 이 될 수 있다.
시뮬레이터(310)는 단축 벡터를 회로 블록 상에서 시뮬레이팅하여 단축 벡터의 커버리지를 획득할 수 있다. 전술한 바와 같이, 단축 벡터의 커버리지는, 단축 벡터가 회로 블록에 입력된 경우 발생 가능한 상태 천이 개수를, 회로 블록에서 발생 가능한 모든 상태 천이 개수로 나눈 값일 수 있다.
트레이닝 모듈(320)은 추정 모델을 학습시킨 후에, 추정 모델에 관한 정보(IEM)를 유휴 커맨드 감소기(220)로 피드백시킬 수 있다. 한편, 시뮬레이터(310)는 도 5에서 전술한 시뮬레이터(110)와 유사한 기능을 수행할 수 있으며, 예컨대, 시뮬레이터(310)는 단축 벡터를 소정의 회로 블록 상에서 시뮬레이팅함으로써, 단축 벡터에 따른 상태 천이 및 커버리지를 산출할 수 있다.
한편, 검증 벡터 생성기(300)는 기설정된 학습 횟수만큼, 추정 모델을 학습시킬 수 있다. 검증 벡터 생성기(300)는 추정 모델을 학습시킨 횟수가 기설정된 학습 횟수보다 큰 경우 검출 벡터를 출력할 수 있다. 구체적으로, 검증 벡터 생성기(300)는 기설정된 학습 횟수와 일치하는 개수의 단축 벡터들을 누적적으로 수신할 수 있으며, 선택 모듈(330)은 검증 벡터 생성기(300)가 수신한 복수의 단축 벡터들 중 커버리지(cov)가 1 이며 유휴 커맨드들의 개수가 가장 적은 단축 벡터를 검증 벡터로써 출력할 수 있다.
도 8a 및 도 8b는 본 개시의 예시적 실시예에 따른 검증 벡터 생성기의 동작을 설명하기 위한 최적화 모델이다.
도 8a 및 도 8b를 참조하면, 최적화 모델의 가로축은 단축 벡터에 포함된 유휴 커맨드(DES)들의 개수이며, 세로축은 함수 값이다. 최적화 모델에 도시된 실선은 목적 함수를 의미하며, 목적 함수는 이상적으로 최적화된 함수일 수 있다. 최적화 모델에 도시된 점선은 추정 모델을 의미하며, 검증 벡터 생성기(300)는 추정 모델을 반복적으로 학습함으로써, 목적 함수에 근접하는 추정 모델을 생성할 수 있다. 예컨대, 검증 벡터 생성기(300)가 최초로 생성한 추정 모델보다, 많은 학습을 통해 검증 벡터 생성기(300)가 생성한 추정 모델이 목적 함수에 더 유사할 수 있다. 최적화 모델에 도시된 원(circle)은, 관측 지점을 의미한다. 예컨대, 단축 벡터가 N1 개의 유휴 커맨드(DES)들을 갖는 경우, 검증 벡터 생성기(300)는 제1 관측 지점(OB1)을 생성할 수 있다.
검증 벡터 생성기(300)는 목적 함수의 함수 값의 최소 값 또는 유휴 커맨드(DES)들의 개수의 최소 값을 찾기 위해 추정 모델을 반복적으로 학습시킬 수 있다. 이하에서는, 베이지안 최적화 알고리즘에 기반하여 유휴 커맨드(DES)들의 개수가 최소화된 검증 벡터를 탐색하는 과정에 대해서 설명한다. 이에 따라, 추정 모델은 서로게이트 모델(surrogate model)일 수 있으며, 예컨대, 서로게이트 모델은 가우시안 프로세스(GP), 트리-구조 파르젠 추정기(Tree-structured Parzen Estimator, TPE) 및 뉴럴 네트워크(Neural Network) 중 적어도 하나를 포함할 수 있다. 또한, 후술할 획득 함수(AQ)는 개선 확률(Probability of Improvement, PI), 예측 개선(Expected Improvement, EI), 확률 상한(Upper Confidence Bound, UCB) 및 엔트로피 서치(Entropy Search, ES) 중 적어도 하나를 포함할 수 있다.
도 7 및 도 8a를 참조하면, 트레이닝 모듈(320)은 단축 벡터의 커버리지가 타겟 커버리지와 일치한 경우에는 제1 함수(OFN1)에 따른 제1 함수 값을 생성할 수 있다. 즉, 트레이닝 모듈(320)은 N1 개의 유휴 커맨드(DES)들을 가지며, 타겟 커버리지와 일치하는 커버리지를 갖는 단축 벡터를 수신하고, M1의 함수 값을 갖는 제1 관측 지점(OB1)을 생성할 수 있다. 이 후, 순차적으로 트레이닝 모듈(320)은 각각 N2, N3 및 N4 개의 유휴 커맨드(DES)들을 갖는 단축 벡터들을 수신하고, 각각 M2, M3 및 M4의 함수 값을 갖는 제2 관측 지점(OB2), 제3 관측 지점(OB3) 및 제4 관측 지점(OB4)을 생성할 수 있다. 마찬가지로, 수신한 단축 벡터들은 타겟 커버리지와 일치하는 커버리지를 가질 수 있다.
일 예로, 유휴 커맨드(DES)들의 개수인 N1 내지 N4는 각각 함수 값 M1 내지 M4 일 수 있다. 즉, 트레이닝 모듈(320)은 제1 함수(OFN1)를 y = x 로써 설정할 수 있다. 다른 예로, 트레이닝 모듈(320)은 제1 함수(OFN1)를 유휴 커맨드(DES)들의 개수가 적을수록 감소하는 다양한 함수로써 설정할 수 있다. 예컨대, 제1 함수(OFN1)는 y = x^2 (if x>0) 또는 y = e^x (if, x>0) 를 포함할 수 있다.
한편, 트레이닝 모듈(320)은 단축 벡터의 커버리지가 타겟 커버리지보다 작은 경우에는 제2 함수(OFN2)에 따른 제2 함수 값을 생성할 수 있다. 즉, 트레이닝 모듈(320)은 N5 개의 유휴 커맨드(DES)들을 가지며, 타겟 커버리지보다 작은 커버리지를 갖는 단축 벡터를 수신하고, M5의 함수 값을 갖는 제5 관측 지점(OB5)을 생성할 수 있다. 예컨대, 제2 함수(OFN2)는 제1 함수 값들(M1~M4)보다 큰 함수 값을 갖는 상수 함수일 수 있다. 커버리지가 타겟 커버리지보다 작은 단축 벡터는 검증 벡터로써 선택되지 않아야 하기 때문이다.
트레이닝 모듈(320)은 복수의 추정 모델들(EMD1, EMD2)을 생성할 수 있다. 예컨대, N5 개의 유휴 커맨드(DES)들을 갖는 단축 벡터를 수신한 이후, 제2 추정 모델(EMD2)을 생성할 수 있다. 제2 추정 모델(EMD2)에 기반하여, 트레이닝 모듈(320)은 유휴 커맨드(DES)들의 개수가 N5 보다 크고 N4 보다 작은 경우에 함수 값을 최소화시킬 수 있음을 식별할 수 있다. 따라서, 트레이닝 모듈(320)은 추정 모델에 관한 정보(IEM)로써, 유휴 커맨드(DES)의 개수 N5와 N4를 유휴 커맨드 감소기(220)로 제공할 수 있다. 즉, 추정 모델에 관한 정보(IEM)는 유휴 커맨드(DES)들의 개수에 관한 정보를 포함할 수 있다.
도 7 및 도 8b를 참조하면, 유휴 커맨드 감소기(220)는 추정 모델에 관한 정보(IEM)에 기초하여, 획득 함수(AQ)로부터 가장 높은 확률을 갖는 유휴 커맨드(DES)들의 개수인 NN 을 식별할 수 있다. 예컨대, 획득 함수(AQ)는 확률에 관한 함수일 수 있다. 획득 함수(AQ)는 가장 높은 확률 값을 갖는 확률 변수가 최적 변수일 수 있다. 유휴 커맨드 감소기(220)는 획득 함수(AQ)에 기반하여 단축 벡터에 포함된 유휴 커맨드(DES)들의 개수를 NN 개로 감소시킬 수 있다. 유휴 커맨드 감소기(220)는 유휴 커맨드(DES)들의 개수가 NN 개로 감소된 단축 벡터를 시뮬레이터(310)로 제공할 수 있다. 시뮬레이터(310)는 수신한 단축 벡터의 커버리지가 타겟 커버리지와 일치함을 식별할 수 있다. 이 후, 트레이닝 모듈(320)은 제1 함수(OFN1)에 따른 함수 값 FN을 갖는 제N 관측 지점(OBN)을 생성할 수 있다. 이와 함께, 시뮬레이터(310)는, 제N 관측 지점(OBN)이 생성된 것에 응답하여 트레이닝 모듈(320)에 의한 학습 횟수가 기설정된 횟수를 초과하였음을 식별할 수 있다. 이 경우, 선택 모듈(330)은 학습 횟수와 일치하는 개수만큼 수신한 단축 벡터들 중에서, 커버리지가 타겟 커버리지를 가지며, 유휴 커맨드(DES)들의 개수가 가장 작은 단축 벡터를 검증 벡터로써 출력할 수 있다. 검증 벡터 세트(YS)는 복수의 검증 벡터들을 포함할 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 9를 참조하면, 전자 장치(도 2의 10)는 복수의 커맨드들을 포함하는 제1 입력 벡터들을 수신(S410)할 수 있다. 예컨대, 입력 벡터는 검증 벡터로써 최적화될 벡터일 수 있다. 복수의 커맨드들은, 검증의 대상이 되는 반도체 회로를 동작시키기 위해 입력될 수 있다. 예컨대, 제1 입력 벡터는, 반도체 회로에 포함된 복수의 로직 회로들 중 제1 로직 회로를 테스트 하기 위한 벡터일 수 있다.
전자 장치(10)는 제1 입력 벡터에 포함된 복수의 커맨드들 중 적어도 일부를 유휴 커맨드로 변경한 제1 변환 벡터를 제공(S420)할 수 있다. 본 개시의 예시적 실시예에 따르면, 전자 장치(10)는 제1 입력 벡터에 대해 시뮬레이션 동작을 수행하여 획득한 제1 회로 블록의 상태 천이를 기반으로, 동일한 상태 천이를 발생시키는 복수의 커맨드들 각각을 유휴 커맨드로 변경할 수 있다.
전자 장치(10)는 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 조절한 제1 단축 벡터를 제공(S430)할 수 있다. 예컨대, 전자 장치(10)는 학습된 추정 모델에 관한 정보를 기반으로, 획득 함수 상에서 가장 높은 확률을 갖는 유휴 커맨드들의 횟수로 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 조절할 수 있다.
전자 장치(10)는 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 제1 단축 벡터를 제1 검증 벡터로 선택하고, 제1 검증 벡터를 출력(S440)할 수 있다. 본 개시의 예시적 실시예에 따르면, 전자 장치(10)는 제1 단축 벡터에 포함된 유휴 커맨드들의 개수 및 제1 단축 벡터의 커버리지에 기초하여, 상기 제1 검증 벡터를 추정하기 위한 추정 모델을 학습할 수 있다. 예컨대, 전자 장치(10)는 제1 단축 벡터의 유휴 커맨드들의 개수 및 커버리지에 따라 상이한 목적 함수의 함수 값을 생성할 수 있고, 생성된 함수 값에 따라 추정 모델을 학습할 수 있다. 예컨대, 추정 모델은 베이지안 최적화 알고리즘에 따른 서로게이트 모델일 수 있다. 전자 장치(10)는 학습된 추정 모델에 기반하여 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 제1 단축 벡터를 선택함으로써 제1 검증 벡터를 출력할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 전자 장치의 동작 방법을 설명하기 위한 흐름도이다. 도 9에서 전술한 내용과 중복되는 사항은 생략하기로 한다.
전자 장치(도 2의 10)는 생성한 제1 단축 벡터를 제1 회로 블록에 대해 시뮬레이션을 수행(S510)할 수 있다. 커버리지가 타겟 커버리지와 일치하는 제1 단축 벡터를 선별하기 위함이며, 전자 장치(10)는 시뮬레이션을 수행함으로써, 제1 단축 벡터의 커버리지를 산출할 수 있다.
전자 장치(10)는 제1 단축 벡터의 커버리지에 기반하여 제1 단축 벡터를 트레이닝 세트로 추가(S520)할 수 있다. 예컨대, 전자 장치(10)는 제1 단축 벡터의 커버리지가 타겟 커버리지와 일치하는 경우 및 타겟 커버리지보다 작은 경우에 따라 서로 상이하게 제1 단축 벡터를 트레이닝 세트로 추가할 수 있다. 트레이닝 세트는, 추정 모델을 학습시키기 위한 학습 데이터일 수 있다. 이 후, 전자 장치(10)는 트레이닝 세트에 기반하여 추정 모델을 학습(S530)시킬 수 있다.
전자 장치(10)는 추정 모델을 학습시킨 횟수가 기설정된 횟수보다 작은지 여부를 식별(S540)할 수 있으며, 기설정된 횟수보다 작은 경우에는, 학습된 추정 모델에 기반하여 새로운 제1 단축 벡터를 생성할 수 있다. 전자 장치(10)는 추정 모델을 학습시킨 횟수가 기설정된 횟수보다 큰 경우에는 제1 검증 벡터를 출력(S550)할 수 있다. 제1 검증 벡터는, 기설정된 횟수만큼 생성한 제1 단축 벡터들 중에서 유휴 커맨드들의 반복 횟수가 가장 적고 커버리지가 타겟 커버리지를 갖는 제1 단축 벡터일 수 있다.
도 11은 본 개시의 예시적인 실시예에 따른 양산된 반도체 장치에 대한 검증 방법을 설명하기 위한 흐름도이다.
도 11을 참조하면, 반도체 장치가 양산되고(S610), 본 개시의 실시 예들에 따른 전자 장치는 반도체 장치의 검증에 적합한 적어도 하나의 검증 벡터를 생성할 수 있다(S620). 전자 장치(도 2의 10)는 테스트 장비의 전부 또는 일부일 수 있다. 일 실시 예로, 테스트 장비는 외부로부터 적어도 하나의 검증 벡터를 생성하기 위한 입력 벡터를 수신할 수 있다. 테스트 장비는 적어도 하나의 검증 벡터를 이용하여 양산된 반도체 장치를 검증할 수 있다(S630).
도 12는 본 개시의 일 실시 예에 따른 회로 디자인 시스템을 설명하기 위한 블록도이다.
도 12를 참조하면, 회로 디자인 시스템(1000)은 프로세서(1100), 디자인 모듈(1210), 검증 벡터 생성 모듈(1220), 디자인 검증 모듈(1230), 메모리(1300) 및 스토리지(1400)를 포함할 수 있다. 디자인 검증 모듈(1230)은 디자인 검증기(Design Verifier)로 칭할 수도 있다. 도 12에서는 하나의 프로세서(1100)만을 도시하였으나, 더 많은 프로세서들이 구비될 수 있다. 디자인 모듈(1210)은 프로세서(1100)를 이용하여 회로 디자인을 생성할 수 있다. 검증 벡터 생성 모듈(1220)은 프로세서(1100)를 이용하여 전술한 실시 예들에 따른 추정 모델 학습을 수행할 수 있다. 디자인 검증 모듈(1230)은 프로세서(1100)를 이용하여 추정 모델 학습을 통해 결정된 적어도 하나의 검증 벡터를 회로 디자인에 입력하고, 회로 디자인의 출력을 분석함으로써 회로 디자인을 검증할 수 있다. 메모리(1300)는 디자인 모듈(1210), 검증 벡터 생성 모듈(1220) 및 디자인 검증 모듈(1230)이 프로세서(1100)를 이용하여 회로 디자인을 생성, 검증 벡터를 결정, 회로 디자인을 검증하기 위해 필요한 데이터를 저장할 수 있다. 검증된 회로 디자인은 스토리지(1400)에 저장될 수 있다.
'모듈'이라는 용어는 소프트웨어 또는 FPGA(Field Programmable Gate Array)또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '모듈'은 어떤 역할들을 수행한다. 그렇지만 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈'은 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈'들로 결합되거나 추가적인 구성요소들과 '모듈'들로 더 분리될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 제1 회로 블록 및 제2 회로 블록이 포함된 반도체 회로를 검증하기 위한 검증 벡터를 생성하는 전자 장치에 있어서,
    복수의 커맨드들을 포함하는 제1 입력 벡터를 수신하고, 상기 제1 입력 벡터에 대해 시뮬레이션 동작을 수행하여 획득한 상기 제1 회로 블록의 상태 천이를 기반으로, 동일한 상태 천이를 발생시키는 복수의 커맨드들 각각을 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 중복 커맨드 제거기;
    상기 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 감소시킨 제1 단축 벡터를 제공하는 단축 벡터 생성기; 및
    복수의 제1 단축 벡터들 중 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 제1 검증 벡터로써 출력하는 검증 벡터 생성기를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 단축 벡터에 포함된 상기 유휴 커맨드들의 개수 및 상기 제1 단축 벡터의 커버리지에 기초하여, 제1 검증 벡터를 추정하기 위한 추정 모델(estimation model)을 학습하고, 학습된 상기 추정 모델에 기반하여 제1 검증 벡터를 출력하는 검증 벡터 생성기를 포함하는 전자 장치.
  3. 제2항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 단축 벡터의 커버리지가 상기 타겟 커버리지와 일치한 경우에는 제1 함수에 따른 제1 함수 값을 생성하고, 상기 제1 단축 벡터의 커버리지가 상기 타겟 커버리지보다 작은 경우에는 제2 함수에 따른 제2 함수 값을 생성하며, 상기 제1 함수 값 및 상기 제2 함수 값을 갖는 상기 추정 모델을 학습하는 것을 특징으로 하는 전자 장치.
  4. 제3항에 있어서,
    상기 검증 벡터 생성기는,
    베이지안 최적화(Bayesian optimization)를 수행함으로써 상기 추정 모델 상에서 생성된 제1 함수 값들 중 유휴 커맨드들의 개수가 가장 적은 제1 함수 값이 도출된 상기 제1 단축 벡터를 상기 제1 검증 벡터로써 출력하는 것을 특징으로 하는 전자 장치.
  5. 제3항에 있어서,
    상기 제1 함수는,
    상기 유휴 커맨드들의 개수가 적을수록 감소하는 제1 함수 값을 가지며,
    상기 제2 함수는,
    상기 유휴 커맨드들의 개수와 무관하게, 상기 제1 함수 값 보다 큰 상수 값을 가지는 것을 특징으로 하는 전자 장치.
  6. 제3항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 단축 벡터를 상기 제1 회로 블록 상에서 시뮬레이팅하여 상기 제1 단축 벡터의 커버리지를 획득하며,
    상기 제1 단축 벡터의 커버리지는, 상기 제1 단축 벡터가 상기 제1 회로 블록에 입력된 경우 발생 가능한 상태 천이 개수를, 상기 제1 회로 블록에서 발생 가능한 모든 상태 천이 개수로 나눈 값이며,
    상기 타겟 커버리지의 값은, 1 인 것을 특징으로 하는 전자 장치.
  7. 제2항에 있어서,
    상기 단축 벡터 생성기는,
    학습된 상기 추정 모델에 기반하여, 획득 함수(acquisition function) 상에서 확률이 가장 높은, 상기 제1 단축 벡터 내의 유휴 커맨드들 개수를 제1 값으로 식별하고, 상기 제1 값에 기초하여 상기 유휴 커맨드들의 반복 횟수를 감소시키는 것을 특징으로 하는 전자 장치.
  8. 제2항에 있어서,
    상기 검증 벡터 생성기는,
    복수의 제1 단축 벡터들을 기설정된 횟수로 수신하고, 상기 복수의 제1 단축 벡터들에 기반하여 상기 추정 모델을 상기 기설정된 횟수로 학습하는 것을 특징으로 하는 전자 장치.
  9. 제1항에 있어서,
    상기 중복 커맨드 제거기는,
    복수의 동일한 상태 천이들 중에서, 가장 먼저 발생된 상태 천이를 제외한 나머지 상태 천이들에 대응되는 커맨드들 각각을 상기 유휴 커맨드로 변경하는 것을 특징으로 하는 전자 장치.
  10. 제9항에 있어서,
    상기 복수의 동일한 상태 천이들은,
    상기 제1 입력 벡터를 상기 제1 회로 블록 상에서 시뮬레이팅하여 획득된 시뮬레이션 로그(simulation log)에 기록된 것을 특징으로 하는 전자 장치.
  11. 제10항에 있어서,
    상기 시뮬레이션 로그는,
    상기 제1 입력 벡터에 포함된 커맨드, 상기 제1 입력 벡터에 포함된 커맨드가 상기 제1 회로 블록 상에서 시뮬레이팅된 시간, 상기 제1 입력 벡터에 포함된 커맨드에 응답하여 발생된 상기 제1 회로 블록의 상태 천이 및 상기 상태 천이가 발생한 시간 중 적어도 하나가 기록된 것을 특징으로 하는 전자 장치.
  12. 제1항에 있어서,
    상기 단축 벡터 생성기는,
    상기 유휴 커맨드들의 반복 횟수 및 상기 유휴 커맨드들의 발생 시간에 기초하여 반복되는 유휴 커맨드들을 식별하는 것을 특징으로 하는 전자 장치.
  13. 제1항에 있어서,
    상기 제1 검증 벡터를 이용하여 상기 제1 회로 블록에 대한 디자인 검증을 수행하도록 구성된 디자인 검증기를 더 포함하는 것을 특징으로 하는 전자 장치.
  14. 제1항에 있어서,
    상기 제1 입력 벡터는, 상기 제1 회로 블록을 검증하는 제1 입력 벡터 세트에 포함되며, 상기 제1 회로 블록은, 상기 제2 회로 블록과 상이한 기능을 수행하는 것을 특징으로 하는 전자 장치.
  15. 제1 회로 블록 및 제2 회로 블록이 포함된 반도체 회로를 검증하기 위한 검증 벡터를 생성하는 전자 장치에 있어서,
    복수의 커맨드들을 포함하는 제1 입력 벡터를 수신하고, 상기 제1 입력 벡터에 포함된 복수의 커맨드들 중 적어도 일부를 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 중복 커맨드 제거기;
    상기 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 감소시킨 제1 단축 벡터를 제공하는 단축 벡터 생성기; 및
    상기 제1 단축 벡터에 포함된 상기 유휴 커맨드들의 개수 및 상기 제1 단축 벡터의 커버리지에 기초하여, 제1 검증 벡터를 추정하기 위한 추정 모델(estimation model)을 학습하고, 학습된 상기 추정 모델에 기반하여 복수의 제1 단축 벡터들 중에서 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 상기 제1 검증 벡터로써 출력하는 검증 벡터 생성기를 포함하는 전자 장치.
  16. 제15항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 단축 벡터의 커버리지가 상기 타겟 커버리지와 일치한 경우에는 제1 함수에 따른 제1 함수 값을 생성하고, 상기 제1 단축 벡터의 커버리지가 상기 타겟 커버리지보다 작은 경우에는 제2 함수에 따른 제2 함수 값을 생성하며, 상기 제1 함수 값 및 상기 제2 함수 값을 갖는 상기 추정 모델을 학습하는 것을 특징으로 하는 전자 장치.
  17. 제16항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 단축 벡터를 상기 제1 회로 블록 상에서 시뮬레이팅하여 상기 제1 단축 벡터의 커버리지를 획득하는 것을 특징으로 하는 전자 장치.
  18. 제1 회로 블록 및 제2 회로 블록이 포함된 반도체 회로를 검증하기 위한 검증 벡터를 생성하는 전자 장치의 동작 방법에 있어서,
    복수의 커맨드들을 포함하는 제1 입력 벡터를 수신하는 단계;
    상기 제1 입력 벡터에 포함된 복수의 커맨드들 중 적어도 일부를 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 단계;
    상기 제1 변환 벡터에 포함된 유휴 커맨드들의 반복 횟수를 감소시킨 제1 단축 벡터를 제공하는 단계; 및
    복수의 제1 단축 벡터들 중에서 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 제1 검증 벡터로 선택하고, 상기 제1 검증 벡터를 출력하는 단계를 포함하는 동작 방법.
  19. 제18항에 있어서,
    상기 제1 입력 벡터에 포함된 복수의 커맨드들 중 적어도 일부를 유휴 커맨드로 변경한 제1 변환 벡터를 제공하는 단계는,
    상기 제1 입력 벡터에 대해 시뮬레이션 동작을 수행하여 획득한 상기 제1 회로 블록의 상태 천이를 기반으로, 동일한 상태 천이를 발생시키는 복수의 커맨드들 각각을 유휴 커맨드로 변경하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.
  20. 제18항에 있어서,
    유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 제1 검증 벡터로 선택하고, 상기 제1 검증 벡터를 출력하는 단계는,
    상기 제1 단축 벡터에 포함된 상기 유휴 커맨드들의 개수 및 상기 제1 단축 벡터의 커버리지에 기초하여, 상기 제1 검증 벡터를 추정하기 위한 추정 모델을 학습하는 단계; 및
    학습된 상기 추정 모델에 기반하여 유휴 커맨드들의 개수가 가장 적으며 타겟 커버리지와 일치하는 커버리지를 갖는 상기 제1 단축 벡터를 선택하는 단계를 더 포함하는 것을 특징으로 하는 동작 방법.
KR1020190130822A 2019-10-21 2019-10-21 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법 KR20210047127A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190130822A KR20210047127A (ko) 2019-10-21 2019-10-21 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법
US16/915,786 US11669773B2 (en) 2019-10-21 2020-06-29 Electronic devices generating verification vector for verifying semiconductor circuit and methods of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190130822A KR20210047127A (ko) 2019-10-21 2019-10-21 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20210047127A true KR20210047127A (ko) 2021-04-29

Family

ID=75492385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190130822A KR20210047127A (ko) 2019-10-21 2019-10-21 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법

Country Status (2)

Country Link
US (1) US11669773B2 (ko)
KR (1) KR20210047127A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475194B1 (en) * 2020-01-31 2022-10-18 Apex Semiconductor Multi-PVT frequency prediction (multi-PVT FP) for statically timed designs through statistical regression

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2901442B2 (ja) 1992-12-18 1999-06-07 日本電気株式会社 論理回路のテストベクトル生成方法
US5883906A (en) 1997-08-15 1999-03-16 Advantest Corp. Pattern data compression and decompression for semiconductor test system
US6678645B1 (en) 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US6327687B1 (en) 1999-11-23 2001-12-04 Janusz Rajski Test pattern compression for an integrated circuit test environment
US20020093356A1 (en) 2000-11-30 2002-07-18 Williams Thomas W. Intelligent test vector formatting to reduce test vector size and allow encryption thereof for integrated circuit testing
US6745373B2 (en) 2001-02-20 2004-06-01 International Business Machines Corporation Method for insertion of test points into integrated circuit logic designs
US6941497B2 (en) 2002-01-15 2005-09-06 Agilent Technologies, Inc. N-squared algorithm for optimizing correlated events
JP2004355130A (ja) 2003-05-27 2004-12-16 Matsushita Electric Ind Co Ltd 集積回路装置の設計方法および設計装置
KR100558251B1 (ko) 2004-06-16 2006-03-10 학교법인연세대학교 시스템온칩 환경하에서 제로검출 런렝스 코드를 이용한테스트데이터 압축 및 압축해제 방법
JP2007026362A (ja) 2005-07-21 2007-02-01 Canon Inc 論理回路の機能検証システム
US8510105B2 (en) 2005-10-21 2013-08-13 Nokia Corporation Compression and decompression of data vectors
KR100810140B1 (ko) 2005-11-16 2008-03-06 엠텍비젼 주식회사 선택적 테스트 벡터 압축 방법 및 장치
JP2010203937A (ja) 2009-03-04 2010-09-16 Sony Corp テスト装置、テスト方法、およびプログラム

Also Published As

Publication number Publication date
US20210117193A1 (en) 2021-04-22
US11669773B2 (en) 2023-06-06

Similar Documents

Publication Publication Date Title
US11829882B2 (en) System and method for addressing overfitting in a neural network
US11861280B2 (en) Device for generating verification vector for circuit design verification, circuit design system, and reinforcement learning method of the device and the circuit design system
US10963783B2 (en) Technologies for optimized machine learning training
US11455523B2 (en) Risk evaluation method, computer-readable recording medium, and information processing apparatus
US20210064978A1 (en) Information processing device, information processing method, and storage medium
CN114662427B (zh) 一种逻辑系统设计的调试方法及设备
US20200409823A1 (en) Method and apparatus for optimal distribution of test cases among different testing platforms
KR20220038907A (ko) 생성적 대립 신경망(gan) 기반의 데이터 예측 방법, 그리고 이를 구현하기 위한 장치
CN111401472B (zh) 基于深度卷积神经网络的红外目标分类方法和装置
WO2021201823A1 (en) Robust artificial intelligence inference in edge computing devices
CN116089870A (zh) 基于元学习的小样本条件下工业设备故障预测方法及装置
KR20150114795A (ko) 반도체 메모리 장치의 테스트 방법, 테스트 장치, 및 반도체 메모리 장치의 테스트 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체
US11669773B2 (en) Electronic devices generating verification vector for verifying semiconductor circuit and methods of operating the same
KR102271736B1 (ko) 자동화된 기계 학습 방법 및 그 장치
US20210319146A1 (en) Computer Aided Design of Custom Cellular Lattice Kernels According to Material Properties
JP7095467B2 (ja) 訓練データ評価装置、訓練データ評価方法、およびプログラム
CN105117330A (zh) Cnn代码测试方法及装置
WO2020055659A1 (en) Generation and utilization of self-improving data-driven models with selective simulation of 3d object design
JP2020024633A (ja) 訓練データ評価装置、訓練データ評価方法、およびプログラム
US11928562B2 (en) Framework for providing improved predictive model
US20240005160A1 (en) Methods and systems for optimizing a peak memory usage of an artificial neural network graph
US20230350954A1 (en) Systems and methods of filtering topics using parts of speech tagging
CN117312826A (zh) 用于电网线损修复系统的数据分析方法及系统
CN105183646A (zh) Rnn代码测试方法及装置
KR20210136724A (ko) 다중 스케일 예측 손실 함수를 이용한 오디오 신호 학습장치 및 방법