ruby-vpi 11.1.1 → 12.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. data/bin/generate_test.rb +12 -11
  2. data/bin/generate_test_tpl/bench.rb +0 -4
  3. data/bin/generate_test_tpl/bench.v +3 -6
  4. data/bin/generate_test_tpl/runner.rake +20 -4
  5. data/bin/generate_test_tpl/spec.rb +5 -7
  6. data/doc/common.css +110 -95
  7. data/doc/common.tpl +16 -17
  8. data/doc/history.html +350 -330
  9. data/doc/history.yml +49 -0
  10. data/doc/intro.inc +18 -4
  11. data/doc/lib/doc_proxy.rb +22 -32
  12. data/doc/manual.erb +90 -83
  13. data/doc/manual.html +298 -266
  14. data/doc/memo.html +31 -10
  15. data/doc/readme.html +26 -6
  16. data/ext/relay.c +24 -28
  17. data/ext/vlog.c +4 -15
  18. data/lib/ruby-vpi/rspec.rb +1 -1
  19. data/lib/ruby-vpi/runner.rb +12 -10
  20. data/lib/ruby-vpi/runner_proxy.rb +17 -6
  21. data/lib/ruby-vpi/verilog_parser.rb +11 -7
  22. data/lib/ruby-vpi/vpi.rb +11 -1
  23. data/lib/ruby-vpi.rb +4 -0
  24. data/ref/c/annotated.html +2 -2
  25. data/ref/c/common_8h.html +1 -1
  26. data/ref/c/files.html +1 -1
  27. data/ref/c/functions.html +1 -1
  28. data/ref/c/functions_vars.html +1 -1
  29. data/ref/c/globals.html +1 -1
  30. data/ref/c/globals_0x63.html +1 -1
  31. data/ref/c/globals_0x65.html +1 -1
  32. data/ref/c/globals_0x66.html +1 -1
  33. data/ref/c/globals_0x70.html +1 -1
  34. data/ref/c/globals_0x72.html +1 -1
  35. data/ref/c/globals_0x73.html +1 -1
  36. data/ref/c/globals_0x74.html +1 -1
  37. data/ref/c/globals_0x76.html +2 -2
  38. data/ref/c/globals_0x78.html +1 -1
  39. data/ref/c/globals_defs.html +1 -1
  40. data/ref/c/globals_defs_0x65.html +1 -1
  41. data/ref/c/globals_defs_0x70.html +1 -1
  42. data/ref/c/globals_defs_0x76.html +2 -2
  43. data/ref/c/globals_defs_0x78.html +1 -1
  44. data/ref/c/globals_enum.html +1 -1
  45. data/ref/c/globals_eval.html +1 -1
  46. data/ref/c/globals_func.html +2 -2
  47. data/ref/c/globals_type.html +1 -1
  48. data/ref/c/globals_vars.html +1 -1
  49. data/ref/c/index.html +1 -1
  50. data/ref/c/relay_8c.html +2 -1
  51. data/ref/c/relay_8h.html +1 -1
  52. data/ref/c/structrelay____RubyOptions____def.html +8 -2
  53. data/ref/c/structt__cb__data.html +1 -1
  54. data/ref/c/structt__vpi__delay.html +1 -1
  55. data/ref/c/structt__vpi__error__info.html +1 -1
  56. data/ref/c/structt__vpi__strengthval.html +1 -1
  57. data/ref/c/structt__vpi__systf__data.html +1 -1
  58. data/ref/c/structt__vpi__time.html +1 -1
  59. data/ref/c/structt__vpi__value.html +1 -1
  60. data/ref/c/structt__vpi__vecval.html +1 -1
  61. data/ref/c/structt__vpi__vlog__info.html +1 -1
  62. data/ref/c/swig_8c.html +1 -1
  63. data/ref/c/swig_8h.html +1 -1
  64. data/ref/c/verilog_8h.html +1 -1
  65. data/ref/c/vlog_8c.html +15 -15
  66. data/ref/c/vlog_8h.html +1 -1
  67. data/ref/c/vpi__user_8h.html +1 -1
  68. data/ref/ruby/classes/OutputInfo.html +1 -1
  69. data/ref/ruby/classes/OutputInfo.src/M000030.html +30 -30
  70. data/ref/ruby/classes/RDoc.html +5 -5
  71. data/ref/ruby/classes/RDoc.src/{M000097.html → M000099.html} +0 -0
  72. data/ref/ruby/classes/RubyVpi.src/M000085.html +43 -39
  73. data/ref/ruby/classes/String.src/M000033.html +26 -26
  74. data/ref/ruby/classes/String.src/M000034.html +4 -4
  75. data/ref/ruby/classes/Template.src/M000032.html +4 -4
  76. data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000011.html +5 -5
  77. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +7 -7
  78. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +4 -4
  79. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +4 -4
  80. data/ref/ruby/classes/VerilogParser/Module/Port.src/M000010.html +4 -4
  81. data/ref/ruby/classes/VerilogParser/Module.src/M000006.html +15 -11
  82. data/ref/ruby/classes/Vpi/Handle/Property.html +5 -5
  83. data/ref/ruby/classes/Vpi/Handle/Property.src/{M000096.html → M000098.html} +61 -61
  84. data/ref/ruby/classes/Vpi/Handle.html +78 -43
  85. data/ref/ruby/classes/Vpi/Handle.src/M000088.html +3 -3
  86. data/ref/ruby/classes/Vpi/Handle.src/M000089.html +4 -8
  87. data/ref/ruby/classes/Vpi/Handle.src/M000090.html +5 -31
  88. data/ref/ruby/classes/Vpi/Handle.src/M000091.html +9 -74
  89. data/ref/ruby/classes/Vpi/Handle.src/M000092.html +31 -17
  90. data/ref/ruby/classes/Vpi/Handle.src/M000093.html +74 -11
  91. data/ref/ruby/classes/Vpi/Handle.src/M000094.html +30 -0
  92. data/ref/ruby/classes/Vpi/Handle.src/M000095.html +11 -55
  93. data/ref/ruby/classes/Vpi/Handle.src/M000097.html +68 -0
  94. data/ref/ruby/created.rid +1 -1
  95. data/ref/ruby/files/bin/generate_test_rb.html +8 -11
  96. data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +4 -4
  97. data/ref/ruby/files/bin/generate_test_rb.src/M000002.html +22 -24
  98. data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
  99. data/ref/ruby/files/lib/ruby-vpi/float_rb.html +1 -1
  100. data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
  101. data/ref/ruby/files/lib/ruby-vpi/rspec_rb.html +1 -1
  102. data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
  103. data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +2 -2
  104. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +10 -10
  105. data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000004.html +12 -12
  106. data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
  107. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
  108. data/ref/ruby/files/lib/ruby-vpi_rb.html +2 -1
  109. data/ref/ruby/fr_method_index.html +20 -18
  110. data/samp/counter/counter_rspec_bench.v +3 -6
  111. data/samp/counter/counter_rspec_design.rb +2 -1
  112. data/samp/counter/counter_rspec_runner.rake +20 -4
  113. data/samp/counter/counter_rspec_spec.rb +4 -4
  114. data/samp/counter/counter_xunit_bench.v +3 -6
  115. data/samp/counter/counter_xunit_design.rb +2 -1
  116. data/samp/counter/counter_xunit_runner.rake +20 -4
  117. data/samp/pipelined_alu/hw5_unit_test_bench.v +3 -6
  118. data/samp/pipelined_alu/hw5_unit_test_runner.rake +20 -4
  119. metadata +21 -20
  120. data/doc/manual.rb +0 -5
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>[] (Vpi::Handle)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 187</span>
14
+ 187: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span> <span class="ruby-operator">*</span><span class="ruby-identifier">aTypes</span>
15
+ 188: <span class="ruby-identifier">handles</span> = []
16
+ 189:
17
+ 190: <span class="ruby-identifier">aTypes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
18
+ 191: <span class="ruby-identifier">t</span> = <span class="ruby-identifier">resolve_prop_type</span>(<span class="ruby-identifier">t</span>)
19
+ 192:
20
+ 193: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">itr</span> = <span class="ruby-identifier">vpi_iterate</span>(<span class="ruby-identifier">t</span>, <span class="ruby-keyword kw">self</span>)
21
+ 194: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">h</span> = <span class="ruby-identifier">vpi_scan</span>(<span class="ruby-identifier">itr</span>)
22
+ 195: <span class="ruby-identifier">handles</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">h</span>
23
+ 196: <span class="ruby-keyword kw">end</span>
24
+ 197: <span class="ruby-keyword kw">end</span>
25
+ 198: <span class="ruby-keyword kw">end</span>
26
+ 199:
27
+ 200: <span class="ruby-identifier">handles</span>
28
+ 201: <span class="ruby-keyword kw">end</span></pre>
29
+ </body>
30
+ </html>
@@ -5,64 +5,20 @@
5
5
 
