BY: Suraj Kurapati (snk)
DATE: 2007-07-28 02:55
SUBJECT: RE: Can't seem to get ruby-vpi to work with V


Calvin Wong wrote:
> Okay, I figured this one out.
>
> It turns out that when I build ruby 1.8.6, for
> some reason a dynamic library was not placed
> into the install lib directory. So, I had to
> perform a make dll and then copy the libruby.so
> related files over.
>
> It also turns out that vcs did not code
> vpi_get_data, vpi_put_data and therefore those
> two symbols never resolved. I had to comment
> them out from the vpi_user.h within the ext
> directory and then I also had to comment them
> out from the swig_wrap.cin files as well.

Ah! That explains it.

I was getting the same error (reproduced below) on a 64-bit machine
and could never figure it out (surely the world's premier Verilog
simulator would define all VPI symbols!).

Could not open library specified in -load option obj/vcs
obj/vcs: undefined symbol: vpi_put_data

Are you using a 64-bit machine also? Because I remember Ruby-VPI
worked fine with VCS on a 32-bit machine some months ago (I haven't
tested Ruby-VPI with VCS since then because the university machines
were upgraded to 64-bit processors).

> But now ... I am dealing with
>
> Error: vpi_put_value: Write permission not enabled
> Please add capability wn to module register file.
>

Try adding the "+acc" option to lib/ruby-vpi/runner.rb:112 as follows:

sh %w(vcs -R +v2k +vpi),
SIMULATOR_ARGUMENTS[:vcs],
'-load',
"#{object_file_path(:vcs)}:#{LOADER_FUNC}",

############
'+acc', #### <=== added here!
############

expand_include_dir_options(:vcs),
@sources

You can just copy & paste the above code directly.


Let me know how it works out, and thanks for your feedback.

Reply via email to