64,646
社区成员
发帖
与我相关
我的任务
分享
#ifndef __REGISTER_H
#define __REGISTER_H
#include <systemc.h>
#include "stdio.h"
SC_MODULE(Register) {
public:
sc_in_clk clock;
sc_in<bool> write_enable;
sc_in<int> data_in;
sc_out<int> data_out;
SC_CTOR(Register) {
value = 0;
SC_METHOD(register_read);
dont_initialize();
sensitive << clock.pos();
SC_METHOD(register_write);
dont_initialize();
sensitive << data_in << clock.neg();
}
private:
int value;
void register_read() {
data_out = value;
}
void register_write() {
if ( write_enable.read() && clock==0 ) {
value = data_in.read();
cout << "Time: " << sc_time_stamp() <<" :: " << endl;
cout << "\t" << name() << "\twrite:\t";
printf("%i\n",data_in.read());
}
}
};
#endif