我的方法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();
}

关于c++ - 防止SC_METHOD在没有事件/触发的情况下执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62061166/

10-11 15:36