2014-07-18 61 views
4

System Verilog中的DPI功能始终提到您可以将其与任何语言(最常见的是C/C++)进行对接。我想要将我的系统Verilog代码与Ruby进行接口。是否有任何有关此功能的文档或支持?任何已知的方式来做到这一点?Ruby和SystemVerilog DPI

我应该补充一点,我的主要目标是从我的系统Verilog uvm测试中调用ruby脚本。

感谢

回答

6

虽然标准提到,DPI可以与任何其他外国语言界面的SystemVerilog,它然后鸡出来,说:

但就目前而言,SystemVerilog中只定义了一门外语层C编程语言为 。

这意味着您应该在所有兼容IEEE 1800的模拟器中获得DPI-C支持,但是您获得的任何其他外语都取决于您的模拟器供应商。例如Mine也提供SystemC,但要求修补SystemC代码(即它不能正常工作)。

我公司的一些人通过DPI设法将Python与SystemVerilog接口,但他们通过两步方法完成:Python - > C和C - > SystemVerilog。你可能需要做类似的事情。

+0

感谢都铎王朝。我意识到,这可能是一些研究后本地不可行的。 我有一个问题 - 我想创建一个随机测试,使用SystemVerilog上的randomize()函数,并使用这些随机变量对DUT中的寄存器进行编程。 我也想用相同的随机寄存器变量来调用我的软件模型(用于记分板检查)。这个记分牌是用红宝石书写的。现在我倾向于使用系统调用。我想这可能是唯一的方法? – noobuntu

+1

这也是我看到的唯一一个,除非你想实现上面概述的两步法。 –

+3

@noobuntu其他人已经为你做了工作,并且提供了源代码:查看提供访问权限的[ruby-vpi](http://snk.tuxfamily.org/lib/ruby-vpi/)gem。从红宝石到VPI(通过C)。 – Chiggs