6
6
  <html>
7
7
  <head>
8
- <title>method_missing (Vpi::Handle)</title>
8
+ <title>inspect (Vpi::Handle)</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 213</span>
14
- 213: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span> <span class="ruby-identifier">aMeth</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlockArg</span>
15
- 214: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">child</span> = <span class="ruby-identifier">vpi_handle_by_name</span>(<span class="ruby-identifier">aMeth</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-keyword kw">self</span>)
16
- 215: <span class="ruby-comment cmt"># cache the child for future accesses, in order to cut down number of calls to method_missing</span>
17
- 216: (<span class="ruby-keyword kw">class</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">end</span>).<span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
18
- 217: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">aMeth</span> <span class="ruby-keyword kw">do</span>
19
- 218: <span class="ruby-identifier">child</span>
20
- 219: <span class="ruby-keyword kw">end</span>
21
- 220: <span class="ruby-keyword kw">end</span>
22
- 221:
23
- 222: <span class="ruby-identifier">child</span>
24
- 223:
25
- 224: <span class="ruby-keyword kw">else</span>
26
- 225: <span class="ruby-identifier">prop</span> = <span class="ruby-ivar">@@propCache</span>[<span class="ruby-identifier">aMeth</span>]
27
- 226:
28
- 227: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">operation</span>
29
- 228: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">operation</span>, <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlockArg</span>)
30
- 229:
31
- 230: <span class="ruby-keyword kw">else</span>
32
- 231: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">accessor</span>
33
- 232: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:d</span> <span class="ruby-comment cmt"># delay values</span>
34
- 233: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>, <span class="ruby-value str">'processing of delay values is not yet implemented.'</span>
35
- 234: <span class="ruby-comment cmt"># TODO: vpi_put_delays</span>
36
- 235: <span class="ruby-comment cmt"># TODO: vpi_get_delays</span>
37
- 236:
38
- 237: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:l</span> <span class="ruby-comment cmt"># logic values</span>
39
- 238: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
40
- 239: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">aArgs</span>.<span class="ruby-identifier">shift</span>
41
- 240: <span class="ruby-identifier">put_value</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>)
42
- 241: <span class="ruby-keyword kw">else</span>
43
- 242: <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>)
44
- 243: <span class="ruby-keyword kw">end</span>
45
- 244:
46
- 245: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:i</span> <span class="ruby-comment cmt"># integer values</span>
47
- 246: <span class="ruby-identifier">vpi_get</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
48
- 247:
49
- 248: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:b</span> <span class="ruby-comment cmt"># boolean values</span>
50
- 249: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
51
- 250: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">vpi_get</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>)
52
- 251: <span class="ruby-identifier">value</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">value</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>) <span class="ruby-comment cmt"># zero is false in C</span>
53
- 252: <span class="ruby-keyword kw">end</span>
54
- 253:
55
- 254: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:s</span> <span class="ruby-comment cmt"># string values</span>
56
- 255: <span class="ruby-identifier">vpi_get_str</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
57
- 256:
58
- 257: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:h</span> <span class="ruby-comment cmt"># handle values</span>
59
- 258: <span class="ruby-identifier">vpi_handle</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
60
- 259:
61
- 260: <span class="ruby-keyword kw">else</span>
62
- 261: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NoMethodError</span>, <span class="ruby-node">&quot;unable to access VPI property #{prop.name.inspect} through method #{aMeth.inspect} with arguments #{aArgs.inspect} for handle #{self}&quot;</span>
63
- 262: <span class="ruby-keyword kw">end</span>
64
- 263: <span class="ruby-keyword kw">end</span>
65
- 264: <span class="ruby-keyword kw">end</span>
66
- 265: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 204</span>
14
+ 204: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inspect</span> <span class="ruby-operator">*</span><span class="ruby-identifier">aPropNames</span>
15
+ 205: <span class="ruby-identifier">aPropNames</span>.<span class="ruby-identifier">unshift</span> <span class="ruby-identifier">:fullName</span>, <span class="ruby-identifier">:size</span>, <span class="ruby-identifier">:file</span>, <span class="ruby-identifier">:lineNo</span>
16
+ 206:
17
+ 207: <span class="ruby-identifier">aPropNames</span>.<span class="ruby-identifier">map!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
18
+ 208: <span class="ruby-node">&quot;#{name}=#{self.send(name.to_sym)}&quot;</span>
19
+ 209: <span class="ruby-keyword kw">end</span>
20
+ 210:
21
+ 211: <span class="ruby-node">&quot;#&lt;Vpi::Handle #{vpiType_s} #{aPropNames.join(', ')}&gt;&quot;</span>
22
+ 212: <span class="ruby-keyword kw">end</span></pre>
67
23
  </body>
