Revival of the ruby-vpi project

Suraj N. Kurapati

A week ago, I was in search of Verilog TF, ACC, or VPI bindings for Ruby in order to simplify the task of writing a fairly complex Verilog test bench. Luckily, I came across Kazuhiro HIWADA’s ruby-vpi extension

This extension, through clever use of pthreads and mutual exclusion, enabled me to run a Ruby script from within Verilog via the standard PLI callback mechanism. However, that was the extent of its ability; it did not provide a means to pass parameters back and forth between Verilog and Ruby.

Naturally, I began implementing the ability to pass parameters and access the Verilog module under test via the VPI specification. After a few sleepless days, my hard work—although a bit hackish—paid off.

I tried my best to contact the original author, Mr. Hiwada, in hopes of contributing my additions to him. However, I failed to locate a more recent means of contact than his e-mail address listed on his old (1999) website.

Alas, it seemed that ruby-vpi was genuinely abandoned. So I decided to revive this wonderful project and coordinate further development through rubyforge.

I would like to thank Mr. Hiwada for creating the basic infrastructure for this project, so many years ago. I shall now continue his noble work alongside my Masters thesis for which I hope to utilize this extension.