问题标签 [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.
system-verilog - 访问共享内存
我正在尝试使用 systemVerilog 中的断言来验证 sMEM 设计,但是我遇到了一个我不知道如何解决的问题:我应该验证是否:
在 CLKA 的上升沿,当 BLKA 为 1 且 RWA 为 1 时,从 RAM 的 ADDRA 地址读取数据,结果在 DOUTA 中可用。
在我的设计中,RAM被定义为共享变量
那么我该如何编写断言呢?
system-verilog - 警告:(vsim-8634)代码未使用覆盖选项编译
我正在尝试运行 UVM 模拟,并使用 C 代码来预测输出,但在运行模拟时收到上述警告。这个警告会影响测试吗?注意:我没有将 C 代码的导入文件放在模块中。我把它放在课堂上。
system-verilog-dpi - 在 systemverilog 和 DPI-C 之间使用定义
在 systemverilog sv_define.vh
在 C c_define.h
由于 systemverilog 和 C 之间“define”的语法不同。如果我想配置 ENABLE,我必须修改这两个文件,这有时会很麻烦。我怎样才能将它们定义在一个文件中并包含它?非常感谢。
我的想象:我的 top.sv 和 top.c 将包含相同的文件:c_sy_define.vh 内容将是:
system-verilog - 如何在垃圾收集时执行 SystemVerilog 代码?
我有一个使用 chandle 和 DPI 封装 C++ 类的 SystemVerilog 类。我想确保在销毁 SystemVerilog 对象时调用 C++ 类的析构函数。据我所知,这不是自动完成的,当我认为不再需要该实例时,我必须通过 DPI 手动调用 C++ 析构函数。不是很优雅。
有没有办法指定应该在 GC 上为 SV 类运行某些代码?类似于 Java 的 finalize 方法。
system-verilog - 在 SystemVerilog / DPI 中键入擦除
是否可以将 SystemVerilog 结构转换为某些类型擦除的指针,例如void *
?
我需要将不同结构类型的对象从 SV 传递到 C。我希望有一个 DPI 函数来处理任何类型的受支持结构。
在 SystemVerilog 方面,我有很多类型:
在 C 端,我有一个接受任何类型的函数:
我希望在 SV 端像这样使用它:
而且它通常可以工作,唯一的问题是 SystemVerilog 不支持重载。所以我只能为一种类型声明它:
我试图将 chandle 作为论据:
但是我还没有找到一种方法如何将结构类型的变量转换为 chandle。
c - 如何手动编译共享 dpi lib?
我尝试导入一些在 SystemVerilog 中生成数组的 C 函数。
这是代码:
但是当我手动编译c代码时,在链接阶段会产生错误:undefined reference to 'svGetArrayPtr'
.
我以前没有使用过 svOpenArrayHandle,连接头文件“svdpi.h”就足够了。我试图在 questa 安装文件夹中查找一些 svdpi.dll 库,但没有找到。
如果我通过 vlog 编译 c 文件,它工作正常,但我想手动编译它,因为我计划包含 matlab 库,通过 vlog 编译会变得不舒服。
verilog - 在顶层 tb 访问内部模块(tb.dut.ab)apb 接口
有什么方法可以将 apb master vip 连接到 dut 内部的内部模块,其中有 apb 信号。我想在这个内部的 dut 模块中编写一些寄存器。
我试图连接一个接口并将其绑定在模块的深处,有点工作,但我必须将接口处的所有信号声明为 I/O,而我的模拟器不喜欢它,抛出很多关于多次驾驶的警告。
还有其他干净的访问方式吗?
system-verilog - 系统 Verilog 到 Specman E
Specman E 中 $readmemh(file,array) 和 System verilog 中类似系统任务和函数的等效语法是什么?
我正在将现有的 System verilog 代码转换为 Specman E,我已经转换并实现了大多数概念,除了下面的少数系统方法。请帮助我在 Specman E 中实现下面的方法。
system-verilog - 在 Specman E 中实现 System verilog 的 $value$plusargs() 系统函数
Specman E中 System verilog 的$value$plusargs选项的等效语法或实现是什么?
我正在将源代码从 System verilog 转换为 Specman E,我坚持在 Specman E 中实现 $value$plusargs() 系统函数。如何将命令行或 Makefile 中的参数传递给 Specman E 中的源代码?. 这是我想在 Specman E 环境中转换和实现的 System verilog 示例代码,
我可能还需要Specman E 中的$test$plusargs()实现。请帮助。
system-verilog - DPI-C 中 Struct 中的动态数组
我想在一个结构中使用一个动态数组,我使用 DPI 将其传递给 C。
我如何在 C 端实现它。我尝试在 struct 内使用 svOpenArrayHandle 但仍然无法正常工作。例子: