b 对象的成员不能在 SystemC 中写入
Member of b object can't write in SystemC
我在 SystemC 上遇到这个错误,我不明白为什么。错误是:
- 'write': 不是的成员
'sc_core::sc_in' ConsoleApplication1
- 'write': 不是 'sc_core::sc_in'
的成员
- class "sc_core::sc_in" 没有成员 "write"
- class "sc_core::sc_in" 没有成员 "write"
这里我整理了代码
#include<systemc.h>
SC_MODULE(prin) {
sc_in<bool> a;
void print() {
cout << "Hello World\n";
}
SC_CTOR(prin) {
SC_METHOD(print);
sensitive << a;
}
};
SC_MODULE(input) {
prin b;
void in() {
b.a.write(false);
wait();
b.a.write(true);
wait();
}
SC_CTOR(input) : b("sds"){
SC_THREAD(in);
}
};
int sc_main(int argc, char* argv[]) {
input prin1("pint");
sc_start();
return 0;
}
如果错误看起来很混乱,我在这里把我的错误图片放在一起:
端口“a”是输入端口,因此无法写入。如果将其设为输出端口,则可以对其进行写入。此外,端口未绑定,因此您也会收到错误消息,因此我已将信号绑定到它,以便编译。
#include <systemc.h>
SC_MODULE(prin) {
sc_out<bool> a; //output port
sc_signal<bool> sig; //something to bind port a to
void print() {
cout << "Hello World\n";
}
SC_CTOR(prin) {
SC_METHOD(print);
sensitive << a;
a(sig); //bind port a to s signal
}
};
SC_MODULE(input) {
prin b;
void in() {
b.a.write(false);
wait();
b.a.write(true);
wait();
}
SC_CTOR(input) : b("sds"){
SC_THREAD(in);
}
};
int sc_main(int argc, char* argv[]) {
input prin1("pint");
sc_start();
return 0;
}
然后
g++ -file.cpp -lsystemc
./a.out
给我输出
SystemC 2.3.2-Accellera --- Apr 16 2018 00:15:03
Copyright (c) 1996-2017 by all Contributors,
ALL RIGHTS RESERVED
Hello World
我在 SystemC 上遇到这个错误,我不明白为什么。错误是:
- 'write': 不是的成员 'sc_core::sc_in' ConsoleApplication1
- 'write': 不是 'sc_core::sc_in' 的成员
- class "sc_core::sc_in" 没有成员 "write"
- class "sc_core::sc_in" 没有成员 "write"
这里我整理了代码
#include<systemc.h>
SC_MODULE(prin) {
sc_in<bool> a;
void print() {
cout << "Hello World\n";
}
SC_CTOR(prin) {
SC_METHOD(print);
sensitive << a;
}
};
SC_MODULE(input) {
prin b;
void in() {
b.a.write(false);
wait();
b.a.write(true);
wait();
}
SC_CTOR(input) : b("sds"){
SC_THREAD(in);
}
};
int sc_main(int argc, char* argv[]) {
input prin1("pint");
sc_start();
return 0;
}
如果错误看起来很混乱,我在这里把我的错误图片放在一起:
端口“a”是输入端口,因此无法写入。如果将其设为输出端口,则可以对其进行写入。此外,端口未绑定,因此您也会收到错误消息,因此我已将信号绑定到它,以便编译。
#include <systemc.h>
SC_MODULE(prin) {
sc_out<bool> a; //output port
sc_signal<bool> sig; //something to bind port a to
void print() {
cout << "Hello World\n";
}
SC_CTOR(prin) {
SC_METHOD(print);
sensitive << a;
a(sig); //bind port a to s signal
}
};
SC_MODULE(input) {
prin b;
void in() {
b.a.write(false);
wait();
b.a.write(true);
wait();
}
SC_CTOR(input) : b("sds"){
SC_THREAD(in);
}
};
int sc_main(int argc, char* argv[]) {
input prin1("pint");
sc_start();
return 0;
}
然后
g++ -file.cpp -lsystemc
./a.out
给我输出
SystemC 2.3.2-Accellera --- Apr 16 2018 00:15:03
Copyright (c) 1996-2017 by all Contributors,
ALL RIGHTS RESERVED
Hello World