Help us improve
Share bugs, ideas, or general feedback.
From rtl-agent-team
Generates SystemC TLM-2.0 Bus Functional Models (BFM) with AMBA protocol extensions (AXI/AHB/APB) for early performance estimation and protocol verification.
npx claudepluginhub babyworm/rtl-agent-team --plugin rtl-agent-teamHow this skill is triggered — by the user, by Claude, or both
Slash command
/rtl-agent-team:bfm-develop [block-name | --all-blocks][block-name | --all-blocks]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<Purpose>
Enforces SystemC/TLM-2.0 coding standards for BFM and Reference Model development, covering naming conventions, AT/LT patterns, and testbench integration.
Generates scaffolds for hardware protocols (AXI4-Lite, SPI, UART, I2C, AXI4-Full, AXI-Stream, Wishbone) with testbench templates and integration examples. Useful for requests like 'create I2C master interface' or 'scaffold AXI-Stream source'.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
<Use_When>
docs/phase-2-architecture/architecture.md, refc/) are complete.<Do_Not_Use_When>
rtl-p4s-unit-test directly.<Why_This_Exists>
TLM models run orders of magnitude faster than RTL simulation, enabling early detection of protocol bugs and performance bottlenecks before RTL exists. The BFM also serves as the performance reference in rtl-p5s-perf-verify. LT transport is the default because it gives fast functional validation; AT non-blocking is reserved for timing-accurate pipelined modeling.
</Why_This_Exists>
docs/phase-2-architecture/architecture.md and io_definition.json present.refc/ reference model built (needed for cross-phase functional consistency check).If missing: WARNING — proceed with available artifacts; note absent dependencies in smoke test result.
| Path | Role | |------|------| | `templates/bfm_module_template.h` | SystemC TLM-2.0 scaffold with LT/AT transport, Memory Manager, PEQ, and AXI extension stubs. | | `scripts/.gitkeep` | (placeholder — deep-fill in follow-up PR) | | `references/bfm-conventions.md` | Transport-style rules, AMBA protocol guidance, perf_baseline.json schema, anti-patterns. | | `examples/.gitkeep` | (placeholder — deep-fill in follow-up PR) |<Responsibility_Boundary>
cmake/make) and smoke-test execution via Bash CLI.io_definition.json exactly; functional output must match refc/ on shared test vectors.
</Responsibility_Boundary>Apply steps 1-7 to every requested block — do not stop after the first.
<Tool_Usage>
Task(subagent_type="rtl-agent-team:bfm-dev",
prompt="Implement SystemC TLM-2.0 BFMs in C++ at bfm/src/*.cpp from architecture.md. "
"Output MUST be C++ (.cpp/.h), NOT SystemVerilog. "
"LT blocking transport (b_transport) by default. AXI with amba_pv extensions. "
"Memory Manager (tlm_mm_interface) required. One SC_MODULE per block. "
"Include CMakeLists.txt. Port names must match io_definition.json exactly "
"(i_/o_ prefix, {domain}_clk, {domain}_rst_n). AT only if explicitly requested.")
Task(subagent_type="rtl-agent-team:video-processing-expert",
prompt="Review bfm/src/ datapath models for signal processing accuracy vs requirements.json.")
</Tool_Usage>
Five-block AXI pipeline; Phase 2 complete; LT transport requested. Five SC_MODULEs with b_transport and amba_pv::axi_extension; Memory Manager present; smoke test PASS; bfm/perf_baseline.json records per-block latency; all REQ-F-* mapped. Out-of-order memory controller; AT timing accuracy explicitly requested. nb_transport_fw/bw with full 4-phase handshake (BEGIN_REQ→END_REQ→BEGIN_RESP→END_RESP); PEQ scheduling correct; smoke test PASS in AT mode. BFM functional output diverges from refc/ on vector 23 during consistency check. Divergence recorded in perf_baseline.json with byte offset; bfm-dev fixes rounding in b_transport handler; re-run confirms bitexact match; bfm-feature-coverage.md updated.<Escalation_And_Stop_Conditions>
bfm/src/*.cpp — SystemC TLM-2.0 BFM modules (C++17).bfm/smoke_test_result.txt — smoke test verdict with transport mode and latency.bfm/perf_baseline.json — per-block throughput and latency baseline.reviews/phase-3-uarch/bfm-feature-coverage.md — REQ-F-* mapping table.<Final_Checklist>
bfm/src/*.cpp compiles without errors (C++17).SC_MODULE per architectural block.b_transport) used by default.tlm_mm_interface) used for payload pooling.peq_with_cb_and_phase) used for phase scheduling.bfm/smoke_test_result.txt written.refc/ on shared test vectors (bitexact or documented tolerance).REQ-F-* items mapped; bfm-feature-coverage.md saved.