问题标签 [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.
while-loop - SystemC 中的线程和时钟线程
在阅读 SystemC 中的线程时,据说while(true)
必须在函数内部使用循环。为什么会这样?
您能否查看下面给出的示例代码并解释为什么 while 循环用于线程并且wait()
命令与循环一起使用:
c++ - 如何获取当前运行模块的 sc_module_name
当我创建一个实例时,如果sc_module
我给它一个字符串作为模块名称(sc_module_name
)。
如何获取当前正在运行的模块的名称?
systemc - SC_THREAD 对端口切换动态敏感?
是否有一种优雅的方式来等待端口触发(切换)而不是 SC_THREAD 中的事件?换句话说,我希望模块 B 中的线程基于模块 A 的端口上的切换来动态触发。我目前的方法是从端口切换中生成一个事件,然后在需要的任何线程中使用该事件触发。但是有更好的方法吗?
更新:来自 jclin 的回答非常完美。
c++ - 将易失性数据与未重载易失性数据的方法一起使用
我有点了解我的知识。
我有三个进程通过共享内存段进行通信。并发访问是通过正确的锁定处理的(以避免在这里被误解),所以我很确定我正在按照预期的方式使用 volatile 关键字。
我的共享内存段被转换为指向结构的易失性指针,我可以对此进行操作。该结构必须是易失的,因为有时我需要旋转直到共享内存上的某些值发生变化 - 所以不使用易失性不是一种选择。
现在我正在使用一个外部 C++ 库(SystemC,但这在这里无关紧要),我的结构从中包含 sc_time 的成员。虽然我可以访问库的源代码,但我不想依赖我所做的修改,可能会破坏东西或陷入维护地狱。
现在这个类“sc_time”有比较和赋值的操作符。这些运算符不适用于 volatile sc_time - 到目前为止并不奇怪。
现在我的问题是:有没有办法在不破坏语义的情况下转换这种易失性?我可以使用经常提到的 const_cast<> 或简单的 C-cast,但是编译器会做什么呢?我什至可以只使用 memcpy() 数据——但话又说回来,结果会是什么?
任何建议都将受到欢迎 - 我使用纯 C 包装器或任何其他方法完全没有问题 - 只要它有效(tm),但我最后的手段是一些类似于 memcpy 的小型汇编代码,用于真正阅读数据 - 这是我想避免的事情。
感谢您抽出宝贵时间阅读本文 :-)
编辑:添加小代码片段:
c++ - SystemC 中的 SC_THREAD 会创建一个真正的线程吗?
我在 Visual Studio 2008(64 位)中通过在开头设置断点调试了以下代码do_test1
,do_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
c++ - 如何在 SystemC Hello World 程序中使用头文件?
我正在从 C++ 迁移到 SystemC,遇到了以下基本问题。(我在谷歌搜索过,但只有一个 .cpp 文件中的示例)。提前致谢。
我知道以下“hello.cpp”有效:
问题1:如何将它分成hello.h和hello.cpp?以下代码是 C++,我不知道如何创建等效的 SystemC 代码。
问题 2:如何在 SystemC 中创建嵌套类?例如,根据以下 C++ 的等效 SystemC 代码是什么?
问题 3:指定属性/操作范围的最佳位置在哪里?(公共/受保护/私人)。
types - SystemC 数据类型转换
我是系统 c 的新手,我正在尝试处理系统 c 数据类型的转换。
我有一个系统 c ufixed 类型的输入端口,我需要在输出端口上将其更改为布尔类型。
我尝试了以下代码。
上面的代码正确吗?我是否需要使用 process 方法将输入端口类型转换为输出端口上的另一种数据类型?
您能否为我提供一些关于系统 c 数据类型转换的良好参考资料。
非常感谢你
c++ - sc_start 警告 W571 表示信号/端口绑定失败?
Signal/Port 绑定后,当信号发生变化时,敏感列表会导致 SC_METHOD 注册方法运行。
当我实现 SystemC 版本时,我遇到了这个警告 W571。老实说,我认为这个警告是正确的,因为没有活动。但是为什么在我认为应该有的地方没有活动是个问题。
第二次调用 sc_start() 时会出现问题;
我怀疑信号/端口之间的绑定处理不好。
vhdl - 在 SystemC 中,sc_signal_in/out 类型的端口可以绑定到主通道 sc_buffer 吗?
我正在使用 SystemC 进行建模,我对“通道”有点困惑,其中包括信号、缓冲区和 fifo。
那么谁能告诉我信号和缓冲区的区别?和Verilog HDL中wire和register变量的区别一样吗?信号可以绑定到缓冲区变量吗?
systemc - SystemC 中的增量周期和增量通知是什么?
SystemC中有一种通知叫做delta通知,可以通过以下两种方式调用。
或者
它定义在增量通知调用中,对事件敏感的进程将在下一个增量周期的评估阶段运行。
那么,什么是所谓的“三角洲周期”?它是像时钟周期还是某个时间段一样定义?