私はsystemCを初めて使っています愚かに見えるかもしれませんが、助けていただければ幸いです。主な機能には以下のコードSystemC:ポートへのread()とwrite()は動作しません
- で :ライト()
aa
とbb
10及び20 - もよく、また、私はそれがメソッドを入力すべきだと思うべき
aa.read()
とbb.read()
を用いて読み取ったときに値0を示すdo_add()
加算器モジュールではa
およびb
およびa
に敏感であり、aa
およびbb
信号にバインドされていますが、方法はdo_add()
ではありません。どのように動作し、コードにエラーがありますか?コードをコンパイルするための
:
g++ -I. -I$SYSTEMC_HOME/include -L. -L$SYSTEMC_HOME/lib-linux64 -Wl,-rpath=$SYSTEMC_HOME/lib-linux64 -o out adder.cpp -lsystemc -lm
./out
#include "systemc.h"
#define WIDTH 32
SC_MODULE(adder) {
sc_in<sc_uint<WIDTH> > a, b;
sc_out<sc_uint<WIDTH> > sum;
void do_add() {
// cout<<"hello"<<endl;
// cout<<a.read()<<b.read()<<"\n";
sum.write(a.read() + b.read());
// cout<<sum.read()<<endl;
}
SC_CTOR(adder) {
SC_METHOD(do_add);
sensitive << a << b;
}
};
int sc_main(int argc, char* argv[]) {
sc_signal<sc_uint<WIDTH> >aa,bb;
adder add("Adder");
add.a(aa);
add.b(bb);
aa.write(10);
bb.write(20);
cout<<aa.read()<<bb.read()<<"\n";
}
ユーザーガイドは非常に助けてくれてありがとう – programmer