如何在SystemC Hello World程序中使用头文件
How to use header file in SystemC Hello World program?
我正在从C++迁移到SystemC,遇到了以下基本问题。(我在谷歌上搜索过,但只有一个.cpp文件中的例子)。提前谢谢。
我知道以下"你好.cpp"有效:
//hello.cpp
#include "systemc.h"
SC_MODULE (hello_world) {
SC_CTOR (hello_world) {
}
void say_hello() {
cout << "Hello World.n";
}
};
int sc_main(int argc, char* argv[]) {
hello_world hello("HELLO");
hello.say_hello();
return(0);
}
问题1:如何将其分为hello.h和hello.cpp?以下代码是C++,我不知道如何创建等效的SystemC代码。
//hello.h
class hello_world
{
public:
hello_world();
void say_hello();
};
//hello.cpp
hello_world::hello_world()
{
}
hello_world::say_hello()
{
cout << "Hello World.n";
}
问题2:如何在SystemC中创建嵌套类? 例如,根据以下C++,等效的SystemC代码是什么?
class foo
{
public:
int fooAttr1;
class bar
{
public:
int barAttr1;
};
};
问题 3:指定属性/操作范围的最佳位置在哪里?(公共/受保护/私有)。
在 SystemC 中将实现与声明分离时,您可以像在 C++ 中一样以正常方式执行此操作。
但是当你想要一个具有多个参数的构造函数时(默认的除外,即 SC_CTOR
接受模块名称)您必须定义自己的构造函数。
如果模块有 SystemC 进程(SC_THREAD
、SC_METHOD
、SC_CTHREAD
),那么你将不得不使用 SC_HAS_PROCESS
宏来指示你的模块有进程。
关于嵌套类,它与C++中的相同。
我不确定你说的第三个问题是什么意思。
关于你的第三个问题:你可以像平时在C++程序中做的那样做同样的事情。指定属性/操作范围的最佳位置是SC_MODULE的声明部分,无论将其放在 cpp 还是头文件中。在 SystemC 设计中,通常只有端口和构造函数/析构函数应定义为公共模块,以允许其他模块与之连接,除非您有充分的理由并希望打破 systemc 设计的模块化以显式访问模块的成员函数。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 使用mongocxx驱动程序时包含头文件问题
- 使用VerQueryValue检索应用程序的文件描述
- 编译多文件C++程序
- Visual C 32位整数从文件到8位字符到文件 - 程序在某些整数上崩溃
- 文件程序不会停止显示垃圾值
- 简单的QT从文本文件程序中读取不编译
- 从文件 C++ 程序读取停止工作
- C++ - 需要有关如何正确设计多文件程序的建议
- C++文件 I/O - 程序挂起
- 简单的文件 I/O 程序C++
- 有一个简单的程序文件/程序文件(x86)指令的c++在windows
- 配置文件c++程序在perf
- 从同一文件夹读取文件(c++程序)
- 单文件程序的未定义虚函数表
- 无法用多文件程序创建SDL线程
- 我的第一个多文件C++程序不断给我错误消息
- 配置文件C++程序基于墙上的时钟时间与英特尔Vtune放大器
- c++复制文本文件程序使用头文件