问题标签 [systemc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4449 浏览

while-loop - SystemC 中的线程和时钟线程

在阅读 SystemC 中的线程时,据说while(true)必须在函数内部使用循环。为什么会这样?

您能否查看下面给出的示例代码并解释为什么 while 循环用于线程并且wait()命令与循环一起使用:

0 投票
4 回答
5366 浏览

c++ - 如何获取当前运行模块的 sc_module_name

当我创建一个实例时,如果sc_module我给它一个字符串作为模块名称(sc_module_name)。

如何获取当前正在运行的模块的名称?

0 投票
0 回答
283 浏览

systemc - SC_THREAD 对端口切换动态敏感?

是否有一种优雅的方式来等待端口触发(切换)而不是 SC_THREAD 中的事件?换句话说,我希望模块 B 中的线程基于模块 A 的端口上的切换来动态触发。我目前的方法是从端口切换中生成一个事件,然后在需要的任何线程中使用该事件触发。但是有更好的方法吗?

更新:来自 jclin 的回答非常完美。

0 投票
2 回答
133 浏览

c++ - 将易失性数据与未重载易失性数据的方法一起使用

我有点了解我的知识。

我有三个进程通过共享内存段进行通信。并发访问是通过正确的锁定处理的(以避免在这里被误解),所以我很确定我正在按照预期的方式使用 volatile 关键字。

我的共享内存段被转换为指向结构的易失性指针,我可以对此进行操作。该结构必须是易失的,因为有时我需要旋转直到共享内存上的某些值发生变化 - 所以不使用易失性不是一种选择。

现在我正在使用一个外部 C++ 库(SystemC,但这在这里无关紧要),我的结构从中包含 sc_time 的成员。虽然我可以访问库的源代码,但我不想依赖我所做的修改,可能会破坏东西或陷入维护地狱。

现在这个类“sc_time”有比较和赋值的操作符。这些运算符不适用于 volatile sc_time - 到目前为止并不奇怪。

现在我的问题是:有没有办法在不破坏语义的情况下转换这种易失性?我可以使用经常提到的 const_cast<> 或简单的 C-cast,但是编译器会做什么呢?我什至可以只使用 memcpy() 数据——但话又说回来,结果会是什么?

任何建议都将受到欢迎 - 我使用纯 C 包装器或任何其他方法完全没有问题 - 只要它有效(tm),但我最后的手段是一些类似于 memcpy 的小型汇编代码,用于真正阅读数据 - 这是我想避免的事情。

感谢您抽出宝贵时间阅读本文 :-)

编辑:添加小代码片段:

0 投票
2 回答
6342 浏览

c++ - SystemC 中的 SC_THREAD 会创建一个真正的线程吗?

我在 Visual Studio 2008(64 位)中通过在开头设置断点调试了以下代码do_test1do_test2令我惊讶的是,代码在函数的同一线程中sc_main运行。

我没有在Linux环境中调试。但是,通过搜索源代码,我发现它"pthread.h"被包含在一些 SystemC 库源代码中。

问题1:在Windows中,会SC_THREAD创建一个真正的线程吗?或者它总是在同一个线程中sc_main?如果是这种情况,我可以说SC_THREAD是创建一个“假”线程吗?

问题2:在Linux中,既然"pthread.h"被包含,会不会SC_THREAD创建一个新线程?

问题 3:在 Windows 和 Linux 中,我是否遗漏了一些设置来启用真正的线程?

=========================================

以下代码来自该网站:

http://www.asic-world.com/systemc/systemc_time4.html#Example_:_sc_event

0 投票
2 回答
2118 浏览

c++ - 如何在 SystemC Hello World 程序中使用头文件?

我正在从 C++ 迁移到 SystemC,遇到了以下基本问题。(我在谷歌搜索过,但只有一个 .cpp 文件中的示例)。提前致谢。

我知道以下“hello.cpp”有效:

问题1:如何将它分成hello.h和hello.cpp?以下代码是 C++,我不知道如何创建等效的 SystemC 代码。

问题 2:如何在 SystemC 中创建嵌套类?例如,根据以下 C++ 的等效 SystemC 代码是什么?

问题 3:指定属性/操作范围的最佳位置在哪里?(公共/受保护/私人)。

0 投票
2 回答
911 浏览

types - SystemC 数据类型转换

我是系统 c 的新手,我正在尝试处理系统 c 数据类型的转换。

我有一个系统 c ufixed 类型的输入端口,我需要在输出端口上将其更改为布尔类型。

我尝试了以下代码。

上面的代码正确吗?我是否需要使用 process 方法将输入端口类型转换为输出端口上的另一种数据类型?

您能否为我提供一些关于系统 c 数据类型转换的良好参考资料。

非常感谢你

0 投票
1 回答
123 浏览

c++ - sc_start 警告 W571 表示信号/端口绑定失败?

Signal/Port 绑定后,当信号发生变化时,敏感列表会导致 SC_METHOD 注册方法运行。

当我实现 SystemC 版本时,我遇到了这个警告 W571。老实说,我认为这个警告是正确的,因为没有活动。但是为什么在我认为应该有的地方没有活动是个问题。

第二次调用 sc_start() 时会出现问题;

我怀疑信号/端口之间的绑定处理不好。

0 投票
1 回答
869 浏览

vhdl - 在 SystemC 中,sc_signal_in/out 类型的端口可以绑定到主通道 sc_buffer 吗?

我正在使用 SystemC 进行建模,我对“通道”有点困惑,其中包括信号、缓冲区和 fifo。

那么谁能告诉我信号和缓冲区的区别?和Verilog HDL中wire和register变量的区别一样吗?信号可以绑定到缓冲区变量吗?

0 投票
2 回答
4362 浏览

systemc - SystemC 中的增量周期和增量通知是什么?

SystemC中有一种通知叫做delta通知,可以通过以下两种方式调用。

或者

它定义在增量通知调用中,对事件敏感的进程将在下一个增量周期的评估阶段运行。

那么,什么是所谓的“三角洲周期”?它是像时钟周期还是某个时间段一样定义?