ruby-vpi 11.1.1 → 12.0.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 (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
@@ -21,7 +21,7 @@
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
23
  <a href="classes/XX/Document.html#M000082"><< (XX::Document)</a><br />
24
- <a href="classes/Vpi/Handle.html#M000092">[] (Vpi::Handle)</a><br />
24
+ <a href="classes/Vpi/Handle.html#M000094">[] (Vpi::Handle)</a><br />
25
25
  <a href="classes/FileUtils.html#M000084">collect_args (FileUtils)</a><br />
26
26
  <a href="classes/XX/Document.html#M000081">create (XX::Document)</a><br />
27
27
  <a href="classes/Table.html#M000026">doc (Table)</a><br />
@@ -29,15 +29,15 @@
29
29
  <a href="classes/Integer.html#M000020">ensure_min (Integer)</a><br />
30
30
  <a href="files/lib/ruby-vpi/runner_rb.html#M000004">expand_include_dir_options (lib/ruby-vpi/runner.rb)</a><br />
31
31
  <a href="classes/Integer.html#M000024">extend_sign (Integer)</a><br />
32
- <a href="classes/Vpi/Handle.html#M000090">get_value (Vpi::Handle)</a><br />
33
- <a href="classes/Vpi/Handle.html#M000089">get_value_wrapper (Vpi::Handle)</a><br />
32
+ <a href="classes/Vpi/Handle.html#M000092">get_value (Vpi::Handle)</a><br />
33
+ <a href="classes/Vpi/Handle.html#M000091">get_value_wrapper (Vpi::Handle)</a><br />
34
34
  <a href="classes/XX/HTML4/Strict.html#M000040">html4_ (XX::HTML4::Strict)</a><br />
35
35
  <a href="classes/XX/HTML4/Transitional.html#M000039">html4_ (XX::HTML4::Transitional)</a><br />
36
36
  <a href="classes/XX/HTML4.html#M000038">html4_ (XX::HTML4)</a><br />
37
37
  <a href="classes/XX/Markup.html#M000045">included (XX::Markup)</a><br />
38
38
  <a href="classes/RubyVpi.html#M000085">init_bench (RubyVpi)</a><br />
39
39
  <a href="classes/VerilogParser/Module/Port.html#M000008">input? (VerilogParser::Module::Port)</a><br />
40
- <a href="classes/Vpi/Handle.html#M000093">inspect (Vpi::Handle)</a><br />
40
+ <a href="classes/Vpi/Handle.html#M000095">inspect (Vpi::Handle)</a><br />
41
41
  <a href="classes/Integer.html#M000013">length (Integer)</a><br />
42
42
  <a href="classes/Integer.html#M000014">limit (Integer)</a><br />
43
43
  <a href="classes/Integer.html#M000012">log2 (Integer)</a><br />
@@ -45,15 +45,15 @@
45
45
  <a href="classes/Integer.html#M000016">mask (Integer)</a><br />
46
46
  <a href="classes/Integer.html#M000018">max (Integer)</a><br />
47
47
  <a href="classes/XX/Markup/InstanceMethods.html#M000054">method_missing (XX::Markup::InstanceMethods)</a><br />
48
- <a href="classes/Vpi/Handle.html#M000095">method_missing (Vpi::Handle)</a><br />
49
- <a href="classes/VerilogParser/Module/Parameter.html#M000011">new (VerilogParser::Module::Parameter)</a><br />
48
+ <a href="classes/Vpi/Handle.html#M000097">method_missing (Vpi::Handle)</a><br />
49
+ <a href="classes/OutputInfo.html#M000030">new (OutputInfo)</a><br />
50
50
  <a href="classes/VerilogParser/Module/Port.html#M000007">new (VerilogParser::Module::Port)</a><br />
51
51
  <a href="classes/VerilogParser/Module.html#M000006">new (VerilogParser::Module)</a><br />
52
- <a href="classes/ERB.html#M000036">new (ERB)</a><br />
52
+ <a href="classes/VerilogParser/Module/Parameter.html#M000011">new (VerilogParser::Module::Parameter)</a><br />
53
53
  <a href="classes/VerilogParser.html#M000005">new (VerilogParser)</a><br />
54
54
  <a href="classes/Template.html#M000032">new (Template)</a><br />
55
55
  <a href="classes/XX/Document.html#M000074">new (XX::Document)</a><br />
56
- <a href="classes/OutputInfo.html#M000030">new (OutputInfo)</a><br />
56
+ <a href="classes/ERB.html#M000036">new (ERB)</a><br />
57
57
  <a href="files/bin/generate_test_rb.html#M000001">notify (bin/generate_test.rb)</a><br />
58
58
  <a href="files/lib/ruby-vpi/runner_rb.html#M000003">object_file_path (lib/ruby-vpi/runner.rb)</a><br />
59
59
  <a href="classes/VerilogParser/Module/Port.html#M000009">output? (VerilogParser::Module::Port)</a><br />
@@ -61,9 +61,9 @@
61
61
  <a href="classes/XX/Document.html#M000077">pop (XX::Document)</a><br />
62
62
  <a href="classes/XX/Document.html#M000080">pretty (XX::Document)</a><br />
63
63
  <a href="classes/XX/Document.html#M000076">push (XX::Document)</a><br />
64
- <a href="classes/Vpi/Handle.html#M000091">put_value (Vpi::Handle)</a><br />
64
+ <a href="classes/Vpi/Handle.html#M000093">put_value (Vpi::Handle)</a><br />
65
65
  <a href="classes/VerilogParser/Module/Port.html#M000010">reg? (VerilogParser::Module::Port)</a><br />
66
- <a href="classes/Vpi/Handle/Property.html#M000096">resolve (Vpi::Handle::Property)</a><br />
66
+ <a href="classes/Vpi/Handle/Property.html#M000098">resolve (Vpi::Handle::Property)</a><br />
67
67
  <a href="classes/FileUtils.html#M000083">sh (FileUtils)</a><br />
68
68
  <a href="classes/Integer.html#M000025">split (Integer)</a><br />
69
69
  <a href="classes/String.html#M000035">to_f (String)</a><br />
@@ -72,21 +72,22 @@
72
72
  <a href="classes/Integer.html#M000017">to_mask (Integer)</a><br />
73
73
  <a href="classes/Integer.html#M000019">to_max (Integer)</a><br />
74
74
  <a href="classes/String.html#M000034">to_ruby_const_name (String)</a><br />
75
- <a href="classes/Vpi/Handle.html#M000094">to_s (Vpi::Handle)</a><br />
75
+ <a href="classes/Vpi/Handle.html#M000096">to_s (Vpi::Handle)</a><br />
76
76
  <a href="classes/XX/Document.html#M000079">to_str (XX::Document)</a><br />
77
77
  <a href="classes/Table.html#M000027">to_xhtml (Table)</a><br />
78
78
  <a href="classes/Table.html#M000029">to_xml (Table)</a><br />
79
79
  <a href="classes/XX/Document.html#M000075">top (XX::Document)</a><br />
80
80
  <a href="classes/XX/Document.html#M000078">tracking_additions (XX::Document)</a><br />
81
81
  <a href="classes/Integer.html#M000023">unpack (Integer)</a><br />
82
- <a href="classes/RDoc.html#M000097">usage_from_file (RDoc)</a><br />
82
+ <a href="classes/RDoc.html#M000099">usage_from_file (RDoc)</a><br />
83
83
  <a href="classes/String.html#M000033">verilog_to_ruby (String)</a><br />
84
84
  <a href="classes/RubyVpi.html#M000086">with_coverage_analysis (RubyVpi)</a><br />
85
85
  <a href="files/bin/generate_test_rb.html#M000002">write_file (bin/generate_test.rb)</a><br />
86
+ <a href="classes/Vpi/Handle.html#M000088">x! (Vpi::Handle)</a><br />
86
87
  <a href="classes/Vpi/Handle.html#M000087">x? (Vpi::Handle)</a><br />
87
- <a href="classes/XX/XHTML.html#M000041">xhtml_ (XX::XHTML)</a><br />
88
88
  <a href="classes/XX/XHTML/Strict.html#M000043">xhtml_ (XX::XHTML::Strict)</a><br />
89
89
  <a href="classes/XX/XHTML/Transitional.html#M000042">xhtml_ (XX::XHTML::Transitional)</a><br />
90
+ <a href="classes/XX/XHTML.html#M000041">xhtml_ (XX::XHTML)</a><br />
90
91
  <a href="classes/XX/XML.html#M000037">xml_ (XX::XML)</a><br />
91
92
  <a href="classes/XX/XMLish.html#M000044">xmlish_ (XX::XMLish)</a><br />
92
93
  <a href="classes/XX/Markup/ClassMethods.html#M000050">xx_ancestors (XX::Markup::ClassMethods)</a><br />
@@ -96,27 +97,28 @@
96
97
  <a href="classes/XX/Markup/InstanceMethods.html#M000065">xx_class (XX::Markup::InstanceMethods)</a><br />
97
98
  <a href="classes/XX/Markup/InstanceMethods.html#M000071">xx_config (XX::Markup::InstanceMethods)</a><br />
98
99
  <a href="classes/XX/Markup/ClassMethods.html#M000051">xx_config (XX::Markup::ClassMethods)</a><br />
99
- <a href="classes/XX/Markup/InstanceMethods.html#M000072">xx_config_for (XX::Markup::InstanceMethods)</a><br />
100
100
  <a href="classes/XX/Markup/ClassMethods.html#M000052">xx_config_for (XX::Markup::ClassMethods)</a><br />
101
+ <a href="classes/XX/Markup/InstanceMethods.html#M000072">xx_config_for (XX::Markup::InstanceMethods)</a><br />
101
102
  <a href="classes/XX/Markup/ClassMethods.html#M000053">xx_configure (XX::Markup::ClassMethods)</a><br />
102
103
  <a href="classes/XX/Markup/InstanceMethods.html#M000073">xx_configure (XX::Markup::InstanceMethods)</a><br />
103
- <a href="classes/XX/Markup/InstanceMethods.html#M000068">xx_define_tag_method (XX::Markup::InstanceMethods)</a><br />
104
104
  <a href="classes/XX/Markup/ClassMethods.html#M000048">xx_define_tag_method (XX::Markup::ClassMethods)</a><br />
105
+ <a href="classes/XX/Markup/InstanceMethods.html#M000068">xx_define_tag_method (XX::Markup::InstanceMethods)</a><br />
105
106
  <a href="classes/XX/Markup/InstanceMethods.html#M000067">xx_define_tmp_method (XX::Markup::InstanceMethods)</a><br />
106
107
  <a href="classes/XX/Markup/ClassMethods.html#M000047">xx_define_tmp_method (XX::Markup::ClassMethods)</a><br />
107
108
  <a href="classes/XX/Markup/InstanceMethods.html#M000058">xx_doc (XX::Markup::InstanceMethods)</a><br />
108
109
  <a href="classes/XX/Markup/InstanceMethods.html#M000060">xx_markup_ (XX::Markup::InstanceMethods)</a><br />
109
110
  <a href="classes/XX/Markup/InstanceMethods.html#M000063">xx_parse_attributes (XX::Markup::InstanceMethods)</a><br />
110
111
  <a href="classes/XX/Markup/InstanceMethods.html#M000064">xx_parse_yaml_attributes (XX::Markup::InstanceMethods)</a><br />
111
- <a href="classes/XX/Markup/InstanceMethods.html#M000069">xx_remove_tag_method (XX::Markup::InstanceMethods)</a><br />
112
112
  <a href="classes/XX/Markup/ClassMethods.html#M000049">xx_remove_tag_method (XX::Markup::ClassMethods)</a><br />
113
+ <a href="classes/XX/Markup/InstanceMethods.html#M000069">xx_remove_tag_method (XX::Markup::InstanceMethods)</a><br />
113
114
  <a href="classes/XX/Markup/InstanceMethods.html#M000055">xx_tag_ (XX::Markup::InstanceMethods)</a><br />
114
- <a href="classes/XX/Markup/ClassMethods.html#M000046">xx_tag_method_name (XX::Markup::ClassMethods)</a><br />
115
115
  <a href="classes/XX/Markup/InstanceMethods.html#M000066">xx_tag_method_name (XX::Markup::InstanceMethods)</a><br />
116
+ <a href="classes/XX/Markup/ClassMethods.html#M000046">xx_tag_method_name (XX::Markup::ClassMethods)</a><br />
116
117
  <a href="classes/XX/Markup/InstanceMethods.html#M000059">xx_text_ (XX::Markup::InstanceMethods)</a><br />
117
118
  <a href="classes/XX/Markup/InstanceMethods.html#M000056">xx_which (XX::Markup::InstanceMethods)</a><br />
118
119
  <a href="classes/XX/Markup/InstanceMethods.html#M000057">xx_with_doc_in_effect (XX::Markup::InstanceMethods)</a><br />
119
- <a href="classes/Vpi/Handle.html#M000088">z? (Vpi::Handle)</a><br />
120
+ <a href="classes/Vpi/Handle.html#M000090">z! (Vpi::Handle)</a><br />
121
+ <a href="classes/Vpi/Handle.html#M000089">z? (Vpi::Handle)</a><br />
120
122
  </div>
121
123
  </div>
122
124
  </body>
@@ -11,16 +11,13 @@ module counter_rspec_bench;
11
11
 
12
12
  // connect to the Ruby side of this bench
13
13
  initial begin
14
- clock = 0;
15
- $ruby_init("ruby", "-w", "-rubygems", "counter_rspec_bench.rb");
14
+ $ruby_init("ruby", "-rubygems", "counter_rspec_bench.rb");
16
15
  end
17
16
 
18
17
  always begin
19
- #5 clock = ~clock;
20
- end
21
-
22
- always @(posedge clock) begin
18
+ #1 clock = 0;
23
19
  #1 $ruby_relay;
20
+ #1 clock = 1;
24
21
  end
25
22
 
26
23
  endmodule
@@ -2,7 +2,8 @@
2
2
 
3
3
  # This method resets the design under test.
4
4
  def Counter.reset!
5
+ # assert the reset signal for five clock cycles
5
6
  reset.intVal = 1
6
- relay_verilog
7
+ 5.times {relay_verilog}
7
8
  reset.intVal = 0
8
9
  end
@@ -1,21 +1,27 @@
1
1
  # This file runs the test.
2
2
 
3
- # These are source files that are to be compiled.
3
+ # These are Verilog source files that need to be loaded
4
+ # by the simulator before they can be simulated.
4
5
  SIMULATOR_SOURCES = [
5
6
  'counter.v',
6
7
  'counter_rspec_bench.v',
7
8
  ]
8
9
 
9
10
  # These are paths to directories which contain the
10
- # sources listed above, their dependencies, or both.
11
+ # sources listed above, the files they `include, or both.
11
12
  SIMULATOR_INCLUDES = []
12
13
 
13
14
  # This specifies the "top module" that is to be simulated.
14
15
  SIMULATOR_TARGET = 'counter_rspec_bench'
15
16
 
16
17
  # These are command-line arguments for the simulator.
17
- # They can be specified as a string or an array of strings.
18
- SIMULATOR_ARGS = {
18
+ # They can be specified as a string or an array of strings:
19
+ #
20
+ # :cver => "this is one single argument",
21
+ # :cver => ['these', 'are', 'separate', 'arguments'],
22
+ # :cver => %w[these are also separate arguments],
23
+ #
24
+ SIMULATOR_ARGUMENTS = {
19
25
  # GPL Cver
20
26
  :cver => '',
21
27
 
@@ -29,4 +35,14 @@ SIMULATOR_ARGS = {
29
35
  :vsim => '',
30
36
  }
31
37
 
38
+ # This task is invoked _before_ the simulator runs.
39
+ # It can be used to make preprations, such as converting
40
+ # Verilog header files into Ruby, for the simulation.
41
+ task :setup do
42
+ # To learn how to write Rake tasks, please see:
43
+ # http://docs.rubyrake.org/read/chapter/4#page16
44
+ end
45
+
46
+ # This command loads the Ruby-VPI runner template, which
47
+ # runs the simulator according to the information above.
32
48
  require 'ruby-vpi/runner'
@@ -12,12 +12,12 @@ context "A resetted counter's value" do
12
12
  end
13
13
 
14
14
  specify "should be zero" do
15
- Counter.count.intVal.should_equal 0
15
+ Counter.count.intVal.should == 0
16
16
  end
17
17
 
18
18
  specify "should increment by one count upon each rising clock edge" do
19
19
  LIMIT.times do |i|
20
- Counter.count.intVal.should_equal i
20
+ Counter.count.intVal.should == i
21
21
  relay_verilog # increment the counter
22
22
  end
23
23
  end
@@ -29,11 +29,11 @@ context "A counter with the maximum value" do
29
29
 
30
30
  # increment the counter to maximum value
31
31
  MAX.times {relay_verilog}
32
- Counter.count.intVal.should_equal MAX
32
+ Counter.count.intVal.should == MAX
33
33
  end
34
34
 
35
35
  specify "should overflow upon increment" do
36
36
  relay_verilog # increment the counter
37
- Counter.count.intVal.should_equal 0
37
+ Counter.count.intVal.should == 0
38
38
  end
39
39
  end
@@ -11,16 +11,13 @@ module counter_xunit_bench;
11
11
 
12
12
  // connect to the Ruby side of this bench
13
13
  initial begin
14
- clock = 0;
15
- $ruby_init("ruby", "-w", "-rubygems", "counter_xunit_bench.rb");
14
+ $ruby_init("ruby", "-rubygems", "counter_xunit_bench.rb");
16
15
  end
17
16
 
18
17
  always begin
19
- #5 clock = ~clock;
20
- end
21
-
22
- always @(posedge clock) begin
18
+ #1 clock = 0;
23
19
  #1 $ruby_relay;
20
+ #1 clock = 1;
24
21
  end
25
22
 
26
23
  endmodule
@@ -2,7 +2,8 @@
2
2
 
3
3
  # This method resets the design under test.
4
4
  def Counter.reset!
5
+ # assert the reset signal for five clock cycles
5
6
  reset.intVal = 1
6
- relay_verilog
7
+ 5.times {relay_verilog}
7
8
  reset.intVal = 0
8
9
  end
@@ -1,21 +1,27 @@
1
1
  # This file runs the test.
2
2
 
3
- # These are source files that are to be compiled.
3
+ # These are Verilog source files that need to be loaded
4
+ # by the simulator before they can be simulated.
4
5
  SIMULATOR_SOURCES = [
5
6
  'counter.v',
6
7
  'counter_xunit_bench.v',
7
8
  ]
8
9
 
9
10
  # These are paths to directories which contain the
10
- # sources listed above, their dependencies, or both.
11
+ # sources listed above, the files they `include, or both.
11
12
  SIMULATOR_INCLUDES = []
12
13
 
13
14
  # This specifies the "top module" that is to be simulated.
14
15
  SIMULATOR_TARGET = 'counter_xunit_bench'
15
16
 
16
17
  # These are command-line arguments for the simulator.
17
- # They can be specified as a string or an array of strings.
18
- SIMULATOR_ARGS = {
18
+ # They can be specified as a string or an array of strings:
19
+ #
20
+ # :cver => "this is one single argument",
21
+ # :cver => ['these', 'are', 'separate', 'arguments'],
22
+ # :cver => %w[these are also separate arguments],
23
+ #
24
+ SIMULATOR_ARGUMENTS = {
19
25
  # GPL Cver
20
26
  :cver => '',
21
27
 
@@ -29,4 +35,14 @@ SIMULATOR_ARGS = {
29
35
  :vsim => '',
30
36
  }
31
37
 
38
+ # This task is invoked _before_ the simulator runs.
39
+ # It can be used to make preprations, such as converting
40
+ # Verilog header files into Ruby, for the simulation.
41
+ task :setup do
42
+ # To learn how to write Rake tasks, please see:
43
+ # http://docs.rubyrake.org/read/chapter/4#page16
44
+ end
45
+
46
+ # This command loads the Ruby-VPI runner template, which
47
+ # runs the simulator according to the information above.
32
48
  require 'ruby-vpi/runner'
@@ -16,16 +16,13 @@ module hw5_unit_test_bench;
16
16
 
17
17
  // connect to the Ruby side of this bench
18
18
  initial begin
19
- clk = 0;
20
- $ruby_init("ruby", "-w", "-rubygems", "hw5_unit_test_bench.rb");
19
+ $ruby_init("ruby", "-rubygems", "hw5_unit_test_bench.rb");
21
20
  end
22
21
 
23
22
  always begin
24
- #5 clk = ~clk;
25
- end
26
-
27
- always @(posedge clk) begin
23
+ #1 clk = 0;
28
24
  #1 $ruby_relay;
25
+ #1 clk = 1;
29
26
  end
30
27
 
31
28
  endmodule
@@ -1,21 +1,27 @@
1
1
  # This file runs the test.
2
2
 
3
- # These are source files that are to be compiled.
3
+ # These are Verilog source files that need to be loaded
4
+ # by the simulator before they can be simulated.
4
5
  SIMULATOR_SOURCES = [
5
6
  'hw5_unit.v',
6
7
  'hw5_unit_test_bench.v',
7
8
  ]
8
9
 
9
10
  # These are paths to directories which contain the
10
- # sources listed above, their dependencies, or both.
11
+ # sources listed above, the files they `include, or both.
11
12
  SIMULATOR_INCLUDES = []
12
13
 
13
14
  # This specifies the "top module" that is to be simulated.
14
15
  SIMULATOR_TARGET = 'hw5_unit_test_bench'
15
16
 
16
17
  # These are command-line arguments for the simulator.
17
- # They can be specified as a string or an array of strings.
18
- SIMULATOR_ARGS = {
18
+ # They can be specified as a string or an array of strings:
19
+ #
20
+ # :cver => "this is one single argument",
21
+ # :cver => ['these', 'are', 'separate', 'arguments'],
22
+ # :cver => %w[these are also separate arguments],
23
+ #
24
+ SIMULATOR_ARGUMENTS = {
19
25
  # GPL Cver
20
26
  :cver => '',
21
27
 
@@ -29,4 +35,14 @@ SIMULATOR_ARGS = {
29
35
  :vsim => '',
30
36
  }
31
37
 
38
+ # This task is invoked _before_ the simulator runs.
39
+ # It can be used to make preprations, such as converting
40
+ # Verilog header files into Ruby, for the simulation.
41
+ task :setup do
42
+ # To learn how to write Rake tasks, please see:
43
+ # http://docs.rubyrake.org/read/chapter/4#page16
44
+ end
45
+
46
+ # This command loads the Ruby-VPI runner template, which
47
+ # runs the simulator according to the information above.
32
48
  require 'ruby-vpi/runner'
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: ruby-vpi
5
5
  version: !ruby/object:Gem::Version
6
- version: 11.1.1
7
- date: 2006-11-15 00:00:00 -08:00
6
+ version: 12.0.0
7
+ date: 2006-12-07 00:00:00 -08:00
8
8
  summary: Ruby interface to Verilog VPI.
9
9
  require_paths:
10
10
  - lib
@@ -37,8 +37,8 @@ files:
37
37
  - ref
38
38
  - doc
39
39
  - samp
40
- - gem_extconf.rb
41
40
  - index.html
41
+ - gem_extconf.rb
42
42
  - ext/swig_vpi.i
43
43
  - ext/vlog.c
44
44
  - ext/Rakefile
@@ -314,31 +314,32 @@ files:
314
314
  - ref/ruby/classes/Vpi/Handle.src/M000091.html
315
315
  - ref/ruby/classes/Vpi/Handle.src/M000092.html
316
316
  - ref/ruby/classes/Vpi/Handle.src/M000093.html
317
+ - ref/ruby/classes/Vpi/Handle.src/M000094.html
317
318
  - ref/ruby/classes/Vpi/Handle.src/M000095.html
319
+ - ref/ruby/classes/Vpi/Handle.src/M000097.html
318
320
  - ref/ruby/classes/Vpi/Handle/Property.src
319
321
  - ref/ruby/classes/Vpi/Handle/Property.html
320
- - ref/ruby/classes/Vpi/Handle/Property.src/M000096.html
321
- - ref/ruby/classes/RDoc.src/M000097.html
322
+ - ref/ruby/classes/Vpi/Handle/Property.src/M000098.html
323
+ - ref/ruby/classes/RDoc.src/M000099.html
322
324
  - ref/ruby/classes/RubyVpi/Config.html
323
325
  - doc/Rakefile
324
326
  - doc/figures
325
327
  - doc/images
326
- - doc/readme.erb
327
- - doc/memo.erb
328
- - doc/manual.rb
329
- - doc/common.tpl
328
+ - doc/manual.html
329
+ - doc/LICENSE
330
330
  - doc/manual.erb
331
- - doc/lib
332
- - doc/intro.inc
333
- - doc/readme.html
331
+ - doc/history.erb
332
+ - doc/history.yml
333
+ - doc/memo.erb
334
+ - doc/readme.erb
334
335
  - doc/common.css
336
+ - doc/history.html
337
+ - doc/common.tpl
335
338
  - doc/history.rb
336
- - doc/history.erb
339
+ - doc/intro.inc
340
+ - doc/lib
337
341
  - doc/memo.html
338
- - doc/manual.html
339
- - doc/history.html
340
- - doc/history.yml
341
- - doc/LICENSE
342
+ - doc/readme.html
342
343
  - doc/figures/ruby_init.png
343
344
  - doc/figures/ruby_relay.png
344
345
  - doc/figures/organization.png
@@ -389,11 +390,11 @@ files:
389
390
  - samp/counter/counter_rspec_spec.rb
390
391
  - samp/counter/counter_xunit_bench.rb
391
392
  - samp/counter/counter_xunit_runner.rake
392
- - samp/counter/counter_xunit_spec.rb
393
+ - samp/counter/counter_rspec_bench.rb
393
394
  - samp/counter/counter_xunit_proto.rb
394
- - samp/counter/counter_rspec_design.rb
395
395
  - samp/counter/counter_rspec_bench.v
396
- - samp/counter/counter_rspec_bench.rb
396
+ - samp/counter/counter_rspec_design.rb
397
+ - samp/counter/counter_xunit_spec.rb
397
398
  - samp/counter/counter_rspec_runner.rake
398
399
  test_files: []
399
400
 
data/doc/manual.rb DELETED
@@ -1,5 +0,0 @@
1
- # This is a helper file that gets loaded before manual.erb is evaluated.
2
-
3
- @fixed_in_2_0_0 = note("Fixed in 2.0.0.") do
4
- "This problem was fixed in release 2.0.0 (2006-04-17)."
5
- end