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

Subversion Repositories sardmips

[/] [sardmips/] [branches/] [avendor/] [source/] [cpu/] [sc_risc.h] - Blame information for rev 18

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 igorloi
//
2 12 igorloi
// $Id: sc_risc.h,v 1.1.1.1 2006-01-31 10:55:28 igorloi Exp $
3 4 igorloi
//
4
#ifndef _SC_RISC_H
5
#define _SC_RISC_H
6
 
7
#include <systemc.h>
8
#include "../constants/constants.h"
9
#include "../constants/config.h"
10
#include "sc_cpu.h"
11
#include "cp0.h"
12
 
13
SC_MODULE(sc_risc)
14
{
15
  //
16
  // Very basic signals for the CPU!
17
  //
18
  //! Main clock signal
19
  sc_in<bool> in_clk;
20
  //! Main reset signal
21
  sc_in<bool> reset;
22
 
23
  //
24
  // Instruction memory interface
25
  //
26
  //! Instruction memory input data
27
  sc_in<sc_lv<32> > instdataread;
28
  sc_out<sc_lv<32> > instdatawrite;
29
  //! Instruction memory address
30
  sc_out<sc_uint<32> > instaddr;
31
  //! Instruction memory request
32
  sc_out<sc_logic> instreq;
33
  //! Instruction memory read/write signal. 1 for write. 0 for read.
34
  sc_out<sc_logic> instrw;
35
  //! Hold signal from instruction memory
36
  sc_in<bool> insthold;
37
 
38
  //
39
  // Data memory interface
40
  //
41
  //! Data memory in/out data
42
  sc_in<sc_lv<32> > dataread;
43
  sc_out<sc_lv<32> > datawrite;
44
  //! Data memory address
45
  sc_out<sc_uint<32> > dataaddr;
46
  //! Data memory request
47
  sc_out<sc_logic> datareq;
48
  //! Data memory read/write signal. 1 for write. 0 for read.
49
  sc_out<sc_logic> datarw;
50
  //! Byte select signal. Select bytes to be written. 01 for byte, 10 for halfword
51
  sc_out<sc_lv<2> > databs;
52
  //! Hold signal from data memory
53
  sc_in<bool> datahold;
54
 
55
  //INTERRUPT SIGNAL FROM TOP_MODULE
56
  sc_in<bool>           interrupt_signal;
57
  sc_signal<bool>       m_wb_interrupt_signal;
58
 
59
  //interrupt enable and Kernel_mode or User_mode Signal
60
  sc_signal<sc_logic>   enable_interrupt;
61
  sc_signal<sc_logic>   enable_kernel_mode;
62
 
63
  //exceptions signal from datamem and instmem
64
  sc_in<sc_logic> inst_addrl;   // disaligned address in instmem during fetch stage
65
  sc_in<sc_logic> IBUS;         //page fault in instmem
66
  sc_in<sc_logic> data_addrl;   //disaligned address in datamem during  load instruction
67
  sc_in<sc_logic> data_addrs;   //disaligned address in datamem during store instruction
68
  sc_in<sc_logic> DBUS;         //page fault in datamem
69
 
70
  sc_signal<sc_logic>           m_wb_inst_addrl;
71
  sc_signal<sc_logic>           m_wb_IBUS;
72
  sc_signal<sc_logic>           m_wb_data_addrl;
73
  sc_signal<sc_logic>           m_wb_data_addrs;
74
  sc_signal<sc_logic>           m_wb_DBUS;
75
  sc_signal<sc_logic>           m_wb_syscall_exception;         // Syscall
76
  sc_signal<sc_logic>           m_wb_illegal_instruction;       // illegal instruction
77
  sc_signal<sc_logic>           m_wb_ovf_excep;                 // Overflow
78
  sc_signal<sc_uint<32> >       m_wb_instaddr;                  //victim address in INSTMEM
79
  sc_signal<sc_uint<32> >       m_wb_dataaddr;                  //Victim Address in DATAMEM
80
  sc_signal<sc_uint<32> >       ex_m_instaddr;          //address of the last non-completed instruction during interrupt
81
 
82
 
83
  // to CP0_STAGE
84
  sc_signal<sc_lv<32> >         new_pc;
85
  sc_signal<sc_logic>           load_epc;
86
  sc_signal<sc_lv<32> >         pc_in;
87
  sc_signal<sc_lv<32> >         pc_out;
88
  sc_signal<sc_logic>           id_branch;
89
  sc_signal<sc_logic>           id_ctrl;
90
  sc_signal<sc_logic>           id_ex_datarw;
91
  sc_signal<sc_logic>           id_ex_datareq;
92
 
93
  sc_signal<sc_logic>           addr_err;
94
  sc_signal<bool>               x_insthold;
95
  sc_signal<sc_lv<4> >          cp0_inst;
96
  sc_signal<sc_lv<32> >         reg_rs;
97
  sc_signal<sc_lv<32> >         reg_out;
98
  sc_signal<sc_uint<5> >        reg_no;
99
  sc_signal<sc_logic>           reg_rw;
100
  sc_signal<sc_lv<32> >         ex_id_forward;
101
 
102
  sc_signal<sc_logic>           interrupt_exception;
103
 
104
  sc_cpu *cpu;
105
  cp0 *co0;
106
 
107
 
108
  SC_HAS_PROCESS(sc_risc);
109
  sc_risc (const sc_module_name& name_);
110
 
111
};
112
 
113
#endif

powered by: WebSVN 2.1.0

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