SystemC的构造函数初始化失败

问题描述 投票:0回答:1
#ifndef RAM_H
#define RAM_H
#include <systemc.h>


SC_MODULE(ram) {

 void ram_proc();

 SC_HAS_PROCESS(ram);

private:
  sc_clock clock;
 };

 #endif

然后在ram.cpp我有以下代码

 #include "ram.h"

 ram::ram(sc_module_name name_): clock("clock",1,SC_NS) {std::cout<<"I am in clock "<<std::endl;}

  { //the error is occurring hier

SC_THREAD(ram_proc);

}

void  ram::ram_proc () {
  std::cout<<"I am in method ram_proc "<<std::endl;
}

问题是,我得到这个错误:

之前,“{”令牌预期不合格-ID {

c++ systemc
1个回答
4
投票

固定缩进和新行代码如下

void ram::ram(sc_module_name name_): clock("clock",1,SC_NS) 
{
    std::cout<<"I am in clock "<<std::endl;
} // <- constructor ends here

{ //the error is occurring hier
    SC_THREAD(ram_proc);
}

正如你可以看到你有两个代码块。第一块是构造体。第二块是不挂任何东西。如果你想块包含SC_THREAD(ram_proc);是在构造函数中,那么你需要

void ram::ram(sc_module_name name_): clock("clock",1,SC_NS) 
{
    std::cout<<"I am in clock "<<std::endl;
    SC_THREAD(ram_proc);
} 
© www.soinside.com 2019 - 2024. All rights reserved.