跳转至

输入查询内容

    本页内容

    uvm_mem_mam:地址类型 bit [63:0] 统一为 uvm_reg_addr_t

    内部实现:文件组织、内部数据结构与实现钩子的变化。直接依赖内部接口时查阅,普通 API 的使用不需要重审这些源码。

    具体差异

    uvm_reg_addr_t 默认即 bit [63:0](受 UVM_REG_ADDR_WIDTH 控制),默认配置下完全等价;仅在改动地址宽度宏的工程中有类型一致性收益。

    修改方案

    无。

    兼容措施与范围:本条是新增能力或实现说明,无需恢复旧接口;按使用条件核对行为。

    补充查阅

    扫描定位与记录结果

    无对应规则。当前脚本没有针对本条的直接检测规则。

    本条处理级别为“无需改动”,按修改方案评估;缺少扫描规则本身不增加迁移改造要求。

    扫描器下载、输入范围与报告说明

    源码与标准依据

    核查方式:源码核对。未单独进行 VCS 行为实测。

    VCS 内置 UVM-1.2uvm_mem_mam.svh:170reserve_region(bit [63:0] ...))、uvm_mem_mam.svh:304get_start_offset 返回 bit [63:0]

    VCS 内置 uvm-ieee-2020-2.0uvm_mem_mam.svh:175uvm_mem_mam.svh:311(均为 uvm_reg_addr_t

    引用代码(高亮为引用行);上方行号链接可直接定位。

    src/vcs-uvm-1.2/reg/uvm_mem_mam.svh
       //
       // Regions can be reserved to create "holes" in the managed address space.
       //
       extern function uvm_mem_region reserve_region(bit [63:0]   start_offset,
                                                     int unsigned n_bytes,
                                                     string       fname = "",
                                                     int          lineno = 0);
    
    
       // Function: request_region
       //
       // Request and reserve a memory region
       //
       // Request and reserve a memory region of the specified number
       // of bytes starting at a random location.
       // If an policy is specified, it is randomized to determine
       // the start offset of the region.
       // If no policy is specified, the policy found in
       // the <uvm_mem_mam::default_alloc> class property is randomized.
    

    src/vcs-uvm-1.2/reg/uvm_mem_mam.svh
       // Return the address offset, within the memory,
       // where this memory region starts.
       //
       extern function bit [63:0] get_start_offset();
    
    
       // Function: get_end_offset
       //
       // Get the end offset of the region
       //
       // Return the address offset, within the memory,
       // where this memory region ends.
       //
       extern function bit [63:0] get_end_offset();
    
    
       // Function: get_len
       //
       // Size of the memory region
    

    完整源码 · SHA256:368e8accab6ebe00a05c66bb60d5242d4c252e444b74cf1b51920f5a439090e8

    src/vcs-uvm-ieee-2020-2.0/reg/uvm_mem_mam.svh
       //
       // Regions can be reserved to create "holes" in the managed address space.
       //
       extern function uvm_mem_region reserve_region(uvm_reg_addr_t   start_offset,
                                                     int unsigned n_bytes,
                                                     string       fname = "",
                                                     int          lineno = 0);
    
    
       // Function -- NODOCS -- request_region
       //
       // Request and reserve a memory region
       //
       // Request and reserve a memory region of the specified number
       // of bytes starting at a random location.
       // If an policy is specified, it is randomized to determine
       // the start offset of the region.
       // If no policy is specified, the policy found in
       // the <uvm_mem_mam::default_alloc> class property is randomized.
    

    src/vcs-uvm-ieee-2020-2.0/reg/uvm_mem_mam.svh
       // where this memory region starts.
       //
       // @uvm-ieee 1800.2-2020 auto 18.12.7.2.1
       extern function uvm_reg_addr_t get_start_offset();
    
    
       // Function -- NODOCS -- get_end_offset
       //
       // Get the end offset of the region
       //
       // Return the address offset, within the memory,
       // where this memory region ends.
       //
       // @uvm-ieee 1800.2-2020 auto 18.12.7.2.2
       extern function uvm_reg_addr_t get_end_offset();
    
    
       // Function -- NODOCS -- get_len
       //
    

    完整源码 · SHA256:83a0d3353d694741fdbe4fa74a4d73e7300badaa7f6094d514814097e38ec953

    术语解释 · 兼容配置

    返回RAL(寄存器模型) · 迁移清单

    版本适用范围