68
24
  </html>
@@ -0,0 +1,68 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>method_missing (Vpi::Handle)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/vpi.rb, line 223</span>
14
+ 223: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span> <span class="ruby-identifier">aMeth</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlockArg</span>
15
+ 224: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">child</span> = <span class="ruby-identifier">vpi_handle_by_name</span>(<span class="ruby-identifier">aMeth</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-keyword kw">self</span>)
16
+ 225: <span class="ruby-comment cmt"># cache the child for future accesses, in order to cut down number of calls to method_missing</span>
17
+ 226: (<span class="ruby-keyword kw">class</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">self</span>; <span class="ruby-keyword kw">end</span>).<span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
18
+ 227: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">aMeth</span> <span class="ruby-keyword kw">do</span>
19
+ 228: <span class="ruby-identifier">child</span>
20
+ 229: <span class="ruby-keyword kw">end</span>
21
+ 230: <span class="ruby-keyword kw">end</span>
22
+ 231:
23
+ 232: <span class="ruby-identifier">child</span>
24
+ 233:
25
+ 234: <span class="ruby-keyword kw">else</span>
26
+ 235: <span class="ruby-identifier">prop</span> = <span class="ruby-ivar">@@propCache</span>[<span class="ruby-identifier">aMeth</span>]
27
+ 236:
28
+ 237: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">operation</span>
29
+ 238: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">operation</span>, <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">aBlockArg</span>)
30
+ 239:
31
+ 240: <span class="ruby-keyword kw">else</span>
32
+ 241: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">accessor</span>
33
+ 242: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:d</span> <span class="ruby-comment cmt"># delay values</span>
34
+ 243: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>, <span class="ruby-value str">'processing of delay values is not yet implemented.'</span>
35
+ 244: <span class="ruby-comment cmt"># TODO: vpi_put_delays</span>
36
+ 245: <span class="ruby-comment cmt"># TODO: vpi_get_delays</span>
37
+ 246:
38
+ 247: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:l</span> <span class="ruby-comment cmt"># logic values</span>
39
+ 248: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
40
+ 249: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">aArgs</span>.<span class="ruby-identifier">shift</span>
41
+ 250: <span class="ruby-identifier">put_value</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">aArgs</span>)
42
+ 251: <span class="ruby-keyword kw">else</span>
43
+ 252: <span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>)
44
+ 253: <span class="ruby-keyword kw">end</span>
45
+ 254:
46
+ 255: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:i</span> <span class="ruby-comment cmt"># integer values</span>
47
+ 256: <span class="ruby-identifier">vpi_get</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
48
+ 257:
49
+ 258: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:b</span> <span class="ruby-comment cmt"># boolean values</span>
50
+ 259: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
51
+ 260: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">vpi_get</span>(<span class="ruby-identifier">prop</span>, <span class="ruby-keyword kw">self</span>)
52
+ 261: <span class="ruby-identifier">value</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">value</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>) <span class="ruby-comment cmt"># zero is false in C</span>
53
+ 262: <span class="ruby-keyword kw">end</span>
54
+ 263:
55
+ 264: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:s</span> <span class="ruby-comment cmt"># string values</span>
56
+ 265: <span class="ruby-identifier">vpi_get_str</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
57
+ 266:
58
+ 267: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:h</span> <span class="ruby-comment cmt"># handle values</span>
59
+ 268: <span class="ruby-identifier">vpi_handle</span>(<span class="ruby-identifier">prop</span>.<span class="ruby-identifier">type</span>, <span class="ruby-keyword kw">self</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">assignment</span>
60
+ 269:
61
+ 270: <span class="ruby-keyword kw">else</span>
62
+ 271: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NoMethodError</span>, <span class="ruby-node">&quot;unable to access VPI property #{prop.name.inspect} through method #{aMeth.inspect} with arguments #{aArgs.inspect} for handle #{self}&quot;</span>
63
+ 272: <span class="ruby-keyword kw">end</span>
64
+ 273: <span class="ruby-keyword kw">end</span>
65
+ 274: <span class="ruby-keyword kw">end</span>
66
+ 275: <span class="ruby-keyword kw">end</span></pre>
67
+ </body>
68
+ </html>
data/ref/ruby/created.rid CHANGED
@@ -1 +1 @@
1
- Wed Nov 15 19:34:18 PST 2006
1
+ Thu Dec 07 15:09:45 PST 2006
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 08 16:49:08 PST 2006</td>
59
+ <td>Thu Dec 07 13:56:40 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -85,9 +85,6 @@ clocking signal.
85
85
  <table>
86
86
  <tr><td valign="top">module:</td><td>A Verilog module has been identified.
87
87
 
88
- </td></tr>
89
- <tr><td valign="top">backup:</td><td>A backup copy of a file is being made.
90
-
91
88
  </td></tr>
92
89
  <tr><td valign="top">create:</td><td>A file is being created because it does not exist.
93
90
 
@@ -95,18 +92,18 @@ clocking signal.
95
92
  <tr><td valign="top">skip:</td><td>A file is being skipped because it is already up to date.
96
93
 
97
94
  </td></tr>
98
- <tr><td valign="top">update:</td><td>A file will be updated because it is out of date. A backup copy will be
99
- made before the file is updated. Use a text merging tool (see MERGER) or
100
- manually transfer any necessary information from the backup copy to the
101
- updated file.
95
+ <tr><td valign="top">update:</td><td>A file will be updated because it is out of date. A text merging tool (see
96
+ MERGER) will be launched to transfer content from the old file (*.old) and
97
+ the new file (*.new) to the out of date file. If a text merging tool is not
98
+ specified, then you will have to do the merging by hand.
102
99
 
103
100
  </td></tr>
104
101
  </table>
105
102
  <h1>Environment variables</h1>
106
103
  <table>
107
- <tr><td valign="top">MERGER:</td><td>A command that invokes a text merging tool with two arguments: (1) old
108
- file, (2) new file. The tool&#8217;s output should be written to the new
109
- file.
104
+ <tr><td valign="top">MERGER:</td><td>A command that invokes a text merging tool with three arguments: (1) old
105
+ file, (2) new file, (3) output file. The tool&#8217;s output should be
106
+ written to the output file.
110
107
 
111
108
  </td></tr>
112
109
  </table>
@@ -10,9 +10,9 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File bin/generate_test.rb, line 43</span>
14
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">notify</span> <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
15
- 44: <span class="ruby-identifier">printf</span> <span class="ruby-value str">&quot;%8s %s\n&quot;</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
16
- 45: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File bin/generate_test.rb, line 42</span>
14
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">notify</span> <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
15
+ 43: <span class="ruby-identifier">printf</span> <span class="ruby-value str">&quot;%8s %s\n&quot;</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
16
+ 44: <span class="ruby-keyword kw">end</span></pre>
17
17
  </body>
18
18
  </html>
@@ -10,31 +10,29 @@
10
10
  <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File bin/generate_test.rb, line 48</span>
14
- 48: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write_file</span> <span class="ruby-identifier">aPath</span>, <span class="ruby-identifier">aContent</span>
15
- 49: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">aPath</span>
16
- 50: <span class="ruby-identifier">oldDigest</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">aPath</span>))
17
- 51: <span class="ruby-identifier">newDigest</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-identifier">aContent</span>)
18
- 52:
19
- 53: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">oldDigest</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">newDigest</span>
20
- 54: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:skip</span>, <span class="ruby-identifier">aPath</span>
21
- 55: <span class="ruby-keyword kw">else</span>
22
- 56: <span class="ruby-identifier">old</span>, <span class="ruby-identifier">new</span> = <span class="ruby-node">&quot;#{aPath}.old&quot;</span>, <span class="ruby-identifier">aPath</span>
13
+ <pre> <span class="ruby-comment cmt"># File bin/generate_test.rb, line 47</span>
14
+ 47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write_file</span> <span class="ruby-identifier">aPath</span>, <span class="ruby-identifier">aContent</span>
15
+ 48: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">aPath</span>
16
+ 49: <span class="ruby-identifier">oldDigest</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">aPath</span>))
17
+ 50: <span class="ruby-identifier">newDigest</span> = <span class="ruby-constant">Digest</span><span class="ruby-operator">::</span><span class="ruby-constant">MD5</span>.<span class="ruby-identifier">digest</span>(<span class="ruby-identifier">aContent</span>)
18
+ 51:
19
+ 52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">oldDigest</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">newDigest</span>
20
+ 53: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:skip</span>, <span class="ruby-identifier">aPath</span>
21
+ 54: <span class="ruby-keyword kw">else</span>
22
+ 55: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:update</span>, <span class="ruby-identifier">aPath</span>
23
+ 56: <span class="ruby-identifier">cur</span>, <span class="ruby-identifier">old</span>, <span class="ruby-identifier">new</span> = <span class="ruby-identifier">aPath</span>, <span class="ruby-node">&quot;#{aPath}.old&quot;</span>, <span class="ruby-node">&quot;#{aPath}.new&quot;</span>
23
24
  57:
24
- 58: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:backup</span>, <span class="ruby-identifier">old</span>
25
- 59: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">cp</span> <span class="ruby-identifier">aPath</span>, <span class="ruby-identifier">old</span>, <span class="ruby-identifier">:preserve</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
25
+ 58: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">cp</span> <span class="ruby-identifier">cur</span>, <span class="ruby-identifier">old</span>, <span class="ruby-identifier">:preserve</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>
26
+ 59: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">new</span>, <span class="ruby-value str">'w'</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">aContent</span>}
26
27
  60:
