我在ASIC模拟器中运行System Verilog。 SV有一个导入/导出机制,用于从SV调用C函数,以及从C中调用SV函数。
我想将仿真中的realtime-ish(非常慢的流)数据发送到我将用Java编写的图表程序。通过模拟器/ C程序定期更新来调用Java的最佳方法是什么?
答案 0 :(得分:4)
快速浏览一下:http://java.sun.com/docs/books/jni/html/invoke.html,...
然后考虑一下:
最简单的方法是将数据写入文件,然后编写java程序 随着文件的增长从文件中读取。请参阅此答案:Java IO implementation of unix/linux "tail -f"
单独启动它们,或使用system()
从插件启动java程序,将文件名作为参数传递。
答案 1 :(得分:2)
最好的方法是让Java程序在TCP套接字上侦听来自可以发送它们的C程序的更新。让C程序在开始时连接到Java程序,并且只要有更新,它就可以沿着连接的套接字传递它。然后,Java程序可以获取数据并更新它需要更新的任何内容。
这也有一个很好的优势,即两个程序甚至不必在同一台机器上运行。
答案 2 :(得分:1)
有java native interface允许C程序与java对象进行交互。但是你需要编写一些C代码才能将它集成到ASIC模拟器中。