Repository navigation
zh reference compatibility
本文对应 xcomm v1.0.0。包名为 xspcomm,仓库名为 xcomm。v1.0.0 已发布;发行包与源码构建的区别见安装。
| 层次 | 当前值 | 用途 |
|---|---|---|
| Python 包/原生版本字符串 | 1.0.0 | 安装与发行识别;version()、包元数据 |
| 原生 C++ ABI | 3 | 对象布局与动态链接;abi_version()、libxspcomm.so.3 |
| Coverage 描述协议 | 5 | 前端生成 point/bin/program 的结构;XTriggerEngine.CoverageVersion()
|
Picker v2.1.0 源码依赖范围为 xspcomm>=1.0.0.dev0,<2,原生构建固定到 c39db6652cd08d46df05d08f0bb5a033b83e4d2f;该提交与 xcomm v1.0.0 的源码树一致。包版本满足范围不代表任意已编译 DUT 都兼容:升级 ABI 时需重新构建 DUT 和原生客户端,并检查实际加载的库。
发布 wheel 按 CPython 小版本及平台构建。1.0.0 的 GitHub 资产提供 CPython 3.12 / Linux x86-64;其他环境按源码构建。CMake 的无包元数据默认版本只是构建回退值,不能用它替代 Git 标签/发行包版本。
删除的路径没有转发头;直接更新 include:
| 旧路径 | 当前路径(均位于 xspcomm/) |
|---|---|
| xcomuse.h | xmonitor.h |
| xcomuse/{callback,condition,range,expr,fsm}.h | monitor/{callback,condition,range,expr,fsm}.h |
| xcomuse/compare.h | common/compare.h |
| xcomuse/utils.h | common/memory.h |
| xfsm.h | monitor/fsm.h |
| xexpr.h 中的 ComUseExprCheck | monitor/expr.h |
| common/operation.h | common/compare_op.h |
| detail/function.h、detail/lifetime.h | common/callback_storage.h、common/lifetime.h |
| common/memory/access.h | common/memory_access.h |
| trigger/types.h | runtime/types.h |
| tlm_msg.h、tlm_pbsb.h | tlm/message.h、tlm/pubsub.h |
| 旧名称 | 当前名称 |
|---|---|
| ComUseStepCb、ComUseCondCheck | XStepCallback、XConditionCheck |
| ComUseExprCheck、ComUseRangeCheck | XExprCheck、XRangeCheck |
| ComUseFsmTrigger、ComUseEcho | XFsmMonitor、XEcho |
| ComUseDataArray、ComUseCondCmp | XByteBuffer、CompareOp |
| XCoverageItem、XCoverageItemKind、XCoverageItemVector | XCoveragePoint、XCoveragePointKind、XCoveragePointVector |
| bin.item_id | bin.point_id |
| Python XPin | 直接使用 XData |
上述删除的类名不提供兼容别名。C++ XTriggerEngine 是保留的 XEngine 别名,SWIG 仍暴露 XTriggerEngine。原来的 detail/{trigger,coverage,data} 实现头以及 xinstance.h 不再安装;应用改用 xpattern.h、xcoverage.h、xengine.h。
协议 5 使用显式 XCoveragePoint.kind(Value/Pattern/Cross)、XCoverageBin.kind 和 bin.program。协议 4 前端要把平铺程序字段移入 XTriggerProgram,并用 kind 替换 point.pattern。Pattern 点不需要伪造 source;Cross 当前只引用此前声明的 Value 点。参见描述与计数布局。
创建 engine 后,先 AcquireClock,再注册和运行;结束时清空所有注册并 ReleaseClock。已触发但未 Disarm 的注册仍占槽。接管期间手动 DUT.Step/clock.Step 和旧 Python asyncio 驱动会被拒绝,不能用两套入口推进同一时钟。
typed NewBits、EvalBits 和显式回收是 v1.0 的新增能力;旧 CompileExpr 保留 uint64 语义。Collect 返回 root 映射后,前端必须替换所有保留的整数 root。详见宽位运算指南。
来源 / Source: https://github.com/XS-MLVP/xcomm. 内容在主仓库维护 / Content is maintained in the source repository.