2025-11-16T06:52:11.231184

VerilogReader: LLM-Aided Hardware Test Generation

Ma, Yang, Liu et al.
Test generation has been a critical and labor-intensive process in hardware design verification. Recently, the emergence of Large Language Model (LLM) with their advanced understanding and inference capabilities, has introduced a novel approach. In this work, we investigate the integration of LLM into the Coverage Directed Test Generation (CDG) process, where the LLM functions as a Verilog Reader. It accurately grasps the code logic, thereby generating stimuli that can reach unexplored code branches. We compare our framework with random testing, using our self-designed Verilog benchmark suite. Experiments demonstrate that our framework outperforms random testing on designs within the LLM's comprehension scope. Our work also proposes prompt engineering optimizations to augment LLM's understanding scope and accuracy.
academic

VerilogReader: LLM 기반 하드웨어 테스트 생성

기본 정보

초록

테스트 생성은 하드웨어 설계 검증에서 핵심적이면서도 노동 집약적인 프로세스이다. 최근 대규모 언어 모델(LLM)은 고도의 이해 및 추론 능력을 바탕으로 이 분야에 새로운 방법론을 도입했다. 본 연구는 LLM을 커버리지 지향 테스트 생성(CDG) 프로세스에 통합하는 것을 탐구하며, 여기서 LLM은 Verilog 코드 리더로 작동하여 코드 로직을 정확히 이해하고 미탐색 코드 분기에 도달할 수 있는 자극을 생성한다. 저자들은 자체 설계한 Verilog 벤치마크 테스트 스위트를 사용하여 본 프레임워크를 무작위 테스트와 비교했으며, 실험 결과는 LLM 이해 범위 내의 설계에서 본 프레임워크가 무작위 테스트를 능가함을 보여주며, LLM의 이해 범위와 정확성을 향상시키기 위한 프롬프트 엔지니어링 최적화를 제안한다.

연구 배경 및 동기

문제 배경

  1. 하드웨어 검증의 중요성: 하드웨어 복잡성의 급증으로 인해 하드웨어 검증은 개발 프로세스에서 점점 더 중요해지고 있다. 감지되지 않은 하드웨어 오류는 심각한 결과와 막대한 경제적 손실을 초래할 수 있다.
  2. 기존 검증 방법: 엔지니어들은 주로 두 가지 검증 방법을 채택한다:
    • 형식 검증: 수학적 기법을 사용하여 시스템의 정확성을 증명
    • 동적 검증: 다양한 테스트 케이스를 생성하여 피검증 설계(DUT)를 시뮬레이션
  3. 테스트 생성 과제: 커버리지 목표 달성을 위해서는 고품질의 테스트 입력이 필요하며, 이는 검증 엔지니어에게 막대한 인력 부담을 야기한다.

연구 동기

  1. 자동화 필요성: 인적 개입을 줄이기 위해 커버리지 지향 테스트 생성(CDG)이 하드웨어 테스트 생성 자동화의 핵심 기술이 되었다.
  2. LLM의 기회: LLM의 이해 및 추론 능력은 하드웨어 테스트 생성 분야에 새로운 기회를 제공한다.
  3. 차별화된 포지셔닝: 기능 커버리지 포인트에 초점을 맞춘 이전 연구와 달리, 본 논문은 더 기초적인 테스트 목표인 코드 커버리지에 초점을 맞추며 LLM을 "VerilogReader"로 포지셔닝한다.

핵심 기여

  1. 오픈소스 프레임워크: LLM을 CDG 프로세스에 통합하는 프레임워크를 처음으로 오픈소스화했으며, LLM을 VerilogReader로 사용하여 Verilog 코드 및 커버리지를 이해하고 코드 커버리지 폐쇄 테스트를 생성하는 것을 목표로 한다.
  2. 프롬프트 최적화 모듈: Coverage Explainer 및 DUT Explainer 모듈을 제안하여 프롬프트를 풍부하게 하고 설계 및 테스트 의도에 대한 LLM의 이해를 향상시키며 프레임워크의 확장성을 개선한다.
  3. 벤치마크 테스트 스위트: 단순, 중간 및 복잡 수준의 Verilog 설계 24개를 포함하는 벤치마크 테스트 스위트를 생성했으며, 실험 결과는 프레임워크가 단순 및 중간 수준 DUT에서 무작위 테스트를 능가함을 보여준다.
  4. 능력 경계 탐색: 현재 LLM의 Verilog 읽기 측면에서의 최대 능력 경계를 명확히 했다.

방법론 상세 설명

작업 정의

본 논문의 작업은 LLM을 활용하여 Verilog 코드 로직 및 현재 커버리지 상태를 이해하고, 미커버된 코드 분기를 트리거할 수 있는 다중 사이클 입력 자극을 생성하여 코드 커버리지 향상을 달성하는 것이다.

모델 아키텍처

기본 프레임워크

