Portable TCP/IP socket library

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

Reply to
Amal
Loading thread data ...

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.

Reply to
cs_posting

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:

formatting link
formatting link

Hans.

formatting link

Reply to
HT-Lab

Amal,

Try this link:

formatting 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

Reply to
EdA

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.

Reply to
cs_posting

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

Reply to
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.