ruby-vpi 16.0.1 → 17.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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'
|