/[smarc]/smarc/src/vmachine/vmachine.h
ViewVC logotype

Diff of /smarc/src/vmachine/vmachine.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by misto, Sat Dec 28 22:52:50 2002 UTC revision 1.11 by misto, Sun Dec 29 15:23:18 2002 UTC
# Line 42  class vmachine { Line 42  class vmachine {
42          private:          private:
43                  PSR psr;                  PSR psr;
44    
45                    enum phase { IF, ID, EX, MA, WB };
46                    vector<bool> phase_active;
47    
48                  // phase 1. IF (instruction fetch)                  // phase 1. IF (instruction fetch)
49                  internal_reg nPC;                  internal_reg nPC;
50                  cache ICache;                  cache ICache;
# Line 49  class vmachine { Line 52  class vmachine {
52                  const4 c4;                  const4 c4;
53                  sum Add1;                  sum Add1;
54    
55    
56                  // phase 2. ID (instruction decode)                  // phase 2. ID (instruction decode)
57                    instr_word nOP;
58                  internal_reg PC, IR;                  internal_reg PC, IR;
59                  registers Registers;                  registers Registers;
60                  constant Const;                  constant Const;
# Line 57  class vmachine { Line 62  class vmachine {
62    
63                  sum Add2;                  sum Add2;
64                  mplexer Mpx1;                  mplexer Mpx1;
65                    
66                  // phase 3. EX/AC (execution/address calculation)                  // phase 3. EX/AC (execution/address calculation)
67                  instr_word OP;                  instr_word OP;
68                  internal_reg pPC, A1, A2, R;                  internal_reg pPC, A1, A2, R;
# Line 69  class vmachine { Line 74  class vmachine {
74                                    
75                  mplexer Mpx2;                  mplexer Mpx2;
76                                    
77    
78                  // phase 4. MA (memory access)                  // phase 4. MA (memory access)
79                  instr_word pOP;                  instr_word pOP;
80                  internal_reg T, pR;                  internal_reg T, pR;
# Line 81  class vmachine { Line 87  class vmachine {
87                  internal_reg pT, D;                  internal_reg pT, D;
88                  internal_reg ppDR;                  internal_reg ppDR;
89                  mplexer Mpx9;                  mplexer Mpx9;
90                            
91          public:          public:
92                  vmachine( void );                  vmachine( void );
93    
94                    void init( vector<unsigned long> data,
95                                    vector<unsigned long> instr );
96                    
97                    void step( void );
98                    void do_IF( void );
99                    void do_ID( void );
100                    void do_EX( void );
101                    void do_MA( void );
102                    void do_WB( void );
103                    
104                                    
105                  int get_CWP(void) { return psr.CWP; }                  int get_CWP(void) { return psr.CWP; }
106                  int get_N(void) { return psr.N; }                  int get_N(void) { return psr.N; }

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26