44 |
|
|
45 |
enum phase { IF, ID, EX, MA, WB }; |
enum phase { IF, ID, EX, MA, WB }; |
46 |
vector<bool> phase_active; |
vector<bool> phase_active; |
47 |
|
bool on; |
48 |
|
|
49 |
// phase 1. IF (instruction fetch) |
// phase 1. IF (instruction fetch) |
50 |
internal_reg nPC; |
internal_reg nPC; |
94 |
|
|
95 |
void init( vector<unsigned long> data, |
void init( vector<unsigned long> data, |
96 |
vector<unsigned long> instr ); |
vector<unsigned long> instr ); |
97 |
|
|
98 |
|
bool is_on( void ){ return on; } |
99 |
|
void off( void ) { on = false; } |
100 |
|
|
101 |
void step( void ); |
void step( void ); |
102 |
void do_IF( void ); |
void do_IF( void ); |
104 |
void do_EX( void ); |
void do_EX( void ); |
105 |
void do_MA( void ); |
void do_MA( void ); |
106 |
void do_WB( void ); |
void do_WB( void ); |
107 |
|
|
108 |
|
vector<unsigned long> get_regs( void ){ return Registers.get();} |
109 |
|
vector<unsigned long> get_dcache( unsigned long num ) |
110 |
|
{ return DCache.get(num);} |
111 |
|
vector<unsigned long> get_icache( unsigned long num ) |
112 |
|
{ return ICache.get(num);} |
113 |
|
|
114 |
int get_CWP(void) { return psr.CWP; } |
int get_CWP(void) { return psr.CWP; } |
115 |
int get_N(void) { return psr.N; } |
int get_N(void) { return psr.N; } |