Skip to main content

SV-Trace

开发说明: 本项目由 OpenClaw AI助手 驱动,使用 MiniMax 与 DeepSeek 大语言模型 合作开发。

SystemVerilog 静态分析工具库 - - 用于RTL设计分析、验证testbench质量评估、约束冲突检测

Python 3.11+ License


目录


特性

本项目是 AI 辅助编程的产物,通过 OpenClaw 平台调用 MiniMax 和 DeepSeek 模型实现代码生成和优化。

🔍 RTL分析

  • 信号追踪: 驱动/负载追踪、数据流分析、控制流分析
  • 依赖分析: 模块间依赖关系、信号依赖图
  • 时序路径: 关键路径提取、组合逻辑深度分析
  • Pipeline分析: 流水线数据路径、握手信号时序

✅ 验证支持

  • Constraint分析: 8种约束类型解析、z3冲突检测
  • 概率分析: 低概率组合发现、Danger Zone检测
  • TB质量评估: 复杂度评分、UVM组件统计、软件工程指标

📊 数据通路

  • RTL数据通路提取: 操作单元识别、数据流图构建
  • 概率分析: SCC检测、rare path发现

🎯 UVM Testbench

  • Class分析: 继承关系、方法映射、约束提取
  • 组件识别: Agent/Driver/Monitor/Sequencer自动识别
  • TLM连接: analysis/put/get端口追踪

安装

依赖

pip install pyslang>=10.0 z3-solver>=4.16 graphviz

验证安装

python3 -c "from parse import SVParser; print('OK')"

快速开始

CLI工具

# 约束分析
sv-constraint design.sv

# 约束概率分析
sv-constraint-prob design.sv

# 数据通路分析
sv-datapath design.sv

# TB复杂度分析
sv-tb-complexity testbench.sv

# 信号分类
sv-signal design.sv

# 代码质量分析
sv quality design.sv

Python API

import sys
sys.path.insert(0, 'src')

from parse import SVParser
from debug.constraint_parser_v2 import parse_constraints
from trace.data_path import analyze_data_path
from verify.tb_analyzer import TBComplexityAnalyzer

# 解析文件
parser = SVParser()
parser.parse_file('design.sv')

# 约束分析
constraints = parse_constraints(parser)
print(constraints.get_report())

# TB复杂度分析
analyzer = TBComplexityAnalyzer(filepath='testbench.sv')
print(analyzer.get_report())

工具列表

Tier 1 - 核心工具 🏆

模块 CLI Skill 功能
constraint_parser_v2.py sv-constraint ✅ 约束解析+z3冲突检测
probabilistic_constraint.py sv-constraint-prob ✅ 约束概率分析
tb_analyzer/complexity.py sv-tb-complexity ✅ TB复杂度分析(40+指标)
class_extractor.py - - Class提取
class_relation.py - - 类关系图

Tier 2 - 重要工具 ⭐

模块 CLI Skill 功能
trace/data_path/ sv-datapath ✅ 数据通路+corner case
trace/pipeline_analyzer.py - - Pipeline分析
trace/driver.py - - 驱动追踪
trace/load.py - - 负载追踪
trace/connection.py - - 连接追踪
trace/dataflow.py - - 数据流分析
complexity.py sv-quality ✅ 代码复杂度
signal_classifier.py sv-signal ✅ 信号分类

Tier 3 - 扩展工具 📦

模块 Skill 功能
trace/timing_path.py - 时序路径提取
trace/timing_depth.py - 时序深度分析
trace/cdc_analyzer.py - CDC分析器
trace/vcd_analyzer.py - VCD波形分析
trace/controlflow.py - 控制流分析
trace/dependency.py - 依赖分析
trace/performance.py - 性能估算
trace/sim_performance.py - 仿真性能
trace/resource_estimation.py - 资源估算
trace/power_estimation.py - 功耗估算
trace/throughput_estimation.py - 吞吐量估算
trace/flow_analyzer.py - 流量分析

Tier 4 - 辅助工具 🔧

模块 Skill 功能
verify/risk_evaluator.py - 风险评估
verify/test_manager.py - 测试管理
verify/failure_cluster.py - 失败聚类
verify/seed_manager.py - 随机种子管理
verify/constraint_generator.py - 约束生成器
trace/bitselect.py - 位选择分析
trace/interface_change.py - 接口变更检测

