防止 SC_METHOD 在没有 event/trigger 的情况下执行
Prevent SC_METHOD from executing without event/trigger
我的方法 fsm1
即使没有事件也会执行一次,因此 id1_cmd.read()
和 id1_value.read()
包含 0 而不是正确的值。
//------------------------------------------------------------------
// Method: control::fsm1()
// Parameter: None
// @Sensitivity: ID_1_cmd (unsigned int)
//------------------------------------------------------------------
void control::fsm1() {
cout << id1_cmd.read() << endl;
cout << id1_value.read() << endl;
}
//------------------------------------------------------------------
// Method: Constructor
//------------------------------------------------------------------
SC_CTOR(control) {
SC_METHOD(fsm1);
sensitive << id1_cmd;
}
有没有办法阻止它执行一次,还是我必须在我的方法中始终处理这种情况?
使用dont_initialize
方法见Language Reference Manual
SC_CTOR(control) {
SC_METHOD(fsm1);
sensitive << id1_cmd;
dont_initialize();
}
我的方法 fsm1
即使没有事件也会执行一次,因此 id1_cmd.read()
和 id1_value.read()
包含 0 而不是正确的值。
//------------------------------------------------------------------
// Method: control::fsm1()
// Parameter: None
// @Sensitivity: ID_1_cmd (unsigned int)
//------------------------------------------------------------------
void control::fsm1() {
cout << id1_cmd.read() << endl;
cout << id1_value.read() << endl;
}
//------------------------------------------------------------------
// Method: Constructor
//------------------------------------------------------------------
SC_CTOR(control) {
SC_METHOD(fsm1);
sensitive << id1_cmd;
}
有没有办法阻止它执行一次,还是我必须在我的方法中始终处理这种情况?
使用dont_initialize
方法见Language Reference Manual
SC_CTOR(control) {
SC_METHOD(fsm1);
sensitive << id1_cmd;
dont_initialize();
}