防止SC_METHOD在没有事件/触发器的情况下执行

Prevent SC_METHOD from executing without event/trigger

本文关键字:触发器 情况下 执行 事件 SC METHOD 防止      更新时间:2023-10-16

即使没有事件,我的方法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方法参见语言参考手册

SC_CTOR(control) {
SC_METHOD(fsm1);
sensitive << id1_cmd;
dont_initialize();
}