ruby-vpi 7.0.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. data/HISTORY +19 -0
  2. data/README +3 -3
  3. data/Rakefile +147 -112
  4. data/bin/generate_test.rb +0 -2
  5. data/doc/src/manual.xml +11 -9
  6. data/doc/txt/manual.txt +14 -9
  7. data/doc/xhtml/background.organization.html +1 -1
  8. data/doc/xhtml/index.html +2 -2
  9. data/doc/xhtml/introduction.manifest.html +1 -1
  10. data/doc/xhtml/usage.installation.html +7 -1
  11. data/doc/xhtml/usage.tutorial.html +1 -1
  12. data/gem_extconf.rb +1 -1
  13. data/history.html +37 -0
  14. data/lib/ruby-vpi/runner.rb +77 -2
  15. data/lib/ruby-vpi.rb +0 -10
  16. data/readme.html +5 -3
  17. data/ref/c/annotated.html +1 -1
  18. data/ref/c/common_8h.html +1 -1
  19. data/ref/c/files.html +1 -1
  20. data/ref/c/functions.html +1 -1
  21. data/ref/c/functions_vars.html +1 -1
  22. data/ref/c/globals.html +1 -1
  23. data/ref/c/globals_0x63.html +1 -1
  24. data/ref/c/globals_0x65.html +1 -1
  25. data/ref/c/globals_0x66.html +1 -1
  26. data/ref/c/globals_0x70.html +1 -1
  27. data/ref/c/globals_0x72.html +1 -1
  28. data/ref/c/globals_0x73.html +1 -1
  29. data/ref/c/globals_0x74.html +1 -1
  30. data/ref/c/globals_0x76.html +1 -1
  31. data/ref/c/globals_0x78.html +1 -1
  32. data/ref/c/globals_defs.html +1 -1
  33. data/ref/c/globals_defs_0x65.html +1 -1
  34. data/ref/c/globals_defs_0x70.html +1 -1
  35. data/ref/c/globals_defs_0x76.html +1 -1
  36. data/ref/c/globals_defs_0x78.html +1 -1
  37. data/ref/c/globals_enum.html +1 -1
  38. data/ref/c/globals_eval.html +1 -1
  39. data/ref/c/globals_func.html +1 -1
  40. data/ref/c/globals_type.html +1 -1
  41. data/ref/c/globals_vars.html +1 -1
  42. data/ref/c/hierarchy.html +1 -1
  43. data/ref/c/index.html +1 -1
  44. data/ref/c/relay_8cin.html +1 -1
  45. data/ref/c/relay_8hin.html +1 -1
  46. data/ref/c/ruby-vpi_8c.html +1 -1
  47. data/ref/c/structrelay____RubyOptions____def.html +1 -1
  48. data/ref/c/structt__cb__data.html +1 -1
  49. data/ref/c/structt__vpi__delay.html +1 -1
  50. data/ref/c/structt__vpi__error__info.html +1 -1
  51. data/ref/c/structt__vpi__strengthval.html +1 -1
  52. data/ref/c/structt__vpi__systf__data.html +1 -1
  53. data/ref/c/structt__vpi__time.html +1 -1
  54. data/ref/c/structt__vpi__value.html +1 -1
  55. data/ref/c/structt__vpi__vecval.html +1 -1
  56. data/ref/c/structt__vpi__vlog__info.html +1 -1
  57. data/ref/c/swig_8cin.html +1 -1
  58. data/ref/c/swig_8hin.html +1 -1
  59. data/ref/c/verilog_8h.html +1 -1
  60. data/ref/c/vlog_8cin.html +1 -1
  61. data/ref/c/vlog_8hin.html +1 -1
  62. data/ref/c/vpi__user_8h.html +1 -1
  63. data/ref/ruby/classes/Counter.html +20 -20
  64. data/ref/ruby/classes/Counter.src/M000038.html +7 -9
  65. data/ref/ruby/classes/Counter.src/M000039.html +9 -7
  66. data/ref/ruby/classes/Counter.src/M000040.html +7 -9
  67. data/ref/ruby/classes/Counter.src/M000041.html +22 -0
  68. data/ref/ruby/classes/CounterProto.html +9 -9
  69. data/ref/ruby/classes/CounterProto.src/M000005.html +1 -1
  70. data/ref/ruby/classes/CounterProto.src/{M000004.html → M000006.html} +1 -1
  71. data/ref/ruby/classes/ERB.html +5 -5
  72. data/ref/ruby/classes/FileUtils.html +10 -10
  73. data/ref/ruby/classes/FileUtils.src/M000048.html +5 -5
  74. data/ref/ruby/classes/{InputGenerator.src/M000027.html → FileUtils.src/M000049.html} +4 -4
  75. data/ref/ruby/classes/Hw5UnitModel/Operation.html +15 -15
  76. data/ref/ruby/classes/Hw5UnitModel/Operation.src/M000012.html +12 -20
  77. data/ref/ruby/classes/Hw5UnitModel/Operation.src/M000013.html +20 -5
  78. data/ref/ruby/classes/Hw5UnitModel/Operation.src/M000014.html +18 -0
  79. data/ref/ruby/classes/Hw5UnitModel.html +24 -24
  80. data/ref/ruby/classes/Hw5UnitModel.src/M000009.html +7 -25
  81. data/ref/ruby/classes/Hw5UnitModel.src/M000010.html +25 -9
  82. data/ref/ruby/classes/Hw5UnitModel.src/M000011.html +22 -0
  83. data/ref/ruby/classes/Hw5_unit.html +5 -5
  84. data/ref/ruby/classes/Hw5_unit_spec.html +15 -15
  85. data/ref/ruby/classes/Hw5_unit_spec.src/M000024.html +8 -8
  86. data/ref/ruby/classes/Hw5_unit_spec.src/M000025.html +8 -54
  87. data/ref/ruby/classes/Hw5_unit_spec.src/M000026.html +67 -0
  88. data/ref/ruby/classes/InputGenerator.html +30 -30
  89. data/ref/ruby/classes/InputGenerator.src/M000028.html +5 -5
  90. data/ref/ruby/classes/InputGenerator.src/M000029.html +5 -6
  91. data/ref/ruby/classes/InputGenerator.src/M000030.html +6 -25
  92. data/ref/ruby/classes/InputGenerator.src/M000031.html +25 -6
  93. data/ref/ruby/classes/InputGenerator.src/M000032.html +6 -6
  94. data/ref/ruby/classes/InputGenerator.src/M000033.html +19 -0
  95. data/ref/ruby/classes/MaximumCounterValue.html +10 -10
  96. data/ref/ruby/classes/MaximumCounterValue.src/M000036.html +10 -8
  97. data/ref/ruby/classes/MaximumCounterValue.src/M000037.html +21 -0
  98. data/ref/ruby/classes/ModuleInfo.html +10 -10
  99. data/ref/ruby/classes/ModuleInfo.src/M000019.html +31 -13
  100. data/ref/ruby/classes/ModuleInfo.src/M000020.html +26 -0
  101. data/ref/ruby/classes/OutputInfo.html +5 -10
  102. data/ref/ruby/classes/OutputInfo.src/{M000017.html → M000018.html} +36 -36
  103. data/ref/ruby/classes/ResettedCounterValue.html +15 -15
  104. data/ref/ruby/classes/ResettedCounterValue.src/M000015.html +6 -5
  105. data/ref/ruby/classes/ResettedCounterValue.src/M000016.html +5 -10
  106. data/ref/ruby/classes/ResettedCounterValue.src/M000017.html +23 -0
  107. data/ref/ruby/classes/RubyVPI.html +0 -46
  108. data/ref/ruby/classes/RubyVPI.src/M000050.html +24 -24
  109. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +35 -35
  110. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000042.html +9 -31
  111. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000043.html +31 -69
  112. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000044.html +69 -114
  113. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000045.html +114 -13
  114. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000046.html +13 -5
  115. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000047.html +18 -0
  116. data/ref/ruby/classes/String.html +5 -5
  117. data/ref/ruby/classes/Template.html +5 -5
  118. data/ref/ruby/classes/TestHw5UnitModel.html +15 -15
  119. data/ref/ruby/classes/TestHw5UnitModel.src/M000021.html +6 -6
  120. data/ref/ruby/classes/TestHw5UnitModel.src/M000022.html +6 -51
  121. data/ref/ruby/classes/TestHw5UnitModel.src/M000023.html +64 -0
  122. data/ref/ruby/created.rid +1 -1
  123. data/ref/ruby/files/bin/generate_test_rb.html +6 -6
  124. data/ref/ruby/files/bin/generate_test_tpl/bench_rb.html +1 -1
  125. data/ref/ruby/files/bin/generate_test_tpl/design_rb.html +1 -1
  126. data/ref/ruby/files/bin/generate_test_tpl/proto_rb.html +1 -1
  127. data/ref/ruby/files/bin/generate_test_tpl/spec_rb.html +6 -6
  128. data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
  129. data/ref/ruby/files/ext/extconf_rb.html +1 -1
  130. data/ref/ruby/files/gem_extconf_rb.html +1 -1
  131. data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
  132. data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
  133. data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
  134. data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +1 -1
  135. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +108 -0
  136. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +78 -2
  137. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000001.html +20 -0
  138. data/ref/ruby/files/lib/ruby-vpi/vpi_util_rb.html +1 -1
  139. data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
  140. data/ref/ruby/files/samp/counter/counter_rspecTest_bench_rb.html +1 -1
  141. data/ref/ruby/files/samp/counter/counter_rspecTest_design_rb.html +1 -1
  142. data/ref/ruby/files/samp/counter/counter_rspecTest_proto_rb.html +1 -1
  143. data/ref/ruby/files/samp/counter/counter_rspecTest_spec_rb.html +1 -1
  144. data/ref/ruby/files/samp/counter/counter_unitTest_bench_rb.html +1 -1
  145. data/ref/ruby/files/samp/counter/counter_unitTest_design_rb.html +1 -1
  146. data/ref/ruby/files/samp/counter/counter_unitTest_proto_rb.html +1 -1
  147. data/ref/ruby/files/samp/counter/counter_unitTest_spec_rb.html +1 -1
  148. data/ref/ruby/files/samp/pipelined_alu/Hw5UnitModel_rb.html +1 -1
  149. data/ref/ruby/files/samp/pipelined_alu/InputGenerator_rb.html +1 -1
  150. data/ref/ruby/files/samp/pipelined_alu/TestHw5UnitModel_rb.html +1 -1
  151. data/ref/ruby/files/samp/pipelined_alu/hw5_unit_bench_rb.html +1 -1
  152. data/ref/ruby/files/samp/pipelined_alu/hw5_unit_design_rb.html +1 -1
  153. data/ref/ruby/files/samp/pipelined_alu/hw5_unit_spec_rb.html +1 -1
  154. data/ref/ruby/fr_file_index.html +1 -0
  155. data/ref/ruby/fr_method_index.html +48 -48
  156. data/samp/counter/Rakefile +1 -1
  157. data/samp/pipelined_alu/Rakefile +1 -1
  158. metadata +41 -41
  159. data/ref/ruby/classes/Counter.src/M000037.html +0 -20
  160. data/ref/ruby/classes/FileUtils.src/M000047.html +0 -18
  161. data/ref/ruby/classes/Hw5UnitModel/Operation.src/M000011.html +0 -25
  162. data/ref/ruby/classes/Hw5UnitModel.src/M000008.html +0 -20
  163. data/ref/ruby/classes/Hw5_unit_spec.src/M000023.html +0 -21
  164. data/ref/ruby/classes/MaximumCounterValue.src/M000035.html +0 -23
  165. data/ref/ruby/classes/ModuleInfo.src/M000018.html +0 -44
  166. data/ref/ruby/classes/ResettedCounterValue.src/M000014.html +0 -19
  167. data/ref/ruby/classes/RubyVPI.src/M000049.html +0 -18
  168. data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000041.html +0 -22
  169. data/ref/ruby/classes/TestHw5UnitModel.src/M000020.html +0 -19
  170. data/tpl/runner.rake +0 -96
  171. /data/{tpl/launcher.rake → lib/ruby-vpi/runner_proxy.rb} +0 -0
  172. /data/{tpl → lib/ruby-vpi}/synopsys_vcs.tab +0 -0
  173. /data/ref/ruby/classes/ERB.src/{M000034.html → M000035.html} +0 -0
  174. /data/ref/ruby/classes/Hw5UnitModel.src/{M000006.html → M000007.html} +0 -0
  175. /data/ref/ruby/classes/Hw5_unit.src/{M000003.html → M000004.html} +0 -0
  176. /data/ref/ruby/classes/String.src/{M000033.html → M000034.html} +0 -0
  177. /data/ref/ruby/classes/Template.src/{M000026.html → M000027.html} +0 -0
  178. /data/ref/ruby/files/bin/generate_test_rb.src/{M000001.html → M000002.html} +0 -0
  179. /data/ref/ruby/files/bin/generate_test_tpl/spec_rb.src/{M000002.html → M000003.html} +0 -0
