问题标签 [vpi]

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

verilog - 通过 VPI 调用任务或函数

我知道可以通过 Verilog 编程接口 (VPI) 更改信号和变量的值。也可以通过对其执行 a 来触发命名事件vpi_put_value(...)

是否可以调用函数或启动任务?

0 投票
0 回答
303 浏览

c++ - 将数组元素传递给 vpi_handle_by_name

我的test.sv代码包含interfacemodule如图所示:

我已将vpiFullName test.inst.sig1赋予vpi_handle_by_name

但我正在从文件中提取字符串 ( sig1, sig2,...) 并将其存储在数组arr中。我想以数组的形式传递这些字符串,vpi_handle_by_name如下所示:

是否有可能做到这一点?

0 投票
2 回答
825 浏览

c - SystemVerilog 循环遍历层次结构

我在 Register 块中实例化了寄存器Regblock,如下所示:

所有这些寄存器都具有相同的内部结构。我想模拟这些寄存器中位翻转的效果。

有没有办法在DUT.Regblock.Register1, RegisterA, RegisterABC, ...内部创建一个循环RegBlock并创建这些位翻转?

0 投票
1 回答
738 浏览

c - SystemVerilog VPI 在 vpiForceFlag 之后释放回调句柄

当我询问SystemVerilog 遍历层次结构 时,有人建议我使用 SystemVerilog VPI 代码来解决它。我发布了我的尝试,但意识到在强制净值后我需要释放它。vpi_put_value(vpi_handle_by_index(net,position),&val,NULL,vpiForceFlag);

我使用release_reg()cbForce.

我的问题是,因为我在许多网络上循环,所以我想cb_handle = vpi_register_cb(&cb_data_s);在每次回调后释放句柄。

我的尝试是将回调句柄传递cb_handle给回调函数,但它会产生分段错误。

vpi_remove_cb每个之后的正确方法是vpiReleaseFlag什么?

这是我的尝试:

0 投票
2 回答
649 浏览

system-verilog - 是否可以在 VPI 回调中调用导出函数

我有以下情况:我有一个在触发断言时触发的 vpi 回调。在这个回调中,我想调用一个导出系统verilog函数,我试图在导出之前设置SvScope,但模拟器给了我一些错误。

0 投票
1 回答
144 浏览

system-verilog - 使用 PLI 进行仿真期间输入输出端口的活动方向

我试图从我的基于 PLI 的 C 代码的模拟过程中找出一个 inout 端口是用作输入端口还是用作输出端口。怎么做到呢?

0 投票
1 回答
595 浏览

verilog - 如何使用 PLI 例程获取 Verilog 矢量端口的尺寸?

如何使用 vpi PLI 例程获取矢量端口的尺寸?例如,对于向量端口声明“输出 [2:1] out;”,我怎样才能得到左维为 2 和右维为 1?我尝试使用 vpiRange 属性,但似乎端口不支持 vpiRange 属性。谢谢!为了清楚起见,将代码放在这里。

我从 vpi_get(vpiLeft/RightRange) 以及 ldim 和 rdim 中得到 -1。我的代码有什么错误吗?

0 投票
1 回答
148 浏览

verilog - 与 VPI vpi_put_value() 一起使用的 value_p 的分配结构

我正在使用 VPI 实现 Verilog“强制”和“释放”,以便可以从 C 例程中调用它们。要将值强制为向量网络,我需要为 value_p 创建一个 s_vpi_vecval 数组。我为数组分配了一个存储空间并用我想要的值填充它。然后我使用 vpi_put_value() 将向量值强制为网络。

标准 IEEE 1800 清楚地表明调用例程需要为 value_p 的这种结构分配空间。但它没有说明何时可以安全释放存储空间。调用 vpi_put_value() 后释放存储是否安全?

我假设, vpi_put_value() 将在他们身边保留一份力值的副本。对此的任何见解都将不胜感激。

0 投票
1 回答
827 浏览

verilog - 获取设计中的信号名称(使用 VPI 调用)

我想从使用 vpi 的 Verilog 设计中获取给定设计层次结构中的信号名称列表。这是一个简单的网络名称浏览器界面,来自我用 C 和 Python 编写的自定义工具。

如何从 Verilog 设计中获取信号名称列表以及应该使用哪些 VPI 调用来遍历设计?

任何信息,将不胜感激。

0 投票
1 回答
842 浏览

system-verilog - 如何使用 VPI 检查 Systemverilog 关联数组是否具有密钥

我正在尝试使用 VPI 从 C 访问 Systemverilog 关联数组。如果我提供现有密钥,我可以使用以下代码访问密钥的数组元素。

但是,如果密钥无效(不存在),此代码会生成一条错误消息。如何在不生成错误消息的情况下检查数组中是否存在键?