ruby-vpi 14.0.0 → 15.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. data/bin/generate_test_tpl/proto.rb +8 -6
  2. data/doc/common.css +1 -0
  3. data/doc/history.html +357 -281
  4. data/doc/history.yml +35 -1
  5. data/doc/intro.inc +1 -1
  6. data/doc/manual.doc +38 -29
  7. data/doc/manual.html +109 -63
  8. data/doc/readme.html +6 -6
  9. data/doc/rss.xml +69 -1
  10. data/ext/Rakefile +1 -5
  11. data/ext/extconf.rb +0 -5
  12. data/ext/relay.c +1 -1
  13. data/ext/vlog.c +1 -1
  14. data/lib/ruby-vpi/vpi.rb +50 -4
  15. data/lib/ruby-vpi.rb +7 -7
  16. data/ref/c/annotated.html +6 -1
  17. data/ref/c/common_8h.html +1 -1
  18. data/ref/c/files.html +2 -1
  19. data/ref/c/functions.html +40 -20
  20. data/ref/c/functions_vars.html +40 -20
  21. data/ref/c/globals.html +212 -5
  22. data/ref/c/globals_0x62.html +62 -0
  23. data/ref/c/globals_0x63.html +19 -3
  24. data/ref/c/globals_0x65.html +8 -2
  25. data/ref/c/globals_0x66.html +19 -3
  26. data/ref/c/globals_0x67.html +64 -0
  27. data/ref/c/globals_0x69.html +62 -0
  28. data/ref/c/globals_0x6c.html +64 -0
  29. data/ref/c/globals_0x6d.html +10 -3
  30. data/ref/c/globals_0x6e.html +63 -0
  31. data/ref/c/globals_0x70.html +8 -2
  32. data/ref/c/globals_0x72.html +14 -4
  33. data/ref/c/globals_0x73.html +189 -3
  34. data/ref/c/globals_0x74.html +8 -2
  35. data/ref/c/globals_0x75.html +63 -0
  36. data/ref/c/globals_0x76.html +14 -4
  37. data/ref/c/globals_0x78.html +8 -2
  38. data/ref/c/globals_defs.html +6 -1
  39. data/ref/c/globals_defs_0x65.html +6 -1
  40. data/ref/c/globals_defs_0x6c.html +57 -0
  41. data/ref/c/globals_defs_0x6e.html +56 -0
  42. data/ref/c/globals_defs_0x70.html +6 -1
  43. data/ref/c/globals_defs_0x72.html +57 -0
  44. data/ref/c/globals_defs_0x73.html +165 -0
  45. data/ref/c/globals_defs_0x75.html +56 -0
  46. data/ref/c/globals_defs_0x76.html +10 -3
  47. data/ref/c/globals_defs_0x78.html +6 -1
  48. data/ref/c/globals_enum.html +1 -1
  49. data/ref/c/globals_eval.html +1 -1
  50. data/ref/c/globals_func.html +174 -14
  51. data/ref/c/globals_func_0x66.html +63 -0
  52. data/ref/c/globals_func_0x67.html +56 -0
  53. data/ref/c/globals_func_0x69.html +54 -0
  54. data/ref/c/globals_func_0x6d.html +56 -0
  55. data/ref/c/globals_func_0x70.html +54 -0
  56. data/ref/c/globals_func_0x72.html +57 -0
  57. data/ref/c/globals_func_0x73.html +113 -0
  58. data/ref/c/globals_func_0x76.html +58 -0
  59. data/ref/c/globals_type.html +6 -3
  60. data/ref/c/globals_vars.html +89 -3
  61. data/ref/c/index.html +1 -1
  62. data/ref/c/main_8c.html +2 -2
  63. data/ref/c/main_8h.html +1 -1
  64. data/ref/c/relay_8c.html +1 -1
  65. data/ref/c/relay_8h.html +1 -1
  66. data/ref/c/structswig__cast__info.html +98 -0
  67. data/ref/c/structswig__class.html +115 -0
  68. data/ref/c/structswig__module__info.html +132 -0
  69. data/ref/c/structswig__type__info.html +132 -0
  70. data/ref/c/structt__cb__data.html +1 -1
  71. data/ref/c/structt__vpi__delay.html +1 -1
  72. data/ref/c/structt__vpi__error__info.html +1 -1
  73. data/ref/c/structt__vpi__strengthval.html +1 -1
  74. data/ref/c/structt__vpi__systf__data.html +1 -1
  75. data/ref/c/structt__vpi__time.html +1 -1
  76. data/ref/c/structt__vpi__value.html +1 -1
  77. data/ref/c/structt__vpi__vecval.html +1 -1
  78. data/ref/c/structt__vpi__vlog__info.html +1 -1
  79. data/ref/c/swig__wrap_8cin.html +11610 -0
  80. data/ref/c/unions__vpi__value__value.html +166 -0
  81. data/ref/c/verilog_8h.html +1 -1
  82. data/ref/c/vlog_8c.html +3 -3
  83. data/ref/c/vlog_8h.html +1 -1
  84. data/ref/c/vpi__user_8h.html +1 -1
  85. data/ref/ruby/classes/RDoc.html +5 -5
  86. data/ref/ruby/classes/RDoc.src/{M000045.html → M000053.html} +0 -0
  87. data/ref/ruby/classes/RubyVpi.src/M000029.html +27 -27
  88. data/ref/ruby/classes/Vpi/Handle.html +93 -57
  89. data/ref/ruby/classes/Vpi/Handle.src/M000037.html +5 -5
  90. data/ref/ruby/classes/Vpi/Handle.src/M000038.html +5 -9
  91. data/ref/ruby/classes/Vpi/Handle.src/M000039.html +5 -31
  92. data/ref/ruby/classes/Vpi/Handle.src/M000040.html +5 -74
  93. data/ref/ruby/classes/Vpi/Handle.src/M000041.html +8 -17
  94. data/ref/ruby/classes/Vpi/Handle.src/M000042.html +8 -11
  95. data/ref/ruby/classes/Vpi/Handle.src/M000043.html +22 -0
  96. data/ref/ruby/classes/Vpi/Handle.src/M000044.html +31 -55
  97. data/ref/ruby/classes/Vpi/Handle.src/M000045.html +87 -0
  98. data/ref/ruby/classes/Vpi/Handle.src/M000046.html +30 -0
  99. data/ref/ruby/classes/Vpi/Handle.src/M000047.html +24 -0
  100. data/ref/ruby/classes/Vpi/Handle.src/M000049.html +68 -0
  101. data/ref/ruby/classes/Vpi/S_vpi_time.html +186 -0
  102. data/ref/ruby/classes/Vpi/S_vpi_time.src/M000050.html +18 -0
  103. data/ref/ruby/classes/Vpi/S_vpi_time.src/M000051.html +19 -0
  104. data/ref/ruby/classes/Vpi/S_vpi_value.html +167 -0
  105. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html +18 -0
  106. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000035.html +18 -0
  107. data/ref/ruby/classes/Vpi/S_vpi_value.src/M000036.html +18 -0
  108. data/ref/ruby/classes/Vpi.html +3 -1
  109. data/ref/ruby/classes/Vpi.src/M000030.html +14 -14
  110. data/ref/ruby/classes/Vpi.src/M000031.html +4 -4
  111. data/ref/ruby/classes/Vpi.src/M000032.html +24 -25
  112. data/ref/ruby/classes/Vpi.src/M000033.html +8 -8
  113. data/ref/ruby/created.rid +1 -1
  114. data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
  115. data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
  116. data/ref/ruby/fr_class_index.html +2 -0
  117. data/ref/ruby/fr_method_index.html +22 -14
  118. data/samp/counter/counter_rspec_proto.rb +8 -6
  119. data/samp/counter/counter_xunit_proto.rb +8 -6
  120. data/samp/pipelined_alu/hw5_unit_test_proto.rb +2 -2
  121. metadata +42 -6
  122. data/ref/ruby/classes/Vpi/Handle.src/M000034.html +0 -18
  123. data/ref/ruby/classes/Vpi/Handle.src/M000035.html +0 -18
  124. data/ref/ruby/classes/Vpi/Handle.src/M000036.html +0 -18
