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をVerilogコード読者として機能させ、コードロジックを正確に理解し、未探索のコード分岐に到達できる刺激を生成する、カバレッジ指向テスト生成(CDG)プロセスへのLLM統合を検討している。著者らは自設計のVerilogベンチマークスイートを用いてこのフレームワークをランダムテストと比較し、LLMの理解範囲内の設計においてフレームワークがランダムテストを上回ること、およびLLMの理解範囲と精度を強化するためのプロンプトエンジニアリング最適化を提案していることを実証している。

研究背景と動機

問題背景

  1. ハードウェア検証の重要性: ハードウェアの複雑性の急増に伴い、ハードウェア検証は開発プロセスにおいてますます重要になっている。検出されないハードウェアエラーは重大な結果と莫大な経済的損失をもたらす可能性がある。
  2. 既存の検証方法: エンジニアは主に2つの検証方法を採用している:
    • 形式的検証: 数学的技術を用いてシステムの正確性を証明する
    • 動的検証: 多様なテストケースを生成して被検証設計(DUT)をシミュレートする
  3. テスト生成の課題: カバレッジ目標の達成には高品質のテスト入力が必要であり、検証エンジニアに大きな人的負担をもたらしている。

研究動機

  1. 自動化の必要性: 人的介入を減らすため、カバレッジ指向テスト生成(CDG)がハードウェアテスト生成の自動化における重要な技術となっている。
  2. LLMの機会: LLMの理解および推論における強力な能力は、ハードウェアテスト生成分野に新たな機会をもたらしている。
  3. 差別化された位置付け: 機能カバレッジポイントに焦点を当てた先行研究と異なり、本論文はより基本的なテスト目標であるコードカバレッジに焦点を当て、LLMを「VerilogReader」として位置付けている。

核心的貢献

  1. オープンソースフレームワーク: LLMをCDGプロセスに統合するフレームワークを初めてオープンソース化し、LLMをVerilogReaderとして使用してVerilogコードとカバレッジを理解し、コードカバレッジ閉包テストを生成することを目的としている。
  2. プロンプト最適化モジュール: Coverage ExplainerおよびDUT Explainerモジュールを提案し、プロンプトを充実させ、設計およびテスト意図に対するLLMの理解を強化し、フレームワークのスケーラビリティを向上させている。
  3. ベンチマークスイート: 簡単、中程度、複雑なレベルの24個のVerilog設計を含むベンチマークスイートを作成し、フレームワークが簡単および中程度レベルのDUTでランダムテストを上回ることを実証している。
  4. 能力境界の探索: Verilog読み取りにおける現在のLLMの最大能力境界を明確にしている。

方法の詳細説明

タスク定義

本論文のタスクは、LLMを利用してVerilogコードロジックと現在のカバレッジ状態を理解し、未カバーのコード分岐をトリガーできるマルチサイクル入力刺激を生成し、コードカバレッジの向上を実現することである。

モデルアーキテクチャ

基本フレームワーク

全体フレームワークは反復的なCDGプロセスを採用し、以下の核心コンポーネントを含む:

  1. LLMコア: 各反復でJSON形式のマルチサイクル入力を生成する
  2. 入力デコーダ: JSON形式入力をハードウェア刺激にデコードする
  3. カバレッジモニタ: 現在のコードカバレッジ情報を提供する
  4. エクスプレーナモジュール: Coverage ExplainerおよびDUT Explainerを含む

プロンプトジェネレータ

2ラウンドの質疑応答メカニズムを採用:

  • 第1ラウンド: LLMにテスト目標を通知し、DUT情報とカバレッジデータを提供し、LLMが自然言語で応答する
  • 第2ラウンド: LLMに応答を標準化されたJSON形式に変換するよう指導する

カバレッジエクスプレーナ

複雑なカバレッジレポートをLLMが理解できる形式に変換する:

  1. 元の形式: Verilatorカバレッジレポート、一意の識別子とヒットカウントを含む
  2. 注釈形式: verilator_coverageツールを使用して作成された注釈付きレポート
  3. LLM可読形式: 未カバー行に「TO BE COVERED」フラグを追加する専門設計形式

DUTエクスプレーナ

LLMのDUT理解を強化するための2つの機能を提供:

  1. 設計説明: DUT機能と内部ロジックの自然言語説明を提供する
  2. テストガイダンス: 特定のDUTテスト作成のための補足情報と基本テストロジック規則を提供する

技術的革新点

  1. コードカバレッジへの焦点: LLMを機能カバレッジポイントではなくハードウェアコードカバレッジに初めて適用
  2. 段階的処理: テスト生成タスクをDUT理解と入力ロジック推論の2段階に分解
  3. 自然言語タグ付け: 自然言語タグを使用して未カバー行をマークし、LLMの推論プロセスを簡素化
  4. 双方向相互作用: 2ラウンドの質疑応答を通じてLLMの段階的思考プロセスを促進

実験設定

データセット

自構築ベンチマークスイートは3つの難易度レベルに分類された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 Explainerの強化: より包括的な高レベル設計抽象化と検証意図を提供する
  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とハードウェア検証の交差分野における革新的な研究であり、規模化応用の側面ではまだ制限があるものの、この分野の発展に有価値な探索と基礎を提供している。論文の方法は体系的で、実験は充分であり、オープンソース貢献は明確であり、良好な学術的価値と啓発的意義を有している。