data/HISTORY CHANGED
@@ -12,6 +12,25 @@ We _strictly_ follow the RubyGems project's "rational versioning policy":http://
12
12
  fn1. C. Gross, "Explaining Open Source Version Numbers", [Online document], 2005 Nov 28, [cited 2006 Aug 27], Available HTTP: "http://ablog.apress.com/?p=738":http://ablog.apress.com/?p=738
13
13
 
14
14
 
15
+ h1. Version 7.1.0 (2006-08-29)
16
+
17
+ h2. Summary
18
+
19
+ This release simplifies running of multiple tests, restores compatibility with Synopsys VCS, and better integrates with RubyGems.
20
+
21
+ h2. Details
22
+
23
+ * Added @lib/ruby-vpi/runner_proxy@ library which, when embedded into a Rakefile, runs all generated tests in the working directory with any specified arguments. For example, have a look at the @samp/counter/Rakefile@ file.
24
+
25
+ * Fixed a bug that prevented one from running tests with Synopsys VCS.
26
+
27
+ * Ruby-VPI documentation is now available through RubyGems' "@gem_server@ web interface":http://docs.rubygems.org/read/chapter/2#page10.
28
+
29
+ * The user manual now discusses how to determine the location of a Ruby-VPI installation.
30
+
31
+ * The @tpl/@ directory has been removed.
32
+
33
+
15
34
  h1. Version 7.0.0 (2006-08-29)
16
35
 
17
36
  h2. Summary
data/README CHANGED
@@ -1,9 +1,9 @@
1
1
  h1. Welcome to Ruby-VPI
2
2
 
3
- Ruby-VPI is a Ruby interface to Verilog VPI. It lets you create complex Verilog test benches easily and wholly in Ruby.
4
-
5
- * See the "user manual":./doc/ to begin using Ruby-VPI.
3
+ * See the "user manual":./doc/xhtml to begin using Ruby-VPI.
6
4
 
7
5
  * See the "release history":./history.html to see what is new in this release.
8
6
 
7
+ * See API documentation for the "C extension":./ref/c or "Ruby-VPI libraries":./ref/ruby.
8
+
9
9
  * Visit the "project website":http://ruby-vpi.rubyforge.org for additional resources.
data/Rakefile CHANGED
@@ -75,6 +75,11 @@ task :clobber do |t|
75
75
  end
76
76
 
77
77
 
78
+
79
+ ##
80
+ # extension
81
+ #
82
+
78
83
  desc "Builds object files for all simulators."
79
84
  task :build
80
85
 
@@ -121,151 +126,181 @@ CLOBBER.include 'obj'
121
126
  end
122
127
 
123
128
 
129
+
130
+ ##
124
131
  # documentation
125
- desc 'Generate documentation.'
126
- task 'doc' => 'ref' do |t|
127
- cd t.name do
128
- sh 'rake'
129
- end
132
+ #
133
+
134
+ desc 'Generate documentation.'
135
+ task 'doc' => 'ref' do |t|
136
+ cd t.name do
137
+ sh 'rake'
130
138
  end
139
+ end
131
140
 
132
141
 
