KR20200099252A - 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법 - Google Patents

회로 디자인을 검증하기 위한 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법 Download PDF

Info

Publication number
KR20200099252A
KR20200099252A KR1020190016842A KR20190016842A KR20200099252A KR 20200099252 A KR20200099252 A KR 20200099252A KR 1020190016842 A KR1020190016842 A KR 1020190016842A KR 20190016842 A KR20190016842 A KR 20190016842A KR 20200099252 A KR20200099252 A KR 20200099252A
Authority
KR
South Korea
Prior art keywords
vector
verification
test vector
circuit block
block
Prior art date
Application number
KR1020190016842A
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 KR1020190016842A priority Critical patent/KR20200099252A/ko
Priority to US16/788,924 priority patent/US11281832B2/en
Publication of KR20200099252A publication Critical patent/KR20200099252A/ko
Priority to US17/692,883 priority patent/US11861280B2/en
Priority to US18/511,605 priority patent/US20240086603A1/en

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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Geometry (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 개시의 기술적 사상의 일측면에 따른 제1 회로 블록 및 제2 회로 블록이 포함된 회로 디자인을 검증하는 장치는, 상기 제1 회로 블록에 제1 테스트 벡터를 입력하여 발생한 상기 제1 회로 블록의 상태 천이를 기준으로 결정된 상기 제1 테스트 벡터에 대응하는 커버리지(coverage)를 기반으로 뉴럴 네트워크 연산을 통한 강화 학습(reinforcement learning)을 수행하여 제1 검증 벡터를 결정하고, 상기 제1 검증 벡터를 생성하도록 구성된 검증 벡터 생성기 및 상기 제1 검증 벡터를 이용하여 상기 제1 회로 블록에 대한 디자인 검증을 수행하도록 구성된 디자인 검증기를 포함한다.

Description

회로 디자인을 검증하기 위한 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법{A device for generating verification vector for verifying circuit design, circuit design system including the same and their reinforcement learning method}
본 개시의 기술적 사상은 회로 디자인 검증을 위한 검증 벡터를 생성하는 장치에 관한 것으로, 상세하게는 기계 학습을 통해 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법에 관한 것이다.
디지털 회로 디자인 기술의 복잡화 및 제품의 다양화에 따라 회로 디자인을 검증하는 단계 또한 점점 복잡해지고 있다. 하지만, 현재 회로 디자인 또는 제품 검증 과정은 엔지니어의 경험에 기반한 룰 기반 시나리오(rule based scenario) 검증 방식으로 진행되고 있으며, 회로 디자인 또는 제품별 절대 평가 기준이 존재하지 않는다. 따라서, 회로 디자인 또는 제품의 고도화 및 업체의 사용 변화에 따라 종래의 검증 방식으로는 품질, 성능 등을 보장할 수 없는 상황이 발생 가능하며, 이에 대한 사후 수정 및 테스트를 통해 해결하는 과정에서 생산성의 막대한 손실이 발생할 수 있다.
이러한 문제를 해결하기 위해서 인공 지능 기반 프로세스, 예를 들면, 기계 학습(machine learning) 알고리즘을 도입하여 검증 과정을 효율화하려는 시도가 있었으나, 검증 상황을 평가하기 위하여 수치화된 메트릭(numerical metric)이 없으며, 검증 벡터의 길이, 연산량, 비정형성이 기계 학습 알고리즘의 처리 한계 수준을 넘어서고, 기계 학습을 위한 데이터를 얻는 과정에서 필요한 시뮬레이션(simulation) 비용이 매우 큰 문제가 있었다.
본 발명의 기술적 사상이 해결하려는 과제는, 회로 디자인을 검증하기 위한 검증 벡터를 커버리지라는 평가 기준을 바탕으로 효과적으로 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법을 제공하는 데에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 제1 회로 블록 및 제2 회로 블록이 포함된 회로 디자인을 검증하는 장치는, 상기 제1 회로 블록에 제1 테스트 벡터를 입력하여 발생한 상기 제1 회로 블록의 상태 천이를 기준으로 결정된 상기 제1 테스트 벡터에 대응하는 커버리지(coverage)를 기반으로 뉴럴 네트워크 연산을 통한 강화 학습(reinforcement learning)을 수행하여 제1 검증 벡터를 결정하고, 상기 제1 검증 벡터를 생성하도록 구성된 검증 벡터 생성기 및 상기 제1 검증 벡터를 이용하여 상기 제1 회로 블록에 대한 디자인 검증을 수행하도록 구성된 디자인 검증기를 포함한다.
한편, 본 개시의 기술적 사상의 다른 일측면에 따른 회로 블록이 포함된 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 뉴럴 네트워크 장치의 강화 학습(reinforcement learning) 방법은, 상기 회로 블록에 테스트 벡터를 입력하는 단계, 상기 테스트 벡터에 의한 상기 회로 블록의 상태 천이를 기준으로 결정된 상기 테스트 벡터에 대응하는 커버리지를 기반으로 적어도 하나의 리워드를 생성하는 단계 및 상기 강화 학습에 상기 리워드를 적용하는 단계를 포함한다.
한편, 본 개시의 기술적 사상의 또 다른 일측면에 따른 회로 디자인 시스템은, 적어도 하나의 프로세서, 상기 적어도 하나의 프로세서를 이용하여, DRAM 회로를 디자인하여 MRS(Mode Register Set) 블록 및 커맨드 블록을 포함하는 DRAM 회로 디자인을 생성하도록 구성된 회로 디자인 모듈, 상기 적어도 하나의 프로세서를 이용하여, 상기 MRS 블록의 상태 천이를 발생하는 파라미터에 관한 특성이 반영된 제1 테스트 벡터를 이용한 제1 강화 학습을 수행하고, 상기 커맨드 블록의 상태 천이를 발생하는 파라미터에 관한 특성이 반영된 제2 테스트 벡터를 이용한 제2 강화 학습을 수행하여 상기 MRS 블록의 검증을 위한 제1 검증 벡터 및 상기 커맨드 블록의 검증을 위한 제2 검증 벡터를 생성하도록 구성된 검증 벡터 생성 모듈 및 상기 적어도 하나의 프로세서를 이용하여, 상기 제1 검증 벡터를 이용한 상기 MRS 블록의 검증 및 상기 제2 검증 벡터를 이용한 상기 커맨드 블록의 검증을 수행하도록 구성된 디자인 검증 모듈을 포함한다.
본 발명의 기술적 사상에 따른 뉴럴 네트워크 장치는 테스트 벡터의 커버리지라는 명확한 평가 기준을 기반으로 강화 학습을 수행함으로써 회로 디자인 내의 회로 블록들 각각에 적합한 검증 벡터를 효율적으로 생성할 수 있으며, 테스트 벡터에 데이터 비 손실 압축 기법을 적용하여 연산량의 최소화, 비정형성의 개선되는 효과가 있다.
또한, 본 개시의 기술적 사상에 따른 뉴럴 네트워크 장치는 회로 블록의 검증 특성에 부합하는 강화 학습을 적응적으로 수행함으로써 검증 벡터를 결정하기 위한 시뮬레이션 비용을 최소화할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 검증 벡터를 생성하기 위한 뉴럴 네트워크 시스템을 나타내는 블록도이다.
도 2는 본 개시의 일 실시 예에 따른 검증 벡터 생성기의 동작을 설명하기 위한 블록도이다.
도 3a는 본 개시의 일 실시 예에 따른 커버리지를 설명하기 위한 도면이고, 도 3b는 본 개시의 일 실시 예에 따른 커버리지 기반 리워드 생성 방법을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 강화 학습 시에 테스트 벡터에 적용되는 데이터 비 손실 압축 기법을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 회로 블록의 검증 특성 및 강화 학습 방법을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 검증 벡터 생성기의 동작을 설명하기 위한 블록도이다.
도 7a는 본 개시의 일 실시 예에 따른 MRS 블록의 검증 벡터를 결정하기 위한 강화 학습 동작을 나타내는 순서도이고, 도 7b는 도 7a의 단계 S120의 일 실시 예를 설명하기 위한 순서도이다.
도 8a는 본 개시의 일 실시 예에 따른 근사 모델을 생성하는 방법을 설명하기 위한 도면이고, 도 8b는 본 개시의 일 실시 예에 따라 근사 모델을 이용하여 강화 학습을 수행하는 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시 예에 따라 회로 블록 별로 순차적인 강화 학습을 수행하는 방법을 설명하기 위한 도면이다.
도 10a는 본 개시의 일 실시 예에 따른 커맨드 블록의 검증 벡터를 결정하기 위한 강화 학습 동작을 나타내는 순서도이고, 도 10b는 도 10a의 단계 S220의 일 실시 예를 설명하기 위한 순서도이다.
도 11a는 도 10a의 단계 S230의 일 실시 예를 설명하기 위한 순서도이고, 도 11b 및 도 11c는 본 개시의 일 실시 예에 따른 로그 백-트랙킹 및 리워드 맵핑동작을 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시 예에 따른 시작 테스트 벡터를 생성하는 방법을 설명하기 위한 순서도이다.
도 13은 본 개시의 일 실시 예에 따른 회로 디자인 검증 방법을 설명하기 위한 순서도이다.
도 14는 본 개시의 일 실시 예에 따른 양산된 반도체 장치에 대한 검증 방법을 설명하기 위한 순서도이다.
도 15는 본 개시의 일 실시 예에 따른 회로 디자인 시스템을 설명하기 위한 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 검증 벡터를 생성하기 위한 뉴럴 네트워크 시스템(100)을 나타내는 블록도이다.
뉴럴 네트워크 시스템(100)은 뉴럴 네트워크를 훈련(train)(또는 학습(learn))하거나, 뉴럴 네트워크를 이용하여 입력 데이터를 분석함으로써 입력 데이터에 포함된 정보를 추론(inference)할 수 있다. 뉴럴 네트워크 시스템(100)은 추론된 정보를 기초로 상황 판단을 하거나 또는 뉴럴 네트워크 시스템(100)이 탑재되는 전자 장치의 구성들을 제어할 수 있다. 예컨대, 뉴럴 네트워크 시스템(100)은 회로를 디자인하고, 이를 검증하는 회로 디자인 장치 또는 회로 디자인 시스템 등에 적용될 수 있으며, 이 외에도 뉴럴 네트워크 시스템(100)은 다양한 종류의 전자 장치 중 하나에 탑재될 수 있다. 실시 예에 있어서, 도 1의 뉴럴 네트워크 시스템(100)은 애플리케이션 프로세서일 수 있다.
도 1을 참조하면, 뉴럴 네트워크 시스템(100)은 CPU(Central Processing Unit)(110), 뉴럴 네트워크 장치(120), 메모리(130), 인터페이스(140), 버스(150) 및 GPU(Graphic Processing Unit, 160)를 포함할 수 있다. 뉴럴 네트워크 시스템(100)은 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있으며, 또한 다양한 종류의 프로세서를 더 포함할 수 있다. 일 실시 예에 따라, 뉴럴 네트워크 시스템(100)의 구성들(예컨대, CPU(110), 뉴럴 네트워크 장치(120), 메모리(130) 및 인터페이스(140))중 일부 또는 전부는 하나의 반도체 칩에 형성될 수 있다. 예컨대, 뉴럴 네트워크 시스템(100)은 시스템-온 칩(SoC)으로서 구현될 수 있다. 뉴럴 네트워크 시스템(100)의 구성들은 버스(150)를 통해 서로 통신할 수 있다.
CPU(110)는 뉴럴 네트워크 시스템(100)의 전반적인 동작을 제어한다. CPU(110)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(110)는 메모리(130)와 같은 저장 영역에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다.
예를 들어서, CPU(110)는 응용 프로그램(application)을 실행하고, 응용 프로그램의 실행에 따라 요구되는 뉴럴 네트워크 기반의 태스크들을 수행하도록 뉴럴 네트워크 장치(130)를 제어할 수 있다. 뉴럴 네트워크는 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 등 다양한 종류의 뉴럴 네트워크 모델들 중 적어도 하나를 포함할 수 있다.
GPU(160)는 뉴럴 네트워크 시스템(100)의 연산 동작을 가속화할 수 있다. GPU는 복수의 프로세서 코어들(Multi-Core)을 포함하고, CPU와 PCI-e 및 NVLINK를 통해 다른 GPU(미도시)와 연결되어 동작할 수 있으며, CUDA를 통해 범용 연산 동작을 가속화할 수 있다. GPU(160)는 메모리(130)와 같은 저장 영역에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다.
뉴럴 네트워크 장치(120)는 수신되는 입력 데이터를 기초로 뉴럴 네트워크 연산을 수행할 수 있다. 나아가, 뉴럴 네트워크 장치(120)는 뉴럴 네트워크 연산의 수행 결과를 기초로 정보 신호를 생성할 수 있다. 뉴럴 네트워크 장치(120)는 뉴럴 네트워크 연산 가속기, 코프로세서(coprocessor), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit) 등으로 구현될 수 있다.
한편, 본 실시 예에 따른 뉴럴 네트워크 장치(120)는 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 검증 벡터 생성기(20)를 포함할 수 있다. 일 실시 예에 따른 검증 벡터 생성기(20)는 회로 디자인에 포함된 복수의 회로 블록 각각의 검증에 적합한 검증 벡터들을 커버리지(coverage) 기반 강화 학습(reinforcement learning)을 통해 생성할 수 있다. 커버리지는 회로 블록의 검증에 적합한 검증 벡터를 찾기 위해 이용되는 테스트 벡터의 성능 척도를 나타내는 것으로서, 커버리지는 테스트 벡터가 회로 블록에 입력된 때, 회로 블록의 상태 천이를 기준으로 결정(또는, 연산)될 수 있으며, 커버리지에 대한 구체적인 내용은 도 3a 및 도 3b에서 서술한다.
일 실시 예에 따른 검증 벡터 생성기(20)는 회로 블록에 테스트 벡터를 입력하여 발생한 회로 블록의 상태 천이를 기준으로 결정된 테스트 벡터에 대응하는 커버리지를 기반으로 뉴럴 네트워크 연산을 통한 강화 학습을 수행하여 회로 블록에 적합한 검증 벡터를 결정할 수 있다. 즉, 검증 벡터 생성기(20)는 강화 학습을 통해 평가 기준이 되는 커버리지가 지속적으로 증가하는 방향으로 테스트 벡터가 변경될 수 있도록 커버리지의 변화에 따른 리워드(reward)를 생성하여 강화 학습에 적용할 수 있다. 그 결과, 검증 벡터 생성기(20)는 기준 커버리지 이상의 커버리지와 대응하는 테스트 벡터를 검증 벡터로 결정할 수 있다.
일 실시 예에 따른 검증 벡터 생성기(20)는 강화 학습 시에 이용되는 테스트 벡터의 반복 패턴을 데이터 비 손실 압축 기법(예를 들면, 런-렝쓰 인코딩 기법(Run-length encoding))을 이용하여 압축함으로써 정보 손실을 최소화하고, 기계 학습 모델이 처리 가능한 수준의 데이터 양을 유지할 수 있다. 데이터 비 손실 압축 기법에 대한 구체적인 내용은 도 4에서 서술한다.
일 실시 예에 따른 검증 벡터 생성기(20)는 회로 디자인 내의 회로 블록의 상태 천이를 발생하는 파라미터에 관한 검증 특성에 부합하는 테스트 벡터를 생성할 수 있으며, 검증 벡터 생성기(20)는 회로 블록이 제1 검증 특성을 갖는 경우, 제1 방식의 제1 강화 학습을 수행하고, 회로 블록이 제2 검증 특성을 갖는 경우, 제2 방식의 제2 강화 학습을 수행할 수 있다. 즉, 검증 벡터 생성기(20)는 회로 블록의 검증 특성에 따라서 상이한 강화 학습을 수행함으로써 검증 벡터를 결정하기 위해 소요되는 시간 및 시뮬레이션 비용을 최소화할 수 있다. 회로 블록의 검증 특성에 관한 구체적인 내용은 도 5에서 서술하고, 강화 학습의 다양한 방식과 관한 구체적인 내용은 도 7a 및 도 10a 등에서 서술한다. 또한, 뉴럴 네트워크 장치(120)는 디자인 검증기(미도시)를 더 포함할 수 있으며, 디자인 검증기(미도시)는 검증 벡터 생성기(20)에서 생성된 검증 벡터를 이용하여 회로 디자인에 대한 검증을 수행할 수 있다.
메모리(130)는 뉴럴 네트워크 시스템(100)에서 사용되는 프로그램들 및/또는 데이터를 저장할 수 있다. 메모리(130)는 또한, 뉴럴 네트워크를 위한 연산 파라미터(예를 들면, 리워드 값들, 웨이트 값들, 바이어스 값들 등), 뉴럴 네트워크의 양자화를 위한 파라미터(예를 들면, 스케일 펙터, 바이어스 값들 등), 입력 데이터(예를 들면, 테스트 벡터) 및 출력 데이터(예를 들면, 회로 블록의 상태)를 저장할 수 있다.
메모리(130)는 DRAM(Dynamic random Access Memory)일 수 있으나, 이에 한정되는 것은 아니다. 메모리(130)는 휘발성 메모리(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) 등을 포함한다. 실시 예에 있어서, 메모리(130)는 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 중 적어도 하나를 포함할 수 있다.
인터페이스(140)는 뉴럴 네트워크 시스템(100)이 탑재되는 회로 디자인 장치 또는 회로 디자인 시스템에서 생성된 회로 디자인에 관한 정보를 수신하여, 뉴럴 네트워크 장치(120)에 제공할 수 있다. 뉴럴 네트워크 장치(120)는 회로 디자인에 관한 정보를 이용하여 강화 학습을 위한 시뮬레이션을 수행할 수 있다.
본 개시의 일 실시 예에 따른 뉴럴 네트워크 장치(120)는 테스트 벡터의 커버리지라는 명확한 평가 기준을 기반으로 강화 학습을 수행함으로써 회로 디자인 내의 회로 블록들 각각에 적합한 검증 벡터를 효율적으로 생성할 수 있으며, 테스트 벡터에 데이터 비 손실 압축 기법을 적용하여 연산량의 최소화, 비정형성의 개선되는 효과가 있다. 또한, 뉴럴 네트워크 장치(120)는 회로 블록의 상태 천이를 발생하는 파라미터에 관한 특성에 따라 효율적인 강화 학습을 적응적으로 수행함으로써 시뮬레이션 비용을 최소화할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 검증 벡터 생성기(20)의 동작을 설명하기 위한 블록도이다.
도 2를 참조하면, 검증 벡터 생성기(20)는 액터(22) 및 시뮬레이터(24)를 포함할 수 있으며, 액터(22) 및 시뮬레이터(24)의 구성을 이용하여 회로 블록의 검증에 적합한 검증 벡터를 생성하기 위한 강화 학습을 수행할 수 있다. 액터(22)는 시뮬레이터(24)에 테스트 벡터를 포함하는 액션(AT)을 제공할 수 있다. 시뮬레이터(24)는 소정의 시스템(예를 들면, 회로 디자인)이 로딩되어 있는 상태 또는 환경(environment)으로서 액션(AT)에 영향을 받을 수 있는 인자를 포함할 수 있다. 시뮬레이터(24)는 액션(AT)에 포함된 테스트 벡터를 회로 디자인 내의 적어도 하나의 회로 블록(또는, 대상 회로 블록)에 입력하여 회로 블록의 상태를 출력하는 시뮬레이션 동작을 수행할 수 있다. 시뮬레이터(24)는 테스트 벡터의 입력에 따른 회로 블록의 상태 천이(ST)(또는, 축적된 회로 블록의 상태 천이 히스토리), 및 테스트 벡터에 의해 회로 블록의 새로운 상태 천이가 발생되었는지 여부를 체크하여 체크 결과에 따른 리워드(RW)를 생성하고, 리워드(RW)를 액터(22)에 제공할 수 있다. 일 실시 예로, 시뮬레이터(24)는 테스트 벡터가 회로 블록에 입력되기 전, 강화 학습에 의해 축적된 회로 블록의 상태 천이 히스토리와 테스트 벡터가 입력된 후, 테스트 벡터에 의해 발생한 회로 블록의 상태 천이를 비교할 수 있으며, 비교 결과를 기반으로 양 또는 음의 값을 갖는 리워드(RW)를 생성할 수 있다. 시뮬레이터(24)는 테스트 벡터에 대응하는 커버리지(CV)를 기반으로 가중치가 부여된 리워드(RW)를 생성할 수 있다. 구체적으로, 시뮬레이터(24)는 테스트 벡터에 대응하는 커버리지(CV)와 회로 블록의 상태 천이 히스토리에 대응하는 커버리지 간의 변화 정도에 따라 상이한 리워드(RW)를 생성할 수 있다. 이에 대한 구체적인 내용은 도 3b에서 서술한다.
도 3a는 본 개시의 일 실시 예에 따른 커버리지를 설명하기 위한 도면이고, 도 3b는 본 개시의 일 실시 예에 따른 커버리지 기반 리워드 생성 방법을 설명하기 위한 도면이다.
도 3a를 참조하면, 검증 벡터 생성기(20, 도 2)는 회로 디자인(CD)의 검증을 위한 복수의 검증 벡터들을 생성할 수 있다. 먼저, 회로 디자인(CD)은 회로 블록의 배치 위치, 회로 블록의 용도, 회로 블록의 회로적 특성, 회로 블록의 상태 천이를 발생시키는 파라미터 관련 검증 특성 등에 따라 블록 그룹(BLG_A, BLG_B)이 나뉠 수 있다. 검증 벡터 생성기(20, 도 2)는 블록 그룹(BLG_A, BLG_B)별로 상이한 방식의 강화 학습을 수행할 수 있다. 예를 들면, 검증 벡터 생성기(20, 도 2)는 제1 블록 그룹(BLG_A)의 검증 벡터를 찾기 위한 테스트 벡터의 구성은 제2 블록 그룹(BLG_B)의 검증 벡터를 찾기 위한 테스트 벡터의 구성과 상이할 수 있다. 다만, 검증 벡터 생성기(20, 도 2)는 각각의 블록 그룹(BLG_A, BLG_B)에 대한 강화 학습 수행 시에 평가 기준으로서 동일하게 커버리지를 채용할 수 있다. 도 3a에 도시된 회로 디자인(CD)은 예시적인 실시 예에 불과한 바, 이에 국한되지 않고, 더 많거나, 더 적은 회로 블록들을 포함할 수 있다.
제1 블록 그룹(BLG_A)은 복수의 회로 블록들(BL_A1-BL_A3)을 포함하고, 제2 블록 그룹(BLG_B)은 복수의 회로 블록들(BL_B1-BL_B4)을 포함할 수 있다. 일 실시 예로, 회로 디자인(CD)이 DRAM(Dynamic Ramdom Access Memory) 회로 디자인인 때에, 제1 블록 그룹(BLG_A)은 MRS(Mode Register Set) 값 설정으로 인하여 회로 블록의 상태 천이가 발생하는 MRS 블록들을 포함할 수 있고, 제2 블록 그룹(BLG_B)은 커맨드들의 입력을 통해 회로 블록의 상태 천이가 발생하는 커맨드 블록들을 포함할 수 있다. 회로 디자인(CD)이 DRAM 회로 디자인인 때에, 이에 대한 검증 벡터 생성 방법은 도 5에서 구체적으로 서술한다. 다만, 이는 예시적인 내용에 불과하며, 이에 국한되지 않고, 본 개시의 사상은 다양한 종류의 회로 디자인들의 검증 벡터를 결정하는 강화 학습에 모두 적용될 수 있다.
이하에서는, 제1 블록 그룹(BLG_A) 내의 제3 회로 블록(BL_A3)이 강화 학습 대상임을 가정하여 서술한다. 제3 회로 블록(BL_A3)은 복수의 로직 회로들(LC1-LC5)을 포함할 수 있다. 제3 회로 블록(BL_A3)의 상태는 복수의 로직 회로들(LC1-LC5)의 입력 또는 출력으로 정의될 수 있으며, 구체적으로, 제3 회로 블록(BL_A3)의 상태는 제1 로직 회로(LC1)의 입력(IN1), 제2 로직 회로(LC2)의 입력(IN2), 제4 로직 회로(LC4)의 입력(IN3), 제4 로직 회로(LC4)의 출력(Q1) 및 제5 로직 회로(LC5)의 출력(Q2)으로 정의될 수 있다. 제3 회로 블록(BL_A3)의 가능한 상태 천이들은 테이블(ST_TB)에 정리된 바와 같이 32가지를 가질 수 있다. 다만, 제3 회로 블록(BL_A3)은 디자인 의도상 발생 가능하지 않은 상태 천이를 가질 수 있으며, 이러한 경우는 커버리지를 연산할 때에 고려될 수 있다. 본 개시의 실시 예들에 따른 커버리지는 회로 블록 단위로 결정될 수 있으며, 커버리지는 회로 블록 내의 하나의 노드의 상태 천이만을 관찰하여 결정되는 것이 아니라, 회로 블록 내의 로직 회로들의 입력들 또는 출력들 중 일부 또는 전부로 구성된 조합의 변화를 관찰하여 결정될 수 있다.
일 실시 예로, MRS 블록의 경우, MRS 블록의 상태는 MRS 블록 내의 MRS 값이 설정되는 로직 회로들의 입력들 또는 출력들에 의해 정의될 수 있다. 또한, 커맨드 블록의 경우, 커맨드 블록의 상태는 커맨드 블록 내의 카운터(예를 들면, DRAM인 경우 리프레시 카운터), 리드 명령어 FIFO, 라이트 명령어 FIFO 등을 구성하는 로직 회로들의 입력들 또는 출력들에 의해 정의될 수 있다.
커버리지는 테스트 벡터가 회로 블록에 입력된 때, 회로 블록에서 새로운 상태 천이가 발생하였는지 여부를 나타낼 수 있으며, 검증 벡터 생성기(20, 도 2)는 이러한 커버리지가 기준 커버리지에 점점 도달하여, 결국에는 기준 커버리지 이상이 될 때까지 커버리지 기반 강화 학습을 수행할 수 있다. 기준 커버리지는 미리 설정될 수 있으며, 회로 디자인 검증 환경, 회로 디자인의 종류에 따라 상이하게 설정될 수 있다. 본 명세서에서 서술되는 테스트 벡터에 대응하는 커버리지는 테스트 벡터가 회로 블록에 입력되어 발생된 새로운 상태 천이의 개수와 테스트 벡터가 입력되기 전 강화 학습에 의해 축적된 회로 블록의 상태 천이 히스토리의 중복되지 않은 상태 천이 개수를 합한 값에 회로 블록의 가능한 모든 상태 천이 개수를 나눈 값임을 가정한다. 다만, 이는 예시적인 실시 예에 불과한 바, 이에 국한되지 않고, 커버리지는 본 개시의 사상이 반영될 수 있는 다양한 수식으로 연산될 수 있다.
이에 대한 구체적인 설명을 위하여, 도 3b를 더 참조하면, 제1 케이스(Case_1)에서 검증 벡터 생성기(20, 도 2)는 N번째 테스트 벡터(Test_VectorN)를 제3 회로 블록(BL_A3)에 입력한 때에, 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN-1)와 비교하여, 새로운 두 개의 상태 천이들(ST_TVN)이 발생할 수 있다. N번째 테스트 벡터(Test_VectorN)가 제3 회로 블록(BL_A3)에 입력되기 전, 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN-1)는 4개의 상태 천이들을 포함할 수 있으나, '0 0 1 0 1'은 중복된 상태 천이에 해당하기 때문에 3개의 중복되지 않은 상태 천이들을 포함할 수 있다. 이에 따라, 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN-1)에 대응하는 커버리지(CVN-1)는 '3/32'의 값을 가질 수 있다. N번째 테스트 벡터(Test_VectorN)에 대응하는 커버리지(CVN)는 N번째 테스트 벡터(Test_VectorN)에 의해 발생한 새로운 상태 천이들(ST_TVN)의 개수(2개)와 상태 천이 히스토리(ST_HistoryN-1)의 중복되지 않은 상태 천이들의 개수(3개)를 합한 값에서 제3 회로 블록(BL_A3)의 가능한 모든 상태 천이들의 개수(32)를 나눈 값인 '5/32'를 가질 수 있다. N번째 테스트 벡터(Test_Vector-N)에 대응하는 커버리지(CVN)는 종전 커버리지(CVN-1)보다 증가하였으므로, 검증 벡터 생성기(20, 도 2)는 양의 값을 갖는 리워드(RWN)를 생성하여 강화 학습에 적용할 수 있다. 더 나아가, 검증 벡터 생성기(20, 도 2)는 N번째 테스트 벡터(Test_VectorN)에 대응하는 커버리지(CVN)와 종전 커버리지(CVN-1)간의 변화량에 비례하는 값을 갖는 리워드(RWN)를 생성할 수 있다.
제2 케이스(Case_2)에서 검증 벡터 생성기(20, 도 2)는 N+1번째 테스트 벡터(Test_VectorN+1)를 제3 회로 블록(BL_A3)에 입력한 때에, 발생한 제3 회로 블록(BL_A3)의 상태 천이(ST_TVN + 1)는 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN)와 비교하여, 중복되는 것일 수 있다. N+1번째 테스트 벡터(Test_VectorN+1)가 제3 회로 블록(BL_A3)에 입력되기 전, 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN)는 6개의 상태 천이들을 포함할 수 있으나, '0 0 1 0 1'은 중복된 상태 천이에 해당하기 때문에 5개의 중복되지 않은 상태 천이들을 포함할 수 있다. 이에 따라, 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN)에 대응하는 커버리지(CVN)는 '5/32'의 값을 가질 수 있다. N+1번째 테스트 벡터(Test_VectorN+1)에 대응하는 커버리지(CVN+1)는 N+1번째 테스트 벡터(Test_VectorN+1)에 의해 새로 발생한 상태 천이가 없기 때문에, 종전의 커버리지(CVN)와 동일한 값인'5/32'를 가질 수 있다. N+1번째 테스트 벡터(Test_Vector-N+1)에 대응하는 커버리지(CVN+1)는 종전 커버리지(CVN)와 동일하기 때문에, 검증 벡터 생성기(20, 도 2)는 음의 값을 갖는 리워드(RWN+1)를 생성하여 강화 학습에 적용할 수 있다.
제3 케이스(Case_3)에서 검증 벡터 생성기(20, 도 2)는 N+2번째 테스트 벡터(Test_VectorN+2)를 제3 회로 블록(BL_A3)에 입력한 때에, 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN+1)와 비교하여, 새로운 한 개의 상태 천이(ST_TVN+2)이 발생할 수 있다. N+2번째 테스트 벡터(Test_VectorN + 2)가 제3 회로 블록(BL_A3)에 입력되기 전, 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN+1)는 7개의 상태 천이들을 포함할 수 있으나, '0 0 1 0 1' 및 '0 0 1 1 1'은 중복된 상태 천이에 해당하기 때문에 5개의 중복되지 않은 상태 천이들을 포함할 수 있다. 이에 따라, 제3 회로 블록의 상태 천이 히스토리(ST_HistoryN+1)에 대응하는 커버리지(CVN)는 '5/32'의 값을 가질 수 있다. N+2번째 테스트 벡터(Test_VectorN + 2)에 대응하는 커버리지(CVN+2)는 N+2번째 테스트 벡터(Test_VectorN + 2)에 의해 발생한 새로운 상태 천이(ST_TVN + 2)의 개수(1개)와 상태 천이 히스토리(ST_HistoryN+1)의 중복되지 않은 상태 천이들의 개수(5개)를 합한 값에서 제3 회로 블록(BL_A3)의 가능한 모든 상태 천이들의 개수(32)를 나눈 값인 '6/32'를 가질 수 있다. N+2번째 테스트 벡터(Test_Vector-N+2)에 대응하는 커버리지(CVN+2)는 종전 커버리지(CVN+1)보다 증가하였으므로, 검증 벡터 생성기(20, 도 2)는 양의 값을 갖는 리워드(RWN+2)를 생성하여 강화 학습에 적용할 수 있다. 더 나아가, 검증 벡터 생성기(20, 도 2)는 N+2번째 테스트 벡터(Test_VectorN+2)에 대응하는 커버리지(CVN+2)와 종전 커버리지(CVN+1)간의 변화량에 비례하는 값을 갖는 리워드(RWN+2)를 생성할 수 있다. 이 때, 제1 케이스(Case_1)의 리워드(RWN)는 제3 케이스(Case_3)의 리워드(RWN+2)보다 큰 값을 가질 수 있다.
도 3b에서 서술한 방식과 같이, 검증 벡터 생성기(20, 도 2)는 커버리지가 기준 커버리지 이상이 될 때까지 커버리지 기반 강화 학습을 수행할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 강화 학습 시에 테스트 벡터에 적용되는 데이터 비 손실 압축 기법을 설명하기 위한 도면이다. 이하에서는, 테스트 벡터는 복수의 커맨드들을 포함하는 것을 가정하여 서술한다.
도 4를 참조하면, 테스트 벡터(VVa)는 시간 축으로 나열된 복수의 커맨드들(CMD_11, CMD_12, CMD_13, CMD_21, CMD_31, CMD_32) 및 각 커맨드들(CMD_11, CMD_12, CMD_13, CMD_21, CMD_31, CMD_32)에 대응하는 클록 신호(CLK)를 포함할 수 있다. 'CMD_11'커맨드, 'CMD_12'커맨드, 'CMD_13'커맨드는 '1 1 0 0 0 1'의 동일한 값을 갖는 반복 커맨드이고, 'CMD_31', 'CMD_32'는 '1 1 0 0 1 0'의 동일한 값을 갖는 반복 커맨드일 수 있다. 즉, 테스트 벡터(VVa)에는 연속으로 반복되는 커맨드들을 포함할 수 있으며, 이러한 반복되는 커맨드들은 검증 벡터를 찾기 위한 강화 학습 시에 연산량을 비효율적으로 증가시키는 요인이 될 수 있다.
일 실시 예에 따른 검증 벡터 생성기(20, 도 1)는 이러한 테스트 벡터(VVa)에 대한 데이터 비 손실 압축 기법을 적용하여 압축된 테스트 벡터(VVb)를 생성할 수 있다. 일 예로, 검증 벡터 생성기(20, 도 1)는 런-렝쓰 인코딩 기법을 이용하여 테스트 벡터(VVa)를 인코딩함으로써 압축된 테스트 벡터(VVb)를 생성할 수 있다.
압축된 테스트 벡터(VVb)는 각각 상이한 복수의 커맨드들(CMD_1, CMD_2, CMD_3) 및 각 커맨드들(CMD_1, CMD_2, CMD_3)의 반복 횟수(NR)를 포함할 수 있다. 검증 벡터 생성기(20, 도 1)는 본 개시의 사상에 따른 강화 학습을 수행할 때에, 압축된 테스트 벡터(VVb)를 이용하여 강화 학습 연산의 로드를 줄일 수 있다.
도 5는 본 개시의 일 실시 예에 따른 회로 블록의 검증 특성 및 강화 학습 방법을 설명하기 위한 도면이다. 이하에서 서술되는 회로 디자인(CD)은 DRAM 회로 디자인인 것을 가정하여 서술하나, 이는 예시적인 실시 예에 불과한 바, 이에 국한되지 않고, 다양한 회로 디자인들의 검증 벡터를 결정할 때에, 본 개시의 사상이 적용될 수 있음은 분명하다.
도 5를 참조하면, 회로 디자인(CD)는 제1 내지 제3 타겟 그룹(TG1-TG3)을 포함할 수 있다. 제1 타겟 그룹(TG1)은 제1 MRS 블록(BL_1A) 및 이와 연결된 제1 커맨드 블록(BL_1B)을 포함하고, 제2 타겟 그룹(TG2)은 제2 MRS 블록(BL_2A) 및 이와 연결된 제2 커맨드 블록(BL_2B)을 포함하며, 제3 타겟 그룹(TG3)은 제3 MRS 블록(BL_3A) 및 이와 연결된 제3 커맨드 블록(BL_3B)을 포함할 수 있다.
일 실시 예로, 검증 벡터 생성기(20, 도 1)는 제1 내지 제3 타겟 그룹(TG1-TG3) 각각에 적합한 검증 벡터들을 결정하기 위한 강화 학습을 순차적 또는 병렬적으로 수행할 수 있다. 또한, 검증 벡터 생성기(20, 도 1)는 회로 블록의 상태 천이를 발생시키는 파라미터 관련 검증 특성에 따라 타겟 그룹(TG1-TG3) 내의 회로 블록들에 대한 검증 벡터의 결정 순서를 정할 수 있다. 검증 벡터 생성기(20, 도 1)는 제1 타겟 그룹(TG1)에 대한 강화 학습을 수행할 때에, 우선적으로 제1 MRS 블록(BL_1A)의 검증 벡터를 먼저 결정하기 위한 강화 학습을 수행하고, 제1 MRS 블록(BL_1A)에 결정된 검증 벡터가 입력된 상태에서 제1 커맨드 블록(BL_1B)의 검증 벡터를 결정하기 위한 강화 학습을 수행할 수 있다. 그 이유는, 제1 커맨드 블록(BL_1B)의 상태는 제1 MRS 블록(BL_1A)에 설정된 MRS 값들에 의존(dependent)하는 경향이 있기 때문이다. 또한, 검증 벡터 생성기(20, 도 1)는 검증 특성 별로 상이한 강화 학습 방식을 적용함으로써, 효율적으로 각 회로 블록들의 검증 벡터들을 결정할 수 있다.
일 실시 예로, 검증 벡터 생성기(20, 도 1)는 각각의 회로 블록들(BL_1A-BL_3A, BL_1B-BL_3B)의 검증 벡터를 결정하기 위해 이용되는 기준 커버리지를 각각의 회로 블록들(BL_1A-BL_3A, BL_1B-BL_3B)에 개별적으로 설정하거나, 특정 회로 블록들끼리는 동일한 기준 커버리지를 설정할 수 있다.
일 예로, 검증 벡터 생성기(20, 도 1)는 제1 내지 제3 MRS 블록(BL_1A-BL_3A)의 검증 벡터를 결정하기 위한 강화 학습을 개별적으로 수행할 수 있다. 일 예로, 제1 MRS 블록(BL_1A)의 제1 검증 벡터를 결정하기 위한 강화 학습 수행 시, 테스트 벡터에 대응하는 커버리지가 제1 기준 커버리지 이상인 때에, 테스트 벡터를 제1 검증 벡터로 결정하고, 제2 MRS 블록(BL_2A)의 제2 검증 벡터를 결정하기 위한 강화 학습 수행 시, 테스트 벡터에 대응하는 커버리지가 제2 기준 커버리지 이상인 때에, 테스트 벡터를 제2 검증 벡터로 결정하고, 제3 MRS 블록(BL_3A)의 제3 검증 벡터를 결정하기 위한 강화 학습 수행 시, 테스트 벡터에 대응하는 커버리지가 제3 기준 커버리지 이상인 때에, 테스트 벡터를 제3 검증 벡터로 결정할 수 있다. 이 때, 제1 기준 커버리지, 제2 기준 커버리지 및 제3 기준 커버리지는 각각 동일 또는 상이할 수 있다.
다른 예로, 검증 벡터 생성기(20, 도 1)는 제1 내지 제3 MRS 블록(BL_1A-BL_3A)의 검증 벡터를 결정하기 위한 강화 학습들 중 적어도 두 개의 강화 학습들이 서로 연관되도록 수행할 수 있다. 즉, 제1 MRS 블록(BL_1A)의 제1 검증 벡터를 결정하기 위한 강화 학습 수행 시 테스트 벡터에 대응하는 커버리지, 제2 MRS 블록(BL_2A)의 제2 검증 벡터를 결정하기 위한 강화 학습 수행 시 테스트 벡터에 대응하는 커버리지, 및 제3 MRS 블록(BL_3A)의 제3 검증 벡터를 결정하기 위한 강화 학습 수행 시 테스트 벡터에 대응하는 커버리지의 평균 연산한 값이 하나의 기준 커버리지 이상인 때에, 제1 내지 제3 MRS 블록(BL_1A-BL_3A)의 검증 벡터를 결정할 수 있다. 상기 평균 연산은 산술 평균(arithmetic mean), 기하 평균(geometric mean), 조화 평균(harmonic mean), 가중치 평균(weighted mean) 등의 평균 연산 기법 중 어느 하나에 해당할 수 있다.
위의 예시들의 바탕이 되는 본 개시의 사상은 제1 내지 제3 커맨드 블록(BL_1B-BL_3B)의 검증 벡터를 결정하기 위한 강화 학습에도 적용될 수 있으며, 더 나아가, 다른 종류의 회로 블록들, 회로 디자인들에도 적용될 수 있음은 분명하다.
도 6은 본 개시의 일 실시 예에 따른 검증 벡터 생성기(200)의 동작을 설명하기 위한 블록도이다. 이하에서 서술되는 검증 벡터 생성기(200)는 DRAM 회로 디자인에 대한 검증 벡터를 결정하기 위한 강화 학습을 수행할 수 있다. 다만, 이는 예시적인 실시 예에 불과한 바, 이에 국한되지 않고, 검증 벡터 생성기(200)는 다양한 회로 디자인들에 대한 검증 벡터를 결정하기 위한 강화 학습을 수행할 수 있다.
도 6을 참조하면, 검증 벡터 생성기(200)는 MRS 설정기(210), 시뮬레이터(220), 에뮬레이터(230) 및 커맨드 생성기(240)를 포함할 수 있다. MRS 설정기(210)는 MRS 블록에 대한 강화 학습을 수행하기 위해 필요한 테스트 벡터를 생성 또는 변경할 수 있다. 즉, MRS 설정기(210)는 MRS 블록에 설정 가능한 MRS 값들을 포함하는 테스트 벡터를 생성하여, 시뮬레이터(220) 및 에뮬레이터(230) 중 적어도 하나에 제공할 수 있다. 또한, MRS 설정기(210)는 강화 학습을 통해 축적된 리워드들및 각 리워드들에 대응하는 MRS 값 변경 패턴 정보에 기반하여 테스트 벡터에 대응하는 커버리지가 향상되는 방향으로 테스트 벡터에 포함된 MRS 값들 중 적어도 하나를 변경할 수 있다. 정리하면, MRS 설정기(210)는 강화 학습을 기반으로 테스트 벡터를 변경할 때에, 테스트 벡터에 포함된 MRS 값들 중 적어도 하나의 값을 변경할 수 있다.
일 실시 예로, 시뮬레이터(220)는 MRS 설정기(210)로부터 테스트 벡터를 수신하여 MRS 블록에 입력하는 시뮬레이션 동작을 수행하고, 이때 발생하는 MRS 블록의 상태 천이 관련 정보 및 이를 기준으로 결정된 테스트 벡터에 대응하는 커버리지를 기반으로 생성된 리워드를 MRS 설정기(210)에 제공할 수 있으며, 생성된 리워드는 MRS 블록의 강화 학습에 적용될 수 있다. 즉, MRS 설정기(210)는 도 2의 액터(22)의 동작을 수행함으로써 MRS 블록에 대한 강화 학습을 수행할 수 있다.
다른 실시 예로, 에뮬레이터(230)는 MRS 설정기(210)로부터 가능한 모든 MRS 값들을 포함하는 복수의 테스트 벡터들을 수신할 수 있으며, 복수의 테스트 벡터들을 이용하여 근사 모델(232)을 생성할 수 있다. 일 예로, 에뮬레이터(230)는 복수의 테스트 벡터들을 이용하여 MRS 회로 블록의 상태 천이 트렌드를 지도 학습 알고리즘(supervised learning algorithm)을 기반으로 한 기계 학습을 수행함으로써 근사 모델(232)을 미리 생성할 수 있다. 에뮬레이터(230)는 복수의 MRS 블록들에 부합하는 하나의 근사 모델을 생성하거나, MRS 블록들 각각에 부합하는 복수의 근사 모델을 생성할 수 있다.
근사 모델(232)은 에뮬레이터(230)의 메모리 영역 또는 별도의 메모리 영역에 저장될 수 있다. MRS 설정기(210)는 MRS 블록에 대한 강화 학습을 수행할 때에, 테스트 벡터를 근사 모델(232)에 제공할 수 있으며, 근사 모델(232)로부터 복잡한 연산 없이 테스트 벡터에 대응하는 리워드 및 커버리지 중 적어도 하나를 수신할 수 있다. 즉, 에뮬레이터(230)는 강화 학습에 필요한 연산을 간소화하기 위하여 미리 테스트 벡터가 가질 수 있는 모든 값들에 따른 MRS 블록의 상태 천이의 트렌드를 모델링하여 근사 모델(AM)을 생성할 수 있으며, MRS 설정기(210)는 근사 모델(AM)을 이용하여 MRS 블록에 대한 강화 학습을 쉽고, 빠르게 수행할 수 있다. MRS 블록에 대한 강화 학습의 구체적인 내용은 도 7a에서 서술한다.
커맨드 생성기(240)는 커맨드 블록에 대한 강화 학습을 수행하기 위해 필요한 테스트 벡터를 생성 또는 변경할 수 있다. 즉, 커맨드 생성기(240)는 복수의 커맨드들을 포함하는 테스트 벡터를 생성하여, 시뮬레이터(220) 및 에뮬레이터(230) 중 적어도 하나에 제공할 수 있다. 또한, 커맨드 생성기(240)는 강화 학습을 통해 축적된 리워드들 및 각 리워드들에 대응하는 커맨드 패턴 정보에 기반하여 테스트 벡터에 대응하는 커버리지가 향상되는 방향으로 테스트 벡터에 적어도 하나의 커맨드를 추가할 수 있다. 정리하면, 커맨드 생성기(240)는 강화 학습을 기반으로 테스트 벡터를 변경할 때에, 테스트 벡터에 적어도 하나의 커맨드를 추가할 수 있다.
일 실시 예로, 시뮬레이터(220)는 커맨드 생성기(240)로부터 테스트 벡터를 수신하여 커맨드 블록에 입력하는 시뮬레이션 동작을 수행하고, 이때 발생하는 커맨드 블록의 상태 천이 관련 정보 및 이를 기준으로 결정된 테스트 벡터에 대응하는 커버리지를 기반으로 생성된 리워드를 커맨드 생성기(240)에 제공함으로써, 생성된 리워드는 커맨드 블록의 강화 학습에 적용될 수 있다. 즉, 커맨드 생성기(240)는 도 2의 액터(22)의 동작을 수행함으로써 커맨드 블록에 대한 강화 학습을 수행할 수 있다.
다른 실시 예로, 시뮬레이터(220)는 커맨드 생성기(240)로부터 복수의 커맨드들을 포함하는 시작 테스트 벡터를 수신할 수 있으며, 시작 테스트 벡터를 입력하여 발생한 커맨드 블록의 상태 천이 히스토리를 생성할 수 있다. 이후, 시뮬레이터(220)는 커맨드 블록의 생성된 상태 천이 히스토리를 백-트랙킹(back-tracking)하여 커맨드 별로 리워드를 생성하고, 커맨드 별 리워드 맵핑을 수행할 수 있다. 구체적으로, 상태 천이 히스토리는 시뮬레이션 로그 파일 형식일 수 있으며, 시뮬레이터(220)는 시뮬레이션 로그 파일에 대한 로그 백-트랙킹 기법을 기반으로 커맨드 별 리워드를 생성할 수 있다.
시뮬레이터(220)는 커맨드 별 리워드 맵핑 결과를 커맨드 생성기(240)에 제공할 수 있으며, 커맨드 별 리워드 맵핑 결과는 커맨드 블록의 강화 학습에 적용될 수 있다. 커맨드 생성기(240)는 강화 학습을 기반으로 테스트 벡터에 대응하는 커버리지가 향상되는 방향으로 테스트 벡터에 적어도 하나의 커맨드를 추가할 수 있으며, 추가된 커맨드를 시뮬레이터(220)에 제공할 수 있다. 이후, 시뮬레이터(220)는 추가된 커맨드를 커맨드 블록에 입력하는 시뮬레이션 동작을 수행하고, 이때 발생하는 커맨드 블록의 상태 천이 관련 정보 및 이를 기준으로 결정된 테스트 벡터에 대응하는 커버리지를 기반으로 생성된 리워드를 커맨드 생성기(240)에 제공함으로써, 생성된 리워드는 커맨드 블록의 강화 학습에 적용될 수 있다. 커맨드 블록에 대한 강화 학습의 구체적인 내용은 도 10a에서 서술한다.
도 6에서 서술된 실시 예는 예시적 실시 예로서, 이에 국한되지 않으며, 가능한 모든 커맨드 패턴들을 포함하는 복수의 테스트 벡터들을 이용하여 에뮬레이터(230)로부터 생성된 근사 모델을 이용하여 커맨드 블록의 검증 벡터를 결정하기 위한 강화 학습을 수행할 수 있다. 또한, 다양한 MRS 값들을 갖는 초기 테스트 벡터에 의해 발생한 MRS 블록의 상태 천이 히스토리에 대한 백-트랙킹 동작, MRS 값들별 리워드 맵핑 동작을 수행함으로써 MRS 블록의 검증 벡터를 결정하기 위한 강화 학습을 수행할 수 있다. 더 나아가, 전술한 근사 모델, 백-트랙킹, 리워드 맵핑은 다른 종류의 회로 블록들, 회로 디자인들에 대한 검증 벡터를 결정하기 위한 강화 학습에 이용될 수 있음은 분명하다.
도 7a는 본 개시의 일 실시 예에 따른 MRS 블록의 검증 벡터를 결정하기 위한 강화 학습 동작을 나타내는 순서도이고, 도 7b는 도 7a의 단계 S120의 일 실시 예를 설명하기 위한 순서도이다.
도 7a를 참조하면, 검증 벡터 생성기는 MRS 블록의 검증 벡터를 결정하기 위하여 적어도 하나의 에피소드에 따른 강화 학습을 수행할 수 있다. 먼저, 임의의 M(단, M은 1 이상의 정수)번째 에피소드를 시작으로 검증 벡터 생성기는 제N MRS 값들로 설정된 N번째(단, N은 1 이상의 정수) 테스트 벡터를 생성할 수 있다(S100). 검증 벡터 생성기는 MRS 블록에 N번째 테스트 벡터를 입력하는 시뮬레이션 동작을 수행하고, MRS 블록의 상태 천이를 체크할 수 있다(S110). 검증 벡터 생성기는 N번째 테스트 벡터에 대응하는 커버리지(CVN)(예를 들면, 첫 번째 테스트 벡터부터 N번째 테스트 벡터까지의 누적 커버리지(CVN))가 기준 커버리지(VTH1) 이상인지 여부를 판별할 수 있다(S120).
검증 벡터 생성기는 단계 S120의 판별 결과가 'No'인 때에, N번째 테스트 벡터에 의해 MRS 블록의 새로운 상태 천이가 발생하였는지 여부에 따라 양 또는 음의 값을 갖는 리워드를 생성할 수 있다(S130). 검증 벡터 생성기는 단계 S130의 판별 결과가 'No'인 때에, 현재 N이 기준 횟수(NREF)에 도달하였는지 여부를 판별할 수 있다(S140). 검증 벡터 생성기는 단계 S140의 판별 결과가 'No'인 때에, N을 카운트 업하고(S150), 단계 S130에서 생성된 리워드를 기반으로 단계 S100을 반복하여 수행할 수 있다. 검증 벡터 생성기는 단계 S120의 판별 결과가 'Yes'인 때에, 첫 번째 내지 N번째 테스트 벡터를 검증 벡터로 결정할 수 있다(S160). 검증 벡터 생성기는 단계 S140의 판별 결과가 'Yes'인 때에, 검증 벡터 생성기는 N을 1로 초기화시키고, M을 카운트 업 한 후에(S170), M번째 에피소드를 통해 생성된 리워드들을 이용하여 강화 학습을 수행함으로써 다음 M+1번째 에피소드에 대응하는 강화 학습을 준비할 수 있다. 즉, M번째 에피소드에서 수행된 강화 학습을 기반으로 M+1번째 에피소드에 대응하는 단계 S100 내지 S150을 수행할 수 있다. 일 실시 예로, 강화 학습은 폴리시 그레디언트 등의 방법론이 사용될 수 있다.
N번째 테스트 벡터를 제1 검증 벡터로 결정할 수 있다. 다만, 제1 검증 벡터에 대응하는 커버리지는 기준 커버리지(VTH1) 이상인 조건을 만족하지 못하기 때문에, 검증 벡터 생성기는 제1 검증 벡터를 보완하는 제2 검증 벡터를 결정할 수 있다(S180). 검증 벡터 생성기는 강화 학습을 수행할 때에 생성된 복수의 테스트 벡터들 중 제1 검증 벡터를 보완할 수 있는 테스트 벡터를 제2 검증 벡터로 선택할 수 있다. 다만, 이는 예시적 실시 예에 불과한 바, 이에 국한되지 않고, 제1 검증 벡터를 보안하기 위해 선택되는 테스트 벡터는 복수 개일 수 있다.
도 7b를 참조하면, 도 7a는 제1 MRS 블록에 대한 강화 학습을 나타낸 실시 예일 수 있으며, 검증 벡터 생성기는 제2 MRS 블록 및 제3 MRS 블록에 대한 강화 학습을 병렬적으로 수행할 수 있다. 이 때, 검증 벡터 생성기는 제1 내지 제3 MRS 블록에 대한 커버리지들을 획득할 수 있다(S121). 제1 내지 제3 MRS 블록에 대한 커버리지들은 제1 MRS 블록에 입력되는 소정의 테스트 벡터에 대응하는 커버리지, 제2 MRS 블록에 입력되는 소정의 테스트 벡터에 대응하는 커버리지 및 제3 MRS블록에 입력되는 소정의 테스트 벡터에 대응하는 커버리지를 포함할 수 있다. 검증 벡터 생성기는 제1 내지 제3 MRS 블록에 대한 커버리지들의 평균을 연산할 수 있다(S122). 이후, 연산된 평균 값을 도 7a의 단계 S120에서의 커버리지(CVN)에 적용하여 기준 커버리지(VTH1)와 비교할 수 있다. 이에 대한 내용은 전술한 바, 이하 구체적인 내용은 생략한다.
도 8a는 본 개시의 일 실시 예에 따른 근사 모델을 생성하는 방법을 설명하기 위한 도면이고, 도 8b는 본 개시의 일 실시 예에 따라 근사 모델을 이용하여 강화 학습을 수행하는 방법을 설명하기 위한 도면이다. 이하에서는, 도 6을 참조하여, 도 8a 및 도 8b의 내용을 서술한다.
도 8a를 참조하면, 에뮬레이터(230)는 MRS 설정기(210)로부터 가능한 모든 MRS 값들(MRS_values_1~MRS_values_K)을 포함하는 복수의 테스트 벡터들을 수신할 수 있으며, 모든 MRS 값들(MRS_values_1~MRS_values_K)을 다양한 패턴들에 부합하여 순차적으로 MRS 블록들(BL_1A, BL_2A, BL_3A)에 입력하고, 근사 모델 생성기(234)를 이용하여 MRS 블록들(BL_1A, BL_2A, BL_3A) 각각의 상태 천이의 트렌드를 학습할 수 있다. 일 실시 예로, 근사 모델 생성기(234)는 MRS 블록들(BL_1A, BL_2A, BL_3A)의 상태 천이 트렌드를 폴리시 그레디언트 알고리즘을 기반으로 한 기계 학습을 수행할 수 있으며, 그 결과, MRS 블록들(BL_1A, BL_2A, BL_3A)에 부합하는 근사 모델을 생성할 수 있다. 도 8a에서는 MRS 블록들(BL_1A, BL_2A, BL_3A)에 대한 시뮬레이션을 한번에 수행하여 근사 모델을 생성하는 것을 중심으로 서술하였으나, 이는 예시적인 실시 예에 불과한 바, 이에 국한되지 않고, MRS 블록들(BL_1A, BL_2A, BL_3A) 각각에 대한 개별적인 시뮬레이션을 수행하여 각각에 부합하는 근사 모델들을 생성할 수 있다. 이렇게 생성된 근사 모델은 MRS 블록들(BL_1A, BL_2A, BL_3A) 각각의 검증 벡터를 결정하기 위한 강화 학습에 이용될 수 있다.
도 8b를 참조하면, 에뮬레이터(230)는 도 8a에서 생성된 근사 모델(232)을 저장할 수 있다. MRS 설정기(210)는 MRS 블록의 검증 벡터를 결정하기 위한 강화 학습을 수행할 때에, 제N MRS 값들(MRS_values_N)을 갖는 N번째 테스트 벡터를 에뮬레이터(230)에 제공할 수 있으며, 에뮬레이터(230)는 근사 모델(232)을 참조하여 복잡한 연산 없이 N번째 테스트 벡터에 대응하는 제N 리워드(RW_N)를 생성할 수 있다. 더 나아가, 에뮬레이터(230)는 근사 모델(232)을 참조하여 N번째 테스트 벡터에 대응하는 제N CV_N)을 생성할 수 있으며, 제N 커버리지 변화량(CV_N)을 기반으로 제N 리워드(RW_N)를 생성할 수 있다.
도 9는 본 개시의 일 실시 예에 따라 회로 블록 별로 순차적인 강화 학습을 수행하는 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 검증 대상이 되는 회로 디자인(CD')은 MRS 블록(BL_A) 및 커맨드 블록(BL_B)을 포함할 수 있다. 일 실시 예에 따른 검증 벡터 생성기는 MRS 블록(BL_A)의 검증 벡터를 결정하기 위한 강화 학습을 우선으로 수행할 수 있으며, MRS 블록(BL_A)의 적어도 하나의 검증 벡터를 결정한 후에, 커맨드 블록(BL_B)의 검증 벡터를 결정하기 위한 강화 학습을 수행할 수 있다. 정리하면, 검증 벡터 생성기는 커맨드 블록(BL_B)에 대한 강화 학습을 시작하기 전에, MRS 블록(BL_A)에 결정된 적어도 하나의 검증 벡터를 설정할 수 있으며, 이 후에, 커맨드 블록(BL_B)에 대한 강화 학습을 수행할 수 있다.
도 10a는 본 개시의 일 실시 예에 따른 커맨드 블록의 검증 벡터를 결정하기 위한 강화 학습 동작을 나타내는 순서도이고, 도 10b는 도 10a의 단계 S220의 일 실시 예를 설명하기 위한 순서도이다.
도 10a를 참조하면, 검증 벡터 생성기는 커맨드 블록의 검증 벡터를 결정하기 위하여 적어도 하나의 에피소드에 따른 강화 학습을 수행할 수 있다. 먼저, 임의의 M(단, M은 1 이상의 정수)번째 에피소드를 시작으로 검증 벡터 생성기는 커맨드 블록의 검증 벡터를 결정하기 위하여 T(단, T는 2 이상의 정수)개의 커맨드들을 포함하는 테스트 벡터를 생성할 수 있다(S200). T개의 커맨드들을 포함하는 테스트 벡터는 다양한 실시 예들을 통해 생성될 수 있다. 예를 들면, 테스트 벡터는 단일 커맨드 T개의 순차적 배열로 구성되거나, K(단, K는 T보다 작은 정수)개의 커맨드 집합들의 순차적 배열로 구성되거나, 전문가의 지식에 의해 구성된 것으로 사전에 지정된 형식을 따르도록 설정된 K개 커맨드 집합의 순차적 배열로 구성될 수 있다. 검증 벡터 생성기는 커맨드 블록에 테스트 벡터를 입력하는 시뮬레이션을 수행할 수 있다(S210). T개의 커맨드들은 소정의 패턴을 가질 수 있으며, 시뮬레이션 수행 시에 T개의 커맨드들은 순차적으로 커맨드 블록에 입력될 수 있다. 검증 벡터 생성기는 테스트 벡터에 대응하는 커버리지(CVM)가 기준 커버리지(VTH2) 이상인지 여부를 판별할 수 있다(S220). 일 예로, 테스트 벡터에 대응하는 커버리지(CVM)는 테스트 벡터(또는, T개의 커맨드들)에 의해 발생한 커맨드 블록의 중복되지 않은 상태 천이 개수를 커맨드 블록의 가능한 모든 상태 천이 개수를 나눈 값에 해당될 수 있다. 검증 벡터 생성기는 단계 S220의 판별 결과가 'No'인 때에, 단계 S210에서 생성된 시뮬레이션 결과를 기반으로 T개의 커맨드들에 대한 리워드들을 생성할 수 있다(S230). 테스트 벡터에 포함된 T개의 커맨드들을 순차적으로 커맨드 블록에 입력하여 생성된 시뮬레이션 결과를 이용한 리워드 생성 방법의 실시 예는 도 11a 내지 도 11c에서 구체적으로 서술한다. 이후, 테스트 벡터에 포함된 커맨드 개수(T)가 기준 개수(NOTH)에 도달하였는지 여부를 판별할 수 있다(S240). 단계 S230에 의해 생성된 리워드는 강화 학습에 적용되고, 강화 학습을 기반으로 테스트 벡터에 적어도 하나의 커맨드(또는, 소정의 커맨드 추가 단위만큼의 커맨드)를 추가할 수 있다(S250). 단계 S250에서 테스트 벡터에 추가된 커맨드가 한 개인 때에, 테스트 벡터의 커맨드 개수는 T+1개가 될 수 있고, 단계 S210에서는 추가된 커맨드만을 이용하여 커맨드 블록에 대한 시뮬레이션 동작을 수행할 수 있다. 이후, 테스트 벡터에 대응하는 커버리지(CVM)가 기준 커버리지(VTH2) 이상이 되거나, 테스트 벡터에 포함된 커맨드 개수(T)가 기준 개수(NOTH)에 도달할 때까지 단계 S210~S250을 반복할 수 있다.
단계 S220의 판별 결과가 'Yes'인 때에, 검증 벡터 생성기는 현재 테스트 벡터를 검증 벡터로 결정할 수 있다(S260). 단계 S240의 판별 결과가 'Yes'인 때에, 검증 벡터 생성기는 M을 카운트 업하고(S270), M번째 에피소드를 통해 생성된 리워드들을 이용하여 강화 학습을 수행함으로써 다음 M+1번째 에피소드에 대응하는 강화 학습을 준비할 수 있다. 즉, M번째 에피소드에서 수행된 강화 학습 결과를 기반으로 M+1번째 에피소드에 대응하는 단계 S200 내지 단계 S250을 수행할 수 있다. 일 실시 예로, 강화 학습은 폴리시 그레디언트 등의 방법론이 사용될 수 있다.
도 10b를 참조하면, 도 10a는 제1 커맨드 블록에 대한 강화 학습을 나타낸 실시 예일 수 있으며, 검증 벡터 생성기는 제2 커맨드 블록 및 제3 커맨드 블록에 대한 강화 학습을 병렬적으로 수행할 수 있다. 이 때, 검증 벡터 생성기는 제1 내지 제3 커맨드 블록에 대한 커버리지들을 획득할 수 있다(S221). 제1 내지 제3 커맨드 블록에 대한 커버리지들은 제1 커맨드 블록에 입력되는 소정의 테스트 벡터에 대응하는 커버리지, 제2 커맨드 블록에 입력되는 소정의 테스트 벡터에 대응하는 커버리지 및 제3 커맨드 블록에 입력되는 소정의 테스트 벡터에 대응하는 커버리지를 포함할 수 있다. 검증 벡터 생성기는 제1 내지 제3 커맨드 블록에 대한 커버리지들의 평균을 연산할 수 있다(S222). 이후, 연산된 평균 값을 도 10a의 단계 S220에서의 커버리지(CVM)에 적용하여 기준 커버리지(VTH2)와 비교할 수 있다. 이에 대한 내용은 전술한 바, 이하 구체적인 내용은 생략한다.
도 11a는 도 10a의 단계 S230의 일 실시 예를 설명하기 위한 순서도이고, 도 11b 및 도 11c는 본 개시의 일 실시 예에 따른 로그 백-트랙킹 및 리워드 맵핑동작을 설명하기 위한 도면이다. 이하에서, 도 10a의 T는 5인 것을 가정하여 서술한다.
도 11a 및 도 11b를 참조하면, 시뮬레이터(220)는 테스트 벡터에 포함된 트레이스 파일(Trace file) 형식의 5개의 커맨드들(CMD1~CMD5)을 순차적으로 커맨드 블록에 입력함으로써 시뮬레이션을 수행할 수 있으며, 시뮬레이션 결과로서 로그 파일(Log file)을 생성할 수 있다. 로그 파일(Log file)은 각 커맨드들(CMD1~CMD5)이 입력된 시간 정보, 각 커맨드들(CMD1~CMD5)에 응답하여 발생한 커맨드 블록의 상태 정보 및 천이 이벤트 정보를 포함할 수 있다. 커맨드 생성기(240, 도 6)는 로그 파일을 로그 백-트랙킹 기법을 기반으로 분석할 수 있다(S242). 구체적으로, 커맨드 생성기(240)는 로그 파일(Log file)에 대한 로그 백-트랙킹을 수행하여, 제2 커맨드(CMD2), 제3 커맨드(CMD3) 및 제5 커맨드(CMD5)가 커맨드 블록에 각각 입력된 때에, 상태 천이가 발생하는 것을 인지할 수 있다. 이후, 커맨드 생성기(240, 도 6)는 천이 이벤트 정보 및 시간 정보를 이용하여 커맨드 별 리워드 맵핑을 수행할 수 있다(S244). 도 11c를 더 참조하면, 구체적으로, 커맨드 생성기(240, 도 6)는 로그 파일(Log file)에 대한 로그 백-트랙킹을 수행함으로써, 천이 이벤트가 발생한 시간(t2, t3, t5)에 대응하는 입력된 커맨드들(CMD2, CMD3, CMD5)에 대한 리워드 맵핑(RW mapping)을 수행할 수 있다. 일 예로, 커맨드 생성기(240, 도 6)는 제2 커맨드(CMD2), 제3 커맨드(CMD3) 및 제5 커맨드(CMD5)에 대해서는 양의 리워드(RW)를 맵핑하고, 제1 커맨드(CMD1) 및 제4 커맨드(CMD4)에 대해서는 음의 리워드(RW)를 맵핑할 수 있다. 이를 통해, 커맨드 생성기(240, 도 6)는 테스트 벡터에 대응하는 커버리지를 상승시키는 커맨드들에 대하여 양의 리워드를 맵핑하는 강화 학습을 수행할 수 있으며, 그 결과, 단계 S250(도 10a)에서 테스트 벡터에 대응하는 커버리지가 상승하는 방향으로 적어도 하나의 커맨드가 추가될 수 있다.
도 12는 본 개시의 일 실시 예에 따른 시작 테스트 벡터를 생성하는 방법을 설명하기 위한 순서도이다. 시작 테스트 벡터는 회로 블록의 검증 벡터를 결정하기 위한 강화 학습시 최초로 회로 블록에 입력되는 테스트 벡터를 의미할 수 있다.
검증 벡터 생성기는 검증 전문가의 전문 지식(domain knowledge)을 기반으로 이미 만들어진 검증 벡터들을 지도 학습을 위한 트레이닝 데이터 셋으로서 이용하기 위해 수집할 수 있다(S300). 검증 벡터 생성기는 수집된 검증 벡터들을 트레이닝 데이터 셋으로서 이용하여 지도 학습(supervised learning) 기법을 기반으로 프리-트레이닝을 수행할 수 있다(S310). 검증 벡터 생성기는 프리-트레이닝 결과에 따른 시작 테스트 벡터를 생성할 수 있다(S320). 검증 벡터 생성기는 시작 테스트 벡터를 생성하기 위한 프리 트레이닝 동작을 통해 향후 수행될 강화 학습의 연산량을 최소화할 수 있다.
도 13은 본 개시의 일 실시 예에 따른 회로 디자인 검증 방법을 설명하기 위한 순서도이다.
도 13을 참조하면, 본 개시의 일 실시 예에 따른 회로 디자인을 검증하는 장치는 검증 대상이 되는 회로 디자인 내의 회로 블록들을 검증 특성에 따라 분류할 수 있다(S400). 일 예로, 검증 특성은 회로 블록의 상태 천이를 발생시키는 파라미터에 관한 특성을 포함할 수 있다. DRAM 회로 디자인의 경우, 장치는 DRAM 회로 디자인을 MRS 블록, 커맨드 블록으로 분류할 수 있다. 장치는 각 회로 블록의 검증 특성을 기반으로 검증 벡터 결정을 위한 강화 학습을 수행할 수 있다(S410). 예를 들어, 전술한 바와 같이, 장치는 MRS 블록에 대해서는 근사 모델을 이용한 강화 학습을 수행하고, 커맨드 블록에 대해서는 로그-백 트랙킹 기법, 리워드 맵핑을 이용한 강화 학습을 수행할 수 있다. 장치는 결정된 적어도 하나의 검증 벡터를 이용하여 회로 디자인에 대한 검증을 수행할 수 있다(S420).
도 14는 본 개시의 일 실시 예에 따른 양산된 반도체 장치에 대한 검증 방법을 설명하기 위한 순서도이다.
도 14를 참조하면, 반도체 장치가 양산되고(S500), 본 개시의 실시 예들에 따른 테스트 장비는 반도체 장치의 검증에 적합한 적어도 하나의 검증 벡터를 생성할 수 있다(S510). 일 실시 예로, 테스트 장비는 외부로부터 적어도 하나의 검증 벡터를 생성하기 위한 테스트 벡터를 수신할 수 있으며, 이 때에, 테스트 벡터는 압축된 상태(예를 들어, 런-렝스 인코딩 기법으로 압축된 상태)일 수 있으며, 테스트 장비는 압축된 테스트 벡터를 압축 해제하여 적어도 하나의 검증 벡터를 생성하기 위한 동작을 수행할 수 있다. 테스트 장비는 적어도 하나의 검증 벡터를 이용하여 양산된 반도체 장치를 검증할 수 있다(S520).
도 15는 본 개시의 일 실시 예에 따른 회로 디자인 시스템(1000)을 설명하기 위한 블록도이다.
이하에서 사용되는 '모듈'이라는 용어는 소프트웨어 또는 FPGA(Field Programmable Gate Array)또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '모듈'은 어떤 역할들을 수행한다. 그렇지만 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈'은 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈'들로 결합되거나 추가적인 구성요소들과 '모듈'들로 더 분리될 수 있다.
도 15를 참조하면, 회로 디자인 시스템(1000)은 프로세서(1100), 디자인 모듈(1210), 검증 벡터 생성 모듈(1220), 디자인 검증 모듈(1230), 메모리(1300) 및 스토리지(1400)를 포함할 수 있다. 도 14에서는 하나의 프로세서(1100)만을 도시하였으나, 더 많은 프로세서들이 구비될 수 있다. 디자인 모듈(1210)은 프로세서(1100)를 이용하여 회로 디자인을 생성할 수 있다. 검증 벡터 생성 모듈(1220)은 프로세서(1100)를 이용하여 전술한 실시 예들에 따른 회로 디자인 내의 회로 블록의 검증 벡터를 결정하기 위한 커버리지 기반 강화 학습을 수행할 수 있다. 디자인 검증 모듈(1230)은 프로세서(1100)를 이용하여 커버리지 기반 강화 학습을 통해 결정된 적어도 하나의 검증 벡터를 회로 디자인에 입력하고, 회로 디자인의 출력을 분석함으로써 회로 디자인을 검증할 수 있다. 메모리(1300)는 디자인 모듈(1210), 검증 벡터 생성 모듈(1220) 및 디자인 검증 모듈(1230)이 프로세서(1100)를 이용하여 회로 디자인을 생성, 검증 벡터를 결정, 회로 디자인을 검증하기 위해 필요한 데이터를 저장할 수 있다. 검증된 회로 디자인은 스토리지(1400)에 저장될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 제1 회로 블록 및 제2 회로 블록이 포함된 회로 디자인을 검증하는 장치에 있어서,
    상기 제1 회로 블록에 제1 테스트 벡터를 입력하여 발생한 상기 제1 회로 블록의 상태 천이를 기준으로 결정된 상기 제1 테스트 벡터에 대응하는 커버리지(coverage)를 기반으로 뉴럴 네트워크 연산을 통한 강화 학습(reinforcement learning)을 수행하여 제1 검증 벡터를 결정하도록 구성된 검증 벡터 생성기; 및
    상기 제1 검증 벡터를 이용하여 상기 제1 회로 블록에 대한 디자인 검증을 수행하도록 구성된 디자인 검증기를 포함하는 장치.
  2. 제1항에 있어서,
    상기 제1 테스트 벡터에 대응하는 커버리지는,
    상기 제1 테스트 벡터가 상기 제1 회로 블록에 마지막으로 입력되어 상기 강화 학습에 의해 축적된 상기 제1 회로 블록의 상태 천이 히스토리의 커버리지에 해당하는 것을 특징으로 하는 장치.
  3. 제1항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 테스트 벡터가 상기 제1 회로 블록에 입력되기 전에 상기 강화 학습에 의해 축적된 상기 제1 회로 블록의 상태 천이 히스토리(history)와 비교하여, 상기 제1 테스트 벡터에 의해 상기 제1 회로 블록의 새로운 상태 천이가 발생한 때에, 양의 리워드를 생성하여 상기 강화 학습에 적용하고, 상기 제1 테스트 벡터에 의해 상기 제1 회로 블록의 새로운 상태 천이가 발생하지 않은 때에, 음의 리워드를 생성하여 상기 강화 학습에 적용하도록 구성된 것을 특징으로 하는 장치.
  4. 제1항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 테스트 벡터가 가질 수 있는 모든 값들에 따른 상기 제1 회로 블록의 상태 천이의 트렌드를 폴리시 그레디언트 알고리즘(policy gradient algorithm)을 기반으로 학습하여 생성된 근사 모델을 이용해 상기 제1 테스트 벡터에 대응하는 리워드를 획득하여 상기 강화 학습에 적용하는 것을 특징으로 하는 장치.
  5. 제1항에 있어서,
    상기 검증 벡터 생성기는,
    상기 강화 학습을 기반으로 상기 제1 테스트 벡터를 변경하고, 변경된 상기 제1 테스트 벡터에 대응하는 상기 커버리지를 기반으로 상기 강화 학습을 수행하도록 구성된 것을 특징으로 하는 장치.
  6. 제5항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 회로 블록의 상태 천이를 발생시키는 파라미터에 관한 검증 특성에 부합하도록 상기 제1 테스트 벡터의 값을 변경하거나, 상기 제1 테스트 벡터에 적어도 하나의 커맨드를 추가하도록 구성된 것을 특징으로 하는 장치.
  7. 제6항에 있어서,
    상기 회로 디자인은, DRAM 회로 디자인에 해당하고,
    상기 제1 회로 블록은 MRS(Mode Register Set) 관련 파라미터에 의해 상태 천이가 발생하는 MRS 블록이거나, 커맨드(command) 관련 파라미터에 의해 상태 천이가 발생하는 커맨드 블록인 것을 특징으로 하는 장치.
  8. 제1항에 있어서,
    상기 제1 테스트 벡터는, 데이터 비 손실 압축 기법에 의해 압축된 것을 특징으로 하는 장치.
  9. 제1항에 있어서,
    상기 검증 벡터 생성기는,
    상기 제1 테스트 벡터에 대응하는 커버리지가 기준 커버리지 이상인 때에, 상기 제1 테스트 벡터를 상기 제1 검증 벡터로 결정하도록 구성된 것을 특징으로 하는 장치.
  10. 제1항에 있어서,
    상기 제1 회로 블록과 상기 제2 회로 블록이 연결되고, 상기 제1 회로 블록의 상태 천이를 발생시키는 파라미터에 관한 특성은 상기 제2 회로 블록의 상태 천이를 발생시키는 파라미터에 관한 특성과 상이한 때에,
    상기 검증 벡터 생성기는,
    결정된 상기 제1 검증 벡터가 상기 제1 회로 블록에 입력된 상태에서, 상기 제2 회로 블록에 대응하는 제2 검증 벡터를 결정하기 위한 강화 학습을 수행하도록 구성된 것을 특징으로 하는 장치.
  11. 제1항에 있어서,
    상기 제1 테스트 벡터는, 복수의 커맨드들을 포함하고,
    상기 검증 벡터 생성기는,
    상기 제1 테스트 벡터를 입력하여 발생한 상기 제1 회로 블록의 상태 천이 히스토리를 백-트랙킹(back-tracking)하여 상기 커맨드 별 리워드를 생성하고, 상기 리워드를 상기 강화 학습에 적용하도록 구성된 것을 특징으로 하는 장치.
  12. 제1항에 있어서,
    상기 검증 벡터 생성기는,
    상기 강화 학습을 기반으로 상기 제1 테스트 벡터에 적어도 하나의 커맨드를 추가하고, 추가된 상기 적어도 하나의 커맨드를 상기 제1 회로 블록에 입력하여 상기 강화 학습을 수행하도록 구성된 것을 특징으로 하는 장치.
  13. 회로 블록이 포함된 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 뉴럴 네트워크 장치의 강화 학습(reinforcement learning) 방법에 있어서,
    상기 회로 블록에 테스트 벡터를 입력하는 단계;
    상기 테스트 벡터에 의한 상기 회로 블록의 상태 천이를 기준으로 결정된 상기 테스트 벡터에 대응하는 커버리지를 기반으로 적어도 하나의 리워드를 생성하는 단계; 및
    상기 강화 학습에 상기 리워드를 적용하는 단계를 포함하는 방법.
  14. 제13항에 있어서,
    상기 적어도 하나의 리워드를 생성하는 단계는,
    상기 테스트 벡터가 상기 회로 블록에 입력되기 전 상기 강화 학습에 의해 축적된 상기 회로 블록의 상태 천이 히스토리와 상기 테스트 벡터에 의해 발생한 회로 블록의 상태 천이를 비교하는 단계; 및
    상기 비교 결과를 기반으로 양 또는 음의 값을 갖는 상기 적어도 하나의 리워드를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 제13항에 있어서,
    상기 적어도 하나의 리워드를 생성하는 단계는,
    상기 테스트 벡터가 가질 수 있는 모든 값들에 따른 상기 회로 블록의 상태 천이의 트렌드를 폴리시 그레디언트 알고리즘(policy gradient algorithm)을 기반으로 학습하여 생성된 근사 모델에 상기 테스트 벡터를 입력하는 단계; 및
    상기 근사 모델로부터 상기 테스트 벡터에 대응하는 양 또는 음의 값을 갖는 상기 적어도 하나의 리워드를 획득하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제13항에 있어서,
    상기 테스트 벡터는, 복수의 커맨드들을 포함하고,
    상기 적어도 하나의 리워드를 생성하는 단계는,
    상기 테스트 벡터에 포함된 상기 복수의 커맨드들을 순차적으로 상기 회로 블록에 입력하는 단계;
    상기 복수의 커맨드들에 의해 발생한 상기 회로 블록의 상태 천이 히스토리를 백-트랙킹하는 단계; 및
    상기 복수의 커맨드들 중 상기 회로 블록의 새로운 상태 천이를 발생시키는 커맨드에 대한 리워드 맵핑을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 제16항에 있어서,
    상기 방법은,
    상기 강화 학습을 기반으로 상기 테스트 벡터에 적어도 하나의 커맨드를 더 추가함으로써 상기 테스트 벡터를 변경하는 단계; 및
    상기 회로 블록에 상기 테스트 벡터의 추가된 상기 적어도 하나의 커맨드를 입력함으로써 상기 강화 학습을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제13항에 있어서,
    상기 방법은,
    상기 테스트 벡터에 대응하는 커버리지가 기준 커버리지 이상인 때에, 상기 테스트 벡터를 상기 검증 벡터로 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 제13항에 있어서,
    상기 테스트 벡터는 상기 회로 블록의 상태 천이를 발생시키는 파라미터에 관한 특성에 부합하도록 설정된 것을 특징으로 하는 방법.
  20. 적어도 하나의 프로세서;
    상기 적어도 하나의 프로세서를 이용하여, DRAM 회로를 디자인하여 MRS(Mode Register Set) 블록 및 커맨드 블록을 포함하는 DRAM 회로 디자인을 생성하도록 구성된 회로 디자인 모듈;
    상기 적어도 하나의 프로세서를 이용하여, 상기 MRS 블록의 상태 천이를 발생하는 파라미터에 관한 특성이 반영된 제1 테스트 벡터를 이용한 제1 강화 학습을 수행하고, 상기 커맨드 블록의 상태 천이를 발생하는 파라미터에 관한 특성이 반영된 제2 테스트 벡터를 이용한 제2 강화 학습을 수행하여 상기 MRS 블록의 검증을 위한 제1 검증 벡터 및 상기 커맨드 블록의 검증을 위한 제2 검증 벡터를 생성하도록 구성된 검증 벡터 생성 모듈; 및
    상기 적어도 하나의 프로세서를 이용하여, 상기 제1 검증 벡터를 이용한 상기 MRS 블록의 검증 및 상기 제2 검증 벡터를 이용한 상기 커맨드 블록의 검증을 수행하도록 구성된 디자인 검증 모듈을 포함하는 회로 디자인 시스템.
KR1020190016842A 2019-02-13 2019-02-13 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법 KR20200099252A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190016842A KR20200099252A (ko) 2019-02-13 2019-02-13 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법
US16/788,924 US11281832B2 (en) 2019-02-13 2020-02-12 Device for generating verification vector for circuit design verification, circuit design system, and reinforcement learning method of the device and the circuit design system
US17/692,883 US11861280B2 (en) 2019-02-13 2022-03-11 Device for generating verification vector for circuit design verification, circuit design system, and reinforcement learning method of the device and the circuit design system
US18/511,605 US20240086603A1 (en) 2019-02-13 2023-11-16 Device for generating verification vector for circuit design verification, circuit design system, and reinforcement learning method of the device and the circuit design system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190016842A KR20200099252A (ko) 2019-02-13 2019-02-13 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법

Publications (1)

Publication Number Publication Date
KR20200099252A true KR20200099252A (ko) 2020-08-24

Family

ID=71946091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190016842A KR20200099252A (ko) 2019-02-13 2019-02-13 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법

Country Status (2)

Country Link
US (3) US11281832B2 (ko)
KR (1) KR20200099252A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102430482B1 (ko) * 2022-02-14 2022-08-08 주식회사 마키나락스 금지 영역 정보를 기반으로 반도체 소자를 배치하는 방법
KR102430484B1 (ko) * 2022-02-17 2022-08-08 주식회사 마키나락스 인공지능 기반의 반도체 설계 방법
KR102440629B1 (ko) * 2022-02-18 2022-09-06 주식회사 마키나락스 반도체 설계를 위한 신경망 모델 학습 방법
US11657206B1 (en) 2022-02-17 2023-05-23 MakinaRocks Co., Ltd. Method for semiconductor design based on artificial intelligence
US11663390B1 (en) 2022-02-14 2023-05-30 MakinaRocks Co., Ltd. Method for placement semiconductor device based on prohibited area information

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12045675B2 (en) * 2019-06-28 2024-07-23 Ati Technologies Ulc Safety monitor for incorrect kernel computation
US11775693B1 (en) * 2020-12-10 2023-10-03 University Of Florida Research Foundation, Inc. Hardware trojan detection using path delay based side-channel analysis and reinforcement learning
CN113126963B (zh) * 2021-03-15 2024-03-12 华东师范大学 一种基于强化学习的ccsl综合方法及系统
US12038477B1 (en) 2021-09-30 2024-07-16 Cadence Design Systems, Inc. Method, product, and system for protocol state graph neural network exploration

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281185B2 (en) 1999-06-08 2007-10-09 Cadence Design (Israel) Ii Ltd. Method and apparatus for maximizing and managing test coverage
US8892487B2 (en) 2010-12-30 2014-11-18 International Business Machines Corporation Electronic synapses for reinforcement learning
US9810729B2 (en) * 2013-02-28 2017-11-07 Advantest Corporation Tester with acceleration for packet building within a FPGA block
US9256371B2 (en) 2013-05-28 2016-02-09 Globalfoundries Inc. Implementing reinforcement learning based flash control
EP3149630A2 (en) 2014-05-29 2017-04-05 Universiteit Gent Integrated circuit verification using parameterized configuration
US9965901B2 (en) 2015-11-19 2018-05-08 KLA—Tencor Corp. Generating simulated images from design information
US9959380B2 (en) 2016-03-28 2018-05-01 Motivo, Inc. Integrated circuit design systems and methods
KR20170133788A (ko) 2016-05-26 2017-12-06 삼성에스디에스 주식회사 디지털 회로 오류 검증 방법
US10763893B2 (en) 2016-07-20 2020-09-01 Georges Harik Method for data compression
US9792397B1 (en) 2017-01-08 2017-10-17 Alphaics Corporation System and method for designing system on chip (SoC) circuits through artificial intelligence and reinforcement learning
US10735023B2 (en) 2017-02-24 2020-08-04 Texas Instruments Incorporated Matrix compression accelerator system and method
US20180260699A1 (en) 2017-03-13 2018-09-13 Intel IP Corporation Technologies for deep machine learning with convolutional neural networks and reduced set support vector machines
US10084476B1 (en) 2017-12-19 2018-09-25 Candence Design Systems, Inc. Adaptive lossless compression in analog mixed signal environments
US10810115B2 (en) * 2017-12-21 2020-10-20 Verizon Patent And Licensing Inc. Systems and methods using artificial intelligence to identify, test, and verify system modifications
US20190311290A1 (en) * 2018-04-06 2019-10-10 Mentor Graphics Corporation Deep Learning Based Test Compression Analyzer

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102430482B1 (ko) * 2022-02-14 2022-08-08 주식회사 마키나락스 금지 영역 정보를 기반으로 반도체 소자를 배치하는 방법
US11663390B1 (en) 2022-02-14 2023-05-30 MakinaRocks Co., Ltd. Method for placement semiconductor device based on prohibited area information
KR102430484B1 (ko) * 2022-02-17 2022-08-08 주식회사 마키나락스 인공지능 기반의 반도체 설계 방법
US11657206B1 (en) 2022-02-17 2023-05-23 MakinaRocks Co., Ltd. Method for semiconductor design based on artificial intelligence
KR102440629B1 (ko) * 2022-02-18 2022-09-06 주식회사 마키나락스 반도체 설계를 위한 신경망 모델 학습 방법

Also Published As

Publication number Publication date
US20240086603A1 (en) 2024-03-14
US20200257840A1 (en) 2020-08-13
US11861280B2 (en) 2024-01-02
US20220198111A1 (en) 2022-06-23
US11281832B2 (en) 2022-03-22

Similar Documents

Publication Publication Date Title
KR20200099252A (ko) 회로 디자인을 검증하기 위한 검증 벡터를 생성하는 장치, 회로 디자인 시스템 및 이의 강화 학습 방법
CN111652380B (zh) 针对机器学习算法进行算法参数调优的方法及系统
CA3091819A1 (en) Hybrid quantum-classical generative models for learning data distributions
CN114219076A (zh) 量子神经网络训练方法及装置、电子设备和介质
KR20210032140A (ko) 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치
US20210064978A1 (en) Information processing device, information processing method, and storage medium
JP6579198B2 (ja) リスク評価方法、リスク評価プログラム及び情報処理装置
CN107977748B (zh) 一种多变量扭曲时间序列预测方法
CN114662427B (zh) 一种逻辑系统设计的调试方法及设备
CN112257751A (zh) 神经网络剪枝方法
CN115715414A (zh) 用于固态驱动器的可划分神经网络
KR102579116B1 (ko) 클라우드 기반 인공지능 자동 학습 및 배포를 위한 장치 및 이를 위한 방법
US11475312B2 (en) Method and apparatus with deep neural network model fusing
CN116089870A (zh) 基于元学习的小样本条件下工业设备故障预测方法及装置
CN117250914A (zh) 制造过程捕获的测量数据训练机器学习模型的方法和系统
CN114154615A (zh) 基于硬件性能的神经架构搜索方法和设备
CN111859799A (zh) 基于复杂机电系统耦合关系模型评估数据准确性的方法及装置
KR102057219B1 (ko) 데이터 입출력 포화 검출 장치 및 방법
US12026487B2 (en) Method for optimizing program using reinforcement learning
TWI802920B (zh) 基於神經網路活動之熱力圖的部分活化神經網路
US20210312272A1 (en) Neuromorphic circuit, neuromorphic array learning method, and program
US11669773B2 (en) Electronic devices generating verification vector for verifying semiconductor circuit and methods of operating the same
JP7438544B2 (ja) ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
KR102168882B1 (ko) 뉴럴 네트워크 하드웨어
EP4310731A1 (en) Electronic device and controlling method of electronic device

Legal Events

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