问题标签 [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.
systemc - SystemC 构造函数,类
我是systemc的新手。我有一个困惑。
我正在创建一个sc_module(hello_world)
. 花sc_ctor(hello_world)
括号之间没有任何内容,我只是void say_hello()
在模块内部有一个简单的函数,它打印“hello world”。
在中sc_main
,我这样做了:
但是,我收到一个错误error C2228: left of '.say_hello' must have class/struct/union.
我试过了,它奏效了:
中sc_main
,我这样做了:
为什么它首先显示错误?我没有使用一个参数构造函数。
那么,不是hello_world hello("hi ")
不应该hello_world hello
吗?我只是想与 C++ 类进行比较。
systemc - 编写D触发器的主程序
我是 systemC 编程的新手,我正在编写一个 D 触发器,但我找不到编写主程序和输入信号的方法(在我的情况下是 din、clock 和 dout):
这是我的代码:
systemc - 在 systemC 中,如何在 end_of_simulation 例程中获得 sc_time
我想报告模拟结束时的时间。我以为我会使用 end_of_simulation 例程,只需在例程中执行一个 sc_timestamp 即可。
问题是内核在 end_of_simulation 之前终止,我得到了一个虚假的时间戳。
我不能真正使用线程来确定这一点,因为让我脱离模拟的是所有线程都在等待事件。没有“主线程”我可以只存储时间戳。
有什么想法吗?
systemc - 在 SystemC 中获取 VCD 跟踪信号的名称
SystemC 允许通过 sc_trace 函数跟踪信号(或成员等),结果是可以在其他程序中使用的 VCD 文件。但是,这些信号的命名相当随意,函数接受任何字符串(不必与变量本身相关)作为要转储的信号的名称。
问题是:我可以通过 SystemC API 以某种方式获取从 sc_interface 对象到用作其名称的字符串的映射吗?我正在以其他方式记录大量数据,能够以某种方式将我检索到的值连接到 VCD 数据会很好,如果我只有转储值和随机字符串标识符。
c++ - 加载共享库时出错:libsystemc-2.3.0.so
我是 Linux 的新用户,我正在尝试systemc-2.3.0
在我的机器(Fedora 16)上安装库。我非常仔细地遵循了库的 INSTALL 文件中提到的每条说明,但是当我尝试使用 ECLIPSE 运行一个简单的程序时出现错误。我已在 ECLIPSE 中正确链接了所有库,但仍然出现错误。
程序如下:
错误输出是:
/home/vivek/workspace/TestSystemC/Debug/TestSystemC:加载共享库时出错:libsystemc-2.3.0.so:无法打开共享对象文件:没有这样的文件或目录
任何帮助将不胜感激。由于我不是 Linux 专家,请以详尽的方式(逐步)解释您的建议。
谢谢你。
c++ - 在 SystemC 中启用 debugf
我正在查看 SystemC 的源代码,发现有以下内容:
后来有几行,例如:
(这些来自sc_cor_pthread.cpp
)
我在配置使用时已经启用了调试选项,../configure --enable-debug
但它似乎没有激活这些东西。我应该如何打开这些而不是手动修改源?
systemc - Code example for a TLM fifo
I am new to TLM. Someone can give me an example code for connecting two processes by a TLM fifo?
Thank you
c++ - 参数化 sc_lv 时报告错误(表达式必须具有常量值)
我正在使用 System C。在课堂上
首先我声明了一个整数:
然后我在使用 G_WIDTH :
当我试图模拟它时。报以下错误:
表达式 <*sc_in < sc_lv > a;*> 必须有一个常数值。
当我使用:
它工作正常。
谁能帮我解决这个问题?
system-verilog - System Verilog wait() 语句将等待的最短时间/周期是多少?
我有一个 SystemVerilog 任务,我正在尝试移植到 SystemC。任务的主体只是等待一个布尔表达式,然后推送到一个队列中。SystemC 等待机制的工作方式并不完全相同,它只会等待时间或事件。
所以我想知道 SystemVerilog wait() 在重新测试布尔表达式之前等待的最小周期/时间长度是多少。换句话说,在 SV wait() 中驱动重新测试布尔表达式的频率或原因是什么?
如果答案只是每个周期一次,我希望并期望但无法确认,那么解决方案很容易。
这是代码,其中一些内容被重命名和简化,以便脱离上下文更有意义:
verilog - 将位/逻辑向量的 SystemC 结构安全地转换/转换为单个位/逻辑向量
我正在将代码从 SystemVerilog 移植到 SystemC。SV 很容易将位/逻辑的打包结构解释为单个位/逻辑向量。例如:
但是对于 SystemC 和使用 sc_lv<> 模板,由于类型不匹配,这会导致编译器错误。
有没有一个很好的 SystemC 支持的方法来做这个等价物?我可以想到潜在的解决方案,但它们并不优雅或简洁,而且我不确定 c 风格的指针转换是否安全/正确。