防止 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();
}