用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/babyworm/rtl-agent-team --skill systemc命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Initialize RTL project workspace: directory structure, coding rules, phase guides. Run once per project. Triggers: 'init project', 'new project'.
Internal reference: rtl p5 verify policy (agent-loaded; do not invoke).
P5 formal verification: SVA proof via SymbiYosys BMC/induction on lint-clean RTL. Triggers 'formal verification', 'prove property', 'SVA'.
基于 SOC 职业分类
正在显示 SKILL.md
| name | systemc |
| description | systemc project conventions (loaded by writer agents; do not invoke). |
| user-invocable | false |
Language standard pins:
-std=c11), pure C, standalone — compilable without SystemC-std=c++17); C++20 features (concepts, ranges, coroutines, modules) forbidden
<Use_When>
<Do_Not_Use_When>
systemverilog skill; Python cocotb → rtl-p5s-func-verify skill; non-SystemC C/C++ utilities
</Do_Not_Use_When><Execution_Policy>
nb_transport_fw/bw() with
PEQ (peq_with_cb_and_phase) and payload pooling (tlm_mm_interface + acquire()/release()).
LT (b_transport()) only for simple register access (APB/AXI-Lite) or when explicitly requestedtemplates/tlm2-module-template.cppexamples/bfm-at-pattern.cppexamples/bfm-pattern.cpp
</Execution_Policy>| Type | Pattern | Example |
|---|---|---|
| Reference Model | ref_{module}.c / .h | ref_cabac.c |
| BFM | bfm_{module}.cpp / .h | bfm_axi_master.cpp |
| TLM Adapter | tlm_{module}_adapter.cpp | tlm_cabac_adapter.cpp |
| Memory Manager | memory_manager.h | memory_manager.h |
| DPI-C Interface | dpi_{module}.cpp / .h | dpi_interface.cpp |
| Testbench Top | tb_{module}_top.cpp | tb_cabac_top.cpp |
| Package (shared types) | {module}_types.h | cabac_types.h |
| Target | Rule | Example |
|---|---|---|
| SC_MODULE | snake_case | cabac_encoder_bfm |
| Reference Model class | {module}_ref_model | cabac_ref_model |
| BFM class | {module}_bfm | axi_master_bfm |
| TLM Socket | {role}_{protocol}_socket | init_axi_socket, targ_mem_socket |
| Member variables | m_ prefix | m_state, m_ctx_table |
| Constants | UPPER_SNAKE_CASE | MAX_CTX_ENTRIES |
SystemC ports use the same names as their RTL counterparts:
sc_in<sc_uint<8>> i_data{"i_data"};
sc_out<bool> o_valid{"o_valid"};
sc_in<bool> sys_clk{"sys_clk"}; // clock: no i_/o_ prefix
sc_in<bool> sys_rst_n{"sys_rst_n"}; // reset: no i_/o_ prefix
Core principles:
Fixed-point rules:
int16_t, uint32_t); no int (platform-dependent width), no float/double// CORRECT: bit-exact fixed-point multiply
int32_t fixed_mul(int16_t a, int16_t b) {
return static_cast<int32_t>(a) * static_cast<int32_t>(b);
}
// WRONG: 'int result = a * b;' — implicit promotion may differ from RTL
timing_constraints.json — no magic wait(2.0, SC_NS) numberssc_main testbench; always call set_response_status() before returning# Reference Model (standalone C, no SystemC)
gcc -std=c11 -O2 -Wall -Wextra -Werror -shared -fPIC -o ref_cabac.so ref_cabac.c
# BFM (SystemC required)
g++ -std=c++17 -O2 -Wall -Wextra \
-I${SYSTEMC_HOME}/include -L${SYSTEMC_HOME}/lib-linux64 -lsystemc \
-o tb_cabac tb_cabac_top.cpp bfm_cabac.cpp
# cocotb integration (shared library, C ref model)
gcc -std=c11 -shared -fPIC -o ref_cabac.so ref_cabac.c
cocotb integration:
import ctypes
lib = ctypes.CDLL("./ref_cabac.so")
lib.encode_bin.restype = ctypes.c_uint32
lib.encode_bin.argtypes = [ctypes.c_uint16, ctypes.c_bool]
expected = lib.encode_bin(ctx_addr, bin_val)
Mandatory:
<cstdint>), RAII, const, header guardtlm_mm_interface, p->reset() in free()) + PEQProhibited:
float/double in bit-exact models; platform-dependent intmalloc/free (use RAII); using namespace std; in headersb_transport in performance BFMs (use AT); missing AT phase transitions (implement all 4 phases with PEQ)<Tool_Usage> This skill is not executed directly. It is referenced by agents that generate SystemC code (e.g., bfm-dev, ref-model-dev). Agents should follow the conventions defined here. </Tool_Usage>
AT non-blocking BFM (MemoryManager, PEQ, AXI extension, 4-phase): `examples/bfm-at-pattern.cpp`. LT register-access BFM: `examples/bfm-pattern.cpp`.<Escalation_And_Stop_Conditions>
<Final_Checklist>
ref_ / bfm_ / tlm_ / dpi_ prefixint32_t etc., no int/float)i_data, o_valid, sys_clk)m_ prefix for member variables