问题标签 [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.
verilog - 通过 VPI 调用任务或函数
我知道可以通过 Verilog 编程接口 (VPI) 更改信号和变量的值。也可以通过对其执行 a 来触发命名事件vpi_put_value(...)
。
是否可以调用函数或启动任务?
c++ - 将数组元素传递给 vpi_handle_by_name
我的test.sv
代码包含interface
,module
如图所示:
我已将vpiFullName test.inst.sig1
赋予vpi_handle_by_name
但我正在从文件中提取字符串 ( sig1
, sig2
,...) 并将其存储在数组arr
中。我想以数组的形式传递这些字符串,vpi_handle_by_name
如下所示:
是否有可能做到这一点?
c - SystemVerilog 循环遍历层次结构
我在 Register 块中实例化了寄存器Regblock
,如下所示:
所有这些寄存器都具有相同的内部结构。我想模拟这些寄存器中位翻转的效果。
有没有办法在DUT.Regblock.Register1, RegisterA, RegisterABC, ...
内部创建一个循环RegBlock
并创建这些位翻转?
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
什么?
这是我的尝试:
system-verilog - 是否可以在 VPI 回调中调用导出函数
我有以下情况:我有一个在触发断言时触发的 vpi 回调。在这个回调中,我想调用一个导出系统verilog函数,我试图在导出之前设置SvScope,但模拟器给了我一些错误。
system-verilog - 使用 PLI 进行仿真期间输入输出端口的活动方向
我试图从我的基于 PLI 的 C 代码的模拟过程中找出一个 inout 端口是用作输入端口还是用作输出端口。怎么做到呢?
verilog - 如何使用 PLI 例程获取 Verilog 矢量端口的尺寸?
如何使用 vpi PLI 例程获取矢量端口的尺寸?例如,对于向量端口声明“输出 [2:1] out;”,我怎样才能得到左维为 2 和右维为 1?我尝试使用 vpiRange 属性,但似乎端口不支持 vpiRange 属性。谢谢!为了清楚起见,将代码放在这里。
我从 vpi_get(vpiLeft/RightRange) 以及 ldim 和 rdim 中得到 -1。我的代码有什么错误吗?
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() 将在他们身边保留一份力值的副本。对此的任何见解都将不胜感激。
verilog - 获取设计中的信号名称(使用 VPI 调用)
我想从使用 vpi 的 Verilog 设计中获取给定设计层次结构中的信号名称列表。这是一个简单的网络名称浏览器界面,来自我用 C 和 Python 编写的自定义工具。
如何从 Verilog 设计中获取信号名称列表以及应该使用哪些 VPI 调用来遍历设计?
任何信息,将不胜感激。
system-verilog - 如何使用 VPI 检查 Systemverilog 关联数组是否具有密钥
我正在尝试使用 VPI 从 C 访问 Systemverilog 关联数组。如果我提供现有密钥,我可以使用以下代码访问密钥的数组元素。
但是,如果密钥无效(不存在),此代码会生成一条错误消息。如何在不生成错误消息的情况下检查数组中是否存在键?