| 42 |
private: |
private: |
| 43 |
PSR psr; |
PSR psr; |
| 44 |
|
|
|
enum phase { IF, ID, EX, MA, WB }; |
|
| 45 |
vector<bool> phase_active; |
vector<bool> phase_active; |
| 46 |
bool on; |
bool on; |
| 47 |
|
|
| 91 |
|
|
| 92 |
internal_reg pppPC,ppppPC; |
internal_reg pppPC,ppppPC; |
| 93 |
public: |
public: |
| 94 |
|
enum phase { IF, ID, EX, MA, WB }; |
| 95 |
|
|
| 96 |
vmachine( void ); |
vmachine( void ); |
| 97 |
|
|
| 98 |
void init( vector<unsigned long> data, |
void init( vector<unsigned long> data, |
| 100 |
|
|
| 101 |
bool is_on( void ){ return on; } |
bool is_on( void ){ return on; } |
| 102 |
void off( void ) { on = false; } |
void off( void ) { on = false; } |
| 103 |
|
bool is_active( phase p ){ return phase_active[p]; } |
| 104 |
|
|
| 105 |
void step( void ); |
void step( void ); |
| 106 |
void do_IF( void ); |
void do_IF( void ); |
| 108 |
void do_EX( void ); |
void do_EX( void ); |
| 109 |
void do_MA( void ); |
void do_MA( void ); |
| 110 |
void do_WB( void ); |
void do_WB( void ); |
| 111 |
|
|
| 112 |
|
|
| 113 |
vector<unsigned long> get_regs( void ){ return Registers.get();} |
vector<unsigned long> get_regs( void ){ return Registers.get();} |
| 114 |
vector<unsigned long> get_dcache( unsigned long num = 0) |
vector<unsigned long> get_dcache( unsigned long num = 0) |