133
- directory 'ref'
134
- CLOBBER.include 'ref'
142
+ directory 'ref'
143
+ CLOBBER.include 'ref'
135
144
 
136
- desc 'Generate reference documentation.'
137
- file 'ref' => ['ref/c', 'ref/ruby']
145
+ desc 'Generate reference documentation.'
146
+ file 'ref' => ['ref/c', 'ref/ruby']
138
147
 
139
148
 
140
- directory 'ref/ruby'
141
- CLOBBER.include 'ref/ruby'
149
+ directory 'ref/ruby'
150
+ CLOBBER.include 'ref/ruby'
142
151
 
143
- desc 'Generate reference for Ruby.'
144
- Rake::RDocTask.new 'ref/ruby' do |t|
145
- t.rdoc_dir = t.name
146
- t.title = "#{PROJECT_NAME}: #{PROJECT_SUMMARY}"
147
- t.options.concat %w(--charset utf-8 --tab-width 2 --line-numbers)
148
-
149
- t.rdoc_files.include '**/*.rb'
150
- end
152
+ desc 'Generate reference for Ruby.'
153
+ Rake::RDocTask.new 'ref/ruby' do |t|
154
+ t.rdoc_dir = t.name
155
+ t.title = "#{PROJECT_NAME}: #{PROJECT_SUMMARY}"
156
+ t.options.concat %w(--charset utf-8 --tab-width 2 --line-numbers)
151
157
 
158
+ t.rdoc_files.include '**/*.rb'
159
+ end
152
160
 
153
- directory 'ref/c'
154
- CLOBBER.include 'ref/c'
155
161
 
156
- desc 'Generate reference for C.'
157
- file 'ref/c' do |t|
158
- # doxygen outputs to this temporary destination
159
- tempDest = 'ext/html'
162
+ directory 'ref/c'
163
+ CLOBBER.include 'ref/c'
160
164
 
161
- cd File.dirname(tempDest) do
162
- sh "doxygen"
163
- end
165
+ desc 'Generate reference for C.'
166
+ file 'ref/c' do |t|
167
+ # doxygen outputs to this temporary destination
168
+ tempDest = 'ext/html'
164
169
 
165
- mv FileList[tempDest + '/*'].to_a, t.name
166
- rmdir tempDest
170
+ cd File.dirname(tempDest) do
171
+ sh "doxygen"
167
172
  end
168
173
 
174
+ mv FileList[tempDest + '/*'].to_a, t.name
175
+ rmdir tempDest
176
+ end
177
+
178
+
179
+
180
+ ##
169
181
  # distribution
170
- distDocs = ['HISTORY', 'README', 'MEMO'].map do |src|
171
- dst = src.downcase << '.html'
182
+ #
172
183
 
173
- file dst => src do |t|
174
- sh "redcloth < #{t.prerequisites[0]} > #{t.name}"
175
- end
184
+ distDocs = ['HISTORY', 'README', 'MEMO'].map do |src|
185
+ dst = src.downcase << '.html'
176
186
 
177
- CLOBBER.include dst
178
- dst
187
+ file dst => src do |t|
188
+ sh "redcloth < #{t.prerequisites[0]} > #{t.name}"
179
189
  end
180
190
 
191
+ CLOBBER.include dst
192
+ dst
193
+ end
181
194
 
182
- desc "Prepare for distribution."
183
- task :dist => ['ext', :doc, *distDocs] do |t|
184
- cd t.prerequisites[0] do
185
- sh 'rake swig'
186
- end
195
+ desc "Prepare distribution information."
196
+ task :dist_info => distDocs
197
+
198
+
199
+ desc "Prepare for distribution."
200
+ task :dist => ['ext', :doc, :dist_info] do |t|
201
+ cd t.prerequisites[0] do
202
+ sh 'rake swig'
187
203
  end
204
+ end
188
205
 
189
- # website publishing
190
- desc 'Publish documentation to website.'
191
- task :web => [:web_dist, :web_ref, :web_doc]
192
206
 
193
- desc "Publish distribution info."
194
- task :web_dist => distDocs do |t|
195
- upload_without_svn PROJECT_SSH_URL, *t.prerequisites
196
- end
207
+ desc 'Publish documentation to website.'
208
+ task :web => [:web_dist, :web_ref, :web_doc]
197
209
 
198
- desc "Publish reference documentation."
199
- task :web_ref => 'ref' do |t|
200
- upload_without_svn PROJECT_SSH_URL, *t.prerequisites
201
- end
210
+ desc "Publish distribution info."
211
+ task :web_dist => distDocs do |t|
212
+ upload_without_svn PROJECT_SSH_URL, *t.prerequisites
213
+ end
202
214
 
203
- desc "Publish user documentation."
204
- task :web_doc => :doc do |t|
205
- upload_without_svn "#{PROJECT_SSH_URL}/doc/", *FileList['doc/xhtml/*']
206
- end
215
+ desc "Publish reference documentation."
216
+ task :web_ref => 'ref' do |t|
217
+ upload_without_svn PROJECT_SSH_URL, *t.prerequisites
218
+ end
207
219
 
208
- desc 'Connect to website FTP.'
209
- task :ftp do
210
- sh 'lftp', "sftp://#{PROJECT_SSH_URL}"
211
- end
220
+ desc "Publish user documentation."
221
+ task :web_doc => :doc do |t|
222
+ upload_without_svn "#{PROJECT_SSH_URL}/doc/", *FileList['doc/xhtml/*']
223
+ end
212
224
 
213
- # release packages
214
- desc "Generate release packages."
215
- task :pkg => ['HISTORY', 'gem_extconf.rb'] do |t|
216
- # determine release version
217
- File.read(t.prerequisites[0]) =~ /Version\s+([\d\.]+)/
218
- releaseVersion = $1
219
- puts "release version is: #{releaseVersion}"
220
-
221
- mkdir tmpDir = generate_temp_path
222
- cp_r '.', tmpDir
223
-
224
- cd tmpDir do
225
- # clean up
226
- sh "svn st | awk '/^\\?/ {print $2}' | xargs rm -rf"
227
- sh "svn up"
228
- sh "find -name .svn | xargs rm -rf"
229
-
230
- sh "rake dist"
231
-
232
- # make gem package
233
- spec = Gem::Specification.new do |s|
234
- s.name = s.rubyforge_project = PROJECT_ID
235
- s.summary = PROJECT_SUMMARY
236
- s.description = PROJECT_DETAIL
237
- s.homepage = PROJECT_URL
238
- s.version = releaseVersion
239
-
240
- s.add_dependency 'rspec', '>= 0.5.4'
241
- s.add_dependency 'rake', '>= 0.7.0'
242
-
243
- s.requirements << "POSIX threads library"
244
- s.requirements << "C language compiler"
245
-
246
- s.files = FileList['**/*']
247
- s.autorequire = PROJECT_ID
248
- s.executables = FileList['bin/*'].select {|f| File.executable?(f) && File.file?(f)}.map {|f| File.basename f}
249
- s.extensions << t.prerequisites[1]
250
-
251
- s.has_rdoc = true
252
- end
225
+ desc 'Connect to website FTP.'
226
+ task :ftp do
227
+ sh 'lftp', "sftp://#{PROJECT_SSH_URL}"
228
+ end
253
229
 
254
- Gem::manage_gems
255
- Gem::Builder.new(spec).build
256
230
 
