- 差异参考
- 按模块查阅
- Component / VCS 集成
Component / VCS 集成
常规组件连接主要涉及新增 factory 注册和 DRVCONNECT 告警。启用 regex 缓存或使用 FGP、native dumping 的环境需单独核对;regex/glob 混用的缓存风险已复现。compat 包配置见版本与兼容,文件入口见本页参考。
建议阅读顺序
先确认环境是否使用 regex 缓存、FGP 或 native dumping 等特定流程;普通组件用法按新增报告和注册行为核对。
M10-006 → M10-001 → M10-007 → M10-008
comparator/pair 工具类的 type_name 读取与变量上下文统一见 M09-006;抽象组件新增 factory 注册仍见 M10-003。
用户接口与行为
| 条目 | 修改方案 |
|---|---|
| M10-001 | uvm_driver 新增 seq_item_port 未连接告警(DRVCONNECT) 日志/调试变化正常连接的 driver 无需改动;确不需连接的,在构造函数加 set_report_severity_id_action(UVM_WARNING, "DRVCONNECT", UVM_NO_ACTION); (VCS 2.0 内置 README "Migrating from 1.2" 第 2 条官方建议)。 |
| M10-003 | 抽象组件的工厂注册与 type_name 使用 其他行为变化普通 get_type_name() 或无参 type_name 读取可保留。若需要可写字符串或 ref 实参,先复制类型名到自己的 string 变量,停止将目标 type_name 当变量写入或重复声明;同源例子见 M09-006。通过抽象基类 factory 创建时,先设置具体类 override,再检查实际对象类型。 |
| M10-006 | 正则接口与缓存:删除的调试 API 和匹配风险 编译断点 高风险 · 静默/数据删除对 uvm_dump_re_cache() 的调用(若有)。保留缓存默认关闭:目标缓存只以表达式字符串为键,未区分 deglob( src/vcs-uvm-ieee-2020-2.0/dpi/uvm_regex.svh:46,59 )。utility_probe 先用 uvm_re_match("a.*","abc") 再用 uvm_is_match,同样代码在两库默认模式第二次均不匹配,目标开启缓存后错误匹配。混合 regex/glob 的查找结果可能依赖调用顺序,不能将缓存开关作为无条件性能优化(S21)。 |
| M10-007 | 旧 FGP 类与集成文件已删除 编译断点若环境引用 uvm_fgp_thread_object / uvm_fgpinit_phase ,需联系 Synopsys 确认替代方案;否则无 |
| M10-008 | Verdi native_dumping 录制文件已删除 编译断点 日志/调试变化引用旧 native_dumping 文件或安装其 recorder 的脚本,迁移到目标安装提供的标准 uvm_custom_install_verdi_recorder.sv 流程,并核对 DPI 与启动配置。在实际 Verdi 中确认所需事务、字段及父子关系完整后,再移除旧脚本。未引用这些旧文件的流程无需因此替换文件;现有实测未覆盖全部 Verdi 工作流。 |
内部实现 · 2 项
文件组织、内部数据结构与实现钩子的变化。直接依赖内部接口时查阅,普通 API 的使用不需要重审这些源码。
| 条目 | 修改方案 |
|---|---|
| M10-002 | uvm_driver / uvm_push_driver 新增 factory 注册 其他行为变化无 |
| M10-005 | uvm_random_stimulus 降级为 @uvm-compat 兼容 API 新增/接口调整已有 uvm_random_stimulus 调用可继续使用并验证实际激励;需要改用 sequence 时再迁移约束与消费路径,不因兼容标注强制替换。 |
Compat 包参考
Compat 包参考
编译、导入和退出方式统一见版本与兼容。各类的恢复范围与限制只在关联条目维护。
| 文件 | 提供的入口 | 用法与边界 |
|---|---|---|
| uvm_compat_pkg.sv | 独立包入口 | 显式编译配置 |
| uvm_compat_macros.svh | uvm_unpack_string_with_size | 字符串解包见 M02-010 |
| uvm_compat_packer.svh | uvm_compat_packer | 位流及旧接口见 M02-001、M02-002 |
| uvm_compat_proxy_sequence.svh | uvm_compat_proxy_sequence | 具体代理类见 M06-004 |
工具目录参考
工具目录参考
| 目录 | 实现背景与关联入口 |
|---|---|
| dap/ | 锁定访问策略;目标新增 is_locked 查询并调整打印接口,既有锁定约束保持;新增查询与输出格式不应概括为零差异。 |
| sled/ | Synopsys $msglog 对接包、catcher 与 server,两侧文件一致。文件一致不等于整个集成流程已对跑。 |
| directc/ | 随机种子钩子 vc_uvmCreateRandomSeed;svh 两侧一致,seed 头仅空白差异,受 UVM_DIRECTC_OPTS 控制。 |
| dpi/ | 正则重构见 M10-006;HDL 后门公共入口保留,其他厂商源文件改名见文件差异附录。 |
| vcs/ | 原生事务 recorder/database;FGP 删除见 M10-007,公开派生方法的句柄签名见 M02-012。 |
| verdi/ | native_dumping 删除见 M10-008;标准 recorder 安装入口保留,但 DPI 与事务展示仍需实际集成验证。 |
VCS 定制说明
VCS 定制说明
| 定制项 | 两版状态 | 工程影响与入口 |
|---|---|---|
| comps/ | 各版本 VCS 与对应 Accellera 文件一致 | 版本间组件 API 变化仍见上方条目。 |
| compat 包属性 | VCS 2.0 为静态 package;非 VCS 分支使用 package automatic,Accellera 为普通 package | 源码 src/vcs-uvm-ieee-2020-2.0/compat/uvm_compat_pkg.sv:28-32;其余三文件仅版权头差异。配置见上方包参考。 |
| analysis_port Verdi 插桩 | 两侧延续 | 端口录制统一见 TLM 模块;UVM_VERDI_NO_PORT_RECORDING 控制是否启用。 |
| DPI 导入与 real 后门 | 两侧含 VCSMX_FAST_UVM 的 context 选择、UVM_HDL_REAL_FUNC 门控;VCS C 后端有 vpi_chk_error 诊断 | 属 VCS 集成路径,启用时核对目标 DPI 构建与 HDL 对象类型。 |
| vcs/verdi/sled/directc/include/uvm_ams.sv | Synopsys 专属目录或文件 | 仅“Accellera 不存在”不构成 1.2→2.0 变化;版本差异见对应条目和文件附录。 |