ruby-vpi 16.0.1 → 17.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.
- data/LICENSE +19 -19
- data/README +1 -1
- data/Rakefile +35 -32
- data/bin/convert.rb +28 -0
- data/bin/generate/design.rb +16 -0
- data/bin/generate/proto.rb +13 -0
- data/bin/generate/runner.rake +33 -0
- data/bin/generate/spec.rb +45 -0
- data/bin/generate.rb +177 -0
- data/bin/ruby-vpi +56 -0
- data/doc/Rakefile +20 -4
- data/doc/common.css +92 -33
- data/doc/common.inc +13 -0
- data/doc/common.tpl +42 -28
- data/doc/history.doc +11 -11
- data/doc/history.html +769 -248
- data/doc/history.inc +909 -0
- data/doc/history.rb +9 -0
- data/doc/history.yaml +69 -0
- data/doc/intro.inc +170 -178
- data/doc/lib/doc_format.rb +57 -144
- data/doc/lib/doc_proxy.rb +504 -88
- data/doc/lib/erb_content.rb +8 -8
- data/doc/lib/erb_proxy.rb +17 -17
- data/doc/manual.doc +626 -777
- data/doc/manual.html +1541 -1031
- data/doc/memo.doc +38 -36
- data/doc/memo.html +64 -28
- data/doc/readme.doc +4 -31
- data/doc/readme.html +221 -163
- data/doc/rss.erb +1 -1
- data/doc/rss.xml +73 -1761
- data/ext/Rakefile +6 -5
- data/ext/main.c +17 -15
- data/ext/relay.c +4 -7
- data/ext/relay.h +2 -2
- data/ext/swig_vpi.h +2 -2
- data/ext/swig_vpi.i +1 -2
- data/ext/swig_wrap.cin +12 -16
- data/ext/vlog.c +5 -5
- data/ext/vlog.h +2 -2
- data/lib/ruby-vpi/erb.rb +3 -3
- data/lib/ruby-vpi/float.rb +2 -2
- data/lib/ruby-vpi/rcov.rb +5 -7
- data/lib/ruby-vpi/runner.rb +43 -41
- data/lib/ruby-vpi/runner_boot_loader.rb +117 -0
- data/lib/ruby-vpi/runner_proxy.rb +6 -8
- data/lib/ruby-vpi/util.rb +10 -0
- data/lib/ruby-vpi/verilog_parser.rb +28 -56
- data/lib/ruby-vpi/vpi.rb +168 -123
- data/lib/ruby-vpi.rb +22 -143
- data/ref/c/annotated.html +1 -1
- data/ref/c/common_8h.html +1 -1
- data/ref/c/files.html +1 -1
- data/ref/c/functions.html +1 -1
- data/ref/c/functions_vars.html +1 -1
- data/ref/c/globals.html +1 -1
- data/ref/c/globals_0x63.html +1 -1
- data/ref/c/globals_0x65.html +1 -1
- data/ref/c/globals_0x66.html +1 -1
- data/ref/c/globals_0x6d.html +1 -1
- data/ref/c/globals_0x70.html +1 -1
- data/ref/c/globals_0x72.html +1 -1
- data/ref/c/globals_0x73.html +1 -1
- data/ref/c/globals_0x74.html +1 -1
- data/ref/c/globals_0x76.html +1 -1
- data/ref/c/globals_0x78.html +1 -1
- data/ref/c/globals_defs.html +1 -1
- data/ref/c/globals_defs_0x65.html +1 -1
- data/ref/c/globals_defs_0x70.html +1 -1
- data/ref/c/globals_defs_0x76.html +1 -1
- data/ref/c/globals_defs_0x78.html +1 -1
- data/ref/c/globals_enum.html +1 -1
- data/ref/c/globals_eval.html +1 -1
- data/ref/c/globals_func.html +1 -1
- data/ref/c/globals_type.html +1 -1
- data/ref/c/globals_vars.html +1 -1
- data/ref/c/index.html +1 -1
- data/ref/c/main_8c.html +1 -1
- data/ref/c/main_8h.html +1 -1
- data/ref/c/relay_8c.html +1 -1
- data/ref/c/relay_8h.html +1 -1
- data/ref/c/structt__cb__data.html +1 -1
- data/ref/c/structt__vpi__delay.html +1 -1
- data/ref/c/structt__vpi__error__info.html +1 -1
- data/ref/c/structt__vpi__strengthval.html +1 -1
- data/ref/c/structt__vpi__systf__data.html +1 -1
- data/ref/c/structt__vpi__time.html +1 -1
- data/ref/c/structt__vpi__value.html +1 -1
- data/ref/c/structt__vpi__vecval.html +1 -1
- data/ref/c/structt__vpi__vlog__info.html +1 -1
- data/ref/c/verilog_8h.html +1 -1
- data/ref/c/vlog_8c.html +1 -1
- data/ref/c/vlog_8h.html +1 -1
- data/ref/c/vpi__user_8h.html +1 -1
- data/ref/ruby/classes/ERB.html +5 -5
- data/ref/ruby/classes/ERB.src/{M000024.html → M000026.html} +0 -0
- data/ref/ruby/classes/FileUtils.html +11 -11
- data/ref/ruby/classes/FileUtils.src/{M000025.html → M000027.html} +0 -0
- data/ref/ruby/classes/FileUtils.src/{M000026.html → M000028.html} +0 -0
- data/ref/ruby/classes/Float.html +6 -6
- data/ref/ruby/classes/Float.src/{M000020.html → M000021.html} +0 -0
- data/ref/ruby/classes/Integer.html +65 -65
- data/ref/ruby/classes/Integer.src/M000009.html +12 -5
- data/ref/ruby/classes/Integer.src/M000010.html +5 -5
- data/ref/ruby/classes/Integer.src/M000011.html +5 -5
- data/ref/ruby/classes/Integer.src/M000012.html +5 -5
- data/ref/ruby/classes/Integer.src/M000013.html +5 -5
- data/ref/ruby/classes/Integer.src/M000014.html +18 -0
- data/ref/ruby/classes/Integer.src/M000017.html +12 -18
- data/ref/ruby/classes/Integer.src/M000018.html +18 -12
- data/ref/ruby/classes/Integer.src/M000019.html +12 -17
- data/ref/ruby/classes/Integer.src/M000020.html +30 -0
- data/ref/ruby/classes/RDoc.html +5 -5
- data/ref/ruby/classes/RDoc.src/{M000053.html → M000058.html} +0 -0
- data/ref/ruby/classes/{RubyVpi/Config.html → RubyVPI.html} +20 -6
- data/ref/ruby/classes/String.html +34 -15
- data/ref/ruby/classes/String.src/M000022.html +5 -28
- data/ref/ruby/classes/String.src/M000023.html +5 -5
- data/ref/ruby/classes/String.src/{M000021.html → M000024.html} +0 -0
- data/ref/ruby/classes/String.src/M000025.html +41 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.html +16 -36
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +10 -5
- data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000004.html → M000007.html} +4 -4
- data/ref/ruby/classes/VerilogParser/Module/Port.src/{M000005.html → M000008.html} +4 -4
- data/ref/ruby/classes/VerilogParser/Module.html +28 -9
- data/ref/ruby/classes/VerilogParser/Module.src/M000005.html +29 -0
- data/ref/ruby/classes/VerilogParser.html +5 -39
- data/ref/ruby/classes/VerilogParser.src/M000004.html +26 -0
- data/ref/ruby/classes/Vpi/Handle.html +179 -77
- data/ref/ruby/classes/Vpi/Handle.src/M000035.html +18 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000036.html +5 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000037.html +5 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000038.html +5 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000039.html +5 -5
- data/ref/ruby/classes/Vpi/Handle.src/M000040.html +5 -8
- data/ref/ruby/classes/Vpi/Handle.src/M000041.html +5 -8
- data/ref/ruby/classes/Vpi/Handle.src/M000042.html +5 -9
- data/ref/ruby/classes/Vpi/Handle.src/M000043.html +8 -31
- data/ref/ruby/classes/Vpi/Handle.src/M000044.html +8 -74
- data/ref/ruby/classes/Vpi/Handle.src/M000045.html +9 -17
- data/ref/ruby/classes/Vpi/Handle.src/M000046.html +31 -11
- data/ref/ruby/classes/Vpi/Handle.src/M000047.html +86 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000048.html +17 -18
- data/ref/ruby/classes/Vpi/Handle.src/M000050.html +18 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000051.html +24 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000053.html +31 -0
- data/ref/ruby/classes/Vpi/Handle.src/M000054.html +89 -0
- data/ref/ruby/classes/Vpi/S_vpi_time.html +16 -16
- data/ref/ruby/classes/Vpi/S_vpi_time.src/{M000050.html → M000055.html} +4 -4
- data/ref/ruby/classes/Vpi/S_vpi_time.src/{M000051.html → M000056.html} +5 -5
- data/ref/ruby/classes/Vpi/S_vpi_value.html +15 -15
- data/ref/ruby/classes/Vpi/S_vpi_value.src/{M000035.html → M000032.html} +5 -5
- data/ref/ruby/classes/Vpi/S_vpi_value.src/M000033.html +5 -5
- data/ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html +5 -5
- data/ref/ruby/classes/Vpi.html +6 -42
- data/ref/ruby/classes/Vpi.src/M000029.html +15 -5
- data/ref/ruby/classes/Vpi.src/M000030.html +24 -24
- data/ref/ruby/classes/Vpi.src/M000031.html +6 -8
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/{header_to_ruby_rb.html → convert_rb.html} +5 -5
- data/ref/ruby/files/bin/{generate_test_rb.html → generate_rb.html} +8 -21
- data/ref/ruby/files/lib/ruby-vpi/erb_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/float_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/integer_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rake_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rcov_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/rdoc_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +197 -0
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000001.html +17 -0
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html +18 -0
- data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +6 -19
- data/ref/ruby/files/lib/ruby-vpi/util_rb.html +101 -0
- data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +8 -1
- data/ref/ruby/files/lib/ruby-vpi/vpi_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi_rb.html +2 -14
- data/ref/ruby/fr_class_index.html +1 -3
- data/ref/ruby/fr_file_index.html +4 -2
- data/ref/ruby/fr_method_index.html +56 -51
- data/ref/ruby/index.html +1 -1
- data/samp/counter/RSpec/Rakefile +1 -0
- data/samp/counter/RSpec/counter_design.rb +15 -0
- data/samp/counter/RSpec/counter_proto.rb +10 -0
- data/samp/counter/RSpec/counter_runner.rake +44 -0
- data/samp/counter/RSpec/counter_spec.rb +39 -0
- data/samp/counter/Rakefile +1 -1
- data/samp/counter/counter.v +7 -7
- data/samp/counter/xUnit/Rakefile +1 -0
- data/samp/counter/xUnit/counter_bench.rb +95 -0
- data/samp/counter/{counter_xunit_bench.v → xUnit/counter_bench.v} +0 -0
- data/samp/counter/xUnit/counter_design.rb +15 -0
- data/samp/counter/xUnit/counter_proto.rb +10 -0
- data/samp/counter/xUnit/counter_runner.rake +44 -0
- data/samp/counter/{counter_xunit_spec.rb → xUnit/counter_spec.rb} +9 -9
- data/samp/pipelined_alu/Rakefile +1 -1
- data/samp/pipelined_alu/TestHw5UnitModel.rb +4 -5
- data/samp/pipelined_alu/hw5_unit.v +55 -85
- data/samp/pipelined_alu/hw5_unit_design.rb +51 -0
- data/samp/pipelined_alu/hw5_unit_proto.rb +4 -0
- data/samp/pipelined_alu/hw5_unit_runner.rake +43 -0
- data/samp/pipelined_alu/hw5_unit_spec.rb +64 -0
- data/samp/register_file/LICENSE +20 -0
- data/samp/register_file/README +4 -0
- data/samp/register_file/Rakefile +1 -0
- data/samp/register_file/register_file.v +18 -0
- data/samp/register_file/register_file_design.rb +11 -0
- data/samp/register_file/register_file_proto.rb +11 -0
- data/samp/register_file/register_file_runner.rake +43 -0
- data/samp/register_file/register_file_spec.rb +58 -0
- metadata +78 -66
- data/bin/generate_test.rb +0 -200
- data/bin/generate_test_tpl/bench.rb +0 -89
- data/bin/generate_test_tpl/bench.v +0 -26
- data/bin/generate_test_tpl/design.rb +0 -11
- data/bin/generate_test_tpl/proto.rb +0 -16
- data/bin/generate_test_tpl/runner.rake +0 -42
- data/bin/generate_test_tpl/spec.rb +0 -37
- data/bin/header_to_ruby.rb +0 -27
- data/ref/ruby/classes/Integer.src/M000008.html +0 -25
- data/ref/ruby/classes/Integer.src/M000016.html +0 -25
- data/ref/ruby/classes/RubyVpi.html +0 -199
- data/ref/ruby/classes/RubyVpi.src/M000027.html +0 -121
- data/ref/ruby/classes/VerilogParser/Module/Parameter.html +0 -160
- data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000007.html +0 -19
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000003.html +0 -21
- data/ref/ruby/classes/VerilogParser/Module.src/M000002.html +0 -34
- data/ref/ruby/classes/VerilogParser.src/M000001.html +0 -34
- data/ref/ruby/classes/Vpi/Handle.src/M000049.html +0 -69
- data/ref/ruby/classes/Vpi.src/M000028.html +0 -28
- data/ref/ruby/classes/Vpi.src/M000032.html +0 -22
- data/samp/counter/counter_rspec_bench.rb +0 -86
- data/samp/counter/counter_rspec_bench.v +0 -9
- data/samp/counter/counter_rspec_design.rb +0 -8
- data/samp/counter/counter_rspec_proto.rb +0 -13
- data/samp/counter/counter_rspec_runner.rake +0 -52
- data/samp/counter/counter_rspec_spec.rb +0 -39
- data/samp/counter/counter_xunit_bench.rb +0 -86
- data/samp/counter/counter_xunit_design.rb +0 -8
- data/samp/counter/counter_xunit_proto.rb +0 -13
- data/samp/counter/counter_xunit_runner.rake +0 -52
- data/samp/pipelined_alu/hw5_unit_test_bench.rb +0 -86
- data/samp/pipelined_alu/hw5_unit_test_bench.v +0 -14
- data/samp/pipelined_alu/hw5_unit_test_design.rb +0 -61
- data/samp/pipelined_alu/hw5_unit_test_proto.rb +0 -7
- data/samp/pipelined_alu/hw5_unit_test_runner.rake +0 -52
- data/samp/pipelined_alu/hw5_unit_test_spec.rb +0 -68
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: ruby-vpi
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version:
|
7
|
-
date: 2007-
|
6
|
+
version: 17.0.0
|
7
|
+
date: 2007-07-22 00:00:00 -07:00
|
8
8
|
summary: Ruby interface to IEEE 1364-2005 Verilog VPI
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -31,7 +31,6 @@ authors: []
|
|
31
31
|
files:
|
32
32
|
- LICENSE
|
33
33
|
- ext
|
34
|
-
- README
|
35
34
|
- bin
|
36
35
|
- lib
|
37
36
|
- Rakefile
|
@@ -39,6 +38,7 @@ files:
|
|
39
38
|
- index.html
|
40
39
|
- samp
|
41
40
|
- gem_extconf.rb
|
41
|
+
- README
|
42
42
|
- ref
|
43
43
|
- ext/swig_vpi.i
|
44
44
|
- ext/vlog.c
|
@@ -47,27 +47,27 @@ files:
|
|
47
47
|
- ext/extconf.rb
|
48
48
|
- ext/relay.h
|
49
49
|
- ext/main.h
|
50
|
-
- ext/main.c
|
51
50
|
- ext/verilog.h
|
52
51
|
- ext/vlog.h
|
53
52
|
- ext/relay.c
|
54
53
|
- ext/Doxyfile
|
55
54
|
- ext/vpi_user.h
|
55
|
+
- ext/main.c
|
56
56
|
- ext/swig_vpi.h
|
57
57
|
- ext/swig_wrap.cin
|
58
|
-
- bin/
|
59
|
-
- bin/
|
60
|
-
- bin/
|
61
|
-
- bin/
|
62
|
-
- bin/
|
63
|
-
- bin/
|
64
|
-
- bin/
|
65
|
-
- bin/
|
66
|
-
- bin/generate_test_tpl/spec.rb
|
58
|
+
- bin/generate
|
59
|
+
- bin/convert.rb
|
60
|
+
- bin/ruby-vpi
|
61
|
+
- bin/generate.rb
|
62
|
+
- bin/generate/runner.rake
|
63
|
+
- bin/generate/design.rb
|
64
|
+
- bin/generate/proto.rb
|
65
|
+
- bin/generate/spec.rb
|
67
66
|
- lib/ruby-vpi.rb
|
68
67
|
- lib/ruby-vpi
|
69
68
|
- lib/ruby-vpi/erb.rb
|
70
69
|
- lib/ruby-vpi/rake.rb
|
70
|
+
- lib/ruby-vpi/util.rb
|
71
71
|
- lib/ruby-vpi/runner.rb
|
72
72
|
- lib/ruby-vpi/integer.rb
|
73
73
|
- lib/ruby-vpi/rdoc.rb
|
@@ -76,6 +76,8 @@ files:
|
|
76
76
|
- lib/ruby-vpi/rcov.rb
|
77
77
|
- lib/ruby-vpi/vpi.rb
|
78
78
|
- lib/ruby-vpi/verilog_parser.rb
|
79
|
+
- lib/ruby-vpi/runner_boot_loader.rb
|
80
|
+
- doc/common.inc
|
79
81
|
- doc/Rakefile
|
80
82
|
- doc/figures
|
81
83
|
- doc/images
|
@@ -83,15 +85,16 @@ files:
|
|
83
85
|
- doc/memo.doc
|
84
86
|
- doc/manual.doc
|
85
87
|
- doc/history.doc
|
86
|
-
- doc/README
|
87
88
|
- doc/common.css
|
88
89
|
- doc/readme.doc
|
89
90
|
- doc/common.tpl
|
90
91
|
- doc/history.rb
|
91
92
|
- doc/intro.inc
|
92
93
|
- doc/lib
|
94
|
+
- doc/README
|
93
95
|
- doc/print.css
|
94
96
|
- doc/history.yaml
|
97
|
+
- doc/history.inc
|
95
98
|
- doc/memo.html
|
96
99
|
- doc/manual.html
|
97
100
|
- doc/history.html
|
@@ -133,32 +136,41 @@ files:
|
|
133
136
|
- doc/lib/erb_proxy.rb
|
134
137
|
- samp/pipelined_alu
|
135
138
|
- samp/counter
|
139
|
+
- samp/register_file
|
136
140
|
- samp/pipelined_alu/TestHw5UnitModel.rb
|
137
141
|
- samp/pipelined_alu/Hw5UnitModel.rb
|
138
142
|
- samp/pipelined_alu/README
|
139
143
|
- samp/pipelined_alu/int_gen.rb
|
140
144
|
- samp/pipelined_alu/hw5_unit.v
|
141
145
|
- samp/pipelined_alu/Rakefile
|
142
|
-
- samp/pipelined_alu/
|
143
|
-
- samp/pipelined_alu/
|
144
|
-
- samp/pipelined_alu/
|
145
|
-
- samp/pipelined_alu/
|
146
|
-
- samp/pipelined_alu/hw5_unit_test_design.rb
|
147
|
-
- samp/pipelined_alu/hw5_unit_test_proto.rb
|
146
|
+
- samp/pipelined_alu/hw5_unit_design.rb
|
147
|
+
- samp/pipelined_alu/hw5_unit_spec.rb
|
148
|
+
- samp/pipelined_alu/hw5_unit_proto.rb
|
149
|
+
- samp/pipelined_alu/hw5_unit_runner.rake
|
148
150
|
- samp/counter/counter.v
|
149
|
-
- samp/counter/
|
150
|
-
- samp/counter/counter_rspec_bench.v
|
151
|
+
- samp/counter/xUnit
|
151
152
|
- samp/counter/Rakefile
|
152
|
-
- samp/counter/
|
153
|
-
- samp/counter/
|
154
|
-
- samp/counter/
|
155
|
-
- samp/counter/
|
156
|
-
- samp/counter/
|
157
|
-
- samp/counter/
|
158
|
-
- samp/counter/
|
159
|
-
- samp/counter/
|
160
|
-
- samp/counter/
|
161
|
-
- samp/counter/
|
153
|
+
- samp/counter/RSpec
|
154
|
+
- samp/counter/xUnit/counter_bench.rb
|
155
|
+
- samp/counter/xUnit/counter_bench.v
|
156
|
+
- samp/counter/xUnit/counter_design.rb
|
157
|
+
- samp/counter/xUnit/counter_proto.rb
|
158
|
+
- samp/counter/xUnit/counter_runner.rake
|
159
|
+
- samp/counter/xUnit/counter_spec.rb
|
160
|
+
- samp/counter/xUnit/Rakefile
|
161
|
+
- samp/counter/RSpec/counter_design.rb
|
162
|
+
- samp/counter/RSpec/counter_proto.rb
|
163
|
+
- samp/counter/RSpec/counter_runner.rake
|
164
|
+
- samp/counter/RSpec/counter_spec.rb
|
165
|
+
- samp/counter/RSpec/Rakefile
|
166
|
+
- samp/register_file/LICENSE
|
167
|
+
- samp/register_file/Rakefile
|
168
|
+
- samp/register_file/README
|
169
|
+
- samp/register_file/register_file.v
|
170
|
+
- samp/register_file/register_file_design.rb
|
171
|
+
- samp/register_file/register_file_proto.rb
|
172
|
+
- samp/register_file/register_file_runner.rake
|
173
|
+
- samp/register_file/register_file_spec.rb
|
162
174
|
- ref/c
|
163
175
|
- ref/ruby
|
164
176
|
- ref/c/doxygen.png
|
@@ -219,14 +231,14 @@ files:
|
|
219
231
|
- ref/ruby/fr_class_index.html
|
220
232
|
- ref/ruby/fr_method_index.html
|
221
233
|
- ref/ruby/index.html
|
222
|
-
- ref/ruby/files/bin
|
223
234
|
- ref/ruby/files/lib
|
224
|
-
- ref/ruby/files/bin
|
225
|
-
- ref/ruby/files/bin/header_to_ruby_rb.html
|
226
|
-
- ref/ruby/files/lib/ruby-vpi_rb.html
|
235
|
+
- ref/ruby/files/bin
|
227
236
|
- ref/ruby/files/lib/ruby-vpi
|
237
|
+
- ref/ruby/files/lib/ruby-vpi_rb.html
|
238
|
+
- ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src
|
228
239
|
- ref/ruby/files/lib/ruby-vpi/erb_rb.html
|
229
240
|
- ref/ruby/files/lib/ruby-vpi/rake_rb.html
|
241
|
+
- ref/ruby/files/lib/ruby-vpi/util_rb.html
|
230
242
|
- ref/ruby/files/lib/ruby-vpi/runner_rb.html
|
231
243
|
- ref/ruby/files/lib/ruby-vpi/integer_rb.html
|
232
244
|
- ref/ruby/files/lib/ruby-vpi/rdoc_rb.html
|
@@ -235,6 +247,11 @@ files:
|
|
235
247
|
- ref/ruby/files/lib/ruby-vpi/rcov_rb.html
|
236
248
|
- ref/ruby/files/lib/ruby-vpi/vpi_rb.html
|
237
249
|
- ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html
|
250
|
+
- ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html
|
251
|
+
- ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000001.html
|
252
|
+
- ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html
|
253
|
+
- ref/ruby/files/bin/convert_rb.html
|
254
|
+
- ref/ruby/files/bin/generate_rb.html
|
238
255
|
- ref/ruby/classes/VerilogParser.src
|
239
256
|
- ref/ruby/classes/VerilogParser
|
240
257
|
- ref/ruby/classes/Integer.src
|
@@ -242,7 +259,6 @@ files:
|
|
242
259
|
- ref/ruby/classes/String.src
|
243
260
|
- ref/ruby/classes/ERB.src
|
244
261
|
- ref/ruby/classes/FileUtils.src
|
245
|
-
- ref/ruby/classes/RubyVpi.src
|
246
262
|
- ref/ruby/classes/Vpi.src
|
247
263
|
- ref/ruby/classes/Vpi
|
248
264
|
- ref/ruby/classes/RDoc.src
|
@@ -252,56 +268,50 @@ files:
|
|
252
268
|
- ref/ruby/classes/String.html
|
253
269
|
- ref/ruby/classes/ERB.html
|
254
270
|
- ref/ruby/classes/FileUtils.html
|
255
|
-
- ref/ruby/classes/
|
256
|
-
- ref/ruby/classes/RubyVpi
|
271
|
+
- ref/ruby/classes/RubyVPI.html
|
257
272
|
- ref/ruby/classes/Vpi.html
|
258
273
|
- ref/ruby/classes/RDoc.html
|
259
|
-
- ref/ruby/classes/VerilogParser.src/
|
274
|
+
- ref/ruby/classes/VerilogParser.src/M000004.html
|
260
275
|
- ref/ruby/classes/VerilogParser/Module.src
|
261
276
|
- ref/ruby/classes/VerilogParser/Module
|
262
277
|
- ref/ruby/classes/VerilogParser/Module.html
|
263
|
-
- ref/ruby/classes/VerilogParser/Module.src/
|
278
|
+
- ref/ruby/classes/VerilogParser/Module.src/M000005.html
|
264
279
|
- ref/ruby/classes/VerilogParser/Module/Port.src
|
265
|
-
- ref/ruby/classes/VerilogParser/Module/Parameter.src
|
266
280
|
- ref/ruby/classes/VerilogParser/Module/Port.html
|
267
|
-
- ref/ruby/classes/VerilogParser/Module/Parameter.html
|
268
|
-
- ref/ruby/classes/VerilogParser/Module/Port.src/M000003.html
|
269
|
-
- ref/ruby/classes/VerilogParser/Module/Port.src/M000004.html
|
270
|
-
- ref/ruby/classes/VerilogParser/Module/Port.src/M000005.html
|
271
281
|
- ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html
|
272
|
-
- ref/ruby/classes/VerilogParser/Module/
|
273
|
-
- ref/ruby/classes/
|
282
|
+
- ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html
|
283
|
+
- ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html
|
274
284
|
- ref/ruby/classes/Integer.src/M000009.html
|
275
285
|
- ref/ruby/classes/Integer.src/M000010.html
|
276
286
|
- ref/ruby/classes/Integer.src/M000011.html
|
277
287
|
- ref/ruby/classes/Integer.src/M000012.html
|
278
288
|
- ref/ruby/classes/Integer.src/M000013.html
|
279
|
-
- ref/ruby/classes/Integer.src/
|
289
|
+
- ref/ruby/classes/Integer.src/M000014.html
|
280
290
|
- ref/ruby/classes/Integer.src/M000017.html
|
281
291
|
- ref/ruby/classes/Integer.src/M000018.html
|
282
292
|
- ref/ruby/classes/Integer.src/M000019.html
|
283
|
-
- ref/ruby/classes/
|
284
|
-
- ref/ruby/classes/
|
293
|
+
- ref/ruby/classes/Integer.src/M000020.html
|
294
|
+
- ref/ruby/classes/Float.src/M000021.html
|
285
295
|
- ref/ruby/classes/String.src/M000022.html
|
286
296
|
- ref/ruby/classes/String.src/M000023.html
|
287
|
-
- ref/ruby/classes/
|
288
|
-
- ref/ruby/classes/
|
289
|
-
- ref/ruby/classes/
|
290
|
-
- ref/ruby/classes/
|
291
|
-
- ref/ruby/classes/
|
297
|
+
- ref/ruby/classes/String.src/M000024.html
|
298
|
+
- ref/ruby/classes/String.src/M000025.html
|
299
|
+
- ref/ruby/classes/ERB.src/M000026.html
|
300
|
+
- ref/ruby/classes/FileUtils.src/M000027.html
|
301
|
+
- ref/ruby/classes/FileUtils.src/M000028.html
|
292
302
|
- ref/ruby/classes/Vpi.src/M000029.html
|
293
303
|
- ref/ruby/classes/Vpi.src/M000030.html
|
294
304
|
- ref/ruby/classes/Vpi.src/M000031.html
|
295
|
-
- ref/ruby/classes/Vpi.src/M000032.html
|
296
305
|
- ref/ruby/classes/Vpi/S_vpi_value.src
|
297
306
|
- ref/ruby/classes/Vpi/Handle.src
|
298
307
|
- ref/ruby/classes/Vpi/S_vpi_time.src
|
299
308
|
- ref/ruby/classes/Vpi/S_vpi_value.html
|
300
309
|
- ref/ruby/classes/Vpi/Handle.html
|
301
310
|
- ref/ruby/classes/Vpi/S_vpi_time.html
|
311
|
+
- ref/ruby/classes/Vpi/S_vpi_value.src/M000032.html
|
302
312
|
- ref/ruby/classes/Vpi/S_vpi_value.src/M000033.html
|
303
313
|
- ref/ruby/classes/Vpi/S_vpi_value.src/M000034.html
|
304
|
-
- ref/ruby/classes/Vpi/
|
314
|
+
- ref/ruby/classes/Vpi/Handle.src/M000035.html
|
305
315
|
- ref/ruby/classes/Vpi/Handle.src/M000036.html
|
306
316
|
- ref/ruby/classes/Vpi/Handle.src/M000037.html
|
307
317
|
- ref/ruby/classes/Vpi/Handle.src/M000038.html
|
@@ -313,12 +323,15 @@ files:
|
|
313
323
|
- ref/ruby/classes/Vpi/Handle.src/M000044.html
|
314
324
|
- ref/ruby/classes/Vpi/Handle.src/M000045.html
|
315
325
|
- ref/ruby/classes/Vpi/Handle.src/M000046.html
|
326
|
+
- ref/ruby/classes/Vpi/Handle.src/M000047.html
|
316
327
|
- ref/ruby/classes/Vpi/Handle.src/M000048.html
|
317
|
-
- ref/ruby/classes/Vpi/Handle.src/
|
318
|
-
- ref/ruby/classes/Vpi/
|
319
|
-
- ref/ruby/classes/Vpi/
|
320
|
-
- ref/ruby/classes/
|
321
|
-
- ref/ruby/classes/
|
328
|
+
- ref/ruby/classes/Vpi/Handle.src/M000050.html
|
329
|
+
- ref/ruby/classes/Vpi/Handle.src/M000051.html
|
330
|
+
- ref/ruby/classes/Vpi/Handle.src/M000053.html
|
331
|
+
- ref/ruby/classes/Vpi/Handle.src/M000054.html
|
332
|
+
- ref/ruby/classes/Vpi/S_vpi_time.src/M000055.html
|
333
|
+
- ref/ruby/classes/Vpi/S_vpi_time.src/M000056.html
|
334
|
+
- ref/ruby/classes/RDoc.src/M000058.html
|
322
335
|
test_files: []
|
323
336
|
|
324
337
|
rdoc_options: []
|
@@ -326,8 +339,7 @@ rdoc_options: []
|
|
326
339
|
extra_rdoc_files: []
|
327
340
|
|
328
341
|
executables:
|
329
|
-
-
|
330
|
-
- header_to_ruby.rb
|
342
|
+
- ruby-vpi
|
331
343
|
extensions:
|
332
344
|
- gem_extconf.rb
|
333
345
|
requirements:
|
@@ -350,7 +362,7 @@ dependencies:
|
|
350
362
|
requirements:
|
351
363
|
- - ">="
|
352
364
|
- !ruby/object:Gem::Version
|
353
|
-
version: 0.
|
365
|
+
version: 1.0.0
|
354
366
|
version:
|
355
367
|
- !ruby/object:Gem::Dependency
|
356
368
|
name: rcov
|
data/bin/generate_test.rb
DELETED
@@ -1,200 +0,0 @@
|
|
1
|
-
# Generates Ruby-VPI tests from Verilog 2001 module declarations.
|
2
|
-
#
|
3
|
-
# * The standard input stream is read if no input files are specified.
|
4
|
-
#
|
5
|
-
# * The first input signal in a module's declaration is assumed to be the
|
6
|
-
# clocking signal.
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# = Progress indicators
|
10
|
-
#
|
11
|
-
# module:: A Verilog module has been identified.
|
12
|
-
#
|
13
|
-
# create:: A file is being created because it does not exist.
|
14
|
-
#
|
15
|
-
# skip:: A file is being skipped because it is already up to date.
|
16
|
-
#
|
17
|
-
# update:: A file will be updated because it is out of date. A text merging
|
18
|
-
# tool (see MERGER) will be launched to transfer content from the old
|
19
|
-
# file (*.old) and the new file (*.new) to the out of date file. If a
|
20
|
-
# text merging tool is not specified, then you will have to do the
|
21
|
-
# merging by hand.
|
22
|
-
#
|
23
|
-
#
|
24
|
-
# = Environment variables
|
25
|
-
#
|
26
|
-
# MERGER:: A command that invokes a text merging tool with three arguments: (1)
|
27
|
-
# old file, (2) new file, (3) output file. The tool's output should be
|
28
|
-
# written to the output file.
|
29
|
-
#
|
30
|
-
#--
|
31
|
-
# Copyright 2006 Suraj N. Kurapati
|
32
|
-
# See the file named LICENSE for details.
|
33
|
-
|
34
|
-
require 'ruby-vpi' # for project info
|
35
|
-
require 'ruby-vpi/verilog_parser'
|
36
|
-
require 'fileutils'
|
37
|
-
require 'digest/md5'
|
38
|
-
|
39
|
-
|
40
|
-
# Notify the user about some action being performed.
|
41
|
-
def notify *args # :nodoc:
|
42
|
-
printf "%8s %s\n", *args
|
43
|
-
end
|
44
|
-
|
45
|
-
# Writes the given contents to the file at the given path. If the given path
|
46
|
-
# already exists, then a backup is created before invoking the merging tool.
|
47
|
-
def write_file aPath, aContent # :nodoc:
|
48
|
-
if File.exist? aPath
|
49
|
-
oldDigest = Digest::MD5.digest(File.read(aPath))
|
50
|
-
newDigest = Digest::MD5.digest(aContent)
|
51
|
-
|
52
|
-
if oldDigest == newDigest
|
53
|
-
notify :skip, aPath
|
54
|
-
else
|
55
|
-
notify :update, aPath
|
56
|
-
cur, old, new = aPath, "#{aPath}.old", "#{aPath}.new"
|
57
|
-
|
58
|
-
FileUtils.cp cur, old, :preserve => true
|
59
|
-
File.open(new, 'w') {|f| f << aContent}
|
60
|
-
|
61
|
-
if m = ENV['MERGER']
|
62
|
-
system "#{m} #{old.inspect} #{new.inspect} #{cur.inspect}"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
else
|
66
|
-
notify :create, aPath
|
67
|
-
File.open(aPath, 'w') {|f| f << aContent}
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
|
72
|
-
require 'ruby-vpi/erb'
|
73
|
-
|
74
|
-
# Template used for generating output.
|
75
|
-
class Template < ERB # :nodoc:
|
76
|
-
TEMPLATE_PATH = __FILE__.sub %r{\.rb$}, '_tpl'
|
77
|
-
|
78
|
-
def initialize aName
|
79
|
-
super File.read(File.join(TEMPLATE_PATH, aName))
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
# Holds information about the output destinations of a parsed Verilog module.
|
86
|
-
class OutputInfo # :nodoc:
|
87
|
-
RUBY_EXT = '.rb'
|
88
|
-
VERILOG_EXT = '.v'
|
89
|
-
RUNNER_EXT = '.rake'
|
90
|
-
|
91
|
-
SPEC_FORMATS = [:rSpec, :tSpec, :xUnit, :generic]
|
92
|
-
|
93
|
-
attr_reader :verilogBenchName, :verilogBenchPath, :rubyBenchName, :rubyBenchPath, :designName, :designClassName, :designPath, :specName, :specClassName, :specFormat, :specPath, :rubyVpiPath, :runnerName, :runnerPath, :protoName, :protoPath
|
94
|
-
|
95
|
-
attr_reader :testName, :suffix, :benchSuffix, :designSuffix, :specSuffix, :runnerSuffix, :protoSuffix
|
96
|
-
|
97
|
-
def initialize aModuleName, aSpecFormat, aTestName, aRubyVpiPath
|
98
|
-
raise ArgumentError unless SPEC_FORMATS.include? aSpecFormat
|
99
|
-
@specFormat = aSpecFormat
|
100
|
-
@testName = aTestName
|
101
|
-
|
102
|
-
@suffix = '_' + @testName
|
103
|
-
@benchSuffix = @suffix + '_bench'
|
104
|
-
@designSuffix = @suffix + '_design'
|
105
|
-
@specSuffix = @suffix + '_spec'
|
106
|
-
@runnerSuffix = @suffix + '_runner'
|
107
|
-
@protoSuffix = @suffix + '_proto'
|
108
|
-
|
109
|
-
@rubyVpiPath = aRubyVpiPath
|
110
|
-
|
111
|
-
@verilogBenchName = aModuleName + @benchSuffix
|
112
|
-
@verilogBenchPath = @verilogBenchName + VERILOG_EXT
|
113
|
-
|
114
|
-
@rubyBenchName = aModuleName + @benchSuffix
|
115
|
-
@rubyBenchPath = @rubyBenchName + RUBY_EXT
|
116
|
-
|
117
|
-
@designName = aModuleName + @designSuffix
|
118
|
-
@designPath = @designName + RUBY_EXT
|
119
|
-
|
120
|
-
@protoName = aModuleName + @protoSuffix
|
121
|
-
@protoPath = @protoName + RUBY_EXT
|
122
|
-
|
123
|
-
@specName = aModuleName + @specSuffix
|
124
|
-
@specPath = @specName + RUBY_EXT
|
125
|
-
|
126
|
-
@designClassName = aModuleName.to_ruby_const_name
|
127
|
-
@specClassName = @specName.to_ruby_const_name
|
128
|
-
|
129
|
-
@runnerName = aModuleName + @runnerSuffix
|
130
|
-
@runnerPath = @runnerName + RUNNER_EXT
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
if File.basename($0) == File.basename(__FILE__)
|
137
|
-
# obtain templates for output generation
|
138
|
-
VERILOG_BENCH_TEMPLATE = Template.new('bench.v')
|
139
|
-
RUBY_BENCH_TEMPLATE = Template.new('bench.rb')
|
140
|
-
DESIGN_TEMPLATE = Template.new('design.rb')
|
141
|
-
PROTO_TEMPLATE = Template.new('proto.rb')
|
142
|
-
SPEC_TEMPLATE = Template.new('spec.rb')
|
143
|
-
RUNNER_TEMPLATE = Template.new('runner.rake')
|
144
|
-
|
145
|
-
|
146
|
-
# parse command-line options
|
147
|
-
require 'optparse'
|
148
|
-
|
149
|
-
optSpecFmt = :generic
|
150
|
-
optTestName = 'test'
|
151
|
-
|
152
|
-
opts = OptionParser.new
|
153
|
-
opts.banner = "Usage: #{File.basename __FILE__} [options] [files]"
|
154
|
-
|
155
|
-
opts.on '-h', '--help', 'show this help message' do
|
156
|
-
require 'ruby-vpi/rdoc'
|
157
|
-
RDoc.usage_from_file __FILE__
|
158
|
-
|
159
|
-
puts opts
|
160
|
-
exit
|
161
|
-
end
|
162
|
-
|
163
|
-
opts.on '--xunit', '--test-unit', 'use xUnit (Test::Unit) specification format' do |val|
|
164
|
-
optSpecFmt = :xUnit if val
|
165
|
-
end
|
166
|
-
|
167
|
-
opts.on '--rspec', 'use rSpec specification format' do |val|
|
168
|
-
optSpecFmt = :rSpec if val
|
169
|
-
end
|
170
|
-
|
171
|
-
opts.on '--tspec', '--test-spec', 'use test/spec specification format' do |val|
|
172
|
-
optSpecFmt = :tSpec if val
|
173
|
-
end
|
174
|
-
|
175
|
-
opts.on '-n', '--name NAME', 'insert NAME into the names of generated files' do |val|
|
176
|
-
optTestName = val
|
177
|
-
end
|
178
|
-
|
179
|
-
opts.parse! ARGV
|
180
|
-
|
181
|
-
|
182
|
-
v = VerilogParser.new(ARGF.read)
|
183
|
-
|
184
|
-
v.modules.each do |m|
|
185
|
-
puts
|
186
|
-
notify :module, m.name
|
187
|
-
|
188
|
-
o = OutputInfo.new(m.name, optSpecFmt, optTestName, File.dirname(File.dirname(__FILE__)))
|
189
|
-
|
190
|
-
# generate output
|
191
|
-
aParseInfo, aModuleInfo, aOutputInfo = v.freeze, m.freeze, o.freeze
|
192
|
-
|
193
|
-
write_file o.runnerPath, RUNNER_TEMPLATE.result(binding)
|
194
|
-
write_file o.verilogBenchPath, VERILOG_BENCH_TEMPLATE.result(binding)
|
195
|
-
write_file o.rubyBenchPath, RUBY_BENCH_TEMPLATE.result(binding)
|
196
|
-
write_file o.designPath, DESIGN_TEMPLATE.result(binding)
|
197
|
-
write_file o.protoPath, PROTO_TEMPLATE.result(binding)
|
198
|
-
write_file o.specPath, SPEC_TEMPLATE.result(binding)
|
199
|
-
end
|
200
|
-
end
|
@@ -1,89 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
clock = aOutputInfo.designClassName + '.' + aModuleInfo.ports.first.name
|
3
|
-
%>
|
4
|
-
# This file is the Ruby side of the bench.
|
5
|
-
|
6
|
-
require 'rubygems'
|
7
|
-
require 'ruby-vpi'
|
8
|
-
|
9
|
-
RubyVpi.init_bench :<%= aOutputInfo.designClassName %>, :<%= aOutputInfo.specFormat %> do
|
10
|
-
##
|
11
|
-
# This block is executed whenever Vpi::simulate is invoked.
|
12
|
-
#
|
13
|
-
# It simulates the design under test. This is typically done
|
14
|
-
# by toggling the clock signal, as demonstrated below.
|
15
|
-
##
|
16
|
-
|
17
|
-
##
|
18
|
-
# We are currently here (marked by the ! signs):
|
19
|
-
#
|
20
|
-
# !
|
21
|
-
# !
|
22
|
-
# ! ____ ____ ____ ____
|
23
|
-
# ___!/ \____/ \____/ \____/ \
|
24
|
-
# !
|
25
|
-
# !
|
26
|
-
#
|
27
|
-
##
|
28
|
-
|
29
|
-
<%= clock %>.intVal = 1
|
30
|
-
|
31
|
-
##
|
32
|
-
# After setting the clock signal to high, we are here:
|
33
|
-
#
|
34
|
-
# !
|
35
|
-
# !
|
36
|
-
# !____ ____ ____ ____
|
37
|
-
# ____/! \____/ \____/ \____/ \
|
38
|
-
# !
|
39
|
-
# !
|
40
|
-
#
|
41
|
-
##
|
42
|
-
|
43
|
-
advance_time
|
44
|
-
|
45
|
-
##
|
46
|
-
# After advancing the time, we are here:
|
47
|
-
#
|
48
|
-
# !
|
49
|
-
# !
|
50
|
-
# ____! ____ ____ ____
|
51
|
-
# ____/ !\____/ \____/ \____/ \
|
52
|
-
# !
|
53
|
-
# !
|
54
|
-
#
|
55
|
-
##
|
56
|
-
|
57
|
-
<%= clock %>.intVal = 0
|
58
|
-
|
59
|
-
##
|
60
|
-
# After setting the clock signal to low, we are here:
|
61
|
-
#
|
62
|
-
# !
|
63
|
-
# !
|
64
|
-
# ____ ! ____ ____ ____
|
65
|
-
# ____/ \!____/ \____/ \____/ \
|
66
|
-
# !
|
67
|
-
# !
|
68
|
-
#
|
69
|
-
##
|
70
|
-
|
71
|
-
advance_time
|
72
|
-
|
73
|
-
##
|
74
|
-
# After advancing the time, we are here:
|
75
|
-
#
|
76
|
-
#
|
77
|
-
# !
|
78
|
-
# !
|
79
|
-
# ____ ! ____ ____ ____
|
80
|
-
# ____/ \____!/ \____/ \____/ \
|
81
|
-
# !
|
82
|
-
# !
|
83
|
-
#
|
84
|
-
##
|
85
|
-
|
86
|
-
##
|
87
|
-
# This process repeats when Vpi::simulate is invoked again.
|
88
|
-
##
|
89
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
# Returns a comma-separated string of parameter declarations in Verilog module instantiation format.
|
3
|
-
def make_inst_param_decl aParams
|
4
|
-
aParams.map do |param|
|
5
|
-
".#{param.name}(#{param.name})"
|
6
|
-
end.join(', ')
|
7
|
-
end
|
8
|
-
%>
|
9
|
-
// This file is the Verilog side of the bench.
|
10
|
-
module <%= aOutputInfo.verilogBenchName %>;
|
11
|
-
<% aModuleInfo.parameters.each do |param| %>
|
12
|
-
parameter <%= param.decl %>;
|
13
|
-
<% end %>
|
14
|
-
<% aModuleInfo.ports.each do |port| %>
|
15
|
-
<%= port.input? ? 'reg' : 'wire' %> <%= port.size %> <%= port.name %>;
|
16
|
-
<% end %>
|
17
|
-
|
18
|
-
<%= aModuleInfo.name %> <%
|
19
|
-
instConfigDecl = make_inst_param_decl(aModuleInfo.parameters)
|
20
|
-
|
21
|
-
unless instConfigDecl.empty?
|
22
|
-
%>#(<%= instConfigDecl %>)<%
|
23
|
-
end
|
24
|
-
|
25
|
-
%> <%= aOutputInfo.verilogBenchName %>_design(<%= make_inst_param_decl(aModuleInfo.ports) %>);
|
26
|
-
endmodule
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# This is a Ruby interface to the design under test.
|
2
|
-
<% aParseInfo.constants.each do |var| %>
|
3
|
-
<%= var.name.to_ruby_const_name %> = <%= var.value.verilog_to_ruby %>
|
4
|
-
<% end %>
|
5
|
-
|
6
|
-
# This method resets the design under test.
|
7
|
-
def <%= aOutputInfo.designClassName %>.reset!
|
8
|
-
<% aModuleInfo.ports.select { |p| p.input? }[1..-1].each do |port| # using [1..] because the first signal is the clock %>
|
9
|
-
<%= port.name %>.hexStrVal = 'x'
|
10
|
-
<% end %>
|
11
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# This is a prototype of the design under test.
|
2
|
-
|
3
|
-
# When prototyping is enabled, Vpi::advance_time invokes this
|
4
|
-
# method instead of transferring control to the Verilog simulator.
|
5
|
-
def <%= aOutputInfo.designClassName %>.simulate!
|
6
|
-
if <%= aModuleInfo.ports.first.name %>.intVal == 1
|
7
|
-
# discard old outputs
|
8
|
-
<% aModuleInfo.ports.reject { |p| p.input? }.each do |port| %>
|
9
|
-
<%= port.name %>.hexStrVal = 'x'
|
10
|
-
<% end %>
|
11
|
-
|
12
|
-
# process new inputs
|
13
|
-
|
14
|
-
# produce new outputs
|
15
|
-
end
|
16
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# This file runs the test.
|
2
|
-
|
3
|
-
# These are Verilog source files that need to be loaded
|
4
|
-
# by the simulator before they can be simulated.
|
5
|
-
SIMULATOR_SOURCES = [
|
6
|
-
'<%= aModuleInfo.name %>.v',
|
7
|
-
'<%= aOutputInfo.verilogBenchPath %>',
|
8
|
-
]
|
9
|
-
|
10
|
-
# These are paths to directories which contain the
|
11
|
-
# sources listed above, the files they `include, or both.
|
12
|
-
SIMULATOR_INCLUDES = []
|
13
|
-
|
14
|
-
# This specifies the "top module" that is to be simulated.
|
15
|
-
SIMULATOR_TARGET = '<%= aOutputInfo.verilogBenchName %>'
|
16
|
-
|
17
|
-
# These are command-line arguments for the simulator.
|
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 = {
|
25
|
-
<% RubyVpi::Config::SIMULATORS.each_pair do |id, sim| %>
|
26
|
-
# <%= sim.name %>
|
27
|
-
:<%= id %> => '',
|
28
|
-
|
29
|
-
<% end %>
|
30
|
-
}
|
31
|
-
|
32
|
-
# This task is invoked _before_ the simulator runs.
|
33
|
-
# It can be used to make preprations, such as converting
|
34
|
-
# Verilog header files into Ruby, for the simulation.
|
35
|
-
task :setup do
|
36
|
-
# To learn how to write Rake tasks, please see:
|
37
|
-
# http://docs.rubyrake.org/read/chapter/4#page16
|
38
|
-
end
|
39
|
-
|
40
|
-
# This command loads the Ruby-VPI runner template, which
|
41
|
-
# runs the simulator according to the information above.
|
42
|
-
require 'ruby-vpi/runner'
|