36 |
*/ |
*/ |
37 |
class cache : public circuit { |
class cache : public circuit { |
38 |
private: |
private: |
39 |
vector<unsigned long> mem; |
vector<bit_word> mem; |
40 |
public: |
public: |
41 |
enum mode { wr, rd }; |
enum mode { wr, rd }; |
42 |
|
|
45 |
|
|
46 |
void process( mode m = rd ){ |
void process( mode m = rd ){ |
47 |
// mode: 0 - rd, 1 - write |
// mode: 0 - rd, 1 - write |
48 |
unsigned long addr = get_in(1); |
unsigned long addr = (get_in(1)).b(); |
49 |
|
|
50 |
if (m == rd) |
if (m == rd) |
51 |
set_out(0 , mem[ (addr/4)] ); |
set_out(0 , mem[ addr/4 ] ); |
52 |
else |
else |
53 |
mem[ (addr/4) ] = get_in( 1 ); |
mem[ addr/4 ] = get_in( 1 ); |
54 |
} |
} |
55 |
}; |
}; |
56 |
|
|