com um clique
uvm
uvm project conventions (loaded by writer agents; do not invoke).
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
uvm project conventions (loaded by writer agents; do not invoke).
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Read-only architecture review of RTL vs uArch spec with area/timing/power tradeoffs. Use for post-RTL architecture sign-off or suspected spec mismatch.
Builds Phase 3 SystemC TLM-2.0 bus functional models with AMBA (AXI/AHB/APB) support. Use for 'develop BFM', 'SystemC TLM model', 'bus functional model'.
Encoder RD evaluation of C ref model: BD-PSNR/BD-rate (VCEG-M33) across sequences/QPs — 'RD eval', 'BD-rate', codec algorithm quality comparison.
Validate spec contracts across phase boundaries (P3 uarch to P4 RTL to P5 verify): port widths, memory class, REQ traceability. Use at P4/P5 entry.
Internal reference: p1 spec research policy (agent-loaded; do not invoke).
Full 6-phase RTL pipeline from spec to verified design (P1 research through P6 design note). Triggers: 'design a chip', 'full pipeline', 'autopilot'.
| name | uvm |
| description | uvm project conventions (loaded by writer agents; do not invoke). |
| user-invocable | false |
<Use_When>
rtl-p5s-uvm-verify)<Do_Not_Use_When>
rtl-p5s-func-verify skill; SVA-only work → systemverilog-assertion skill; synthesizable RTL → systemverilog skill
</Do_Not_Use_When><Execution_Policy>
templates/uvm-env-template.sv; smoke test structure: examples/uvm-smoke-test-example.svClass 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 |
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)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.
| 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>
<Final_Checklist>
uvm_component_utils / uvm_object_utils)uvm_fatal on config_db get failure{proto}_agent, {proto}_driver, m_ prefix instances