전체 프레임워크는 다음 핵심 구성 요소를 포함하는 반복적 CDG 프로세스를 채택한다:

  1. LLM 핵심: 각 반복에서 JSON 형식의 다중 사이클 입력 생성
  2. 입력 디코더: JSON 형식 입력을 하드웨어 자극으로 디코딩
  3. 커버리지 모니터: 현재 코드 커버리지 정보 제공
  4. 설명자 모듈: Coverage Explainer 및 DUT Explainer 포함

프롬프트 생성기

2라운드 질의응답 메커니즘 채택:

  • 1라운드: LLM에 테스트 목표를 알리고 DUT 정보 및 커버리지 데이터 제공, LLM이 자연어로 응답
  • 2라운드: LLM이 응답을 표준화된 JSON 형식으로 변환하도록 지도

Coverage Explainer

복잡한 커버리지 보고서를 LLM이 이해할 수 있는 형식으로 변환:

  1. 원본 형식: 고유 식별자 및 히트 카운트를 포함하는 Verilator 커버리지 보고서
  2. 주석 형식: verilator_coverage 도구를 사용하여 생성한 주석이 있는 보고서
  3. LLM 가독 형식: 미커버 라인에 'TO BE COVERED' 플래그를 추가하도록 특별히 설계된 형식

DUT 설명자

DUT에 대한 LLM의 이해를 향상시키기 위해 두 가지 기능 제공:

  1. 설계 설명: DUT 기능 및 내부 로직에 대한 자연어 설명 제공
  2. 테스트 지도: 특정 DUT 테스트 생성을 위한 보충 정보 및 기본 테스트 로직 규칙 제공

기술 혁신 포인트

  1. 코드 커버리지 초점: 기능 커버리지 포인트가 아닌 하드웨어 코드 커버리지에 LLM을 처음 적용
  2. 단계별 처리: 테스트 생성 작업을 DUT 이해 및 입력 로직 추론 두 단계로 분해
  3. 자연어 태깅: 자연어 태그를 사용하여 미커버 라인을 표시하여 LLM의 추론 프로세스 단순화
  4. 이중 라운드 상호작용: 2라운드 질의응답을 통해 LLM의 단계적 사고 프로세스 촉진

실험 설정

데이터셋

자체 구축한 벤치마크 테스트 스위트는 세 가지 난이도 수준으로 분류된 24개의 Verilog 설계를 포함한다:

  1. 단순 수준(s01-s10): 10개의 기본 조합 논리 회로(멀티플렉서, ALU 등)
  2. 중간 수준(m01-m08): 8개의 순차 논리 회로(FSM, 카운터, 중재자 등)
  3. 복잡 수준(c01-c06): 6개의 대규모 FSM 회로(16-128개 상태)

평가 지표

  • 주요 지표: 전체 커버리지 달성에 필요한 입력 자극의 총 길이(클록 사이클 단위)
  • 커버리지: 라인 커버리지 백분율
  • 시간 효율성: 목표 커버리지 달성에 필요한 반복 횟수

비교 방법

  • 무작위 테스트: 기준 비교 방법
  • 다양한 커버리지 보고서 형식: 원본 형식, 주석 형식, LLM 가독 형식

구현 세부사항

  • 언어 모델: OpenAI GPT-4 및 GPT-4-Turbo-0125
  • 시뮬레이터: Verilator
  • 코드 파싱: Pyverilog
  • 실험 반복: LLM의 무작위성을 처리하기 위해 각 실험을 5회 반복

실험 결과

주요 결과

커버리지 설명 방법 비교

중간 수준 DUT에서 GPT-4를 사용한 실험 결과:

  • LLM 가독 커버리지 보고서가 원본 및 주석 형식을 크게 능가
  • 원본 가독 불가능 커버리지 보고서가 LLM에 가장 큰 도전
  • 자연어 태그 'TO BE COVERED' 플래그가 이해 효과를 효과적으로 향상

무작위 테스트와의 비교

단순 및 중간 수준 DUT에서의 실험 결과:

  • LLM 프레임워크는 100% 커버리지 달성에 훨씬 적은 입력 사용
  • 무작위 테스트는 도달하기 어려운 분기를 가진 순차 설계에서 1분 내에 전체 커버리지 달성 실패
  • GPT-4 및 GPT-4-Turbo는 하드웨어 테스트 생성 작업에서 유사한 성능 발휘

DUT 설명 최적화 효과

  • 설계 설명: LLM이 생성한 설계 설명은 테스트 생성 중 설계 이해 개선
  • 테스트 지도: 효과가 일관되지 않으며, 일부 설계(m05, m06)에서 입력 다양성 감소

LLM 확장성 분석

복잡 수준 FSM에 대한 실험 결과:

  • 16상태 FSM: 20회 반복 후 거의 100% 라인 커버리지 달성
  • 64상태 이상 FSM: 커버리지가 50%를 초과할 수 없음
  • DUT 규모 증가에 따라 테스트 생성 품질 급격히 저하

실험 발견

  1. LLM은 단순 및 중간 복잡도 설계에서 우수한 성능 발휘
  2. 현재 LLM은 대규모 Verilog 설계 처리 시 명백한 한계 존재
  3. 적절한 프롬프트 엔지니어링은 LLM 성능을 크게 개선할 수 있음
  4. 커버리지 보고서 형식은 LLM 이해에 매우 중요

관련 연구

전통적 CDG 방법

  • 휴리스틱 방법을 기반으로 입력 공간 탐색
  • 커버리지 상태를 새로운 테스트 케이스 생성의 기본 피드백으로 사용
  • 회로 구조 정보(제어/데이터 흐름 그래프, 모듈 연결 그래프) 활용하여 테스트 생성 지도

하드웨어 분야의 LLM 응용

  • RTL 작성: 하드웨어 기술 언어 코드 자동 생성
  • 단언 생성: 검증 단언 생성
  • 오류 수정: 하드웨어 설계의 오류 수정
  • 기능 검증: Zhang 등의 기능 커버리지 포인트 검증 연구

본 논문의 차별화된 포지셔닝

고수준 기능 테스트 계획 설명에 초점을 맞춘 이전 연구와 달리, 본 논문은 더 기초적인 코드 커버리지 목표에 초점을 맞추며 LLM이 Verilog 코드 로직을 깊이 있게 이해할 것을 요구한다.

결론 및 논의

주요 결론

  1. LLM은 단순 및 중간 복잡도의 Verilog 설계를 효과적으로 이해하고 목표화된 테스트 입력을 생성할 수 있음
  2. 적절한 프롬프트 엔지니어링(특히 커버리지 설명)은 LLM 성능에 매우 중요
  3. 현재 LLM은 대규모, 복잡한 하드웨어 설계 처리 시 명백한 한계 존재

한계점

  1. 규모 제한: 100줄 이상의 코드를 가진 복잡한 설계의 경우 LLM 성능이 크게 저하
  2. 구조 이해: LLM은 Verilog의 고도로 구조화된 특성을 이해하기 어려움
  3. 엔드투엔드 응용: 산업급 하드웨어 설계에 LLM을 직접 적용하는 것은 여전히 도전적

향후 방향

  1. DUT 설명자 강화: 더 포괄적인 고수준 설계 추상화 및 검증 의도 제공
  2. 다중모달 융합: LLM과 그래프 신경망(GNN)을 결합하여 LLM은 의미론적 해석, GNN은 구조 정보 처리
  3. 계층적 처리: 거시적 관점에서 LLM이 테스트 생성 작업을 처리하도록 지도

심층 평가

장점

  1. 높은 혁신성: 하드웨어 코드 커버리지 테스트 생성에 LLM을 처음 적용하며 포지셔닝이 명확
  2. 체계적 방법론: 여러 최적화 모듈을 포함한 완전한 프레임워크 제시
  3. 충분한 실험: 다층적 벤치마크 테스트 스위트 구축, 합리적인 실험 설계
  4. 오픈소스 기여: 오픈소스 프레임워크 제공으로 분야 발전 촉진
  5. 경계 탐색: 현재 LLM 능력의 경계를 명확히 함

부족한 점

  1. 규모 한계: 상대적으로 단순한 설계에서만 효과적이며 실제 산업 응용까지는 거리가 있음
  2. 벤치마크 제한: 자체 구축 벤치마크는 충분하지 않을 수 있으며 산업 표준 벤치마크와의 비교 부족
  3. 비용 분석: LLM 호출 비용과 전통적 방법의 상세한 비교 부족
  4. 이론적 분석: LLM이 이 작업에서 효과적인 이유에 대한 심층적 이론적 분석 부족

영향력

  1. 학술적 가치: LLM의 하드웨어 검증 분야 새로운 응용 방향 개척
  2. 실용적 잠재력: 교육 및 중소규모 설계 검증에서 실제 응용 가치 보유
  3. 영감 제공: 후속 연구에 가치 있는 기준선과 아이디어 제공

적용 시나리오

  1. 교육 환경: 하드웨어 설계 과정의 자동화 테스트 생성에 적합
  2. 프로토타입 검증: 설계 초기 단계의 빠른 검증에 적용 가능
  3. 중소규모 설계: 100줄 이하의 Verilog 모듈에 실용적 가치 보유
  4. 보조 도구: 검증 엔지니어의 보조 도구로 일부 업무 부담 경감

참고문헌

본 논문은 형식 검증, 동적 검증, CDG 방법, 하드웨어 분야의 LLM 응용 등 다양한 측면을 포괄하는 19편의 관련 문헌을 인용하여 연구에 견고한 이론적 기초를 제공한다.


종합 평가: 본 논문은 LLM과 하드웨어 검증의 교차 분야에서의 혁신적 연구로, 규모화 응용 측면에서는 한계가 있지만 해당 분야의 발전을 위해 가치 있는 탐색과 기초를 제공한다. 논문의 방법론은 체계적이고 실험은 충분하며 오픈소스 기여가 명확하여 양호한 학술적 가치와 영감을 제공한다.