257
- mv *(FileList['*.gem'] << File.dirname(__FILE__))
258
- end
231
+ desc "Generate release packages."
232
+ task :pkg => ['HISTORY', 'gem_extconf.rb'] do |t|
233
+ # determine release version
234
+ File.read(t.prerequisites[0]) =~ /Version\s+([\d\.]+)/
235
+ releaseVersion = $1
236
+ puts "release version is: #{releaseVersion}"
237
+
238
+ mkdir tmpDir = generate_temp_path
239
+ cp_r '.', tmpDir
240
+
241
+ cd tmpDir do
242
+ # clean up
243
+ sh "svn st | awk '/^\\?/ {print $2}' | xargs rm -rf"
244
+ sh "svn up"
245
+ sh "find -name .svn | xargs rm -rf"
246
+
247
+ sh "rake dist"
248
+
249
+ # make gem package
250
+ spec = Gem::Specification.new do |s|
251
+ s.name = s.rubyforge_project = PROJECT_ID
252
+ s.summary = PROJECT_SUMMARY
253
+ s.description = PROJECT_DETAIL
254
+ s.homepage = PROJECT_URL
255
+ s.version = releaseVersion
256
+
257
+ s.add_dependency 'rspec', '>= 0.5.4'
258
+ s.add_dependency 'rake', '>= 0.7.0'
259
+
260
+ s.requirements << "POSIX threads library"
261
+ s.requirements << "C language compiler"
262
+
263
+ s.files = FileList['**/*']
264
+ s.autorequire = PROJECT_ID
265
+ s.executables = FileList['bin/*'].select {|f| File.executable?(f) && File.file?(f)}.map {|f| File.basename f}
266
+ s.extensions << t.prerequisites[1]
267
+ end
268
+
269
+ Gem::manage_gems
270
+ Gem::Builder.new(spec).build
259
271
 
260
- rm_r tmpDir
272
+ mv *(FileList['*.gem'] << File.dirname(__FILE__))
261
273
  end
262
274
 
275
+ rm_r tmpDir
276
+ end
277
+
278
+
279
+ desc "Configures the gem during installation."
280
+ task :config_gem_install => 'readme.html' do |t|
281
+ # makes documentation available to gem_server
282
+ gemDir = File.dirname(__FILE__)
283
+ gemName = File.basename(gemDir)
284
+ docDir = File.join('..', '..', 'doc', gemName)
285
+
286
+ mkdir_p docDir
287
+ ln_s gemDir, File.join(docDir, 'rdoc')
288
+
289
+ # gem_server doesn't dynamically generate directory index
290
+ cp t.prerequisites[0], 'index.html'
291
+ end
292
+
293
+
294
+
295
+ ##
263
296
  # testing
264
- desc "Ensure that examples work with $SIMULATOR"
265
- task :test => FileList['samp/*/'] do |t|
266
- t.prerequisites.each do |s|
267
- cd s do
268
- sh 'rake', ENV['SIMULATOR'] || 'ivl'
269
- end
297
+ #
298
+
299
+ desc "Ensure that examples work with $SIMULATOR"
300
+ task :test => FileList['samp/*/'] do |t|
301
+ t.prerequisites.each do |s|
302
+ cd s do
303
+ sh 'rake', ENV['SIMULATOR'] || 'ivl'
270
304
  end
271
305
  end
306
+ end
data/bin/generate_test.rb CHANGED
@@ -133,8 +133,6 @@ class OutputInfo
133
133
  VERILOG_EXT = '.v'
134
134
  RUNNER_EXT = '.rake'
135
135
 
136
- RUNNER_TMPL_REL_PATH = 'tpl/runner.rake'
137
-
138
136
  SPEC_FORMATS = [:RSpec, :UnitTest, :Generic]
139
137
 
140
138
  attr_reader :verilogBenchName, :verilogBenchPath, :rubyBenchName, :rubyBenchPath, :designName, :designClassName, :designPath, :specName, :specClassName, :specFormat, :specPath, :rubyVpiPath, :runnerName, :runnerPath, :protoName, :protoPath, :protoClassName
data/doc/src/manual.xml CHANGED
@@ -125,13 +125,6 @@
125
125
  </listitem>
126
126
  </varlistentry>
127
127
 
128
- <varlistentry>
129
- <term><filename>tpl</filename></term>
130
- <listitem>
131
- <para>This directory contains templates used by tests.</para>
132
- </listitem>
133
- </varlistentry>
134
-
135
128
  <varlistentry>
136
129
  <term><filename>bin</filename></term>
137
130
  <listitem>
@@ -892,9 +885,18 @@
892
885
  <section id="usage.installation">
893
886
  <title>Installation and maintenance</title>
894
887
 
895
- <para>Once you have satisfied the <link linkend="usage.requirements">necessary requirements</link>, you can install &rv; by running the command <command>gem <action>install</action> <replaceable>ruby-vpi</replaceable></command>. Likewise, you can uninstall &rv; by running the command <command>gem <action>uninstall</action> <replaceable>ruby-vpi</replaceable></command>. Furthermore, you can upgrade to the latest release of &rv; by running the command <command>gem <action>update</action> <replaceable>ruby-vpi</replaceable></command>.</para>
888
+ <para>Once you have satisfied the <link linkend="usage.requirements">necessary requirements</link>, you can install &rv; by running the command <command>gem <action>install</action> <replaceable>ruby-vpi</replaceable></command>. RubyGems will install &rv; into the system gem directory, whose path can be determined by running the command <command>gem <action>env</action> <replaceable>gemdir</replaceable></command>. Within this directory, there is a "gems" subdirectory which contains the &rv; installation, as illustrated below.</para>
889
+
890
+ <screen>
891
+ <prompt>$</prompt> <userinput><command>gem <action>env</action> <replaceable>gemdir</replaceable></command></userinput>
892
+ <computeroutput>/usr/lib/ruby/gems/1.8</computeroutput>
893
+
894
+ <prompt>$</prompt> <userinput><command>ls <option>-d</option> <replaceable>/usr/lib/ruby/gems/1.8</replaceable>/gems/ruby-vpi-*</command></userinput>
895
+ <computeroutput>/usr/lib/ruby/gems/1.8/gems/ruby-vpi-7.0.0/</computeroutput>
896
+ </screen>
897
+
896
898
 
897
- <para>You can learn more about using and manipulating RubyGems in <ulink url="http://www.rubygems.org">the RubyGems user manual</ulink>.</para>
899
+ <para>You can uninstall &rv; by running the command <command>gem <action>uninstall</action> <replaceable>ruby-vpi</replaceable></command>. Furthermore, you can upgrade to the latest release of &rv; by running the command <command>gem <action>update</action> <replaceable>ruby-vpi</replaceable></command>. Finally, you can learn more about using and manipulating RubyGems in <ulink url="http://www.rubygems.org">the RubyGems user manual</ulink>.</para>
898
900
  </section>
899
901
 
900
902
  <section id="usage.tools">
data/doc/txt/manual.txt CHANGED
@@ -171,10 +171,6 @@ lib
171
171
  This directory contains libraries, written in the Ruby language, for use by
172
172
  specifications.
173
173
 
174
- tpl
175
-
176
- This directory contains templates used by tests.
177
-
178
174
  bin
179
175
 
180
176
  This directory contains various tools. See the section called “Tools” for
@@ -636,12 +632,21 @@ RubyGems
636
632
  Installation and maintenance
637
633
 
638
634
  Once you have satisfied the necessary requirements, you can install Ruby-VPI by
639
- running the command gem install ruby-vpi. Likewise, you can uninstall Ruby-VPI
640
- by running the command gem uninstall ruby-vpi. Furthermore, you can upgrade to
641
- the latest release of Ruby-VPI by running the command gem update ruby-vpi.
635
+ running the command gem install ruby-vpi. RubyGems will install Ruby-VPI into
636
+ the system gem directory, whose path can be determined by running the command
637
+ gem env gemdir. Within this directory, there is a "gems" subdirectory which
638
+ contains the Ruby-VPI installation, as illustrated below.
639
+
640
+ $ gem env gemdir
641
+ /usr/lib/ruby/gems/1.8
642
+
643
+ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi-*
644
+ /usr/lib/ruby/gems/1.8/gems/ruby-vpi-7.0.0/
642
645
 
643
- You can learn more about using and manipulating RubyGems in the RubyGems user
644
- manual.
646
+ You can uninstall Ruby-VPI by running the command gem uninstall ruby-vpi.
647
+ Furthermore, you can upgrade to the latest release of Ruby-VPI by running the
648
+ command gem update ruby-vpi. Finally, you can learn more about using and
649
+ manipulating RubyGems in the RubyGems user manual.
645
650
 
646
651
  Tools
647
652
 
@@ -7,4 +7,4 @@
7
7
  <span class="type">va_list</span> *<code class="varname">p</code> = &amp;<code class="varname">ap</code>;
8
8
  }
9
9
  </pre></li></ul></div><p>
