mem_arch.h

来自「Kluwer.Academic.Pub.Systemc.From.The.Gro」· C头文件 代码 · 共 46 行

H
46
字号
#ifndef MEM_ARCH_H#define MEM_ARCH_H//BEGIN: mem_arch.h (systemc)//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//See hier_chan.h for more information//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#include "bus_if.h"extern unsigned errors;struct mem_arch: public sc_channel, bus_if {  // Constructors & destructor  explicit mem_arch(sc_module_name nm,               unsigned ba, unsigned sz)   : sc_channel(nm), m_base(ba), m_size(sz)  { m_mem = new unsigned[m_size]; }  ~mem_arch() { delete [] m_mem; }  // Interface implementations  void write(unsigned addr, unsigned data) {    if (m_base <= addr && addr < m_base+m_size) {      m_mem[addr-m_base] = data;    }  }  unsigned read(unsigned addr) {    if (m_base <= addr && addr < m_base+m_size) {      return m_mem[addr-m_base];    } else {      cout << "ERROR:"<<name()<<"@"<<sc_time_stamp()           << ": Illegal address: " << addr << endl;      errors++;      //sc_stop();      return 0L;    }  }private:  unsigned   m_base;  unsigned   m_size;  unsigned*  m_mem;  mem_arch(const mem_arch&); // Disable};#endif//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//END $Id: mem_arch.h,v 1.2 2004/04/15 17:43:44 dcblack Exp $

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?