OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [bench/] [sysc/] [include/] [OrpsocAccess.h] - Blame information for rev 57

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 julius
// ----------------------------------------------------------------------------
2
 
3
// Access functions for the ORPSoC Verilator model: definition
4
 
5
// Copyright (C) 2008  Embecosm Limited <info@embecosm.com>
6
 
7
// Contributor Jeremy Bennett <jeremy.bennett@embecosm.com>
8
 
9
// This file is part of the cycle accurate model of the OpenRISC 1000 based
10
// system-on-chip, ORPSoC, built using Verilator.
11
 
12
// This program is free software: you can redistribute it and/or modify it
13
// under the terms of the GNU Lesser General Public License as published by
14
// the Free Software Foundation, either version 3 of the License, or (at your
15
// option) any later version.
16
 
17
// This program is distributed in the hope that it will be useful, but WITHOUT
18
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
20
// License for more details.
21
 
22
// You should have received a copy of the GNU Lesser General Public License
23
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
24
 
25
// ----------------------------------------------------------------------------
26
 
27
// $Id: OrpsocAccess.h 303 2009-02-16 11:20:17Z jeremy $
28
 
29
 
30
#ifndef ORPSOC_ACCESS__H
31
#define ORPSOC_ACCESS__H
32
 
33
#include <stdint.h>
34
 
35
class Vorpsoc_top;
36
class Vorpsoc_top_orpsoc_top;
37
class Vorpsoc_top_or1200_ctrl;
38 44 julius
class Vorpsoc_top_or1200_except;
39
class Vorpsoc_top_or1200_sprs;
40 6 julius
class Vorpsoc_top_or1200_dpram;
41 51 julius
class Vorpsoc_top_ram_wb_sc_sw__D20_A18_M800000;
42 6 julius
 
43
 
44
//! Access functions to the Verilator model
45
 
46
//! This class encapsulates access to the Verilator model, allowing other
47
//! Classes to access model state, without needing to be built within the
48
//! Verilator environment.
49
class OrpsocAccess
50
{
51
public:
52
 
53
  // Constructor
54
  OrpsocAccess (Vorpsoc_top *orpsoc_top);
55
 
56
  // Accessor functions
57 51 julius
  bool      getExFreeze ();
58 6 julius
  bool      getWbFreeze ();
59
  uint32_t  getWbInsn ();
60 49 julius
  uint32_t  getIdInsn ();
61 51 julius
  uint32_t  getExInsn ();
62 44 julius
  uint32_t  getWbPC ();
63 49 julius
  uint32_t  getIdPC ();
64 51 julius
  uint32_t  getExPC ();
65 44 julius
  bool  getExceptFlushpipe ();
66
  bool  getExDslot ();
67 51 julius
  uint32_t getExceptType();
68 44 julius
  // Get a specific GPR from the register file
69 6 julius
  uint32_t  getGpr (uint32_t regNum);
70 44 julius
  //SPR accessessors
71
  uint32_t  getSprSr ();
72
  uint32_t  getSprEpcr ();
73
  uint32_t  getSprEear ();
74
  uint32_t  getSprEsr ();
75 6 julius
 
76 51 julius
  // Wishbone SRAM accessor functions
77
  uint32_t  get_mem (uint32_t addr);
78
  void  set_mem (uint32_t addr, uint32_t data);
79
  // Trigger a $readmemh for the RAM array
80
  void  do_ram_readmemh (void);
81
 
82 6 julius
private:
83
 
84
  // Pointers to modules with accessor functions
85 44 julius
  Vorpsoc_top_or1200_ctrl       *or1200_ctrl;
86
  Vorpsoc_top_or1200_except     *or1200_except;
87
  Vorpsoc_top_or1200_sprs       *or1200_sprs;
88
  Vorpsoc_top_or1200_dpram      *rf_a;
89 51 julius
  /*Vorpsoc_top_ram_wb_sc_sw*/Vorpsoc_top_ram_wb_sc_sw__D20_A18_M800000 *ram_wb_sc_sw;
90 6 julius
 
91
};      // OrpsocAccess ()
92
 
93
#endif  // ORPSOC_ACCESS__H

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.