问题标签 [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.
virtual-machine - SystemC 在虚拟机中运行,计时问题或损坏的结果?
可以在虚拟机内的来宾操作系统上运行基于 SystemC 的模拟吗?仿真时间会受此影响吗?我知道 SystemC 时间是模拟的,实际上并不依赖于硬件计时器。
并且在配置有 4 核(物理机有 8 个)的虚拟机中运行数十个 SystemC 模拟实例会影响结果吗?
systemc - 需要更快的软件模块(虚拟原型)?
这个问题与软件建模(虚拟原型)有关。
我不完全理解为什么需要更快的虚拟原型。我的意思是与 RTL 模块相比,它可以在更短的时间内模拟所需功能的模块。
我可以理解需要一个周期精确的软件模块,但不是一个更快的模块。
这个方向有光吗?谢谢!
systemc - SystemC 中的默认堆栈大小
有谁知道为什么 SystemC 中的默认堆栈大小等于0x50000
我们不使用 POSIX 线程(同时使用 Cygwin)和0x20000
其他情况?
c++ - 错误:未在此范围内声明“sc_unit”(SystemC-2.3.0)
当我编译这个时,我得到了以下错误..但我不知道如何解决这个.. root@ubuntu:/mnt/lnx-arch/systemc-2.3.0/workspace/picoE/first_counter# make g++ -I . -I/mnt/lnx-arch/systemc-2.3.0/包括-L。-L/mnt/lnx-arch/systemc-2.3.0/lib-linux64 > -Wl,-rpath=/mnt/lnx-arch/systemc-2.3.0/lib-linux64 -o first_counter_tb first_counter_tb.cpp > -lsystemc -2.3.0 -lm
java-native-interface - JNI 调用在 SystemC sc_core::sc_start() 调用中不起作用
在 SystemC 中使用 JNI 时,我遇到了一个非常奇怪的问题,我无法解释自己。
只是关于我使用的环境的一些信息:我目前正在安装 openjdk-6 和 openjdk-7 的 12.04 ubuntu 上进行开发。两个jdks都重现了这个问题!
有这个主要方法:
以及 SystemCWrapper 的以下实现:
结果进入以下控制台输出(Java 程序仅输出“Hello Java!”,如果被调用):
似乎 SystemC 方法sc_core::sc_start();
所做的事情是每个 JNI 调用都没有“传递”到 Java。
我已经尝试了一些调整,但即使我将当前线程附加到 jvm 也没有任何变化(因为可以看到线程 ID 甚至保持不变)。
有什么建议么?如果需要更多信息,请告诉我。
python - 在 VLAB 仿真期间在屏幕上显示图像
我正在 VLAB 下编写一个 SystemC 模拟演示脚本。
如何在屏幕上显示图像,作为演示运行时执行的操作之一?
我尝试使用 wx 打开一个窗口并显示一个图像,但这需要我创建一个 wxApp,它阻塞了我的演示线程。
编辑:
这个问题几乎等同于经常被问到的同一个问题:“如何在 Python 中显示图像?”,因为 VLAB 解释器是 Python。但是,我正在寻找一种不需要我将 VLAB 指向第三方库的解决方案。
multithreading - SystemC:通道与端口值更新
在从事 SystemC 项目时,我发现我可能对信号和端口有一些混淆的想法。假设我有这样的事情:
我试过运行这个模块,我注意到一些奇怪的东西(至少,对我来说很奇怪):当刺激写入一个值(81)时,在wait(SC_ZERO_TIME)
内存线程找到它之后datain
,enable
并且address_enable
值已经更新。这是我预期会发生的。当刺激改变enable_es
值时也会发生同样的情况,以便在内存线程中运行另一个循环并将data_cell
值复制到内存单元dataout
端口中。我不明白的是为什么在内存模块写入其dataout
端口并再次进入wait()
while循环开头的语句后,刺激模块仍然具有其旧值dataout_s
通道 (0),而不是刚刚被内存模块复制的新值 (81)。然后,如果我运行另一个内存循环周期(例如更改激励通道上的一些值),数据输出通道最终会更新。
换句话说,如果我写入刺激通道然后切换到内存线程,内存会发现更新的值。但是如果内存线程写入它的端口,然后我切换到激励线程,线程仍然会在其通道上看到旧值(绑定到内存端口)。
c++ - 在不同的进程上运行 Boost 单元测试
我想在 SystemC 程序中进行单元测试。这个想法是拥有多个测试套件,每个套件中有多个测试。每个测试都需要重置 SystemC 框架(例如,通过调用sc_simcontext::reset()
),但这实际上是不可能的,因为一些显然不会很快修复的错误。因此,我决定想出一个解决方法。
我发现如果我在不同的进程上运行每个测试,一切正常。以下代码片段概述了我用来使其工作的方案:
现在我想用 Boost Unit Test 来实现这样一个测试方案。
我一直在研究 Boost Unit Test 库的内部结构,我发现这unit_test_main
似乎是触发所有测试执行的函数。但是我无法设计一种非侵入式的方式来与 Boost Unit Test 进行交互,以便在不同的进程上运行每个测试。
有谁知道在不同进程上运行每个测试的简单解决方案?
macos - 如何在终端 mac OS X 中使用和安装 SystemC?
如何在终端 mac OS X 中使用和安装SystemC ?
我尝试了逻辑诗人应用程序,但我使用的是 os x 10.10,所以它不起作用。
所以我想知道如何在终端中编译和执行 SystemC。
我在终端中找不到 SystemC 的详细信息。
谢谢
systemc - SC_THREAD 不会被其敏感度列表触发
我正在 SystemC 中开发一个简单的 NAND 模块。按照规范,它应该有 4 ns 的延迟,所以我尝试用一个带有“等待”语句的进程来描述它SC_THREAD
,如下所示:
为了模拟,我创建了另一个模块,输出 NAND 的刺激,如下所示:
描述了这两个模块后,顶部模块(在哪里sc_main
)如下所示:
代码编译和模拟没有错误,但是.vcd
在 gtkwave 中可视化文件时,输出 (F) 卡在 1 中,仅显示模拟开始时的延迟。
为了测试代码中是否有任何错误,我删除了“等待”语句并在文件中更改SC_THREAD
为并再次模拟,现在得到了正确的结果,但当然没有延迟。SC_METHOD
nand.h
我究竟做错了什么?