问题标签 [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 投票
1 回答
1566 浏览

systemc - 读取文件并通过端口传递

我正在编写一些代码,需要我读取文件,然后将其用作 SystemC 模块的输入。这意味着我应该读取一个文件,比如 abc.xxx,然后将其内容以二进制形式发送到一个端口(另一种解释方式:我想将一个文件读入缓冲区并通过一个SystemC 端口)。我的问题是:

1)我可以使用文本文件作为我的输入。读取文本文件,并将其文本内容存储在一个字符串中(这对我的目的来说已经足够了)。但是我如何通过 systemC 端口发送这个字符串呢?

2)上述解决方案仅适用于文本文件,我想使用文本文件的文本内容。但是就像我最初的查询一样,当我只想通过端口传输文件时该怎么办?

如果我的查询不完全清楚,我深表歉意。提前致谢!!

0 投票
1 回答
519 浏览

text - 如何删除 SystemC 启动文本

我希望在启动任何 systemc 模拟时删除以下消息:“SystemC 2.3.0-ASI --- 2013 年 6 月 18 日 16:21:08 版权所有 (c) 1996-2012,所有贡献者,保留所有权利”

你知道这是在哪里完成的,以便我可以评论他们吗?

0 投票
1 回答
1134 浏览

c++ - 将系统 C 安装到 Cygwin

我正在尝试将 System C 2.3.0 安装到 Cygwin (1.7.25)。我在 objdir 中运行 ../configure (与许多在线教程一样),但出现以下错误:

检查 gcc... gcc
检查 C 编译器默认输出文件名...
配置:错误:C 编译器无法创建可执行文件
有关详细信息,请参阅“config.log”。


/* config.log /


gcc 版本 4.8.2 (GCC)的片段
configure:2851: $? = 0
配置:2858:gcc -V >&5
gcc:错误:无法识别的命令行选项 '-V'
gcc:致命错误:没有输入文件
编译终止。
配置:2861:$?= 1
configure:2884: 检查 C 编译器默认输出文件名
configure:2911: gcc conftest.c >&5
gcc: error: spawn: No such file or directory
configure:2914: $? = 1
配置:2952:结果:
配置:失败的程序是:
| /confdefs.h
。*/
| #define PACKAGE_NAME "SystemC"
| #define PACKAGE_TARNAME "systemc"
| #define PACKAGE_VERSION "2.3.0"
| #define PACKAGE_STRING "SystemC 2.3.0"
| #define PACKAGE_BUGREPORT ""
| /* 结束 confdefs.h。*/


任何帮助,将不胜感激!

0 投票
2 回答
4089 浏览

systemc - 如何正确将 sc_lv 转换为 sc_uint?

对于一个项目,我试图将从sc_lv<8>类型输入端口接收的值转换为sc_uint<8>类型信号。顺便说一下,输入端口连接到一个sc_signal_rv<8>通道。

我尝试使用此行转换输入数据:

但是我在模拟过程中收到了这个警告:

Warning: (W211) sc_logic value 'Z' cannot be converted to bool

我虽然想做一个个案的影响,但我不完全确定。

有任何想法吗?

0 投票
0 回答
67 浏览

event-driven - 如何设置控制器模块以向 SystemC 中另一个模块的多个实例发送/接收事件/通知?

我有两个用 SystemC 编写的模块,第一个称为“工人”,另一个称为“老板”。在 sc_main 中,我动态生成随机数量的工人。我希望每个人通知老板模块它已经开始/完成工作。同时我想让boss模块给每个人发送一个通知去做某事。

进行这种多重设置的最佳方法是什么?显然,共享全局 sc_event 变量不是最佳方法,尽管它目前有效。

我必须为每个工人/老板设置一个外部中断吗?

有没有一种方法可以让所有员工(不管他们随机生成的数字如何)与老板沟通而不会错过任何事件并使用可靠但简单的设置。老板如何单独向选定的工人发送事件。

我读到有一个主从库。这能解决问题吗?我在哪里可以找到它?

谢谢

0 投票
1 回答
531 浏览

c++ - GDB:走进图书馆

运行我的应用程序时出现分段错误。我运行 gdb 来检查我的代码在哪里失败,但我得到以下输出:

正如你所看到的,一切都来自一个库,除了'main'调用和'start',我在其中设置了断点,但它们在那里立即失败。我是说:

我们回到起点。

我无法理解这是失败的地方。我看到这是失败的地方的名称:sc_core::sc_port_base::complete_binding()并且我可以访问cpp可以找到此函数的位置,但只能在源文件(而不是库)中。问题是我真的很想逐步完成该代码,这可能吗?

谢谢 :)

0 投票
2 回答
375 浏览

header - SystemC 和 Verilog 之间的通用头文件

我有一个使用 Verilog 和 C(准确地说是 SystemC)的应用程序。我想看看是否有一种方法可以拥有一个可以在整个应用程序中使用的通用头文件?

这样:

#define FOO 4

不必在另一个verilog文件中重复

`define FOO 4

0 投票
1 回答
371 浏览

fpga - 系统 C - 一次在数据总线中读取一位

我有一个用 System C 编写的简单块,它接收两个 10x10 数组,并对它们执行矩阵乘法以产生 10x1 输出。我遇到的问题是这些 10x10 数组实际上存储为“双精度”,因此进入该块的数据非常大,并且我使用的 FPGA 板上的空间利用率对于我的目的来说太大了。

如何在 10x10 阵列的每个时钟周期串行读取一位,这样我就不会试图在一个时钟周期内推入两个 10x10 双阵列?

我将如何设置我的测试平台来发送这些数据?

目前在我的模块中,我有:

我的测试台运行如下:

这两个代码片段仅用于在矩阵乘法之前设置数据。当前代码生成的 input_0 是一个 10x10 矩阵,包含所有 9,即我的测试台中双 for 循环的最后一个值。我想要一个 10x10 数组,其中每一行是 {0 1 2 3 4 5 6 7 8 9}。

谢谢。

0 投票
1 回答
1344 浏览

c++ - SystemC HLS 综合错误

@E [SYNCHK-77] 顶部函数 'method_coupling' (src/method_coupling.cpp:82) 没有输出。可能的原因有: (1) 输出参数按值传递;(2) 从未写入预期的输出(参数或全局变量);(3) 存在无限循环。

当我尝试使用 vivado HLS 合成 SystemC 块时收到上述错误。不幸的是,我找不到有关此错误的任何文档,我希望有人能描述发生了什么。

我的模块如下:

我正在将数据读入 fifo(特别是两个 10x10 双数组),然后使用启用信号开始矩阵乘法运算。当 10x10 数组相乘后,我会在最后发出一个完成信号。

我可以完全看到错误如何表明我有无限的 while 循环,因此我现在使用 while(flag == 0) 而不是 while true 循环。

0 投票
1 回答
678 浏览

systemc - 如何判断精化是否在断点处完成?

当我在 VLAB 脚本中遇到断点时,我如何才能知道我是否已经导致精化完成?

我的脚本到达一个引发错误的语句:

Error: (E529) insert module failed: elaboration done

(导致这种情况的命令是vlab.instantiate("stim", "stim")

所以很明显,精心制作(对我来说)已经完成了。我需要以某种方式回到流程中并找出发生的地方 - 所以我需要某种方式来询问“详细说明是否完成?” 在我在脚本前面设置断点的地方。