内容创作
#agent
uvm
uvm project conventions (loaded by writer agents; do not invoke).
DeepseekModel
官方收录技能
质量 优秀 · 78
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=babyworm-rtl-agent-team-skills-uvm-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name uvm description uvm project conventions (loaded by writer agents; do not invoke). user-invocable false UVM project conventions (naming + RTL boundary rules) for UVM testbench work. Base: IEEE 1800.2-2020 UVM standard — standard UVM mechanics (factory registration, phasing, TLM ports, config_db, sequences, objections) are assumed known and are not restated here. <Use_When> Writing UVM testbenches, agents, sequences, or scoreboards (Phase 5, rtl-p5s-uvm-verify ) Agents: testbench-dev </Use_When> <Do_Not_Use_When> cocotb Python verification → rtl-p5s-func-verify skill; SVA-only work → systemverilog-assertion skill; synthesizable RTL → systemverilog skill </Do_Not_Use_When> <Execution_Policy> Environment scaffold: templates/uvm-env-template.sv ; smoke test structure: examples/uvm-smoke-test-example.sv All UVM classes registered with the factory; objections raised/dropped only in the test </Execution_Policy> 1. Naming Conventions Class name = file name (one class per file). Protocol-level components use {proto}_ , DUT-level components use {module}_ : Component Class / File Pattern Example Agent / Driver / Monitor / Sequencer {proto}_agent etc. axi_agent , axi_driver , axi_monitor , axi_sequencer Sequence Item {proto}_seq_item axi_seq_item Sequence (base / specific) {proto}_base_seq / {proto}_{name}_seq axi_base_seq , axi_write_burst_seq Scoreboard / Environment / Coverage {module}_scoreboard / {module}_env / {module}_coverage cabac_scoreboard , cabac_env Test (base / specific) {module}_base_test / {module}_{name}_test cabac_base_test , cabac_smoke_test Package {module}_tb_pkg.sv cabac_tb_pkg.sv Top tb_{module}_top.sv tb_cabac_top.sv 2. m_/u_ Prefix Boundary UVM class member handles use m_ prefix (industry convention); the create() instance name matches the variable name: m_driver = axi_driver::type_id::create("m_driver", this); u_ prefix is for RTL module instances ONLY — including the DUT instance in the TB top ( u_dut ) 3. RTL Port-Name Matching TB interfaces/signals connect to DUT ports using the RTL names verbatim: i_ / o_ / io_ prefixes, clk / {domain}_clk , rst_n / {domain}_rst_n (e.g., @(posedge vif.sys_clk) ). Never invent TB-side port aliases. 4. Anti-Patterns Anti-Pattern Problem Fix Not registered with factory Cannot override/reuse Add uvm_*_utils to all classes Objection in driver Phase control confusion Only raise/drop in test Ignoring config_db get failure Null pointer crash Handle with uvm_fatal Direct DUT access from sequence Destroys reusability Use sequencer→driver path only Hard-coded hierarchy path Destroys portability Use config_db wildcard #delay in run_phase Destroys portability Use @(posedge vif.sys_clk) <Tool_Usage> This skill is not executed directly. It is referenced by agents that generate UVM environments (e.g., testbench-dev). Agents should follow the conventions defined here. </Tool_Usage> Environment structure with factory/naming/config_db patterns: `templates/uvm-env-template.sv`. Smoke test structure: `examples/uvm-smoke-test-example.sv`. <Escalation_And_Stop_Conditions> UVM environment compilation error → request fix from testbench-dev Coverage target not met → write additional sequences or request analysis from coverage-analyst Scoreboard mismatch → request RTL vs Ref Model comparison from func-verifier </Escalation_And_Stop_Conditions> <Final_Checklist> All UVM classes registered with factory ( uvm_component_utils / uvm_object_utils ) Objection raised/dropped only in test uvm_fatal on config_db get failure TLM analysis port connects monitor→scoreboard Virtual interface passed via config_db Naming convention: {proto}_agent , {proto}_driver , m_ prefix instances Coverage collector subscribes to analysis port Port names match RTL (sys_clk, sys_rst_n, i_/o_) </Final_Checklist>
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |