0

我在 ASIC 模拟器中运行 System Verilog。SV 有一个导入/导出机制,可以从 SV 调用 C 函数,并且可以从 C 中调用 SV 函数。

我想将来自模拟的实时(非常慢的流)数据发送到我将用 Java 编写的图表程序。使用模拟器/C 程序定期更新调用 Java 的最佳方法是什么?

4

3 回答 3

4

在这里快速浏览一下:http: //java.sun.com/docs/books/jni/html/invoke.html,...

然后考虑这个:

最简单的方法是将数据写入文件,然后编写一个 java 程序在文件增长时从文件中读取。看到这个答案:unix/linux“tail -f”的Java IO实现

分别启动它们,或用于system()从插件启动 java 程序,将文件名作为参数传递。

于 2010-09-08T20:18:45.967 回答
2

最好的方法是让 Java 程序在 TCP 套接字上侦听来自可以发送它们的 C 程序的更新。让 C 程序在开始时连接到 Java 程序,并且只要有更新,它就可以通过连接的套接字传递它。然后,Java 程序可以获取数据并更新它需要更新的任何内容。

这也有一个很好的优势,即这两个程序甚至不必在同一台机器上运行。

于 2010-09-08T20:20:43.340 回答
1

有一个java 本机接口,它允许 C 程序与 java 对象交互。但是您需要编写一些 C 代码才能将其集成到 ASIC 模拟器中。

于 2010-09-08T19:56:22.573 回答