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
  • 相关阅读:
    Linux Ubuntu 忘记用户名和密码 解决办法
    C语言中标准输入流、标准输出流、标准错误输出流
    递归实现字符串反转char* reverse(char* str)合集
    (转)最好的求平方根的方法(精确度VS速度)Best Square Root Method Algorithm Function (Precision VS Speed)
    java验证码识别4
    互聯網產品設計主題詞表
    java验证码识别3
    C++实现C#的get,set属性操作
    简陋,山寨,Everything,桌面搜索,原理,源码
    java验证码识别1
  • 原文地址:https://www.cnblogs.com/dpc525/p/8025257.html
Copyright © 2011-2022 走看看