27
- 61: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:update</span>, <span class="ruby-identifier">aPath</span>
28
- 62: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">new</span>, <span class="ruby-value str">'w'</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">aContent</span>}
29
- 63:
30
- 64: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'MERGER'</span>]
31
- 65: <span class="ruby-identifier">system</span> <span class="ruby-node">&quot;#{m} #{old.inspect} #{new.inspect}&quot;</span>
32
- 66: <span class="ruby-keyword kw">end</span>
33
- 67: <span class="ruby-keyword kw">end</span>
34
- 68: <span class="ruby-keyword kw">else</span>
35
- 69: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:create</span>, <span class="ruby-identifier">aPath</span>
36
- 70: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">aPath</span>, <span class="ruby-value str">'w'</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">aContent</span>}
37
- 71: <span class="ruby-keyword kw">end</span>
38
- 72: <span class="ruby-keyword kw">end</span></pre>
28
+ 61: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">m</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'MERGER'</span>]
29
+ 62: <span class="ruby-identifier">system</span> <span class="ruby-node">&quot;#{m} #{old.inspect} #{new.inspect} #{cur.inspect}&quot;</span>
30
+ 63: <span class="ruby-keyword kw">end</span>
31
+ 64: <span class="ruby-keyword kw">end</span>
32
+ 65: <span class="ruby-keyword kw">else</span>
33
+ 66: <span class="ruby-identifier">notify</span> <span class="ruby-identifier">:create</span>, <span class="ruby-identifier">aPath</span>
34
+ 67: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">aPath</span>, <span class="ruby-value str">'w'</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">aContent</span>}
35
+ 68: <span class="ruby-keyword kw">end</span>
36
+ 69: <span class="ruby-keyword kw">end</span></pre>
39
37
  </body>
