Module: RubyVPI

Defined in:
lib/ruby-vpi.rb,
lib/ruby-vpi/rcov.rb

Overview

General project information.

Copyright 2006 Suraj N. Kurapati See the file named LICENSE for details.

Defined Under Namespace

Classes: Simulator

Constant Summary collapse

PROJECT_ID =
'ruby-vpi'
PROJECT_NAME =
'Ruby-VPI'
PROJECT_URL =
"http://#{PROJECT_ID}.rubyforge.org"
WEBSITE_URL =
PROJECT_URL + "/doc"
PROJECT_SUMMARY =
"Ruby interface to IEEE 1364-2005 Verilog VPI"
PROJECT_DETAIL =
"#{PROJECT_NAME} is a #{PROJECT_SUMMARY} and a platform for unit testing, rapid prototyping, and systems integration of Verilog modules through Ruby. It lets you create complex Verilog test benches easily and wholly in Ruby."
SIMULATORS =

List of supported Verilog simulators.

{
  :cver   => Simulator.new('GPL Cver',        '-DPRAGMATIC_CVER',   ''),
  :ivl    => Simulator.new('Icarus Verilog',  '-DICARUS_VERILOG',   ''),
  :vcs    => Simulator.new('Synopsys VCS',    '-DSYNOPSYS_VCS',     ''),
  :vsim   => Simulator.new('Mentor Modelsim', '-DMENTOR_MODELSIM',  ''),
  :ncsim  => Simulator.new('Cadence NC-Sim',  '-DCADENCE_NCSIM',    ''),
}
COVERAGE_ANALYSIS =
Rcov::CodeCoverageAnalyzer.new
COVERAGE_ANALYSIS_HANDLERS =
[]

Class Method Summary collapse

Class Method Details

.say(fmt, *args) ⇒ Object

:nodoc:



25
26
27
# File 'lib/ruby-vpi.rb', line 25

def RubyVPI.say fmt, *args #:nodoc:
  Vpi.vpi_printf("#{PROJECT_NAME}: #{fmt}\n", *args)
end

.with_coverage_analysis(&aBlock) ⇒ Object

Invokes the given block, which yields COVERAGE_ANALYSIS, after code coverage analysis has completed.



42
43
44
# File 'lib/ruby-vpi/rcov.rb', line 42

def RubyVPI.with_coverage_analysis &aBlock # :nodoc:
  COVERAGE_ANALYSIS_HANDLERS << aBlock if aBlock
end