Community程式設計與開發github.com

ambulGruidae/rtl-verif-env-generator

用於生成 RTL pytest 驗證環境的 Codex 技能,支援 FST 波形與內部信號注入輔助工具。

rtl-verif-env-generator 是什麼?

這個 Codex 技能適用於 RTL 驗證工程師,可自動產生基於 pytest 的硬體驗證環境。它整合了 FST 波形生成與內部信號注入(deposit)機制,讓你直接在 Python 測試中操控硬體內部信號,無需手動設定複雜的驗證基礎設施。支援 Verilog/VHDL 設計的數值比較、時序檢查、以及覆蓋率追蹤。透過簡潔的 API 與預設的測試模板,大幅降低從設計到測試的轉換成本。與主流模擬器(如 Verilator、Icarus Verilog)相容,並提供清晰的報告輸出。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add ambulGruidae/rtl-verif-env-generator

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

rtl-verif-env-generator 是做什麼的?

用於生成 RTL pytest 驗證環境的 Codex 技能,支援 FST 波形與內部信號注入輔助工具。

概述

此技能可自動建立基於 pytest 的硬體驗證框架。它會產生測試檔案、配置設定以及輔助函式,讓你能夠:

  • 對 RTL 設計執行 pytest 測試
  • 透過 deposit() 輔助函式將內部信號強制設定為特定值
  • 以 FST 格式輸出波形,便於後續除錯與視覺化

支援平台

  • Codex CLI (主要) — 搭配 GPT-4o 或 Claude 3.5 Sonnet 模型效果最佳
  • 可與 Verilator、Icarus Verilog 或其他支援 VPI 的模擬器整合

使用方法

產生測試環境

在 Codex 提示中,指定:

使用 rtl-verif-env-generator 為模組 `top_module` 建立驗證環境,檔案位於 `rtl/top.v`

產生的結構

產生的目錄結構類似於:

.
├── test_harness.py      # 主要 pytest 測試檔案
├── conftest.py          # pytest 配置與固定裝置
├── sim_build/           # 模擬建置目錄
└── waves.fst            # 輸出的 FST 波形(測試執行後產生)

範例測試

# test_harness.py
import pytest
from conftest import setup_simulation, deposit

def test_counter_initial_value(simulation):
    """測試計數器初始值為 0"""
    sim = simulation
    val = sim.value("top_module.counter")
    assert val == 0, f"預期計數器為 0,但得到 {val}"

def test_deposit_internal_signal(simulation):
    """測試透過 deposit 強制設定內部訊號"""
    sim = simulation
    deposit(sim, "top_module.counter", 42)
    val = sim.value("top_module.counter")
    assert val == 42

設定

你可以透過環境變數自訂行為:

環境變數說明預設值
RTL_VERIF_SIMULATOR使用的模擬器(verilator / icarus)verilator
RTL_VERIF_WAVES啟用 FST 波形輸出(1 啟用,0 停用)1
RTL_VERIF_TIMEOUT每個測試案例的模擬逾時秒數60

輔助函式

deposit(simulation, signal_name, value)

  • simulation: 由 conftest.py 中的固定裝置提供的模擬物件
  • signal_name: 要強制設定的信號完整路徑(字串)
  • value: 要設定的值(整數或字串)

此函式使用 VPI 機制來覆蓋內部信號的值。

相依性

  • Python 3.8+
  • pytest
  • cocotb(選擇性,用於進階協同模擬)

進階用法

如需自行修改腳本,可直接編輯 conftest.py 以變更:

  • 模擬命令列參數
  • 波形後處理選項
  • 覆蓋率收集設定

授權條款

此技能採用 MIT 授權。

相關技能