40
38
  </html>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 08 16:50:31 PST 2006</td>
59
+ <td>Wed Dec 06 17:27:53 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Nov 12 01:18:14 PST 2006</td>
59
+ <td>Wed Dec 06 17:27:53 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Thu Oct 26 11:07:06 PDT 2006</td>
59
+ <td>Mon Dec 04 23:51:28 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 15 19:31:33 PST 2006</td>
59
+ <td>Wed Dec 06 17:27:53 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Thu Oct 26 11:07:06 PDT 2006</td>
59
+ <td>Wed Dec 06 18:12:08 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Sun Nov 12 10:34:21 PST 2006</td>
59
+ <td>Wed Dec 06 17:27:53 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -82,7 +82,7 @@ the following variables.
82
82
  <tr><td valign="top">SIMULATOR_TARGET:</td><td>Name of the Verilog module to be simulated.
83
83
 
84
84
  </td></tr>
85
- <tr><td valign="top">SIMULATOR_ARGS:</td><td>A hash containing keys for each simulator task (same as Rakefile task
85
+ <tr><td valign="top">SIMULATOR_ARGUMENTS:</td><td>A hash containing keys for each simulator task (same as Rakefile task
86
86
  names) and values containing command-line arguments for each simulator.
87
87
 
88
88
  </td></tr>
@@ -10,15 +10,15 @@
10
10
  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/runner.rb, line 64</span>
14
- 64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">object_file_path</span> <span class="ruby-identifier">aSimId</span>
15
- 65: <span class="ruby-identifier">path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">OBJECT_PATH</span>, <span class="ruby-node">&quot;#{PROJECT_ID}.#{aSimId}.so&quot;</span>)
16
- 66:
17
- 67: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">path</span>
18
- 68: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Object file #{path.inspect} is missing. Rebuild #{PROJECT_NAME}.&quot;</span>
19
- 69: <span class="ruby-keyword kw">end</span>
20
- 70:
21
- 71: <span class="ruby-identifier">path</span>
22
- 72: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/runner.rb, line 66</span>
14
+ 66: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">object_file_path</span> <span class="ruby-identifier">aSimId</span>
15
+ 67: <span class="ruby-identifier">path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">OBJECT_PATH</span>, <span class="ruby-node">&quot;#{PROJECT_ID}.#{aSimId}.so&quot;</span>)
16
+ 68:
17
+ 69: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span> <span class="ruby-identifier">path</span>
18
+ 70: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Object file #{path.inspect} is missing. Rebuild #{PROJECT_NAME}.&quot;</span>
19
+ 71: <span class="ruby-keyword kw">end</span>
20
+ 72:
21
+ 73: <span class="ruby-identifier">path</span>
22
+ 74: <span class="ruby-keyword kw">end</span></pre>
23
23
  </body>
24
24
  </html>
@@ -10,17 +10,17 @@
10
10
  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/runner.rb, line 75</span>
14
- 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expand_include_dir_options</span> <span class="ruby-identifier">aSimId</span>, <span class="ruby-identifier">aIncludes</span> = <span class="ruby-constant">SIMULATOR_INCLUDES</span>
15
- 76: <span class="ruby-identifier">prefix</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">aSimId</span>
16
- 77: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ivl</span>
17
- 78: <span class="ruby-value str">'-I'</span>
18
- 79:
19
- 80: <span class="ruby-keyword kw">else</span>
20
- 81: <span class="ruby-value str">'+incdir+'</span>
21
- 82: <span class="ruby-keyword kw">end</span>
22
- 83:
23
- 84: <span class="ruby-identifier">aIncludes</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">i</span>}
24
- 85: <span class="ruby-keyword kw">end</span></pre>
13
+ <pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/runner.rb, line 77</span>
14
+ 77: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expand_include_dir_options</span> <span class="ruby-identifier">aSimId</span>, <span class="ruby-identifier">aIncludes</span> = <span class="ruby-constant">SIMULATOR_INCLUDES</span>
15
+ 78: <span class="ruby-identifier">prefix</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">aSimId</span>
16
+ 79: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:ivl</span>
17
+ 80: <span class="ruby-value str">'-I'</span>
18
+ 81:
19
+ 82: <span class="ruby-keyword kw">else</span>
20
+ 83: <span class="ruby-value str">'+incdir+'</span>
21
+ 84: <span class="ruby-keyword kw">end</span>
22
+ 85:
23
+ 86: <span class="ruby-identifier">aIncludes</span>.<span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">prefix</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">i</span>}
24
+ 87: <span class="ruby-keyword kw">end</span></pre>
25
25
  </body>
26
26
  </html>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 15 18:36:34 PST 2006</td>
59
+ <td>Wed Dec 06 17:27:53 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 08 16:59:52 PST 2006</td>
59
+ <td>Thu Dec 07 10:11:06 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Nov 08 16:55:23 PST 2006</td>
59
+ <td>Thu Dec 07 14:27:30 PST 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -76,6 +76,7 @@
76
76
  ruby-vpi/vpi&nbsp;&nbsp;
77
77
  test/unit&nbsp;&nbsp;
78
78
  ruby-vpi/rspec&nbsp;&nbsp;
79
+ test/spec&nbsp;&nbsp;
79
80
  ruby-vpi/rcov&nbsp;&nbsp;
80
81
  </div>
81
82
  </div>