zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    机器视觉资料整理
    《用TCP/IP进行网络互连》读书笔记
    Win Form不能响应键盘事件
    C语言 字符串前加L的意义 如:L“A”
    UniCode 下 CString 转 char* 的方法(转)
    BATCH
    HALCON不支持的设备中,获取图像
    关于FragmentManager动态管理Fragment时Fragment生命周期的探究
    关于如何惟一地标识一台Android设备的综合性讨论
    如何使ActionBar不那么单调
  • 原文地址:https://www.cnblogs.com/dpc525/p/8025257.html
Copyright © 2011-2022 走看看