data/doc/history.yml CHANGED
@@ -1,3 +1,37 @@
1
+ -
2
+ Version: 15.0.0
3
+
4
+ Date: 2007-01-13
5
+
6
+ Summary: |
7
+ This release fixes a problem with compilation of the C extension, and makes clock generation code correctly affect Ruby prototypes.
8
+
9
+ Acknowledgment: |
10
+ Thanks to Derek Graham for reporting the problem with compilation of the C extension.
11
+
12
+ Notice: |
13
+ * The @Vpi::advance_time@ method (instead of the @Vpi::simulate@ method) now invokes the design's @simulate!@ method when prototyping is enabled.
14
+
15
+ This makes clock generation code (passed to the @RubyVpi::init_bench@ method) affect Ruby prototypes, just as it affects a real Verilog design.
16
+
17
+ As a result, Ruby prototypes may need to check for edge-triggering through the new @Vpi::Handle.posedge?@ and @Vpi::Handle.negedge?@ methods. For example, see the "new implementation of the Counter prototype":manual.html#fig..counter_proto.rb.
18
+
19
+ h3. New features
20
+
21
+ * Added @Vpi::Handle.posedge?@ and @Vpi::Handle.negedge?@ methods which check if a handle's logic value is currently at a positive or negative edge, respectively.
22
+
23
+ * Added @Vpi::S_vpi_time.integer@ and @Vpi::S_vpi_time.integer=@ methods which access the @high@ and @low@ integer fields as a single 64-bit integer.
24
+
25
+ * Added utility methods for accessing the @value@ field in the @Vpi::S_vpi_value@ structure.
26
+
27
+ Details: |
28
+ * Fixed problem with incorrect Ruby library flag in <tt>ext/extconf.rb</tt>. It happens that the @mkmf@ library determines the correct library flag all by itself!
29
+
30
+ * Added new "prototyping section":manual.html#usage.prototyping to user manual.
31
+
32
+ * Fixed some broken URLs in user documentation.
33
+
34
+
1
35
  -
2
36
  Version: 14.0.0
3
37
 
@@ -851,7 +885,7 @@
851
885
  Date: 1999-10-31
852
886
 
853
887
  Summary: |
854
- This is Kazuhiro HIWADA's initial testing release of Ruby-VPI. See its "original announcement":http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-list/18193 and "source code":http://easter.kuee.kyoto-u.ac.jp/~hiwada/ruby/memo/src/ruby-vpi-test.tgz.
888
+ This is Kazuhiro HIWADA's initial testing release of Ruby-VPI. See its "original announcement":http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/18193 and "source code":http://rubyforge.org/frs/?group_id=1339&release_id=8852.
855
889
 
856
890
  Details: |
857
891
  * Added ability to relay control from Verilog test bench to Ruby (using @$ruby_callback@) and vice versa (using @PLI::relay_Verilog@).
