mirror of
https://github.com/myhdl/myhdl.git
synced 2024-12-14 07:44:38 +08:00
c7662a056c
* palce xfail on rename_after ... test * Adding a commmnet to force commit * alternate approach in testOBufInterface * reverting _analyze.py reaming the simulation objects * typos * final commit to 'finish' PR submission * And of course I forgot the 'xfail' * cleaning up wild import in test_tristate.py to provoke another Travis/CI run * There is something wrong with the 'xfail' so I just commented out the offender * uncommented the second test in test_tristate.py * Changed the object names in the testbench, hoping to narrow down where it fails * Changing more object names * myhdl.c: added #ifdef _WIN32 clause to get the pipes working in WIndows 10, properly (auto-)formatted the source util.py: changed the myhdl.vpi path to defaukt to iverilog's known system path test_tristate.py: the TestTristate class re-used the tristate_obuf.o for the test with the interface; which put iverilog on the wrong foot ... * util.py: make a distinction between Windows and Linux systems where to get myhdl.vpi
MyHDL co-simulation relies on Unix-style interprocess communication. To run co-simulation on Windows, compile and use all tools involved (including Python itself) on a Unix-like environment for Windows, such as cygwin. For co-simulation with Icarus, a working Icarus installation is required, so that the commands 'iverilog' and 'vvp' are available. Run the Makefile by typing 'make'. This should generate a 'myhdl.vpi' PLI module. Install it in an appropriate location, where 'vvp' can find it. Note that you can use the '-m' flag to vvp to specify the PLI module path. To test whether it works, go to the 'test' subdirectory and run the tests with 'python test_all.py'. For co-simulation with MyHDL, 'vvp' should be run with the 'myhdl.vpi' PLI module, and the Verilog code should contain the appropriate calls to the '$to_myhdl' and 'from_myhdl' tasks. The 'myhdl.vpi' module was developed and verified with Icarus 0.7. Between snapshot 20030518 (used in MyHDL 0.3), and 20031009, the Icarus scheduler has been improved. This requires a small update of myhdl.c. The current version is supposed to work with recent snapshots - the older version is available in myhdl_20030518.c