• uvm_reg_map——寄存器模型(八)


    所有的寄存器都需要地址,都需要加入到地址列表中

    //------------------------------------------------------------------------------
    //
    // Class: uvm_reg_map
    //
    // :Address map abstraction class
    //
    // This class represents an address map.
    // An address map is a collection of registers and memories
    // accessible via a specific physical interface.
    // Address maps can be composed into higher-level address maps.
    //
    // Address maps are created using the <uvm_reg_block::create_map()>
    // method.
    //------------------------------------------------------------------------------
    
    class uvm_reg_map extends uvm_object;
    
       `uvm_object_utils(uvm_reg_map)
       
       // info that is valid only if top-level map
       local uvm_reg_addr_t     m_base_addr;
       local int unsigned       m_n_bytes;
       local uvm_endianness_e   m_endian;
       local bit                m_byte_addressing;
       local uvm_object_wrapper m_sequence_wrapper;
       local uvm_reg_adapter    m_adapter;
       local uvm_sequencer_base m_sequencer;
       local bit                m_auto_predict;
       local bit                m_check_on_read;
    
       local uvm_reg_block      m_parent;
    
       local int unsigned       m_system_n_bytes;
    
       local uvm_reg_map        m_parent_map;
       local uvm_reg_addr_t     m_parent_maps[uvm_reg_map];   // value=offset of this map at parent level
       local uvm_reg_addr_t     m_submaps[uvm_reg_map];       // value=offset of submap at this level
       local string             m_submap_rights[uvm_reg_map]; // value=rights of submap at this level
    
       local uvm_reg_map_info   m_regs_info[uvm_reg];
       local uvm_reg_map_info   m_mems_info[uvm_mem];
    
       local uvm_reg            m_regs_by_offset[uvm_reg_addr_t];
                                // Use only in addition to above if a RO and a WO
                                // register share the same address.
       local uvm_reg            m_regs_by_offset_wo[uvm_reg_addr_t]; 
       local uvm_mem            m_mems_by_offset[uvm_reg_map_addr_range];
    
       local uvm_reg_transaction_order_policy policy;
    
       extern /*local*/ function void Xinit_address_mapX();
    
       static local uvm_reg_map   m_backdoor;
    
       // Function: backdoor
       // Return the backdoor pseudo-map singleton
       //
       // This pseudo-map is used to specify or configure the backdoor
       // instead of a real address map.
       //
       static function uvm_reg_map backdoor();
          if (m_backdoor == null)
            m_backdoor = new("Backdoor");
          return m_backdoor;
       endfunction
  • 相关阅读:
    中级实训Android学习记录——百度地图API显示定位
    中级实训Android学习记录——Android Studio工程配置并进行地图显示
    中级实训Android学习记录——百度地图API获取AK
    unity 3d 八、粒子系统与流动效果
    中级实训Android学习记录——项目3制作
    中级实训Android学习记录——RecyclerView、Android存储
    中级实训Android学习记录——项目1、2重铸记录
    裴蜀定理
    二分模板
    最短路问题
  • 原文地址:https://www.cnblogs.com/dpc525/p/8025257.html
Copyright © 2020-2023  润新知