- 问题排查
- 已知问题
本页内容
- KI-001 · resource_db::get_by_name 在 2.0 可能选中较低优先级资源
- KI-002 · uvm_push_sequencer 未消费被 peek 的请求
- KI-003 · 大端 map 的整宽反转可能破坏数据
- KI-004 · 支持 byte enable 的相邻字段访问仍可能退化为整寄存器访问
- KI-005 · 后门编解码可能失效
- KI-006 · predictor 仅继承首拍 status
- KI-007 · uvm_tlm_fifo::flush() 不再向 get_ap 广播
- KI-008 · uvm_tlm_generic_payload::do_compare() 全面重写
- KI-009 · 正则接口与缓存
- KI-010 · callback 注册与重复 catcher 调用次数
- KI-011 · sequence_library 的选择边界与类型名
- KI-012 · 自定义 coreservice
- KI-013 · +UVM_STACKTRACE 不再输出报告调用栈
- KI-014 · 旧 FGP 类与集成文件已删除
- KI-015 · Verdi native_dumping 录制文件已删除
已知问题
以下问题已通过源码或所列实验核对。先确认触发条件、工具构建和验证范围,再采用条目中的处理方法。
| 问题 | 影响 | 验证与方案 |
|---|---|---|
| KI-001 | resource_db::get_by_name 在 2.0 可能选中较低优先级资源(S11) | 限定场景替代 |
| KI-002 | uvm_push_sequencer 未消费被 peek 的请求,第二笔激励失败 | 依赖内部接口的实验替代 |
| KI-003 | 大端 map 的整宽反转可能破坏数据,单拍也受影响(S13) | 限定场景替代 |
| KI-004 | 支持 byte enable 的相邻字段访问仍可能退化为整寄存器访问(S14) | 限定场景替代 |
| KI-005 | 后门编解码可能失效:同时检查硬件值与读回值 | 限定场景替代 |
| KI-006 | predictor 仅继承首拍 status,后续拍失败仍可能更新镜像(S24) | 限定场景替代 |
| KI-007 | uvm_tlm_fifo::flush() 不再向 get_ap 广播,VCS 两项队列实测存在残留(S9) | 限定场景替代 |
| KI-008 | uvm_tlm_generic_payload::do_compare() 全面重写 | 限定场景替代 |
| KI-009 | 正则接口与缓存:删除的调试 API 和匹配风险 | 保持默认配置 |
| KI-010 | callback 注册与重复 catcher 调用次数 | 限定场景替代 |
| KI-011 | sequence_library 的选择边界与类型名 | 限定场景替代 |
| KI-012 | 自定义 coreservice:新增虚方法与初始化时机 | 诊断对照,需集成验证 |
| KI-013 | +UVM_STACKTRACE 不再输出报告调用栈(S10) | 替代流程待确认 |
| KI-014 | 旧 FGP 类与集成文件已删除 | 替代流程待确认 |
| KI-015 | Verdi native_dumping 录制文件已删除 | 需实际工具集成验证 |
KI-001 · resource_db::get_by_name 在 2.0 可能选中较低优先级资源
性质:实现问题 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:显式 lookup_name 后选择最高 precedence 已在竞争资源例中验证;不复刻 DB 的全部审计副作用。
退出补偿/适配的条件:升级后复测同名同类型多优先级查询;原调用已选择正确资源且审计契约通过后,才撤销封装。
触发条件、改法与验证:M05-010
KI-002 · uvm_push_sequencer 未消费被 peek 的请求
性质:实现问题 · 方案:依赖内部接口的实验替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:派生 push sequencer 显式消费 FIFO 只验证了所列两笔请求;kill、响应和背压需在实际环境验证。
退出补偿/适配的条件:在新构建先禁用局部补偿,验证原生 push 对多笔请求、kill、response 和背压正确,再移除内部接口依赖。
触发条件、改法与验证:M06-019
KI-003 · 大端 map 的整宽反转可能破坏数据
性质:实现问题 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:32位寄存器经32位大端总线的单拍场景也已复现,不能只排查多拍。adapter 补偿仅验证64位 reg_data / 32位 bus、固定地址映射和所列响应契约;不能直接推广至桥接或多级 map。
退出补偿/适配的条件:新构建先运行未补偿原生路径;逐拍数据、地址、status、硬件值和镜像正确后再移除补偿,避免重复反转。
触发条件、改法与验证:M07-020
KI-004 · 支持 byte enable 的相邻字段访问仍可能退化为整寄存器访问
性质:访问粒度限制 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:显式字段总线访问只验证固定映射;W1C、RC、硬件自主更新及预测必须按实际寄存器契约处理。
退出补偿/适配的条件:原生字段访问已产生正确 byte strobe 且未改变相邻硬件值时,再评估撤销自定义 frontdoor/预测;不根据 warning 消失判断。
触发条件、改法与验证:M07-021
KI-005 · 后门编解码可能失效
性质:实现问题 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:pre_write/post_read 方案须挂载在 backdoor 对象上,只验证单 codec、受控回调链与模拟硬件变量的成功数据路径;不证明 reg/field 回调、前门、镜像或失败路径等价。多 codec 另验正序编码、逆序解码及写回。
退出补偿/适配的条件:升级后先仅使用原 encode/decode 核对硬件与逻辑值,再停用迁移回调;不可同时保留两套转换。
触发条件、改法与验证:M07-023
KI-006 · predictor 仅继承首拍 status
性质:多拍预测检查缺口 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:显式聚合后预测限普通 RW、串行、小端、全字节访问;不覆盖任意副作用字段、乱序或多 master。
退出补偿/适配的条件:原生 predictor 通过首拍失败、后续拍失败和全成功矩阵后,再撤销自定义聚合预测;确保只有一个预测来源。
触发条件、改法与验证:M07-024
KI-007 · uvm_tlm_fifo::flush() 不再向 get_ap 广播
性质:目标工具上的清场问题 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:公开 try_get 排空仅在 producer/consumer 已停止的边界验证;该路径保留 get_ap 广播。
退出补偿/适配的条件:新构建原生 flush 能排空至少两项,并满足实际广播契约后,再评估撤销排空封装。
触发条件、改法与验证:M08-001
KI-008 · uvm_tlm_generic_payload::do_compare() 全面重写
性质:实现问题 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:显式检查 extension 键集合和内容;探针使用派生 GP,实际 extension 类型、比较策略和数据字段也需验证。
退出补偿/适配的条件:原生 compare 对单侧独有、后项缺失及任一内容不匹配均检出后,才评估移除附加检查。
触发条件、改法与验证:M08-002
KI-009 · 正则接口与缓存
性质:可选缓存实现问题 · 方案:保持默认配置
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:保持 UVM_ENABLE_RE_MATCH_CACHE 未启用;启用后的 regex/glob 混合语义不能仅凭性能收益放行。
退出补偿/适配的条件:取得新构建说明并通过双调用顺序、匹配/不匹配和实际 save/restore 条件后,才评估启用缓存。
触发条件、改法与验证:M10-006
KI-010 · callback 注册与重复 catcher 调用次数
性质:回调重复执行问题 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:改变注册顺序只验证固定 catcher 集合;动态注册、删除、继承和 action 变更另测。
退出补偿/适配的条件:两种注册顺序及实际动态生命周期均只执行预期次数后,才移除顺序约束。
触发条件、改法与验证:M01-016
KI-011 · sequence_library 的选择边界与类型名
性质:候选索引边界问题 · 方案:限定场景替代
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:选择前检查边界针对 USER 模式候选数量动态缩减;固定候选集无需因此改写。
退出补偿/适配的条件:原生 select_sequence 在实际候选集变更时始终返回合法索引后,才移除派生检查;空集合契约另行处理。
触发条件、改法与验证:M06-017
KI-012 · 自定义 coreservice
性质:初始化与录制集成限制 · 方案:诊断对照,需集成验证
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码与实测核对,具体测试范围见条目。
使用边界:关闭 Verdi 的探针只用于确认初始化时机;不作为关闭产品录制功能的通用建议。
退出补偿/适配的条件:实际录制配置下自定义 service 在初始化前安装成功,且录制与 factory/config 功能验证通过后,再收敛初始化适配。
触发条件、改法与验证:M01-014
KI-013 · +UVM_STACKTRACE 不再输出报告调用栈
性质:调试能力变化 · 方案:替代流程待确认
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码核对,具体测试范围见条目。
使用边界:源码确认保留解析但无 $stack 调用;没有单独对跑或验证可直接替换的调试命令。
退出补偿/适配的条件:目标原生调用栈或产品确认的替代流程能定位同一报告调用点后,才撤销保留的旧调试构建。
触发条件、改法与验证:M04-019
KI-014 · 旧 FGP 类与集成文件已删除
性质:FGP 集成限制 · 方案:替代流程待确认
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码核对,具体测试范围见条目。
使用边界:仅确认旧文件与符号删除;不能据此推断全部 VCS 并行功能被移除或已有等价替代。
退出补偿/适配的条件:产品确认目标并行集成方式后,以同一功能测试核对结果及实际并行配置;通过后才能移除旧集成。
触发条件、改法与验证:M10-007
KI-015 · Verdi native_dumping 录制文件已删除
性质:录制集成变化 · 方案:需实际工具集成验证
核对构建:VCS W-2024.09-SP2-8 / uvm-ieee-2020-2.0。其他构建的适用性需重新核对。
技术依据:源码核对,具体测试范围见条目。
使用边界:目标标准 recorder 路径仍存在;本项目未覆盖所有 Verdi 流程,需按安装版本核对 DPI 和启动设置。
退出补偿/适配的条件:标准 recorder 在实际 Verdi 中完整展示所需事务、字段与父子链接后,再移除 native_dumping 脚本。
触发条件、改法与验证:M10-008