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
@@ -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