问题标签 [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.
c++ - C++/SystemC:从 C++ 中的数组返回特定范围的值
这就是我正在尝试的。我已将结构传递给函数。在函数中,我将结构的值存储在一个数组中。在返回时,我只想发送基于特定条件在数组中定义的那些值。例如,假设我有一个 10 的数组定义,我想在函数中根据条件从该数组中只返回 5 个值。这是一个示例代码:
semaphore - 请帮助解释 SystemC 中信号量通道的代码
最近在学习systemc,有一个关于信号量通道的问题。
我在 asic 世界(http://www.asic-world.com/systemc/channels3.html)上找到了一个例子,但有点困惑。
在这个例子的前 1ns,第一个进程 bus_semaphore() 工作并且可以打印出两行“@1 ns ....”。同时,信号量值(bus)变为2(bus.post()),然后等待下一个时钟posedge。
对于第二个进程do_read(),也是在1ns,第一行“@”可以正常打印出来,但是下一个if语句中的trywait()呢?第一个和第二个进程应该同时执行,也就是说我们无法确定trywait()是在第一个进程的bus.post()语句之前还是之后执行,所以我们不知道第二个“@”是否第二个过程的行将被打印出来。
但是页面底部显示的答案意味着 trywait() 将在 bus.post() 执行后执行,以便打印出第二个“@...”语句。如何确定在 bus.post() 执行后 trywait() 将执行?
提前致谢!
systemc - SystemC:SC_THREAD 未启动
我简单的“HelloWorld”程序不起作用。程序会打印通常的 SystemC 版权声明,但不会打印“Hello World”字符串)。
SC_METHOD
如果我使用(removing calls)编写类似的程序wait
,我可以看到打印的消息。
这是什么原因造成的?
systemc - 错误:输出文件 ./.noxim_explorer.tmp 已损坏,noxim 工具
我正在使用 SystemC 和名为“Noxim”的片上网络模拟器,我听说它非常流畅和简单。
运行make没有问题
但是,当我运行 ./noxim_explorer sim.cfg 时出现错误
./noxim -routing xyz -sel random -dimx 8 -dimy 8 >./.noxim_explorer.tmp 2>&1 错误:输出文件 ./.noxim_explorer.tmp 已损坏
我认为它来自一个 cpp 代码,我不拥有它,并且真诚地,不完全理解。代码可以在下面找到,完整的 Noxim 分布可以在这里找到:
代码位于Noxim /other/
Noxim_explorer.cpp 和 sim.cfg 与我试图做的实验室密切相关。
请,如果有人解决了这个问题或有任何想法,那将非常有帮助。
记录:我在尝试关注这个实验室时被卡住了,因为我无法在 matlab 文件中获得任何信息
python - Jinja2 ASCII 转字符串
我的 Jinja2 模板中有这一行:
其中 types 是模板中其他地方使用的 C++ 中各种类型的列表,输出是 SystemC 程序的一部分,用于初始化模块信号。目标是获得这样的输出,其中字符从小写 a 开始:
但是,它给出了这个错误:“+ 的不支持的操作数类型:'int'和'str'”所以我尝试将模板更改为:
但后来的输出是这样的
似乎问题在于没有办法在 Jinja2 模板中将整数转换为其对应的 ASCII 字符。我尝试了“chr()”,但这是一个 Python 函数,而不是 Jinja2 函数,并且不起作用。我想知道是否有人有这方面的经验并可以帮助我?
c++ - 在 Mac OS X 中使用 SystemC 的 Nirgam 运行时错误
我正在运行nirgam 3.0,它是我的 MacBook(Mac OS X 10.10)中基于开源 SystemC 的 NoC 模拟器。我成功编译了 nirgam 源代码,但是当尝试运行它时,它会抛出“分段错误”,如下所示:
我尝试使用lldb
来找出错误,并得到以下提示:
以下事实可能是一个提示:
我可以编译和运行其他基于 SystemC 的代码,包括 Noxim 和我在系统环境中编写的其他代码。
lldb 信息显示,在基于 SystemC 的建模中,出现了一个错误
sc_main
,这是一个主要功能。
我的问题是:
EXC_BAD_ACCESS
调用函数时是什么意思sc_main
?有什么方法可以用来接近这个错误的根源吗?
c++ - systemC 错误:没有构造函数“BlackBox”的实例... ETC
我正在尝试在 SystemC 中制作一个模块,但必须与这个错误作斗争。
错误:
没有构造函数“BlackBox::BlackBox with[R=1, expR =3, C=5, expC=-6, T=1, expT=-1]”的实例与参数列表匹配
我不知道问题出在哪里。似乎这行代码导致了它:
dut0 = new BlackBox<1,3, 5,-6, 1,-4> ("DUT0");
//错误
有人可以帮我解决这个问题吗?我将不胜感激。
我的代码是:
c++ - 错误 C4716:'operator<<':必须返回一个值
我正在努力为这个运算符获得适当的回报(这不是我的代码,只是试图更正它,而且我不如我应该在 C++ 中更正它)任何人都可以帮我解决这个问题,它是数据类型类定义为数字电路的高级设计。
如何在temp
没有错误的情况下返回这个,有什么特殊的方法吗?
当我添加返回操作系统时;
我收到了 226 个错误,这些错误指向那里的 systemC 库和实例。是否有人针对 systemC 类完成了流运算符的声明,或者有人知道它是如何完成的?
systemc - Accellera SystemC 实现是否错误地实现了 to_long()?
考虑以下 SystemC 代码:
如我所料,这会打印出 -2 而不是 6。这样做的明显原因是 to_long() 将位向量 0b110 解释为有符号。但是,在IEEE Std 1666-2011中,它在第 7.2.9 节中提到了整数转换函数,例如 to_long():
我是否误解了某些东西,或者 Accellera 的 SystemC 实现在这方面没有遵守标准?
c++ - 返回引用 C++/SystemC 的类方法
要将用户定义的数据类型传递到 SystemC 通道模板中,需要将这些数据类型定义为一个类,该类还实现了不同类型的运算符<<
、=
、==
。
我需要定义一个sc_fifo
例如:
为此,必须route_t
按照以下示例编写数据类型。
- 为什么 SystemC 需要这样的实现?
- 为什么
operator=
需要返回对对象本身的引用?它只是更新内部成员。 - 可以将数据类型定义为 a
struct
而不是使用实现所需运算符的内部方法吗? - 为什么
inline
在这种情况下使用? - 返回如何
*this
等同于在方法声明中返回对对象的引用?