跳转至

输入查询内容

    本页内容

    Component / VCS 集成

    常规组件连接主要涉及新增 factory 注册和 DRVCONNECT 告警。启用 regex 缓存或使用 FGP、native dumping 的环境需单独核对;regex/glob 混用的缓存风险已复现。compat 包配置见版本与兼容,文件入口见本页参考。

    建议阅读顺序

    先确认环境是否使用 regex 缓存、FGP 或 native dumping 等特定流程;普通组件用法按新增报告和注册行为核对。

    M10-006M10-001M10-007M10-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-001M02-002
    uvm_compat_proxy_sequence.svh uvm_compat_proxy_sequence 具体代理类见 M06-004
    标准与实现限制

    标准与实现限制

    三项实现限制及所属模块统一见标准与实现限制。这份原版说明用于解释实现边界,不能代替两侧 VCS 迁移结论。

    工具目录参考

    工具目录参考

    目录 实现背景与关联入口
    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 变化;版本差异见对应条目和文件附录。

    版本适用范围