기능 검증에서 AI/ML의 적용
인공지능(AI)과 머신러닝(ML)은 전자 설계 자동화(EDA)를 포함하여 전 세계 산업을 변화시키고 있습니다. 기능검증(FV) 분야에서 이러한 기술들은 효율성, 정확성 및 자동화를 향상시키는 유망한 솔루션을 제공합니다. 이 게시물에서는 AI/ML이 어떻게 FV 작업흐름을 재구성하고 있는지, 그들의 잠재적인 응용 분야와 앞으로의 과제를 탐구할 것입니다.
기능 검증에서 AI/ML의 필요성
기능 검증은 반도체 설계자에게 여전히 많은 시간이 소요되는 과정으로, 보통 설계 시간의 거의 절반을 차지합니다[1]. ML을 통합함으로써 설계자들은 반복적인 작업을 자동화하고, 리그레션 관리를 개선하며, 커버리지 클로저를 가속하여 더 짧은 시간 안에 더 높은 품질의 결과를 제공합니다. 설계 복잡성이 계속해서 증가함에 따라 이러한 변화는 매우 중요합니다.
기능 검증에서 AI/ML의 주요 응용 분야
AI/ML은 기능 검증에서 여러 중요한 영역에 걸쳐 다양한 응용 분야를 가지고 있습니다:
- 요구 사항 엔지니어링: 자연어(NL) 사양을 SystemVerilog Assertion(SVA) 또는 기타 검증 언어로 변환하거나, 설계 사양에서 직접 자동으로 코드를 생성합니다.
- 커버리지 클로저: 포괄적인 테스트 커버리지를 보장하기 위해 ML이 안내하는 무작위 테스트를 생성합니다.
- 검증 가속화: 형식 검증(Formal Verification)을 간소화하기 위해 가장 효율적인 형식 증명 엔진을 자동으로 선택합니다.
- 버그 탐지: ML이 지원하는 근본 원인 분석을 통해 더 빠른 디버깅 및 문제 해결을 가능하게 합니다.
- 리그레션 관리: 우선순위가 높은 테스트 케이스를 자동으로 식별하고 실패 시나리오를 예측합니다.
더 자세한 내용은 Yu 등의 백서를 참조하십시오 [2].
기능 검증에서 LLM 응용의 통찰
최근 연구들은 대규모 언어 모델(LLM)이 기능 검증 작업을 발전시키는 잠재력을 보여주고 있습니다.
- Assertion 생성: 연구에 따르면 LLM이 자연어(NL)로부터 SystemVerilog Assertion(SVA)을 생성할 수 있으며, 9.29%의 성공률을 기록했습니다. 옳은 Assertion 중 80%는 최적화된 조건에서 생성되었습니다 [5].
- 커버리지 예측: Pyhon 기반 연구에서 LLM은 코드 커버리지를 예측하였으며, 라인 수준에서 20-30%, 문장 수준에서 84-90%의 정확도를 달성했습니다. HDL에 대한 성능은 제한된 학습 데이터로 인해 여전히 진행 중입니다 [6].
- 버그 재현: 실패한 테스트 보고서와 예제를 LLM에 입력하여 보고된 버그의 약 33.5%를 재현할 수 있습니다 [7].
- 테스트 자극 생성: LLM은 더 간단한 설계에서 최대 98.94%의 코드 커버리지를 달성했지만, 더 복잡한 설계에서는 86.19%로 감소했습니다 [8].
- 코드 생성: 오픈 소스 저장소에 훈련된 LLM은 문제의 복잡성에 따라 59.9%에서 98.7%의 성공률로 Verilog 코드를 생성했습니다 [9].
추가 기술적인 세부 사항은 Yu 등의 최근 LLM 패러다임 검증 연구를 참조하십시오 [3].
극복해야 할 과제
잠재력에서 불구하고, 기능 검증에서 AI/ML 기술은 여러 장애물에 직면해 있습니다:
- 제한된 데이터셋: 오픈 소스 HDL 데이터의 부족은 모델 학습을 방해하여 부정확하거나 “환각”을 일으킬 수 있습니다.
- 확장성: 소규모 설계에서는 성능이 좋은 AI/ML 모델이 대규모 프로젝트에 적용될 때 효율성과 정확성을 유지하는 데 어려움을 겪습니다.
결론
AI/ML 기술은 기능 검증에 대한 보다 효율적이고 자동화된 접근 방식을 제시합니다. 사양 번역에서 디버깅 및 커버리지 클로저에 이르기까지, 이러한 도구들은 작업흐름을 혁신하고 현대 반도체 설계의 점점 더 복잡해지는 문제를 해결할 것을 약속합니다. 채택이 증가함에 따라, 이러한 최첨단 기술이 주도하는 검증 프로세스의 진화를 목격하는 것은 매우 흥미로운 일이 될 것입니다.
참고 문헌
[1] Harry Foster, “2022 Functional verification Study (2022)
[2] Dan Yu, Harry Foster, and Tome Fitzpatrick “A survey of machine learning applications in functional verification” (2023)
[3] Dan Yu, Tom Fitzpatrick, Waseem Raslan, Harry Foster, and Eman EL Mandouh “Paradigms of large language model applications in functional verification” (2024)
[4] Dan Yu, “Verification data analytics with machine learning” (2023)
[5] Rahul Kande, et al. “LLM-assisted Generation of Hardware Assertions” (2023)
[6] Michele Tufano, et al. “Predicting Code Coverage without Execution” (2023)
[7] Sungmin Kang, et al. “Large Language Models are Few-shot Testers: Exploring LLM-based General Bug Reproduction” (2023)
[8] Zixi Zhang, et al. “LLM4DV: Using Large Language Models for Hardware Test Stimuli Generation” (2023)
[9] Baptiste Rozière, “Code Llama: Open Foundation Models for Code” (2023)