CLI工具

CLI Tier 功能 Skill
sv-constraint 1 约束分析+z3冲突检测 ✅ constraint-skill
sv-constraint-prob 1 约束概率分析 ✅ constraint-prob-skill
sv-tb-complexity 1 TB复杂度分析(40+指标) ✅ tb-complexity-skill
sv-datapath 2 数据通路分析 ✅ datapath-skill
sv-quality 2 代码质量分析 ✅ codequality-skill
sv-signal 2 信号分类 ✅ signal-classifier-skill
verify-suite 3 验证套件分析 ✅ verify-suite-skill
verify-test 3 测试验证 -
bug-tracker 4 Bug追踪 ✅ bug-tracker-skill

Python API

约束分析

from parse import SVParser
from debug.constraint_parser_v2 import parse_constraints
from debug.probabilistic_constraint import ProbabilisticConstraintAnalyzer

parser = SVParser()
parser.parse_file('design.sv')

# 基本约束分析
constraints = parse_constraints(parser)
print(constraints.get_report())

# 概率分析
analyzer = ProbabilisticConstraintAnalyzer(
    constraints.constraints, 
    constraints.dependencies
)
print(analyzer.get_report())

TB复杂度分析

from verify.tb_analyzer import TBComplexityAnalyzer
import json

analyzer = TBComplexityAnalyzer(filepath='testbench.sv')

# 文本报告
print(analyzer.get_report())

# JSON格式
data = analyzer.get_json()
print(json.dumps(data, indent=2))

数据通路分析

from trace.data_path import analyze_data_path

parser = SVParser()
parser.parse_file('design.sv')

analyzer = analyze_data_path(parser)
print(analyzer.get_report())

# 可视化
analyzer.visualize('data_path.png')

项目结构

sv-trace/
├── src/
│   ├── parse/          # 核心解析器 (pyslang)
│   ├── trace/          # 追踪器模块
│   │   └── data_path/ # 数据通路分析
│   ├── debug/          # 分析工具
│   ├── verify/         # 验证支持
│   └── apps/           # 应用工具
├── bin/                # CLI工具 (9个)
├── skills/             # Agent Skills (20+)
├── tests/              # 测试用例
├── docs/               # 文档
└── templates/          # 模板

工具分级

详见 TOOLS_TIERING.md

分级 数量 说明
Tier 1 5 核心工具,必备
Tier 2 8 重要工具,常用
Tier 3 12 扩展工具,场景化
Tier 4 20+ 辅助工具,特定场景

贡献

欢迎提交Issue和Pull Request!


许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


版本

v0.7 (2026-04)

  • TB复杂度分析器增强 (40+质量/性能指标)
  • Package引用关系分析
  • UVM组件详细统计

v0.6 (2026-04)

  • Constraint Parser V2 (pyslang + z3)
  • RTL数据通路概率分析
  • ProbabilisticConstraintAnalyzer

v0.5 (2026-04)

  • Pipeline分析器
  • 时序路径提取
  • 性能估算

SV-Trace - 让SystemVerilog分析更简单

Metadata

Release files for sv-trace 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sv-trace 0.1.1
File Size Uploaded
sv_trace-0.1.1.tar.gz 257.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sv-trace 0.1.1
File Interpreter ABI Platform
sv_trace-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 582.9 kB

Release files / sv_trace-0.1.1.tar.gz

Download URL sv_trace-0.1.1.tar.gz
Size 257.6 kB
Tags Source
SHA-256 checksum
How to use checksums
21e231c5d988d8a7c689867eb859a9ae602cc137c297fa2c375aeb411cfd378c
BLAKE2b-256 checksum
How to use checksums
33bece9415728bc76be935c9479b0295a41fd34eccfbba88f94ce12378853ba8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Release files / sv_trace-0.1.1-py3-none-any.whl

Download URL sv_trace-0.1.1-py3-none-any.whl
Size 325.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7a902904a47f887073639ba3a69e4f7cbc8da0bf467e372b4826fb456226e3ca
BLAKE2b-256 checksum
How to use checksums
9226b2a43c8f757d2b2fe2dfb42871ce281312edc6c56ca56ca3003466e88a92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page