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

Subversion Repositories sardmips

[/] [sardmips/] [trunk/] [source/] [cpu/] [sc_risc.cpp] - Blame information for rev 18

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 igorloi
//
2
// $Id: sc_risc.cpp,v 1.1 2006-01-25 17:00:01 igorloi Exp $
3
//
4
#include "sc_risc.h"
5
 
6
sc_risc::sc_risc(const sc_module_name& name_)
7
{
8
  cpu = new sc_cpu("cpu-processor");
9
 
10
  cpu->in_clk(in_clk);
11
  cpu->reset(reset);
12
  cpu->instdataread(instdataread);
13
  cpu->instdatawrite(instdatawrite);
14
  cpu->instaddr(instaddr);
15
  cpu->instreq(instreq);
16
  cpu->instrw(instrw);
17
  cpu->insthold(x_insthold);
18
  cpu->dataread(dataread);
19
  cpu->datawrite(datawrite);
20
  cpu->dataaddr(dataaddr);
21
  cpu->datareq(datareq);
22
  cpu->datarw(datarw);
23
  cpu->databs(databs);
24
  cpu->datahold(datahold);
25
  cpu->new_pc(new_pc);
26
  cpu->load_epc(load_epc);
27
  cpu->pc_in(pc_in);
28
  cpu->pc_out(pc_out);
29
  cpu->id_branch(id_branch);
30
  cpu->id_ctrl(id_ctrl);
31
  cpu->id_ex_datarw(id_ex_datarw);
32
  cpu->id_ex_datareq(id_ex_datareq);
33
  cpu->addr_err(addr_err);
34
  cpu->cp0_inst(cp0_inst);
35
  cpu->reg_rs(reg_rs);
36
  cpu->reg_out(reg_out);
37
  cpu->reg_no(reg_no);
38
  cpu->reg_rw(reg_rw);
39
  cpu->ex_id_forward(ex_id_forward);
40
 
41
  // EXCEPTION SIGNALS FROM DATAMEM AND INSTMEM
42
  cpu->IBUS(IBUS);
43
  cpu->inst_addrl(inst_addrl);
44
  cpu->DBUS(DBUS);
45
  cpu->data_addrl(data_addrl);
46
  cpu->data_addrs(data_addrs);
47
 
48
  // EXCEPTION STATUS VECTOR FROM CPU TO CP0
49
  cpu->m_wb_ovf_excep(m_wb_ovf_excep);
50
  cpu->m_wb_syscall_exception(m_wb_syscall_exception);
51
  cpu->m_wb_illegal_instruction(m_wb_illegal_instruction);
52
  cpu->m_wb_inst_addrl(m_wb_inst_addrl);                // disaligned address in instmem during fetch stage
53
  cpu->m_wb_IBUS(m_wb_IBUS);                            //page fault in instmem
54
  cpu->m_wb_data_addrl(m_wb_data_addrl);                //disaligned address in datamem during  load instruction
55
  cpu->m_wb_data_addrs(m_wb_data_addrs);                //disaligned address in datamem during store instruction
56
  cpu->m_wb_DBUS(m_wb_DBUS);                            //page fault in instmem
57
  cpu->m_wb_dataaddr(m_wb_dataaddr);
58
  cpu->m_wb_instaddr_s(m_wb_instaddr);
59
  cpu->interrupt_signal(interrupt_signal);
60
  cpu->m_wb_interrupt_signal(m_wb_interrupt_signal);
61
  cpu->enable_interrupt(enable_interrupt);
62
  cpu->enable_kernel_mode(enable_kernel_mode);
63
 
64
  co0 = new cp0("cp0_module");
65
  co0->in_clk(in_clk);
66
  co0->reset(reset);
67
  // to IF stage
68
  co0->new_pc(new_pc);
69
  co0->load_epc(load_epc);
70
  // to/from ID stage
71
  co0->pc_out(pc_out);
72
  co0->pc_in(pc_in);
73
  co0->id_ex_datarw(id_ex_datarw);
74
  co0->id_ex_datareq(id_ex_datareq);
75
  co0->id_branch(id_branch);
76
  co0->id_ctrl(id_ctrl);
77
  // co0->inst_break(inst_break);
78
  // co0->inst_syscall(inst_syscall);
79
  // to ID stage
80
  co0->cp0_inst(cp0_inst);
81
  co0->reg_no(reg_no);
82
  co0->reg_rw(reg_rw);
83
  co0->reg_out(reg_out);
84
  // from ID stage
85
  co0->reg_rs(reg_rs);
86
  // from EX stage
87
  co0->ex_alu(ex_id_forward);
88
 
89
  // to EX stage
90
  co0->addr_err(addr_err);
91
  // to all stages
92
  co0->x_insthold(insthold); // input to cp0
93
  co0->insthold(x_insthold);     // output from cp0*/
94
 
95
  // EXCEPTION STATUS VECTOR FROM CPU TO CP0
96
  co0->m_wb_inst_addrl(m_wb_inst_addrl);        // disaligned address in instmem during fetch stage
97
  co0->m_wb_IBUS(m_wb_IBUS);                    //page fault in instmem
98
  co0->m_wb_data_addrl(m_wb_data_addrl);        //disaligned address in datamem during  load instruction
99
  co0->m_wb_data_addrs(m_wb_data_addrs);        //disaligned address in datamem during store instruction
100
  co0->m_wb_DBUS(m_wb_DBUS);                    //page fault in instmem
101
  co0->m_wb_syscall_exception(m_wb_syscall_exception);
102
  co0->m_wb_illegal_instruction(m_wb_illegal_instruction);
103
  co0->m_wb_ovf_excep(m_wb_ovf_excep);
104
  co0->m_wb_dataaddr(m_wb_dataaddr);
105
  co0->m_wb_instaddr(m_wb_instaddr);
106
  co0->m_wb_interrupt_signal(m_wb_interrupt_signal);
107
  co0->enable_interrupt(enable_interrupt);
108
  co0->enable_kernel_mode(enable_kernel_mode);
109
 
110
}
111
 

powered by: WebSVN 2.1.0

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