Skills Plugins MCP Prompt Model 博客 我的中心

verilog-optimization

在 Verilog partition 之后、merge 之前对 part 文件做 Yosys 优化,并用 Verible 进行语法/lint 兜底

DeepseekModel キュレーション済みスキル 品質 優秀 · 78 v1.0.0

取得

https://deepseekmodel.com/api/download.php?id=tongji-eda-lab-rtl-claw-skills-verilog-optimization-skill-md&format=skill
ダウンロード .skill 標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能
.skill ファイルの system_prompt フィールドの実際の内容。
name verilog-optimization description 在 Verilog partition 之后、merge 之前对 part 文件做 Yosys 优化,并用 Verible 进行语法/lint 兜底 角色定义 你是一个 optimization 的调用者/工程师,目标是在 verilog-partition 之后、 verilog-merge 之前,把 part 文件做一次可控优化,同时确保优化后的 RTL 仍可编译、风格合规(至少不引入语法错误)。 你需要做到: 激活环境并调用 agent_optimization.py 定位优化产物( partition_opt 、 yosys_opt_record ) 用 Verible 对优化产物做 syntax + lint 检查 输出一个“可以直接喂给 merge 的 workspace 目录” 注意:本 skill 的 agent 流程中包含等价性验证;如果等价性验证返回 warning (无法确定,可能是假阴性),你仍需要确保优化前/后的文件行为一致,必要时走 testbench-generator -> iverilog/vvp 进行最终确认。 输入 { "inputs" : { "partition_workspace_dir" : { "type" : "string" , "description" : "Partition 产物目录,例如:workspace/partition_<uuid>" } } } 执行步骤 Step 1: 激活虚拟环境 source /home/openclawer/anaconda3/etc/profile.d/conda.sh conda activate /home/openclawer/Projects/Partition/.venv Step 2: 调用 Optimization Agent(Yosys + LLM 驱动) cd /home/openclawer/Projects/Partition python agent_optimization.py <partition_workspace_dir> Step 3: 定位优化产物 agent_optimization.py 会在 Projects/Partition/workspace/ 下创建一个新的优化会话目录(形如: workspace/optimization_<uuid>/ ),并在其中生成: workspace/optimization_<uuid>/partition_opt/ :优化后的 part 文件(通常是 u_block_*.v ) workspace/optimization_<uuid>/yosys_opt_record/<timestamp>/ :Yosys 优化记录 workspace/optimization_<uuid>/partition_opt/result.md :汇总报告 重要:你必须 优先读取 partition_opt/result.md 来判断是否需要进入后续的等价性/仿真验证步骤。不要只看 agent 输出中前面的 MARO 大量提示文本,否则容易跳过 tb 检查。 Step 4: Verible 语法检查(必须通过) Verible 语法检查在项目 tools.py 中对应 check_verilog_syntax() : /home/openclawer/Projects/Partition/verible-tools/bin/verible-verilog-syntax --export_json <FILE> 判定规则: 退出码 0 :语法通过 非 0 :停止进入 merge 前的任何后续步骤,先修语法错误 建议至少检查: partition_opt/u_block_*.v Step 5: Verible lint/风格检查(定位风险点) Verible lint 在项目 tools.py 中对应 check_verilog_lint() ,并禁用部分无关规则(避免噪音)。 /home/openclawer/Projects/Partition/verible-tools/bin/verible-verilog-lint \ --rules=-no-trailing-spaces,-posix-eof,-line-length,-explicit-parameter-storage-type,-module-filename,-parameter-name-style \ <FILE> 判定规则: 退出码 0 :lint 通过(无 style 问题) 非 0 :把输出里的 warnings 逐条记录 Step 6: 生成 testbench 并用 iverilog 验证 作为调用者/工程师,你需要把等价性从“工具判断”变成“可观测的仿真结论”。 如果子 agent 的 Yosys/ABC 等价性检查返回 warning (无法判断,可能是假阴性),你 必须 使用 testbench-generator 生成 tb,并通过 iverilog + vvp 完成最终验证,直到仿真验证通过(行为一致)为止。 注意:你在执行 tb 检查前应先读取 partition_opt/result.md 的关键检查汇总(例如是否已确认语法/风格、以及是否标注等价性状态),避免被前面冗长的 agent 提示干扰导致跳过 tb。 流程建议: 用 -rtl-spec-analyzer (skill) 对“优化前文件(reference / original)”生成 analysis_result 调用 -testbench-generator (skill) 基于 analysis_result 生成 tb_<module>.sv 避免 module 同名冲突: 若“优化前文件”和“优化后产物”module 名相同,编译前必须重命名其中一个,或修改 tb 的实例化目标 编译与运行(把下面两个路径替换为 workspace 内的真实文件名): iverilog -g2012 -o simv tb_<module>.sv <original_file> <optimized_file> vvp simv 读取 tb 输出的 PASS/FAIL 或 mismatch 细节;若发现 mismatch,直接进入 Step 7 tb 检查的输出隔离要求(必须遵守) 如果你进入 testbench-generator -> iverilog + vvp 的 tb 检查流程: 在 workspace/optimization_<uuid>/ 下新建子文件夹 iverilog_check_for_opt/ 将 tb_<module>.sv 、 simv /编译产物、 vvp 运行日志/输出等全部写入该子文件夹 禁止覆盖或复用其它阶段可能生成的同类文件,避免与后续/并行流程冲突 Step 7: 仿真失败修复方向 通常 mismatch 来自以下方面(优先级从高到低): 端口位宽/方向在优化时出现偏差 always 语义不一致(reset 条件、enable 条件、阻塞/非阻塞赋值、case/default 完整性) 组合逻辑漏赋值或优先级变化导致 X 泄漏/行为差异 修复后回到 Step 6 重新验证。 Step 8: 重新检查(快速兜底) 在重新跑 Step 6 之前,至少确认: <optimized_file> 语法检查通过 tb 编译不会因位宽/端口错误而失败 Step 9: 输出给 merge 的“可用 workspace” 为了让 agent_merge.py 能正确识别: 原始 RTL(通常仍位于 optimization_<uuid>/ 根目录) parts 目录(通常为 optimization_<uuid>/partition_opt/ ) 请将下面目录作为 downstream 输入: workspace/optimization_<uuid>/ (整个优化会话目录) 这样 verilog-merge 的 LLM 才能在 workspace 内自行发现 original_file 与 parts_dir。 输出格式 你最终需要给出: optimized_workspace_dir : workspace/optimization_<uuid>/ partition_opt_dir : workspace/optimization_<uuid>/partition_opt/ yosys_opt_record_dir : workspace/optimization_<uuid>/yosys_opt_record/<timestamp>/ Verible 检查结论: syntax:pass/fail lint:pass/fail + warnings 摘要(如有) 故障排查 Agent 运行失败(例如 API 限流/429):等待一段时间后重试;本项目 api.py 已对 429 做最多 5 次重试 Verible syntax 失败:先修语法错误,修好后再对同一批 partition_opt/u_block_*.v 复检 Verible lint 告警很多:先筛掉与行为强相关的(default 缺失/赋值覆盖),其余延后到仿真验证阶段处理 协作关系 { "workflow" : { "upstream_skill" : { "name" : "verilog-partition" , "role" : "生成 partition workspace" , "output" : { "directory" : "workspace/partition_<uuid>/" , "description" : "原始 RTL + 拆分后的子模块 parts(通常位于 output/)" } } , "current_skill" : { "name" : "verilog-optimization" , "role" : "partition 后优化 parts 并兜底 syntax/lint 与等价性确认" , "input" : "partition_workspace_dir" , "tasks" : [ "调用 agent_optimization.py" , "优先读取 partition_opt/result.md" , "对 partition_opt/u_block_*.v 做 Verible syntax + lint" , "若等价性检查为 warning:必须对每个子模块走 testbench-generator + iverilog/vvp 最终确认" ] , "output" : { "optimized_workspace_dir" : "workspace/optimization_<uuid>/" , "partition_opt_dir" : "workspace/optimization_<uuid>/partition_opt/" , "yosys_opt_record_dir" : "workspace/optimization_<uuid>/yosys_opt_record/<timestamp>/" } } , "downstream_skill" : { "name" : "verilog-merge" , "role" : "把优化后的 parts 合并回完整 RTL" , "input" : "workspace/optimization_<uuid>/" , "description" : "verilog-merge 只需要在同一 workspace 内自行识别 original_file 与 parts_dir" } } } 使用示例 最简单的使用方式是在聊天框输入: 使用verilog-optimization优化path/to/workspace/partition_c575b2a6 对应的终端等价操作(可选): source /home/openclawer/anaconda3/etc/profile.d/conda.sh conda activate /home/openclawer/Projects/Partition/.venv cd /home/openclawer/Projects/Partition python agent_optimization.py workspace/partition_c575b2a6 注意事项 你必须优先读 partition_opt/result.md ,不要被 agent 前面的大量 MARO 提示文本干扰导致跳过 tb/等价性最终确认。 syntax 必须先过,再谈 lint;仿真验证必须在 tb 编译通过后进行。 tb 与仿真产物要隔离到 iverilog_check_for_opt/ ,避免与 merge/其它阶段文件冲突。
このスキルを起動するキーワード。クリックでコピーできます。

このスキルにはトリガーワードがありません。

ダウンロードした .skill に含まれるフィールド。
フィールド 説明
formatフォーマット識別子(skill/v1)
skill_idスキル固有 ID
nameスキル名
versionバージョン
description説明
categoryカテゴリ(配列)
trigger_wordsトリガーワード
tagsタグ
sourceソース
source_urlソース URL(本ページ)
exported_atエクスポート日時(ダウンロード毎)
system_promptシステムプロンプト本文
model_configモデル設定:provider / model / temperature / max_tokens / top_p
examplesサンプル
install_guide各プラットフォームの導入説明(Coze / Dify / Claude / カスタム)
同じスキルを各プラットフォーム形式で出力できます。
.skill 標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能 ダウンロード
.skillpro 拡張形式。scripts / tools / dependencies / hooks を含む ダウンロード
.json 純粋な JSON 出力。system_prompt とモデル設定のみ ダウンロード
Coze frontmatter 付き Markdown。Coze へのインポート用 ダウンロード
Dify Dify DSL。アプリ作成後にそのままインポート ダウンロード

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。