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

unit-testing - 在 SystemC 中使用现有的单元测试框架

我正在 SystemC 中开发一个项目,并希望合并单元测试。是否可以将现有的单元测试框架与 SystemC 一起使用?

我问这个是因为 SystemC 模块似乎只能用模拟内核执行,我想在模块本身上使用单元测试。

0 投票
3 回答
2177 浏览

c++ - SystemC:在模块之间传递事件

在 SystemC 中,将事件用作模块输入/输出的语法是什么。

我有一个工作模块,我想向它发送一个事件,以抢占调度程序模块当前正在执行的操作。

我在上面显示的工作模块中声明了一个接口。

接口定义如下:

使用该事件的通道将其定义如下:

哪个preempt_interrupt是从通道函数中获得通知的 SystemC 事件。

0 投票
2 回答
1638 浏览

c++ - 理解 SystemC 中的类型

我是 SystemC 编程的初学者,我注意到一件事(查看 SystemC 官方文档):我过去在 VHDL 模拟中处理的所有类型都没有被“移植”到 SystemC。

我是说:

  1. 考虑std_logic在 VHDL 标准库中,SystemC 中没有等效项,但是,在 SystemC 文档中,我看到许多使用bool.
  2. 考虑一下std_logic_vector,我在 SystemC 中看不到等价物。相反,在许多示例中,我可以看到sc_int.

所以我认为 SystemC 不提供类型来管理单个位或电信号,但它提供了更高的抽象,就像在每个常见的 C/C++ 应用程序中一样。

是这样还是我错过了什么?

0 投票
2 回答
1347 浏览

vhdl - 将 SystemC 中的信号延迟指定为 VHDL 中的 AFTER 子句

我在 SystemC 中遇到问题,试图在一段时间后写入信号......

考虑以下:

好的!我可以在 SystemC 中做同样的事情:

如何在 SystemC 中指定信号分配的延迟????

0 投票
1 回答
2144 浏览

systemc - 如何禁用 SystemC 运行时警告?

我已经成功编译了一个 SystemC 应用程序,用于在通用架构上运行时模拟 CPU。好吧,我的问题是,在运行应用程序以创建 VCD 文件时,SystemC 内核会向我显示一些警告。

我收到一些警告,如下所示:

警告:(W206) 向量包含 4 值逻辑文件中:....\cacheseqproc_vcpp20\systemc-2.2.0\src\sysc\datatypes\bit\sc_proxy.h:1385 进程中:process.processname @ x ns

嗯...消息本身并不重要...我把它放在这里只是为了让您更好地理解这是在运行时抛出的警告消息。

鉴于我在执行期间打印了几条重要消息,我真的不希望 SystemC 有这些冗长的消息。如何让这种情况发生?

0 投票
2 回答
1321 浏览

systemc - SystemC 仿真应用程序中的问题处理信号

我正在模拟 CPU,并且正在使用高级模拟工具进行此操作。SystemC 是用于这些目的的一个很好的资源。我正在使用两个模块:

  • 数据路径

  • 记忆

CPU 数据路径被建模为一个独特的高级实体,但是下面的代码肯定会比任何其他解释更好:

以下是datapath.hpp

以下是datapath.cpp

如您所见,我们有一个处理 cpu 转换(更改状态)的时钟驱动进程和一个为 cpu 设置信号的状态驱动进程。

我的问题是,当我到达时,###我希望指令被内存释放(您看不到指令,但它们是正确的,内存组件使用您可以在 hpp 文件中看到的输入和输出信号连接到数据路径)。记忆让我着迷,"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"因为mem_ctr_memreadenable并且mem_ctr_memwriteenable都设置为'0'. 内存模块是为了成为即时组件而编写的。它是使用在输入信号上定义的(包括读使能和写使能)写入的SC_METHOD。当信号为时,sensitive内存组件得到。"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"mem_ctr_memreadenable'0'

为什么呢'0'?我重置信号并将该信号设置为'1'. 我不明白为什么我一直有'0'读使能信号。

你能帮助我吗?谢谢你。

0 投票
1 回答
740 浏览

c++ - 在 SystemC 中处理 sc_logic 值的问题

我正在编写一个应用程序,以便使用 SystemC 库来模拟硬件系统。我的问题是处理sc_logic类型。考虑一个简单的模块

考虑流程的实现:

好的。问题:outsig总是'0'并且永远不会改变它的值。我在我的模拟中写了很多信号,但这个问题只发生在端口中的sc_logic值上。sc_out

有谁能够帮我?

0 投票
2 回答
1095 浏览

mips - MIPS架构的指令集模拟器(SystemC)

有人知道是否有开源 MIPS 指令集模拟器(最好在 C++ 或 SystemC 中)?

我用谷歌搜索了几十个链接,但没有打开 MIPS cpu 的 ISS。然后只有我现在知道的是

  • Plasma CPU,只实现了有限数量的 mips 指令,因此无法模拟一些应用程序代码。

  • Gem5,我无法使用它来启动 linux 映像(尽管遵循其网络上的每条指令)

那么,你有这方面的经验吗?

0 投票
2 回答
1949 浏览

fedora - 安装 SystemC 2.2.0,使用 GCC 4.6 编译和 Fedora 软件包

如何在 Fedora 15 上安装 SystemC?

问题:

  • 没有 RPM 包(许可问题)
  • 不能用 4.6 编译
  • 即使使用 -fpermissive (clang 不会编译您的模块)
0 投票
2 回答
350 浏览

c++ - SystemC 错误,使用 Visual C++ 2008

我正在使用带有 Visual C++ 2008 的 systemC。我编写了一个简单的 hello world 程序。但是我反复收到此错误:

警告 C4996:“sprintf”:此函数或变量可能不安全。

为什么会这样?我将不胜感激任何帮助。