问题标签 [system-verilog-dpi]

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 回答
2226 浏览

c++ - 错误:无法在赋值中将 'bool' 转换为 'svLogic*'

我们正在处理系统 verilog DPI 调用。在编译C++文件时,我们收到如下错误:

错误:无法在赋值中将 'bool' 转换为 'svLogic*'

svLogic是四态变量。

VCS 模拟器在 DirectC 方法中具有预定义函数vc_putScalar,其中 vc_putScalar 是“通过引用将标量 reg 或位的值传递给 vc_handle”。vc_handle 是函数中的输入或输出变量。使用 VCS,我们可以使用:vc_putScalar(mem_req_rdy, mm->req_cmd_ready());

我们正在开发 Modelsim questa 模拟器,因此 DirectC 将无法工作。我们厌倦了修改vc_putScalarDPI IEEE Std 1800-2012标准的内容。我们将预定义的函数逻辑更改为: mem_req_rdy = mm->req_cmd_ready();这里 mem_req_rdy 是 svLogic,req_cmd_ready 是 bool。

0 投票
1 回答
1656 浏览

struct - Systemverilog:将结构作为模块输入\输出传递时的模拟错误

我试图将一个结构作为输入传递并在另一个结构中获取输出。但是我在模拟过程中遇到了一些问题。以下示例代码在 questasim 中编译得很好,但是模拟给出了以下错误:

连接类型“core_tb_sv_unit.struct”与端口(struct_in)的“core_sv_unit.struct”不兼容:结构/联合类型必须匹配。

MyStruct.sv

核心.sv

core_tb.sv

我错过了什么?

我知道接口是这里建议的工作流程,但是模型的输入将使用 DPI 传递给 C 例程。DPI 接口支持结构,我不认为它支持接口。这就是为什么我想坚持简单的结构。

0 投票
2 回答
1520 浏览

c++ - SystemVerilog DPI 从 C++ 返回字符串到 verilog - 最后是 ASCII 字符?

我使用 DPI 从 C 函数返回一个字符串到 SystemVerilog。

在 SystemVerilog 方面:

结果:有时结果是这样的:

有时我得到这个:

我检查了 verilog 端的波形,它们是 NO X 传播。你能帮我理解为什么我得到这个错误。

0 投票
1 回答
2335 浏览

c - 如何编译和运行调用C函数的verilog程序?

我不是在尝试使用 DPI 调用,而是在内部使用其 PLI 调用用 C 语言编写的函数的简单 Verilog 程序。我不知道静态链接。我正在使用edaplayground。

谁能告诉我应该使用哪个模拟器,应该通过切换来链接 Verilog 和 C 吗?我应该在 Verilog 中包含 C 文件吗?

示例代码如下

我想知道是否需要注册 pli,因为目前未检测到 pli call hello。

0 投票
1 回答
2842 浏览

c++ - 创建 C++ 测试平台来驱动 Verilog DUT

我试图了解如何创建一个 C++ 测试平台来驱动 Verilog 中的 DUT 的激励。假设我有一个简单的场景:

这是我的 C++ 代码:

test_case.h

测试用例.cpp

在此示例中,条件变量上的等待语句将永远阻塞,并且不会让模拟器执行 Verilog 代码的任何其他部分。那么这里的正确方法是什么?我应该在 wait_for_input_ready 函数中用 C++ 创建一个线程并完全分离它吗?

0 投票
1 回答
575 浏览

c - C 到 SystemVerilog,我的输出不正确

我试图让我的系统 verilog 代码与我的 c 代码一起工作,但我得到一个奇怪的输出。我的 exp_data_out 应该是我的编码器的输出,但它是 zzzzxzzzzzxzxzz。有人可以告诉我为什么输出是这样的吗?

C

系统 Verilog

这是输出

0 投票
2 回答
323 浏览

system-verilog - 如何使用 DPI systemVerilog 检测子字符串匹配?

如何使用 SystemVerilog DPI 检查某个字符串是否包含另一个字符串?例如,C 中的 strstr() 可以检测“str”是否包含在“string”中。

0 投票
1 回答
842 浏览

gcc - 在 Ubuntu 64 位 16.04 上使用 Modelsim DE 10.6b 编译 SystemVerilog DPI

我在 64 位 Ubuntu 16.04 上安装了 Modelsim DE 10.6b,当我运行 SystemVerilog DPI 的 Modelsim 示例时,出现如下所示的自动编译链接错误:

**致命:**致命:(vsim-3828)无法链接“vsim_auto_compile.so”:cmd = '/opt/modelsim_dlx/gcc-5.3.0-linux/bin/gcc -shared -fPIC -m32 -B/ usr/lib/i386-linux-gnu -o "/tmp/shahin@shahin-Z400_dpi_2433/linuxpe_gcc-5.3.0/vsim_auto_compile.so" /opt/modelsim_dlx/examples/systemverilog/dpi/checkpoint/work/_dpi/auto_compile@ /linuxpe_gcc-5.3.0/*.o

有人可以帮我吗?

0 投票
0 回答
338 浏览

c - 形式参数中未打包的结构数据类型中不受支持的元素

我无法通过 SV-C DPI 将结构对象从 SV 传递到 C。

编码:

SV端:

在C端

但是当我编译和运行时,我得到以下错误:

0 投票
1 回答
3306 浏览

c - 如何使用 SV-DPI 将数组从 C 传递到 SV?

我的目标是将数组从 C 传递到 SV 并在 SV 中打印数组内容,我尝试了以下 C 程序将一些文本文件(data_file.txt)(在下面的链接中给出完整源)转换为数组并尝试通过在 SystemVeilog(SV) 中使用 DPI 调用来读回数组,在“C”中,我已将数组值传递给我的函数(mydisplay),该函数位于主函数内。(如果我在这里错了,请纠正我)也是似乎数组值没有像我预期的那样读回SV环境,这可能是什么原因,有没有一种有效的方法可以在SV中取回数组?

c代码:

sv代码:

来源EDAplayground