Anyone has a good pointer to a portable (Windows, *nix) TCP/IP socket library that can be used with VHDL FLI, Verilog PLI/VPI, SystemC, or SystemVerilog DPI?
-- Amal
Anyone has a good pointer to a portable (Windows, *nix) TCP/IP socket library that can be used with VHDL FLI, Verilog PLI/VPI, SystemC, or SystemVerilog DPI?
-- Amal
Have you tried just using the common (BSD-derived I suppose) socket calls and found them not to work on both platforms, or somehow incompatible with the simulation interfaces you mention?
I would think that if you just avoid vendor/os -specific extensions you should be fine.
I believe that you should pay attention to OS specific examples, thus if you use sockets on Modelsim's FLI running under windows then follow the winsock examples, if you are running SystemC under Cygwin then follow the libc/bsd coding style. In general they are very close and pragmas can make your code portable. These example might help you out:
Hans.
Amal,
Try this link:
"David Roberts, of Cadence Design Systems, has provided a great example using sockets to communicate between a PLI application and an independently running C program. David has provided this example with no restrictions on usage, under the GNU freeware license agreement."
Allegedly it works on Linux and Windows.
Enjoy, /Ed
Yeah, and it's pretty simple. I did something like that a few years back - I'd built a soft-core processor (at that point only in verilog simulation), and wanted to write a debug monitor that could run on it. So I grafted in some registers to make a little "dummy uart" device that some pli code would monitor, and proxy the data to/from a local tcp socket. Then I connected to that socket with hyperterminal and "used" my simulated computer.
Ed,
I tried this library, but I am having problem with sending and receiving data. I am not sure if Modelsim is doing something wrong, but when I setup a server on the SystemVerilog side using DPI and send data through a TCL client, the server keeps on one line of data and keeps spitting out only the first line of data.
I wonder if anyone else has used this example?
-- Amal
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.