data/doc/intro.inc CHANGED
@@ -5,7 +5,7 @@ h2(#intro.features). Features
5
5
 
6
6
  h3. Portable
7
7
 
8
- * Supports the _entire_ "IEEE Std 1364-2005"::http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945 VPI standard.
8
+ * Supports the _entire_ "IEEE Std 1364-2005":http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945 VPI standard.
9
9
 
10
10
  * Works with all "major Verilog simulators":manual.html#setup.reqs available today.
11
11
  ** Compiled _just once_ during "installation":manual.html#setup.installation and used forever!
data/doc/manual.doc CHANGED
@@ -227,7 +227,7 @@ The _entire_ IEEE Std 1364-2005 VPI interface is available in Ruby, but with one
227
227
 
228
228
  For example, the @s_vpi_value@ structure becomes the @S_vpi_value@ class in Ruby. Likewise, the @vpiIntVal@ constant becomes the @VpiIntVal@ constant in Ruby.
229
229
 
230
- Note that this capitalization rule does *not* apply to VPI functions; their names remain _unchanged_ in Ruby.
230
+ Note that this capitalization rule does _not_ apply to VPI functions; their names remain unchanged in Ruby.
231
231
 
232
232
 
233
233
  h3(#usage.vpi.handles). Handles
@@ -267,7 +267,7 @@ In this code, the shortcut is that you simply wrote @counter_module.reset@ inste
267
267
 
268
268
  h4. Accessing a handle's properties
269
269
 
270
- To access a handle's properties, invoke the proprty name, using the following format, as a method on the handle. <xref ex..properties> shows how this naming format is used.
270
+ To access a handle's properties, invoke the property name, using the following format, as a method on the handle. <xref ex..properties> shows how this naming format is used.
271
271
 
272
272
  <% figure "Method naming format for accessing a handle's properties" do %>
273
273
  |_. Operation |_. _ |_. Property |_. _ |_. Accessor |_. Addendum |
@@ -344,22 +344,22 @@ This example shows how to use a callback for notification of changes in a handle
344
344
  In this example, the handle being monitored is the @Counter.count@ signal from <xref#fig..counter.v_decl>.
345
345
 
346
346
  <code>
347
- cb_time = S_vpi_time.new
348
- cb_time.type = VpiSimTime
349
- cb_time.low = 0
350
- cb_time.high = 0
347
+ cbTime = S_vpi_time.new
348
+ cbTime.type = VpiSimTime
349
+ cbTime.low = 0
350
+ cbTime.high = 0
351
351
 
352
- cb_value = S_vpi_value.new
353
- cb_value.format = VpiIntVal
352
+ cbValue = S_vpi_value.new
353
+ cbValue.format = VpiIntVal
354
354
 
355
- cb_data = S_cb_data.new
356
- cb_data.reason = CbValueChange
357
- cb_data.obj = Counter.count
358
- cb_data.time = cb_time
359
- cb_data.value = cb_value
360
- cb_data.index = 0
355
+ cbData = S_cb_data.new
356
+ cbData.reason = CbValueChange
357
+ cbData.obj = Counter.count
358
+ cbData.time = cbTime
359
+ cbData.value = cbValue
360
+ cbData.index = 0
361
361
 
362
- cb_handle = vpi_register_cb(cb_data) do |data|
362
+ cbHandle = vpi_register_cb(cbData) do |data|
363
363
 
364
364
  time = (data.time.high << 32) | data.time.low
365
365
  count = data.value.value.integer
@@ -470,6 +470,21 @@ Finished in 0.042328 seconds
470
470
  <% end %>
471
471
 
472
472
 
473
+ h2(#usage.prototyping). Prototyping
474
+
475
+ Ruby-VPI enables you to rapidly prototype your designs in Ruby without having to do full-scale implementations in Verilog. This lets you explore and evaluate different design choices quickly.
476
+
477
+ In order to create a prototype,
478
+ # "Determine the *interface*":#usage.tutorial.declare-design (Verilog module declaration) of your design.
479
+ # "Generate a test":#usage.tutorial.generate-test for that interface.
480
+ # "Implement the prototype":#usage.tutorial.implement-proto in the generated <tt>proto.rb</tt> file.
481
+ # "Verify the prototype":#usage.tutorial.test-proto against its specification.
482
+
483
+ Once you are satisfied with your prototype, you can proceed to "implement your design in Verilog":#usage.tutorial.implement-design. This process is often a simple translation your Ruby prototype into your Verilog. At the very least, your prototype serves as a reference while you are implementing your Verilog design.
484
+
485
+ Once your design has been implemented in Verilog, you can use the _same_ specification, which was originally used to verify your prototype, to verify your Verilog design.
486
+
487
+
473
488
  h2(#usage.debugger). Debugging
474
489
 
475
490
  The "ruby-debug project":http://www.datanoise.com/articles/category/ruby-debug serves as the interactive debugger for Ruby-VPI.
@@ -697,15 +712,7 @@ h3(#usage.tutorial.implement-proto). Implement the prototype
697
712
  Now that we have a "specification":#glossary.specification against which to verify our "design":#glossary.design, let us build a prototype of our design. By doing so, we exercise our specification, experience potential problems that may arise when we later implement our design in Verilog, and gain confidence in our work. The result of this proceess is illustrated by <xref #fig..counter_proto.rb>.
698
713
 
699
714
  <% example "Ruby prototype of our Verilog design", "#fig..counter_proto.rb" do %>
700
- <code>
701
- def Counter.simulate!
702
- if reset.intVal == 1
703
- count.intVal = 0
704
- else
705
- count.intVal += 1
706
- end
707
- end
708
- </code>
715
+ <code><%= File.read '../samp/counter/counter_rspec_proto.rb' %></code>
709
716
  <% end %>
710
717
 
711
718
  <% important "Before we continue..." do %>
@@ -717,6 +724,8 @@ h3(#usage.tutorial.test-proto). Verify the prototype
717
724
 
718
725
  Now that we have implemented our prototype, we are ready to verify it against our "specification":#glossary.specification by running the "test":#glossary.test. This process is illustrated by <xref #fig..test-proto.rspec> and <xref #fig..test-proto.unit-test>.
719
726
 
727
+ In these examples, the @PROTOTYPE@ environment variable is assigned a non-empty value while running the test so that, instead of our design, our prototype is verified against our specification. You can also assign a value to @PROTOTYPE@ before running the test, by using your shell's *export* or *setenv* command. Finally, the "GPL Cver simulator":#setup.reqs, denoted by _cver_, is used to run the simulation.
728
+
720
729
  <% example "Running a test with specification in rSpec format", "#fig..test-proto.rspec" do %>
721
730
  <pre>
722
731
  $ rake -f counter_rspec_runner.rake cver PROTOTYPE=1
@@ -751,8 +760,6 @@ Finished in 0.040668 seconds.
751
760
  </pre>
752
761
  <% end %>
753
762
 
754
- In these examples, the @PROTOTYPE@ environment variable is assigned a non-empty value while running the test so that, instead of our design, our prototype is verified against our specification. You can also assign a value to @PROTOTYPE@ before running the test, by using your shell's *export* or *setenv* command. Finally, the "GPL Cver simulator":#setup.reqs, denoted by _cver_, is used to run the simulation.
755
-
756
763
  <% tip "What can the test runner do?" do %>
757
764
  If you invoke the test runner (1) without any arguments or (2) with the <tt>--tasks</tt> option, it will show you a list of tasks that it can perform for you.
758
765
  <% end %>
@@ -776,6 +783,8 @@ h3(#usage.tutorial.test-design). Verify the design
776
783
 
777
784
  Now that we have implemented our "design":#glossary.design, we are ready to verify it against our "specification":#glossary.specification by running the "test":#glossary.test. <xref #fig..test-design.rspec> and <xref #fig..test-design.unit-test> illustrate this process.
778
785
 
786
+ In these examples, the @PROTOTYPE@ environment variable is _not_ specified while running the test, so that our design, instead of our prototype, is verified against our specification. You can also achieve this effect by assigning an empty value to @PROTOTYPE@, or by using your shell's *unset* command. Finally, the "GPL Cver simulator":#setup.reqs, denoted by _cver_, is used to run the simulation.
787
+
779
788
  <% example "Running a test with specification in rSpec format", "#fig..test-design.rspec" do %>
780
789
  <pre>
781
790
  $ rake -f counter_rspec_runner.rake cver
@@ -806,8 +815,6 @@ Finished in 0.006766 seconds.
806
815
  </pre>
807
816
  <% end %>
808
817
 
809
- In these examples, the @PROTOTYPE@ environment variable is _not_ specified while running the test, so that our design, instead of our prototype, is verified against our specification. You can also achieve this effect by assigning an empty value to @PROTOTYPE@, or by using your shell's *unset* command. Finally, the "GPL Cver simulator":#setup.reqs, denoted by _cver_, is used to run the simulation.
810
-
811
818
 
812
819
  h1(#hacking). Hacking
813
820
 
@@ -903,7 +910,9 @@ Here the @clk_reg@ register is connected to the @clk_wire@ wire.
903
910
 
904
911
  h3(#problems.ivl.vpi_reset). Vpi::reset
905
912
 
906
- <div class="caution">The @vpi_control@ method was removed in release 3.0.0 (2006-04-23). Please use @Vpi::vpi_control(VpiReset)@ instead.</div>
913
+ <% caution do %>
914
+ The @vpi_control@ method was removed in release 3.0.0 (2006-04-23). Please use @Vpi::vpi_control(VpiReset)@ instead.
915
+ <% end %>
907
916
 
908
917
  In version 0.8 of Icarus Verilog, the @vpi_control(vpiReset)@ VPI function causes an assertion to fail inside the simulator. As a result, the simulation terminates and a core dump is produced.
909
918
 
data/doc/manual.html CHANGED
@@ -75,32 +75,33 @@
75
75
  <li>5.1.2 <a href="#usage.vpi.callbacks">Callbacks</a></li>
76
76
  </ul>
77
77
  </li>
78
- <li>5.2 <a href="#usage.debugger">Debugging</a>
78
+ <li>5.2 <a href="#usage.prototyping">Prototyping</a></li>
79
+ <li>5.3 <a href="#usage.debugger">Debugging</a>
79
80
  <ul>
80
- <li>5.2.1 <a href="#usage.debugger.init">Advanced initialization</a></li>
81
+ <li>5.3.1 <a href="#usage.debugger.init">Advanced initialization</a></li>
81
82
  </ul>
82
83
  </li>
83
- <li>5.3 <a href="#usage.test-runner">Test runner</a>
84
+ <li>5.4 <a href="#usage.test-runner">Test runner</a>
84
85
  <ul>
85
- <li>5.3.1 <a href="#usage.test-runner.env-vars">Environment variables</a></li>
86
+ <li>5.4.1 <a href="#usage.test-runner.env-vars">Environment variables</a></li>
86
87
  </ul>
87
88
  </li>
88
- <li>5.4 <a href="#usage.examples">Sample tests</a></li>
89
- <li>5.5 <a href="#usage.tools">Tools</a>
89
+ <li>5.5 <a href="#usage.examples">Sample tests</a></li>
90
+ <li>5.6 <a href="#usage.tools">Tools</a>
90
91
  <ul>
91
- <li>5.5.1 <a href="#usage.tools.generate-test">Automated test generation</a></li>
92
- <li>5.5.2 <a href="#usage.tools.verilog-ruby-conv">Verilog to Ruby conversion</a></li>
92
+ <li>5.6.1 <a href="#usage.tools.generate-test">Automated test generation</a></li>
93
+ <li>5.6.2 <a href="#usage.tools.verilog-ruby-conv">Verilog to Ruby conversion</a></li>
93
94
  </ul>
94
95
  </li>
95
- <li>5.6 <a href="#usage.tutorial">Tutorial</a>
96
- <ul>
97
- <li>5.6.1 <a href="#usage.tutorial.declare-design">Start with a design</a></li>
98
- <li>5.6.2 <a href="#usage.tutorial.generate-test">Generate a test</a></li>
99
- <li>5.6.3 <a href="#usage.tutorial.specification">Specify your expectations</a></li>
100
- <li>5.6.4 <a href="#usage.tutorial.implement-proto">Implement the prototype</a></li>
101
- <li>5.6.5 <a href="#usage.tutorial.test-proto">Verify the prototype</a></li>
102
- <li>5.6.6 <a href="#usage.tutorial.implement-design">Implement the design</a></li>
103
- <li>5.6.7 <a href="#usage.tutorial.test-design">Verify the design</a></li>
96
+ <li>5.7 <a href="#usage.tutorial">Tutorial</a>
97
+ <ul>
98
+ <li>5.7.1 <a href="#usage.tutorial.declare-design">Start with a design</a></li>
99
+ <li>5.7.2 <a href="#usage.tutorial.generate-test">Generate a test</a></li>
100
+ <li>5.7.3 <a href="#usage.tutorial.specification">Specify your expectations</a></li>
101
+ <li>5.7.4 <a href="#usage.tutorial.implement-proto">Implement the prototype</a></li>
102
+ <li>5.7.5 <a href="#usage.tutorial.test-proto">Verify the prototype</a></li>
103
+ <li>5.7.6 <a href="#usage.tutorial.implement-design">Implement the design</a></li>
104
+ <li>5.7.7 <a href="#usage.tutorial.test-design">Verify the design</a></li>
104
105
  </ul>
105
106
  </li>
106
107
  </ul>
@@ -179,7 +180,11 @@
179
180
  <li><a href="#important3">Before we continue&#8230;</a></li>
180
181
  <li><a href="#important4">Before we continue&#8230;</a></li>
181
182
  </ol>
182
- <h1>Formals</h1>
183
+ <h2>Cautions</h2>
184
+ <ol>
185
+ <li><a href="#caution1">caution1</a></li>
186
+ </ol>
187
+ <h1>Formals</h1>
183
188
 
184
189
  <h2>Figures</h2>
185
190
  <ol>
@@ -218,7 +223,7 @@
218
223
  <h1 id="anchor4">1 &nbsp; Ruby-VPI user manual</h1>
219
224
 
220
225
 
221
- <p>This manual was last updated on Sat Dec 30 19:26:28 <span class="caps">PST 2006</span>.</p>
226
+ <p>This manual was last updated on Sat Jan 13 16:42:19 <span class="caps">PST 2007</span>.</p>
222
227
 
223
228
 
224
229
  <p>It is meant to be read in conjunction with the <a href="../ref/ruby/index.html">reference documentation for Ruby-VPI</a>. In addition, if you are new to <a href="http://www.ruby-lang.org">the Ruby language</a>, you are encouraged to <a href="http://www.ruby-lang.org/en/documentation/">explore its documentation</a> alongside this manual.</p>
@@ -255,7 +260,7 @@
255
260
 
256
261
 
257
262
  <ul>
258
- <li>Supports the <em>entire</em> <a href=":http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE</span> Std 1364-2005</a> VPI standard.</li>
263
+ <li>Supports the <em>entire</em> <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE</span> Std 1364-2005</a> VPI standard.</li>
259
264
  </ul>
260
265
 
261
266
 
@@ -762,7 +767,7 @@ $ ls -d /usr/lib/ruby/gems/1.8/gems/ruby-vpi*
762
767
  <p>For example, the <code class="code">s_vpi_value</code> structure becomes the <code class="code"><span style="color:#036; font-weight:bold">S_vpi_value</span></code> class in Ruby. Likewise, the <code class="code">vpiIntVal</code> constant becomes the <code class="code"><span style="color:#036; font-weight:bold">VpiIntVal</span></code> constant in Ruby.</p>
763
768
 
764
769
 
765
- <p>Note that this capitalization rule does <strong>not</strong> apply to <span class="caps">VPI</span> functions; their names remain <em>unchanged</em> in Ruby.</p>
770
+ <p>Note that this capitalization rule does <em>not</em> apply to <span class="caps">VPI</span> functions; their names remain unchanged in Ruby.</p>
766
771
 
767
772
 
768
773
  <h3 id="usage.vpi.handles">5.1.1 &nbsp; Handles</h3>
@@ -824,7 +829,7 @@ reset_signal = counter_module.reset <span style="color:#888"># &lt;== shortcut!<
824
829
  <h4 id="anchor10">5.1.1.2 &nbsp; Accessing a handle&#8217;s properties</h4>
825
830
 
826
831
 
827
- <p>To access a handle&#8217;s properties, invoke the proprty name, using the following format, as a method on the handle. <a href="#ex..properties">the example named &ldquo;Examples of accessing a handle&#8217;s properties&rdquo;</a> shows how this naming format is used.</p>
832
+ <p>To access a handle&#8217;s properties, invoke the property name, using the following format, as a method on the handle. <a href="#ex..properties">the example named &ldquo;Examples of accessing a handle&#8217;s properties&rdquo;</a> shows how this naming format is used.</p>
828
833
 
829
834
 
830
835
  <div class="formal">
@@ -1280,22 +1285,22 @@ reset_signal = counter_module.reset <span style="color:#888"># &lt;== shortcut!<
1280
1285
 
1281
1286
 
1282
1287
  <pre class="code">
1283
- cb_time = <span style="color:#036; font-weight:bold">S_vpi_time</span>.new
1284
- cb_time.type = <span style="color:#036; font-weight:bold">VpiSimTime</span>
1285
- cb_time.low = <span style="color:#00D; font-weight:bold">0</span>
1286
- cb_time.high = <span style="color:#00D; font-weight:bold">0</span>
1288
+ cbTime = <span style="color:#036; font-weight:bold">S_vpi_time</span>.new
1289
+ cbTime.type = <span style="color:#036; font-weight:bold">VpiSimTime</span>
1290
+ cbTime.low = <span style="color:#00D; font-weight:bold">0</span>
1291
+ cbTime.high = <span style="color:#00D; font-weight:bold">0</span>
1287
1292
 
1288
- cb_value = <span style="color:#036; font-weight:bold">S_vpi_value</span>.new
1289
- cb_value.format = <span style="color:#036; font-weight:bold">VpiIntVal</span>
1293
+ cbValue = <span style="color:#036; font-weight:bold">S_vpi_value</span>.new
1294
+ cbValue.format = <span style="color:#036; font-weight:bold">VpiIntVal</span>
1290
1295
 
1291
- cb_data = <span style="color:#036; font-weight:bold">S_cb_data</span>.new
1292
- cb_data.reason = <span style="color:#036; font-weight:bold">CbValueChange</span>
1293
- cb_data.obj = <span style="color:#036; font-weight:bold">Counter</span>.count
1294
- cb_data.time = cb_time
1295
- cb_data.value = cb_value
1296
- cb_data.index = <span style="color:#00D; font-weight:bold">0</span>
1296
+ cbData = <span style="color:#036; font-weight:bold">S_cb_data</span>.new
1297
+ cbData.reason = <span style="color:#036; font-weight:bold">CbValueChange</span>
1298
+ cbData.obj = <span style="color:#036; font-weight:bold">Counter</span>.count
1299
+ cbData.time = cbTime
1300
+ cbData.value = cbValue
1301
+ cbData.index = <span style="color:#00D; font-weight:bold">0</span>
1297
1302
 
1298
- cb_handle = vpi_register_cb(cb_data) <span style="color:#080; font-weight:bold">do</span> |data|
1303
+ cbHandle = vpi_register_cb(cbData) <span style="color:#080; font-weight:bold">do</span> |data|
1299
1304
 
1300
1305
  time = (data.time.high &lt;&lt; <span style="color:#00D; font-weight:bold">32</span>) | data.time.low
1301
1306
  count = data.value.value.integer
@@ -1418,7 +1423,28 @@ Finished in 0.042328 seconds
1418
1423
 
1419
1424
  </div>
1420
1425
 
1421
- <h2 id="usage.debugger">5.2 &nbsp; Debugging</h2>
1426
+ <h2 id="usage.prototyping">5.2 &nbsp; Prototyping</h2>
1427
+
1428
+
1429
+ <p>Ruby-VPI enables you to rapidly prototype your designs in Ruby without having to do full-scale implementations in Verilog. This lets you explore and evaluate different design choices quickly.</p>
1430
+
1431
+
1432
+ In order to create a prototype,
1433
+ <ol>
1434
+ <li><a href="#usage.tutorial.declare-design">Determine the <strong>interface</strong></a> (Verilog module declaration) of your design.</li>
1435
+ <li><a href="#usage.tutorial.generate-test">Generate a test</a> for that interface.</li>
1436
+ <li><a href="#usage.tutorial.implement-proto">Implement the prototype</a> in the generated <tt>proto.rb</tt> file.</li>
1437
+ <li><a href="#usage.tutorial.test-proto">Verify the prototype</a> against its specification.</li>
1438
+ </ol>
1439
+
1440
+
1441
+ <p>Once you are satisfied with your prototype, you can proceed to <a href="#usage.tutorial.implement-design">implement your design in Verilog</a>. This process is often a simple translation your Ruby prototype into your Verilog. At the very least, your prototype serves as a reference while you are implementing your Verilog design.</p>
1442
+
1443
+
1444
+ <p>Once your design has been implemented in Verilog, you can use the <em>same</em> specification, which was originally used to verify your prototype, to verify your Verilog design.</p>
1445
+
1446
+
1447
+ <h2 id="usage.debugger">5.3 &nbsp; Debugging</h2>
1422
1448
 
1423
1449
 
1424
1450
  <p>The <a href="http://www.datanoise.com/articles/category/ruby-debug">ruby-debug project</a> serves as the interactive debugger for Ruby-VPI.</p>
@@ -1430,7 +1456,7 @@ Finished in 0.042328 seconds
1430
1456
  </ol>
1431
1457
 
1432
1458
 
1433
- <h3 id="usage.debugger.init">5.2.1 &nbsp; Advanced initialization</h3>
1459
+ <h3 id="usage.debugger.init">5.3.1 &nbsp; Advanced initialization</h3>
1434
1460
 
1435
1461
 
1436
1462
  <p>By default, Ruby-VPI enables the debugger by invoking the <code class="code"><span style="color:#036; font-weight:bold">Debugger</span>.start</code> method. If you wish to perform more advanced initialization, such as having the debugger accept remote network connections for interfacing with a remote debugging session or perhaps with an <span class="caps">IDE</span> (see <a href="http://www.datanoise.com/articles/category/ruby-debug">the ruby-debug documentation</a> for details), then:</p>
@@ -1442,7 +1468,7 @@ Finished in 0.042328 seconds
1442
1468
  </ol>
1443
1469
 
1444
1470
 
1445
- <h2 id="usage.test-runner">5.3 &nbsp; Test runner</h2>
1471
+ <h2 id="usage.test-runner">5.4 &nbsp; Test runner</h2>
1446
1472
 
1447
1473
 
1448
1474
  <p>A test runner is a file, generated by the <a href="#usage.tools.generate-test">automated test generator</a>, whose name ends with <tt>.rake</tt>. It helps you run generated tests&#8212;you can think of it as a <em>makefile</em> if you are familiar with C programming in a <span class="caps">UNIX</span> environment.</p>
@@ -1497,7 +1523,7 @@ rake vsim # Simulate with Mentor Modelsim.
1497
1523
 
1498
1524
  </div>
1499
1525
 
1500
- <h3 id="usage.test-runner.env-vars">5.3.1 &nbsp; Environment variables</h3>
1526
+ <h3 id="usage.test-runner.env-vars">5.4.1 &nbsp; Environment variables</h3>
1501
1527
 
1502
1528
 
1503
1529
  <p>Test runners support the following <em>environment</em> variables, which allow you to easily change the behavior of the test runner.</p>
@@ -1544,19 +1570,19 @@ Here we <em>disable</em> the prototype and enable the code coverage analysis. No
1544
1570
 
1545
1571
  </div>
1546
1572
 
1547
- <h2 id="usage.examples">5.4 &nbsp; Sample tests</h2>
1573
+ <h2 id="usage.examples">5.5 &nbsp; Sample tests</h2>
1548
1574
 
1549
1575
 
1550
1576
  <p>The <tt>samp</tt> directory contains several sample tests which illustrate how Ruby-VPI can be used. Each sample has an associated <tt>Rakefile</tt> which simplifies the process of running it. Therefore, simply navigate into an example directory and run the <pre>rake</pre> command to get started.</p>
1551
1577
 
1552
1578
 
1553
- <h2 id="usage.tools">5.5 &nbsp; Tools</h2>
1579
+ <h2 id="usage.tools">5.6 &nbsp; Tools</h2>
1554
1580
 
1555
1581
 
1556
1582
  <p>The <tt>bin</tt> directory contains various utilities which ease the process of writing tests. Each tool provides help and usage information invoked with the <tt>--help</tt> option.</p>
1557
1583
 
1558
1584
 
1559
- <h3 id="usage.tools.generate-test">5.5.1 &nbsp; Automated test generation</h3>
1585
+ <h3 id="usage.tools.generate-test">5.6.1 &nbsp; Automated test generation</h3>
1560
1586
 
1561
1587
 
1562
1588
  <p>The automated test generator (<strong>generate_test.rb</strong>) generates tests from Verilog 2001 module declarations, as demonstrated <a href="#usage.tutorial.generate-test">in the tutorial</a>. A generated test is composed of the following parts:</p>
@@ -1608,7 +1634,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1608
1634
 
1609
1635
  </div>
1610
1636
 
1611
- <h3 id="usage.tools.verilog-ruby-conv">5.5.2 &nbsp; Verilog to Ruby conversion</h3>
1637
+ <h3 id="usage.tools.verilog-ruby-conv">5.6.2 &nbsp; Verilog to Ruby conversion</h3>
1612
1638
 
1613
1639
 
1614
1640
  <p>The <strong>header_to_ruby.rb</strong> tool can be used to convert Verilog header files into Ruby. You can try it by running the <pre>header_to_ruby.rb --help</pre> command.</p>
@@ -1617,7 +1643,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1617
1643
  <p>By converting Verilog header files into Ruby, your <a href="#glossary.test">test</a> can utilize the same <code class="code"><span style="background-color:#f0fff0"><span style="color:#161">`</span><span style="color:#2B2">define</span></span></code> constants that are used in the Verilog <a href="#glossary.design">design</a>.</p>
1618
1644
 
1619
1645
 
1620
- <h2 id="usage.tutorial">5.6 &nbsp; Tutorial</h2>
1646
+ <h2 id="usage.tutorial">5.7 &nbsp; Tutorial</h2>
1621
1647
 
1622
1648
 
1623
1649
  <ol>
@@ -1631,7 +1657,7 @@ kdiff3 --auto --output <span style="background-color:#fff0f0"><span style="color
1631
1657
  </ol>
1632
1658
 
1633
1659
 
1634
- <h3 id="usage.tutorial.declare-design">5.6.1 &nbsp; Start with a design</h3>
1660
+ <h3 id="usage.tutorial.declare-design">5.7.1 &nbsp; Start with a design</h3>
1635
1661
 
1636
1662
 
1637
1663
  <p>First, we need a <a href="#glossary.design">design</a> to verify. In this tutorial, <a href="#fig..counter.v_decl">the example named &ldquo;Declaration of a simple up-counter with synchronous reset&rdquo;</a> will serve as our design. Its interface is composed of the following parts:</p>
@@ -1682,7 +1708,7 @@ endmodule
1682
1708
 
1683
1709
  </div>
1684
1710
 
1685
- <h3 id="usage.tutorial.generate-test">5.6.2 &nbsp; Generate a test</h3>
1711
+ <h3 id="usage.tutorial.generate-test">5.7.2 &nbsp; Generate a test</h3>
1686
1712
 
1687
1713
 
1688
1714
  <p>Now that we have a <a href="#glossary.design">design</a> to verify, let us generate a <a href="#glossary.test">test</a> for it using the <a href="#usage.tools.generate-test">automated test generator</a>. This tool allows us to implement our specification in either rSpec, xUnit, or our very own format.</p>
@@ -1762,7 +1788,7 @@ $ generate_test.rb counter.v --xunit --name xunit
1762
1788
 
1763
1789
  </div>
1764
1790
 
1765
- <h3 id="usage.tutorial.specification">5.6.3 &nbsp; Specify your expectations</h3>
1791
+ <h3 id="usage.tutorial.specification">5.7.3 &nbsp; Specify your expectations</h3>
1766
1792
 
1767
1793
 
1768
1794
  <p>So far, the test generation tool has created a basic foundation for our <a href="#glossary.test">test</a>. Now we must build upon this foundation by identifying our <a href="#glossary.expectation">expectation</a> of the <a href="#glossary.design">design</a>. That is, how do we expect the design to <em>behave</em> under certain conditions?</p>
@@ -1912,7 +1938,7 @@ context <span style="background-color:#fff0f0"><span style="color:#710">&quot;</
1912
1938
 
1913
1939
  </div>
1914
1940
 
1915
- <h3 id="usage.tutorial.implement-proto">5.6.4 &nbsp; Implement the prototype</h3>
1941
+ <h3 id="usage.tutorial.implement-proto">5.7.4 &nbsp; Implement the prototype</h3>
1916
1942
 
1917
1943
 
1918
1944
  <p>Now that we have a <a href="#glossary.specification">specification</a> against which to verify our <a href="#glossary.design">design</a>, let us build a prototype of our design. By doing so, we exercise our specification, experience potential problems that may arise when we later implement our design in Verilog, and gain confidence in our work. The result of this proceess is illustrated by <a href="#fig..counter_proto.rb">the example named &ldquo;Ruby prototype of our Verilog design&rdquo;</a>.</p>
@@ -1925,12 +1951,17 @@ context <span style="background-color:#fff0f0"><span style="color:#710">&quot;</
1925
1951
  <p class="title">Example 10. Ruby prototype of our Verilog design</p>
1926
1952
 
1927
1953
 
1928
- <pre class="code">
1954
+ <pre class="code"><span style="color:#888"># This is a prototype of the design under test.</span>
1955
+
1956
+ <span style="color:#888"># When prototyping is enabled, Vpi::advance_time invokes this</span>
1957
+ <span style="color:#888"># method instead of transferring control to the Verilog simulator.</span>
1929
1958
  <span style="color:#080; font-weight:bold">def</span> <span style="color:#036; font-weight:bold">Counter</span>.simulate!
1930
- <span style="color:#080; font-weight:bold">if</span> reset.intVal == <span style="color:#00D; font-weight:bold">1</span>
1931
- count.intVal = <span style="color:#00D; font-weight:bold">0</span>
1932
- <span style="color:#080; font-weight:bold">else</span>
1933
- count.intVal += <span style="color:#00D; font-weight:bold">1</span>
1959
+ <span style="color:#080; font-weight:bold">if</span> clock.posedge?
1960
+ <span style="color:#080; font-weight:bold">if</span> reset.intVal == <span style="color:#00D; font-weight:bold">1</span>
1961
+ count.intVal = <span style="color:#00D; font-weight:bold">0</span>
1962
+ <span style="color:#080; font-weight:bold">else</span>
1963
+ count.intVal += <span style="color:#00D; font-weight:bold">1</span>
1964
+ <span style="color:#080; font-weight:bold">end</span>
1934
1965
  <span style="color:#080; font-weight:bold">end</span>
1935
1966
  <span style="color:#080; font-weight:bold">end</span>
1936
1967
  </pre>
@@ -1956,12 +1987,15 @@ context <span style="background-color:#fff0f0"><span style="color:#710">&quot;</
1956
1987
 
1957
1988
  </div>
1958
1989
 
1959
- <h3 id="usage.tutorial.test-proto">5.6.5 &nbsp; Verify the prototype</h3>
1990
+ <h3 id="usage.tutorial.test-proto">5.7.5 &nbsp; Verify the prototype</h3>
1960
1991
 
1961
1992
 
1962
1993
  <p>Now that we have implemented our prototype, we are ready to verify it against our <a href="#glossary.specification">specification</a> by running the <a href="#glossary.test">test</a>. This process is illustrated by <a href="#fig..test-proto.rspec">the example named &ldquo;Running a test with specification in rSpec format&rdquo;</a> and <a href="#fig..test-proto.unit-test">the example named &ldquo;Running a test with specification in xUnit format&rdquo;</a>.</p>
1963
1994
 
1964
1995
 
1996
+ <p>In these examples, the <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code> environment variable is assigned a non-empty value while running the test so that, instead of our design, our prototype is verified against our specification. You can also assign a value to <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code> before running the test, by using your shell&#8217;s <strong>export</strong> or <strong>setenv</strong> command. Finally, the <a href="#setup.reqs"><span class="caps">GPL</span> Cver simulator</a>, denoted by <em>cver</em>, is used to run the simulation.</p>
1997
+
1998
+
1965
1999
  <div class="formal">
1966
2000
 
1967
2001
  <div class="example" id="fig..test-proto.rspec">
@@ -2014,9 +2048,6 @@ Finished in 0.040668 seconds.
2014
2048
 
2015
2049
  </div>
2016
2050
 
2017
- <p>In these examples, the <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code> environment variable is assigned a non-empty value while running the test so that, instead of our design, our prototype is verified against our specification. You can also assign a value to <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code> before running the test, by using your shell&#8217;s <strong>export</strong> or <strong>setenv</strong> command. Finally, the <a href="#setup.reqs"><span class="caps">GPL</span> Cver simulator</a>, denoted by <em>cver</em>, is used to run the simulation.</p>
2018
-
2019
-
2020
2051
  <div class="admonition">
2021
2052
 
2022
2053
  <div class="tip" id="tip4">
@@ -2034,7 +2065,7 @@ Finished in 0.040668 seconds.
2034
2065
 
2035
2066
  </div>
2036
2067
 
2037
- <h3 id="usage.tutorial.implement-design">5.6.6 &nbsp; Implement the design</h3>
2068
+ <h3 id="usage.tutorial.implement-design">5.7.6 &nbsp; Implement the design</h3>
2038
2069
 
2039
2070
 
2040
2071
  <p>Now that we have implemented and verified our prototype, we are ready to implement our <a href="#glossary.design">design</a>. This is often quite simple because we translate <em>existing</em> code from Ruby (our prototype) into Verilog (our design). The result of this process is illustrated by <a href="#fig..counter.v_impl">the example named &ldquo;Implementation of a simple up-counter with synchronous reset&rdquo;</a>.</p>
@@ -2090,12 +2121,15 @@ endmodule
2090
2121
 
2091
2122
  </div>
2092
2123
 
2093
- <h3 id="usage.tutorial.test-design">5.6.7 &nbsp; Verify the design</h3>
2124
+ <h3 id="usage.tutorial.test-design">5.7.7 &nbsp; Verify the design</h3>
2094
2125
 
2095
2126
 
2096
2127
  <p>Now that we have implemented our <a href="#glossary.design">design</a>, we are ready to verify it against our <a href="#glossary.specification">specification</a> by running the <a href="#glossary.test">test</a>. <a href="#fig..test-design.rspec">the example named &ldquo;Running a test with specification in rSpec format&rdquo;</a> and <a href="#fig..test-design.unit-test">the example named &ldquo;Running a test with specification in xUnit format&rdquo;</a> illustrate this process.</p>
2097
2128
 
2098
2129
 
2130
+ <p>In these examples, the <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code> environment variable is <em>not</em> specified while running the test, so that our design, instead of our prototype, is verified against our specification. You can also achieve this effect by assigning an empty value to <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code>, or by using your shell&#8217;s <strong>unset</strong> command. Finally, the <a href="#setup.reqs"><span class="caps">GPL</span> Cver simulator</a>, denoted by <em>cver</em>, is used to run the simulation.</p>
2131
+
2132
+
2099
2133
  <div class="formal">
2100
2134
 
2101
2135
  <div class="example" id="fig..test-design.rspec">
@@ -2144,9 +2178,6 @@ Finished in 0.006766 seconds.
2144
2178
 
2145
2179
  </div>
2146
2180
 
2147
- <p>In these examples, the <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code> environment variable is <em>not</em> specified while running the test, so that our design, instead of our prototype, is verified against our specification. You can also achieve this effect by assigning an empty value to <code class="code"><span style="color:#036; font-weight:bold">PROTOTYPE</span></code>, or by using your shell&#8217;s <strong>unset</strong> command. Finally, the <a href="#setup.reqs"><span class="caps">GPL</span> Cver simulator</a>, denoted by <em>cver</em>, is used to run the simulation.</p>
2148
-
2149
-
2150
2181
  <h1 id="hacking">6 &nbsp; Hacking</h1>
2151
2182
 
2152
2183
 
@@ -2311,7 +2342,22 @@ endmodule
2311
2342
  <h3 id="problems.ivl.vpi_reset">7.2.2 &nbsp; Vpi::reset</h3>
2312
2343
 
2313
2344
 
2314
- <div class="caution">The <code class="code">vpi_control</code> method was removed in release 3.0.0 (2006-04-23). Please use <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::vpi_control(<span style="color:#036; font-weight:bold">VpiReset</span>)</code> instead.</div>
2345
+ <div class="admonition">
2346
+
2347
+ <div class="caution" id="caution1">
2348
+
2349
+ <p style="float:left"><img src="images/caution.png" title="caution" alt="caution" /></p>
2350
+
2351
+
2352
+ <p class="title">Caution:</p>
2353
+
2354
+
2355
+ <p>The <code class="code">vpi_control</code> method was removed in release 3.0.0 (2006-04-23). Please use <code class="code"><span style="color:#036; font-weight:bold">Vpi</span>::vpi_control(<span style="color:#036; font-weight:bold">VpiReset</span>)</code> instead.</p>
2356
+
2357
+
2358
+ </div>
2359
+
2360
+ </div>
2315
2361
 
2316
2362
  <p>In version 0.8 of Icarus Verilog, the <code class="code">vpi_control(vpiReset)</code> VPI function causes an assertion to fail inside the simulator. As a result, the simulation terminates and a core dump is produced.</p>
2317
2363
 
data/doc/readme.html CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
  </div>
76
76
 
77
- <h1 id="anchor122">1 &nbsp; Welcome to Ruby-VPI</h1>
77
+ <h1 id="anchor127">1 &nbsp; Welcome to Ruby-VPI</h1>
78
78
 
79
79
 
80
80
  <p>Ruby-VPI is a <a href="http://www.ruby-lang.org">Ruby</a> interface to <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE 1364</span>-2005 Verilog <span class="caps">VPI</span></a>. It lets you create complex Verilog test benches easily and wholly in Ruby.</p>
@@ -83,11 +83,11 @@
83
83
  <h2 id="intro.features">1.1 &nbsp; Features</h2>
84
84
 
85
85
 
86
- <h3 id="anchor123">1.1.1 &nbsp; Portable</h3>
86
+ <h3 id="anchor128">1.1.1 &nbsp; Portable</h3>
87
87
 
88
88
 
89
89
  <ul>
90
- <li>Supports the <em>entire</em> <a href=":http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE</span> Std 1364-2005</a> VPI standard.</li>
90
+ <li>Supports the <em>entire</em> <a href="http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945"><span class="caps">IEEE</span> Std 1364-2005</a> VPI standard.</li>
91
91
  </ul>
92
92
 
93
93
 
@@ -99,7 +99,7 @@
99
99
  </ul>
100
100
 
101
101
 
102
- <h3 id="anchor124">1.1.2 &nbsp; Agile</h3>
102
+ <h3 id="anchor129">1.1.2 &nbsp; Agile</h3>
103
103
 
104
104
 
105
105
  <ul>
@@ -122,7 +122,7 @@
122
122
  </ul>
123
123
 
124
124
 
125
- <h3 id="anchor125">1.1.3 &nbsp; Powerful</h3>
125
+ <h3 id="anchor130">1.1.3 &nbsp; Powerful</h3>
126
126
 
127
127
 
128
128
  <ul>
@@ -143,7 +143,7 @@
143
143
  </ul>
144
144
 
145
145
 
146
- <h3 id="anchor126">1.1.4 &nbsp; Free</h3>
146
+ <h3 id="anchor131">1.1.4 &nbsp; Free</h3>
147
147
 
148
148
 
149
149
  <ul>