10
- </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="organization.vpi.util"></a><span class="acronym">VPI</span> utility layer</h4></div></div></div><p>From a user's perspective, the <span class="acronym">VPI</span> utility layer greatly enhances the ability to interact with handles. One simply invokes a handle's methods, which are carefully named in the following manner, to access its <span class="acronym">VPI</span> properties.</p><div class="table"><a id="table..handle-property-accessor-naming-format"></a><p class="title"><b>Table 2.1. Naming format for accessing a handle's <span class="acronym">VPI</span> properties</b></p><table summary="Naming format for accessing a handle's VPI properties" border="1"><colgroup><col /><col /><col /><col /><col /><col /></colgroup><thead><tr><th>Operation</th><th>_</th><th>Property</th><th>_</th><th>Accessor</th><th>Addendum</th></tr></thead><tbody><tr><td colspan="2">optional</td><td>required</td><td colspan="2">optional</td><td>optional</td></tr></tbody></table></div><div class="variablelist"><dl><dt><span class="term">Operation</span></dt><dd><p>This parameter suggests a method that should be invoked in the context of the Property parameter.</p></dd><dt><span class="term">Property</span></dt><dd><p>This parameter suggests which <span class="acronym">VPI</span> property should be accessed. The first letter of this parameter's value should be lower case, and the <span class="emphasis"><em>vpi</em></span> prefix—common to all <span class="acronym">VPI</span> properties—can be omitted.</p><p>For example, the <span class="acronym">VPI</span> property <span class="emphasis"><em>vpiFullName</em></span> is considered equivalent to <span class="emphasis"><em>fullName</em></span> but not equivalent to either <span class="emphasis"><em>FullName</em></span> or <span class="emphasis"><em>full_name</em></span>.</p></dd><dt><span class="term">Accessor</span></dt><dd><p>This parameter suggests which <span class="acronym">VPI</span> function should be used to access the <span class="acronym">VPI</span> property. When this parameter is not specified, the <span class="acronym">VPI</span> utility layer will attempt to <span class="emphasis"><em>guess</em></span> the value of this parameter (<a href="../../ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html" target="_top">see the source code</a> of the <code class="code"><code class="constant">SWIG</code>::<code class="constant">TYPE_p_unsigned_int</code>#<code class="function">method_missing</code></code> method for details).</p><div class="table"><a id="id2483001"></a><p class="title"><b>Table 2.2. Possible accessors and their implications</b></p><table summary="Possible accessors and their implications" border="1"><colgroup></colgroup><thead><tr><th>Accessor</th><th>Kind of value accessed</th><th><span class="acronym">VPI</span> functions used to access the value</th></tr></thead><tbody><tr><td>d</td><td>delay</td><td><code class="function">vpi_get_delays</code>, <code class="function">vpi_put_delays</code></td></tr><tr><td>l</td><td>logic</td><td><code class="function">vpi_get_value</code>, <code class="function">vpi_put_value</code></td></tr><tr><td>i</td><td>integer</td><td><code class="function">vpi_get</code></td></tr><tr><td>b</td><td>boolean</td><td><code class="function">vpi_get</code></td></tr><tr><td>s</td><td>string</td><td><code class="function">vpi_get_str</code></td></tr><tr><td>h</td><td>handle</td><td><code class="function">vpi_handle</code></td></tr></tbody></table></div></dd><dt><span class="term">Addendum</span></dt><dd><p>When this parameter is a question mark (<span class="emphasis"><em>?</em></span>), it suggests that the specified <span class="acronym">VPI</span> property should be queried as a boolean value. This produces the same effect as specifying <span class="emphasis"><em>b</em></span> for the Accessor parameter.</p><p>When this parameter is an equal sign (<span class="emphasis"><em>=</em></span>), it suggests that the specified <span class="acronym">VPI</span> property should be written to.</p></dd></dl></div><div class="example"><a id="ex..handle-property-accessor-naming-format"></a><p class="title"><b>Example 2.1. Accessing a handle's <span class="acronym">VPI</span> properties</b></p><div class="informaltable"><table border="1"><colgroup><col /><col /><col /><col /><col /><col /></colgroup><thead><tr><th rowspan="2">Ruby expression</th><th colspan="6">Naming format</th><th rowspan="2">Description</th></tr><tr><th>Operation</th><th>_</th><th>Property</th><th>_</th><th>Accessor</th><th>Addendum</th></tr></thead><tbody><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">each_vpiNet</code> {|<code class="varname">net</code>| <code class="function">puts</code> <code class="varname">net</code>.<code class="function">fullName</code>}</code></td><td>each</td><td>_</td><td>vpiNet</td><td> </td><td> </td><td> </td><td rowspan="2">These expressions print the full name of each <code class="constant">vpiNet</code> object associated with the handle.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">each_net</code> {|<code class="varname">net</code>| <code class="function">puts</code> <code class="varname">net</code>.<code class="function">fullName</code>}</code></td><td>each</td><td>_</td><td>net</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the logic value of the handle's <code class="constant">vpiIntVal</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal_l</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td>_</td><td>l</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code></code></td><td> </td><td> </td><td>intVal</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal_l</code></code></td><td> </td><td> </td><td>intVal</td><td>_</td><td>l</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td> </td><td> </td><td>=</td><td rowspan="4">These expressions assign the number 15 to the logic value of the handle's <code class="constant">vpiIntVal</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal_l</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td>_</td><td>l</td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>intVal</td><td> </td><td> </td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code>_l = <code class="literal">15</code></code></td><td> </td><td> </td><td>intVal</td><td>_</td><td>l</td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiType</code></code></td><td> </td><td> </td><td>vpiType</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the integer value of the handle's <code class="constant">vpiType</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiType_i</code></code></td><td> </td><td> </td><td>vpiType</td><td>_</td><td>i</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">type</code></code></td><td> </td><td> </td><td>type</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">type_i</code></code></td><td> </td><td> </td><td>type</td><td>_</td><td>i</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected</code></code></td><td> </td><td> </td><td>vpiProtected</td><td> </td><td> </td><td> </td><td rowspan="6">These expressions access the boolean value of the handle's <code class="constant">vpiProtected</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected_b</code></code></td><td> </td><td> </td><td>vpiProtected</td><td>_</td><td>b</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected?</code></code></td><td> </td><td> </td><td>vpiProtected</td><td> </td><td> </td><td>?</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected</code></code></td><td> </td><td> </td><td>protected</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected_b</code></code></td><td> </td><td> </td><td>protected</td><td>_</td><td>b</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected?</code></code></td><td> </td><td> </td><td>protected</td><td> </td><td> </td><td>?</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiFullName</code></code></td><td> </td><td> </td><td>vpiFullName</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the string value of the handle's <code class="constant">vpiFullName</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiFullName_s</code></code></td><td> </td><td> </td><td>vpiFullName</td><td>_</td><td>s</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">fullName</code></code></td><td> </td><td> </td><td>fullName</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">fullName_s</code></code></td><td> </td><td> </td><td>fullName</td><td>_</td><td>s</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiParent</code></code></td><td> </td><td> </td><td>vpiParent</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the handle value of the handle's <code class="constant">vpiParent</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiParent_h</code></code></td><td> </td><td> </td><td>vpiParent</td><td>_</td><td>h</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">parent</code></code></td><td> </td><td> </td><td>parent</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">parent_h</code></code></td><td> </td><td> </td><td>parent</td><td>_</td><td>h</td><td> </td></tr></tbody></table></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.terminology.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="background.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="background.running-tests.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Terminology </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Running a test</td></tr></table></div></body></html>
10
+ </p><div class="section" lang="en" xml:lang="en"><div class="titlepage"><div><div><h4 class="title"><a id="organization.vpi.util"></a><span class="acronym">VPI</span> utility layer</h4></div></div></div><p>From a user's perspective, the <span class="acronym">VPI</span> utility layer greatly enhances the ability to interact with handles. One simply invokes a handle's methods, which are carefully named in the following manner, to access its <span class="acronym">VPI</span> properties.</p><div class="table"><a id="table..handle-property-accessor-naming-format"></a><p class="title"><b>Table 2.1. Naming format for accessing a handle's <span class="acronym">VPI</span> properties</b></p><table summary="Naming format for accessing a handle's VPI properties" border="1"><colgroup><col /><col /><col /><col /><col /><col /></colgroup><thead><tr><th>Operation</th><th>_</th><th>Property</th><th>_</th><th>Accessor</th><th>Addendum</th></tr></thead><tbody><tr><td colspan="2">optional</td><td>required</td><td colspan="2">optional</td><td>optional</td></tr></tbody></table></div><div class="variablelist"><dl><dt><span class="term">Operation</span></dt><dd><p>This parameter suggests a method that should be invoked in the context of the Property parameter.</p></dd><dt><span class="term">Property</span></dt><dd><p>This parameter suggests which <span class="acronym">VPI</span> property should be accessed. The first letter of this parameter's value should be lower case, and the <span class="emphasis"><em>vpi</em></span> prefix—common to all <span class="acronym">VPI</span> properties—can be omitted.</p><p>For example, the <span class="acronym">VPI</span> property <span class="emphasis"><em>vpiFullName</em></span> is considered equivalent to <span class="emphasis"><em>fullName</em></span> but not equivalent to either <span class="emphasis"><em>FullName</em></span> or <span class="emphasis"><em>full_name</em></span>.</p></dd><dt><span class="term">Accessor</span></dt><dd><p>This parameter suggests which <span class="acronym">VPI</span> function should be used to access the <span class="acronym">VPI</span> property. When this parameter is not specified, the <span class="acronym">VPI</span> utility layer will attempt to <span class="emphasis"><em>guess</em></span> the value of this parameter (<a href="../../ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html" target="_top">see the source code</a> of the <code class="code"><code class="constant">SWIG</code>::<code class="constant">TYPE_p_unsigned_int</code>#<code class="function">method_missing</code></code> method for details).</p><div class="table"><a id="id2482973"></a><p class="title"><b>Table 2.2. Possible accessors and their implications</b></p><table summary="Possible accessors and their implications" border="1"><colgroup></colgroup><thead><tr><th>Accessor</th><th>Kind of value accessed</th><th><span class="acronym">VPI</span> functions used to access the value</th></tr></thead><tbody><tr><td>d</td><td>delay</td><td><code class="function">vpi_get_delays</code>, <code class="function">vpi_put_delays</code></td></tr><tr><td>l</td><td>logic</td><td><code class="function">vpi_get_value</code>, <code class="function">vpi_put_value</code></td></tr><tr><td>i</td><td>integer</td><td><code class="function">vpi_get</code></td></tr><tr><td>b</td><td>boolean</td><td><code class="function">vpi_get</code></td></tr><tr><td>s</td><td>string</td><td><code class="function">vpi_get_str</code></td></tr><tr><td>h</td><td>handle</td><td><code class="function">vpi_handle</code></td></tr></tbody></table></div></dd><dt><span class="term">Addendum</span></dt><dd><p>When this parameter is a question mark (<span class="emphasis"><em>?</em></span>), it suggests that the specified <span class="acronym">VPI</span> property should be queried as a boolean value. This produces the same effect as specifying <span class="emphasis"><em>b</em></span> for the Accessor parameter.</p><p>When this parameter is an equal sign (<span class="emphasis"><em>=</em></span>), it suggests that the specified <span class="acronym">VPI</span> property should be written to.</p></dd></dl></div><div class="example"><a id="ex..handle-property-accessor-naming-format"></a><p class="title"><b>Example 2.1. Accessing a handle's <span class="acronym">VPI</span> properties</b></p><div class="informaltable"><table border="1"><colgroup><col /><col /><col /><col /><col /><col /></colgroup><thead><tr><th rowspan="2">Ruby expression</th><th colspan="6">Naming format</th><th rowspan="2">Description</th></tr><tr><th>Operation</th><th>_</th><th>Property</th><th>_</th><th>Accessor</th><th>Addendum</th></tr></thead><tbody><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">each_vpiNet</code> {|<code class="varname">net</code>| <code class="function">puts</code> <code class="varname">net</code>.<code class="function">fullName</code>}</code></td><td>each</td><td>_</td><td>vpiNet</td><td> </td><td> </td><td> </td><td rowspan="2">These expressions print the full name of each <code class="constant">vpiNet</code> object associated with the handle.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">each_net</code> {|<code class="varname">net</code>| <code class="function">puts</code> <code class="varname">net</code>.<code class="function">fullName</code>}</code></td><td>each</td><td>_</td><td>net</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the logic value of the handle's <code class="constant">vpiIntVal</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal_l</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td>_</td><td>l</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code></code></td><td> </td><td> </td><td>intVal</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal_l</code></code></td><td> </td><td> </td><td>intVal</td><td>_</td><td>l</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td> </td><td> </td><td>=</td><td rowspan="4">These expressions assign the number 15 to the logic value of the handle's <code class="constant">vpiIntVal</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiIntVal_l</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>vpiIntVal</td><td>_</td><td>l</td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code> = <code class="literal">15</code></code></td><td> </td><td> </td><td>intVal</td><td> </td><td> </td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">intVal</code>_l = <code class="literal">15</code></code></td><td> </td><td> </td><td>intVal</td><td>_</td><td>l</td><td>=</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiType</code></code></td><td> </td><td> </td><td>vpiType</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the integer value of the handle's <code class="constant">vpiType</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiType_i</code></code></td><td> </td><td> </td><td>vpiType</td><td>_</td><td>i</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">type</code></code></td><td> </td><td> </td><td>type</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">type_i</code></code></td><td> </td><td> </td><td>type</td><td>_</td><td>i</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected</code></code></td><td> </td><td> </td><td>vpiProtected</td><td> </td><td> </td><td> </td><td rowspan="6">These expressions access the boolean value of the handle's <code class="constant">vpiProtected</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected_b</code></code></td><td> </td><td> </td><td>vpiProtected</td><td>_</td><td>b</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiProtected?</code></code></td><td> </td><td> </td><td>vpiProtected</td><td> </td><td> </td><td>?</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected</code></code></td><td> </td><td> </td><td>protected</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected_b</code></code></td><td> </td><td> </td><td>protected</td><td>_</td><td>b</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">protected?</code></code></td><td> </td><td> </td><td>protected</td><td> </td><td> </td><td>?</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiFullName</code></code></td><td> </td><td> </td><td>vpiFullName</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the string value of the handle's <code class="constant">vpiFullName</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiFullName_s</code></code></td><td> </td><td> </td><td>vpiFullName</td><td>_</td><td>s</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">fullName</code></code></td><td> </td><td> </td><td>fullName</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">fullName_s</code></code></td><td> </td><td> </td><td>fullName</td><td>_</td><td>s</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiParent</code></code></td><td> </td><td> </td><td>vpiParent</td><td> </td><td> </td><td> </td><td rowspan="4">These expressions access the handle value of the handle's <code class="constant">vpiParent</code> property.</td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">vpiParent_h</code></code></td><td> </td><td> </td><td>vpiParent</td><td>_</td><td>h</td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">parent</code></code></td><td> </td><td> </td><td>parent</td><td> </td><td> </td><td> </td></tr><tr><td><code class="code"><code class="varname">handle</code>.<code class="function">parent_h</code></code></td><td> </td><td> </td><td>parent</td><td>_</td><td>h</td><td> </td></tr></tbody></table></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="background.terminology.html"><img src="images/prev.png" alt="Prev" /></a> </td><td width="20%" align="center"><a accesskey="u" href="background.html"><img src="images/up.png" alt="Up" /></a></td><td width="40%" align="right"> <a accesskey="n" href="background.running-tests.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top">Terminology </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home" /></a></td><td width="40%" align="right" valign="top"> Running a test</td></tr></table></div></body></html>
data/doc/xhtml/index.html CHANGED
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ruby-VPI user manual</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><meta name="description" content="This manual explains how to use Ruby-VPI. You can find the newest version of this manual at the Ruby-VPI website." /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="next" href="introduction.html" title="Chapter 1. Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="application">Ruby-VPI</span> user manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="introduction.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="book" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="id2467908"></a><span class="application">Ruby-VPI</span> user manual</h1></div><div><p class="copyright">Copyright © 2006 Suraj N. Kurapati</p></div><div><p class="copyright">Copyright © 2005, 2006 <a href="http://tango.freedesktop.org" target="_top">Tango Desktop Project</a> <em><span class="remark">for admonition and navigation graphics released under <a href="images/COPYING" target="_top">this license</a>.</span></em></p></div><div><p class="copyright">Copyright © 1999, 2000, 2001 Norman Walsh <em><span class="remark">for DocBook graphics released under <a href="images/copyright" target="_top">this license</a>.</span></em></p></div><div><div class="legalnotice"><a id="id2511309"></a><p>Permission is granted to copy, distribute and/or modify this document under the terms of the <span class="acronym">GNU</span> Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "<span class="acronym">GNU</span> Free Documentation License".</p></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>This manual explains how to use <span class="application">Ruby-VPI</span>. You can find the newest version of this manual at the <a href="http://ruby-vpi.rubyforge.org" target="_top"><span class="application">Ruby-VPI</span> website</a>.</p></div></div></div><hr /></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.license.html">License</a></span></dt><dt><span class="section"><a href="introduction.manifest.html">Manifest</a></span></dt><dt><span class="section"><a href="introduction.resources.html">Resources</a></span></dt><dt><span class="section"><a href="introduction.related-works.html">Related works</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.related-works.html#introduction.related-works.pli">Ye olde PLI</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="background.html">2. Background</a></span></dt><dd><dl><dt><span class="section"><a href="background.methodology.html">Methodology</a></span></dt><dt><span class="section"><a href="background.terminology.html">Terminology</a></span></dt><dt><span class="section"><a href="background.organization.html">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="background.organization.html#organization.vpi">Interface to <span class="acronym">VPI</span></a></span></dt></dl></dd><dt><span class="section"><a href="background.running-tests.html">Running a test</a></span></dt><dd><dl><dt><span class="section"><a href="background.running-tests.html#background.running-tests.init">Initialization</a></span></dt><dt><span class="section"><a href="background.running-tests.html#background.running-tests.exec">Execution</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="usage.html">3. Usage</a></span></dt><dd><dl><dt><span class="section"><a href="usage.requirements.html">Requirements</a></span></dt><dt><span class="section"><a href="usage.installation.html">Installation and maintenance</a></span></dt><dt><span class="section"><a href="usage.tools.html">Tools</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tools.html#usage.tools.generate-test">Automated test generation</a></span></dt><dt><span class="section"><a href="usage.tools.html#usage.tools.verilog-ruby-conv">Verilog to Ruby conversion</a></span></dt></dl></dd><dt><span class="section"><a href="usage.examples.html">Examples</a></span></dt><dt><span class="section"><a href="usage.tutorial.html">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.declare-design">Start with a design</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.generate-test">Generate a test</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.specification">Specify your expectations</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.implement-proto">Implement the prototype</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.test-proto">Verify the prototype</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.implement-design">Implement the design</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.test-design">Verify the design</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="problems.html">4. Known problems</a></span></dt><dd><dl><dt><span class="section"><a href="problems.ruby.html">Ruby</a></span></dt><dd><dl><dt><span class="section"><a href="problems.ruby.html#problems.ruby.SystemStackError">SystemStackError</a></span></dt><dt><span class="section"><a href="problems.ruby.html#problems.ruby.TestUnit">test/unit</a></span></dt></dl></dd><dt><span class="section"><a href="problem.ivl.html">Icarus Verilog</a></span></dt><dd><dl><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_handle_by_name">vpi_handle_by_name</a></span></dt><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_reset">Vpi::reset</a></span></dt></dl></dd><dt><span class="section"><a href="problems.vsim.html">Mentor Modelsim</a></span></dt><dd><dl><dt><span class="section"><a href="problems.vsim.html#problems.vsim.ruby_run">ruby_run()</a></span></dt></dl></dd></dl></dd><dt><span class="glossary"><a href="glossary.html">Glossary</a></span></dt><dt><span class="appendix"><a href="gfdl.html">A. GNU Free Documentation License</a></span></dt><dd><dl><dt><span class="section"><a href="gfdl-0.html">PREAMBLE</a></span></dt><dt><span class="section"><a href="gfdl-1.html">APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="section"><a href="gfdl-2.html">VERBATIM COPYING</a></span></dt><dt><span class="section"><a href="gfdl-3.html">COPYING IN QUANTITY</a></span></dt><dt><span class="section"><a href="gfdl-4.html">MODIFICATIONS</a></span></dt><dt><span class="section"><a href="gfdl-5.html">COMBINING DOCUMENTS</a></span></dt><dt><span class="section"><a href="gfdl-6.html">COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span class="section"><a href="gfdl-7.html">AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="section"><a href="gfdl-8.html">TRANSLATION</a></span></dt><dt><span class="section"><a href="gfdl-9.html">TERMINATION</a></span></dt><dt><span class="section"><a href="gfdl-10.html">FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="section"><a href="gfdl-addendum.html">ADDENDUM: How to use this License for
4
- your documents</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>2.1. <a href="background.organization.html#fig..organization">Overall organization of a test</a></dt><dt>2.2. <a href="background.organization.html#fig..organization.detail">Detailed organization of a test</a></dt><dt>2.3. <a href="background.running-tests.html#fig..ruby_init">Initialization of a test</a></dt><dt>2.4. <a href="background.running-tests.html#fig..ruby_relay">Execution of a test</a></dt><dt>3.1. <a href="usage.tutorial.html#fig..counter.v_decl">Declaration of a simple up-counter with synchronous reset</a></dt><dt>3.2. <a href="usage.tutorial.html#fig..generate-test.rspec">Generating a test with specification in RSpec format</a></dt><dt>3.3. <a href="usage.tutorial.html#fig..generate-test.unit-test">Generating a test with specification in unit test format</a></dt><dt>3.4. <a href="usage.tutorial.html#fig..counter_rspecTest_spec.rb">Specification implemented in RSpec format</a></dt><dt>3.5. <a href="usage.tutorial.html#fig..counter_unitTest_spec.rb">Specification implemented in unit test format</a></dt><dt>3.6. <a href="usage.tutorial.html#fig..counter_proto.rb">Ruby prototype of our Verilog design</a></dt><dt>3.7. <a href="usage.tutorial.html#fig..test-proto.rspec">Running a test with specification in RSpec format</a></dt><dt>3.8. <a href="usage.tutorial.html#fig..test-proto.unit-test">Running a test with specification in unit test format</a></dt><dt>3.9. <a href="usage.tutorial.html#fig..counter.v_impl">Implementation of a simple up-counter with synchronous reset</a></dt><dt>3.10. <a href="usage.tutorial.html#fig..test-design.rspec">Running a test with specification in RSpec format</a></dt><dt>3.11. <a href="usage.tutorial.html#fig..test-design.unit-test">Running a test with specification in unit test format</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="background.organization.html#table..handle-property-accessor-naming-format">Naming format for accessing a handle's <span class="acronym">VPI</span> properties</a></dt><dt>2.2. <a href="background.organization.html#id2483001">Possible accessors and their implications</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="background.organization.html#ex..handle-property-accessor-naming-format">Accessing a handle's <span class="acronym">VPI</span> properties</a></dt><dt>4.1. <a href="problem.ivl.html#ex..TestFoo">Part of a bench which instantiates a Verilog design</a></dt><dt>4.2. <a href="problem.ivl.html#ex..TestFoo_bad">Bad design with unconnected registers</a></dt><dt>4.3. <a href="problem.ivl.html#ex..TestFoo_fix">Fixed design with wired registers</a></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="introduction.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html>
3
+ <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Ruby-VPI user manual</title><link rel="stylesheet" href="styles/manual.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.68.1" /><meta name="description" content="This manual explains how to use Ruby-VPI. You can find the newest version of this manual at the Ruby-VPI website." /><link rel="start" href="index.html" title="Ruby-VPI user manual" /><link rel="next" href="introduction.html" title="Chapter 1. Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="application">Ruby-VPI</span> user manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="introduction.html"><img src="images/next.png" alt="Next" /></a></td></tr></table><hr /></div><div class="book" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="id2467214"></a><span class="application">Ruby-VPI</span> user manual</h1></div><div><p class="copyright">Copyright © 2006 Suraj N. Kurapati</p></div><div><p class="copyright">Copyright © 2005, 2006 <a href="http://tango.freedesktop.org" target="_top">Tango Desktop Project</a> <em><span class="remark">for admonition and navigation graphics released under <a href="images/COPYING" target="_top">this license</a>.</span></em></p></div><div><p class="copyright">Copyright © 1999, 2000, 2001 Norman Walsh <em><span class="remark">for DocBook graphics released under <a href="images/copyright" target="_top">this license</a>.</span></em></p></div><div><div class="legalnotice"><a id="id2511298"></a><p>Permission is granted to copy, distribute and/or modify this document under the terms of the <span class="acronym">GNU</span> Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "<span class="acronym">GNU</span> Free Documentation License".</p></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>This manual explains how to use <span class="application">Ruby-VPI</span>. You can find the newest version of this manual at the <a href="http://ruby-vpi.rubyforge.org" target="_top"><span class="application">Ruby-VPI</span> website</a>.</p></div></div></div><hr /></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="introduction.html">1. Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.license.html">License</a></span></dt><dt><span class="section"><a href="introduction.manifest.html">Manifest</a></span></dt><dt><span class="section"><a href="introduction.resources.html">Resources</a></span></dt><dt><span class="section"><a href="introduction.related-works.html">Related works</a></span></dt><dd><dl><dt><span class="section"><a href="introduction.related-works.html#introduction.related-works.pli">Ye olde PLI</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="background.html">2. Background</a></span></dt><dd><dl><dt><span class="section"><a href="background.methodology.html">Methodology</a></span></dt><dt><span class="section"><a href="background.terminology.html">Terminology</a></span></dt><dt><span class="section"><a href="background.organization.html">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="background.organization.html#organization.vpi">Interface to <span class="acronym">VPI</span></a></span></dt></dl></dd><dt><span class="section"><a href="background.running-tests.html">Running a test</a></span></dt><dd><dl><dt><span class="section"><a href="background.running-tests.html#background.running-tests.init">Initialization</a></span></dt><dt><span class="section"><a href="background.running-tests.html#background.running-tests.exec">Execution</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="usage.html">3. Usage</a></span></dt><dd><dl><dt><span class="section"><a href="usage.requirements.html">Requirements</a></span></dt><dt><span class="section"><a href="usage.installation.html">Installation and maintenance</a></span></dt><dt><span class="section"><a href="usage.tools.html">Tools</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tools.html#usage.tools.generate-test">Automated test generation</a></span></dt><dt><span class="section"><a href="usage.tools.html#usage.tools.verilog-ruby-conv">Verilog to Ruby conversion</a></span></dt></dl></dd><dt><span class="section"><a href="usage.examples.html">Examples</a></span></dt><dt><span class="section"><a href="usage.tutorial.html">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.declare-design">Start with a design</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.generate-test">Generate a test</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.specification">Specify your expectations</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.implement-proto">Implement the prototype</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.test-proto">Verify the prototype</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.implement-design">Implement the design</a></span></dt><dt><span class="section"><a href="usage.tutorial.html#usage.tutorial.test-design">Verify the design</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="problems.html">4. Known problems</a></span></dt><dd><dl><dt><span class="section"><a href="problems.ruby.html">Ruby</a></span></dt><dd><dl><dt><span class="section"><a href="problems.ruby.html#problems.ruby.SystemStackError">SystemStackError</a></span></dt><dt><span class="section"><a href="problems.ruby.html#problems.ruby.TestUnit">test/unit</a></span></dt></dl></dd><dt><span class="section"><a href="problem.ivl.html">Icarus Verilog</a></span></dt><dd><dl><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_handle_by_name">vpi_handle_by_name</a></span></dt><dt><span class="section"><a href="problem.ivl.html#problems.ivl.vpi_reset">Vpi::reset</a></span></dt></dl></dd><dt><span class="section"><a href="problems.vsim.html">Mentor Modelsim</a></span></dt><dd><dl><dt><span class="section"><a href="problems.vsim.html#problems.vsim.ruby_run">ruby_run()</a></span></dt></dl></dd></dl></dd><dt><span class="glossary"><a href="glossary.html">Glossary</a></span></dt><dt><span class="appendix"><a href="gfdl.html">A. GNU Free Documentation License</a></span></dt><dd><dl><dt><span class="section"><a href="gfdl-0.html">PREAMBLE</a></span></dt><dt><span class="section"><a href="gfdl-1.html">APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="section"><a href="gfdl-2.html">VERBATIM COPYING</a></span></dt><dt><span class="section"><a href="gfdl-3.html">COPYING IN QUANTITY</a></span></dt><dt><span class="section"><a href="gfdl-4.html">MODIFICATIONS</a></span></dt><dt><span class="section"><a href="gfdl-5.html">COMBINING DOCUMENTS</a></span></dt><dt><span class="section"><a href="gfdl-6.html">COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span class="section"><a href="gfdl-7.html">AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="section"><a href="gfdl-8.html">TRANSLATION</a></span></dt><dt><span class="section"><a href="gfdl-9.html">TERMINATION</a></span></dt><dt><span class="section"><a href="gfdl-10.html">FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="section"><a href="gfdl-addendum.html">ADDENDUM: How to use this License for
4
+ your documents</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>2.1. <a href="background.organization.html#fig..organization">Overall organization of a test</a></dt><dt>2.2. <a href="background.organization.html#fig..organization.detail">Detailed organization of a test</a></dt><dt>2.3. <a href="background.running-tests.html#fig..ruby_init">Initialization of a test</a></dt><dt>2.4. <a href="background.running-tests.html#fig..ruby_relay">Execution of a test</a></dt><dt>3.1. <a href="usage.tutorial.html#fig..counter.v_decl">Declaration of a simple up-counter with synchronous reset</a></dt><dt>3.2. <a href="usage.tutorial.html#fig..generate-test.rspec">Generating a test with specification in RSpec format</a></dt><dt>3.3. <a href="usage.tutorial.html#fig..generate-test.unit-test">Generating a test with specification in unit test format</a></dt><dt>3.4. <a href="usage.tutorial.html#fig..counter_rspecTest_spec.rb">Specification implemented in RSpec format</a></dt><dt>3.5. <a href="usage.tutorial.html#fig..counter_unitTest_spec.rb">Specification implemented in unit test format</a></dt><dt>3.6. <a href="usage.tutorial.html#fig..counter_proto.rb">Ruby prototype of our Verilog design</a></dt><dt>3.7. <a href="usage.tutorial.html#fig..test-proto.rspec">Running a test with specification in RSpec format</a></dt><dt>3.8. <a href="usage.tutorial.html#fig..test-proto.unit-test">Running a test with specification in unit test format</a></dt><dt>3.9. <a href="usage.tutorial.html#fig..counter.v_impl">Implementation of a simple up-counter with synchronous reset</a></dt><dt>3.10. <a href="usage.tutorial.html#fig..test-design.rspec">Running a test with specification in RSpec format</a></dt><dt>3.11. <a href="usage.tutorial.html#fig..test-design.unit-test">Running a test with specification in unit test format</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="background.organization.html#table..handle-property-accessor-naming-format">Naming format for accessing a handle's <span class="acronym">VPI</span> properties</a></dt><dt>2.2. <a href="background.organization.html#id2482973">Possible accessors and their implications</a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="background.organization.html#ex..handle-property-accessor-naming-format">Accessing a handle's <span class="acronym">VPI</span> properties</a></dt><dt>4.1. <a href="problem.ivl.html#ex..TestFoo">Part of a bench which instantiates a Verilog design</a></dt><dt>4.2. <a href="problem.ivl.html#ex..TestFoo_bad">Bad design with unconnected registers</a></dt><dt>4.3. <a href="problem.ivl.html#ex..TestFoo_fix">Fixed design with wired registers</a></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="introduction.html"><img src="images/next.png" alt="Next" /></a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. Introduction</td></tr></table></div></body></html>