ruby-vpi 7.2.0 → 7.3.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/HEADER +4 -5
- data/HISTORY +18 -2
- data/MEMO +10 -6
- data/Rakefile +11 -14
- data/bin/generate_test.rb +7 -58
- data/bin/generate_test_tpl/bench.v +15 -19
- data/bin/generate_test_tpl/design.rb +8 -8
- data/bin/generate_test_tpl/spec.rb +2 -2
- data/bin/header_to_ruby.rb +2 -27
- data/doc/xhtml/background.organization.html +1 -1
- data/doc/xhtml/index.html +2 -2
- data/header.html +3 -6
- data/header.part.html +3 -6
- data/history.html +35 -8
- data/history.part.html +32 -2
- data/lib/ruby-vpi/verilog_parser.rb +136 -0
- data/lib/ruby-vpi/vpi_util.rb +10 -0
- data/memo.html +19 -17
- data/memo.part.html +16 -11
- data/readme.html +3 -6
- 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_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/hierarchy.html +1 -1
- data/ref/c/index.html +1 -1
- data/ref/c/relay_8cin.html +1 -1
- data/ref/c/relay_8hin.html +1 -1
- data/ref/c/ruby-vpi_8c.html +1 -1
- data/ref/c/structrelay____RubyOptions____def.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/swig_8cin.html +1 -1
- data/ref/c/swig_8hin.html +1 -1
- data/ref/c/verilog_8h.html +1 -1
- data/ref/c/vlog_8cin.html +1 -1
- data/ref/c/vlog_8hin.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/{M000011.html → M000018.html} +0 -0
- data/ref/ruby/classes/FileUtils.html +10 -10
- data/ref/ruby/classes/FileUtils.src/{M000065.html → M000073.html} +0 -0
- data/ref/ruby/classes/FileUtils.src/{M000066.html → M000074.html} +0 -0
- data/ref/ruby/classes/OutputInfo.html +5 -5
- data/ref/ruby/classes/OutputInfo.src/{M000007.html → M000014.html} +37 -37
- data/ref/ruby/classes/RDoc.html +5 -5
- data/ref/ruby/classes/RDoc.src/{M000069.html → M000077.html} +0 -0
- data/ref/ruby/classes/RubyVPI.html +10 -10
- data/ref/ruby/classes/RubyVPI.src/{M000067.html → M000075.html} +0 -0
- data/ref/ruby/classes/RubyVPI.src/{M000068.html → M000076.html} +0 -0
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +72 -35
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000065.html +18 -0
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000066.html +18 -0
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000059.html → M000067.html} +8 -8
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000060.html → M000068.html} +29 -29
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000061.html → M000069.html} +63 -63
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000062.html → M000070.html} +106 -106
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000063.html → M000071.html} +12 -12
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/{M000064.html → M000072.html} +4 -4
- data/ref/ruby/classes/String.html +27 -9
- data/ref/ruby/classes/String.src/M000016.html +41 -0
- data/ref/ruby/classes/String.src/M000017.html +18 -0
- data/ref/ruby/classes/Table.html +20 -20
- data/ref/ruby/classes/Table.src/{M000003.html → M000010.html} +0 -0
- data/ref/ruby/classes/Table.src/{M000004.html → M000011.html} +0 -0
- data/ref/ruby/classes/Table.src/{M000005.html → M000012.html} +0 -0
- data/ref/ruby/classes/Table.src/{M000006.html → M000013.html} +0 -0
- data/ref/ruby/classes/Template.html +5 -5
- data/ref/ruby/classes/Template.src/{M000010.html → M000015.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Parameter.html +160 -0
- data/ref/ruby/classes/VerilogParser/Module/Parameter.src/M000009.html +21 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.html +207 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000005.html +21 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +18 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +18 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +18 -0
- data/ref/ruby/classes/VerilogParser/Module.html +172 -0
- data/ref/ruby/classes/VerilogParser/Module.src/M000004.html +29 -0
- data/ref/ruby/classes/{ModuleInfo.html → VerilogParser.html} +38 -50
- data/ref/ruby/classes/VerilogParser.src/M000003.html +34 -0
- data/ref/ruby/classes/XX/Document.html +45 -45
- data/ref/ruby/classes/XX/Document.src/M000056.html +9 -8
- data/ref/ruby/classes/XX/Document.src/M000057.html +7 -21
- data/ref/ruby/classes/XX/Document.src/M000058.html +7 -85
- data/ref/ruby/classes/XX/Document.src/{M000053.html → M000059.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000054.html → M000060.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/{M000055.html → M000061.html} +0 -0
- data/ref/ruby/classes/XX/Document.src/M000062.html +21 -0
- data/ref/ruby/classes/XX/Document.src/M000063.html +34 -0
- data/ref/ruby/classes/XX/Document.src/M000064.html +98 -0
- data/ref/ruby/classes/XX/HTML4/Strict.html +5 -5
- data/ref/ruby/classes/XX/HTML4/Strict.src/{M000016.html → M000022.html} +0 -0
- data/ref/ruby/classes/XX/HTML4/Transitional.html +5 -5
- data/ref/ruby/classes/XX/HTML4/Transitional.src/{M000015.html → M000021.html} +0 -0
- data/ref/ruby/classes/XX/HTML4.html +5 -5
- data/ref/ruby/classes/XX/HTML4.src/{M000014.html → M000020.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.html +40 -40
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000028.html +9 -14
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000029.html +7 -9
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000024.html → M000030.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000025.html → M000031.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000026.html → M000032.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/{M000027.html → M000033.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000034.html +27 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000035.html +22 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.html +100 -100
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000036.html +43 -19
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000037.html +20 -19
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000038.html +18 -15
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000039.html +35 -10
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000040.html +7 -13
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000041.html +18 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000042.html +19 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000043.html +19 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000044.html +15 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000045.html +10 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000046.html +13 -8
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000047.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000048.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000049.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000050.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000051.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +21 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +20 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +20 -0
- data/ref/ruby/classes/XX/Markup.html +5 -5
- data/ref/ruby/classes/XX/Markup.src/{M000021.html → M000027.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Strict.src/{M000020.html → M000026.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000019.html → M000025.html} +0 -0
- data/ref/ruby/classes/XX/XHTML.html +5 -5
- data/ref/ruby/classes/XX/XHTML.src/{M000018.html → M000024.html} +0 -0
- data/ref/ruby/classes/XX/XML.html +5 -5
- data/ref/ruby/classes/XX/XML.src/{M000013.html → M000019.html} +0 -0
- data/ref/ruby/classes/XX/XMLish.html +5 -5
- data/ref/ruby/classes/XX/XMLish.src/{M000017.html → M000023.html} +0 -0
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/generate_test_rb.html +2 -1
- data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +15 -15
- data/ref/ruby/files/bin/header_to_ruby_rb.html +2 -1
- data/ref/ruby/files/lib/ruby-vpi/erb_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/rspec_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +107 -0
- data/ref/ruby/files/lib/ruby-vpi/vpi_util_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/xx_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi_rb.html +1 -1
- data/ref/ruby/fr_class_index.html +4 -1
- data/ref/ruby/fr_file_index.html +1 -0
- data/ref/ruby/fr_method_index.html +75 -67
- data/samp/counter/counter_rspecTest_bench.v +4 -5
- data/samp/counter/counter_unitTest_bench.v +6 -5
- data/samp/pipelined_alu/Hw5UnitModel.rb +4 -4
- data/samp/pipelined_alu/hw5_unit.v +15 -23
- data/samp/pipelined_alu/hw5_unit_test_bench.rb +9 -0
- data/samp/pipelined_alu/hw5_unit_test_bench.v +39 -0
- data/samp/pipelined_alu/hw5_unit_test_design.rb +88 -0
- data/samp/pipelined_alu/hw5_unit_test_proto.rb +8 -0
- data/samp/pipelined_alu/hw5_unit_test_runner.rake +28 -0
- data/samp/pipelined_alu/hw5_unit_test_spec.rb +88 -0
- metadata +82 -63
- data/ref/ruby/classes/ModuleInfo.src/M000008.html +0 -44
- data/ref/ruby/classes/ModuleInfo.src/M000009.html +0 -26
- data/ref/ruby/classes/String.src/M000012.html +0 -37
- data/ref/ruby/classes/XX/Document.src/M000050.html +0 -22
- data/ref/ruby/classes/XX/Document.src/M000051.html +0 -20
- data/ref/ruby/classes/XX/Document.src/M000052.html +0 -20
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000022.html +0 -22
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000023.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000030.html +0 -56
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000031.html +0 -33
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000032.html +0 -31
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000033.html +0 -48
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000034.html +0 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000035.html +0 -31
- data/samp/pipelined_alu/hw5_unit_bench.rb +0 -8
- data/samp/pipelined_alu/hw5_unit_bench.v +0 -45
- data/samp/pipelined_alu/hw5_unit_design.rb +0 -18
- data/samp/pipelined_alu/hw5_unit_runner.rake +0 -10
- data/samp/pipelined_alu/hw5_unit_spec.rb +0 -123
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html>
|
|
7
|
-
<head>
|
|
8
|
-
<title>xx_with_doc_in_effect (XX::Markup::InstanceMethods)</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
10
|
-
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
-
</head>
|
|
12
|
-
<body class="standalone-code">
|
|
13
|
-
<pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/xx.rb, line 283</span>
|
|
14
|
-
283: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">xx_with_doc_in_effect</span> <span class="ruby-operator">*</span><span class="ruby-identifier">a</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>
|
|
15
|
-
284: <span class="ruby-comment cmt">#--{{{</span>
|
|
16
|
-
285: <span class="ruby-ivar">@xx_docs</span> <span class="ruby-operator">||=</span> []
|
|
17
|
-
286: <span class="ruby-identifier">doc</span> = <span class="ruby-operator">::</span><span class="ruby-constant">XX</span><span class="ruby-operator">::</span><span class="ruby-constant">Document</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">a</span>)
|
|
18
|
-
287: <span class="ruby-identifier">ddoc</span> = <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">doc</span>
|
|
19
|
-
288: <span class="ruby-keyword kw">begin</span>
|
|
20
|
-
289: <span class="ruby-ivar">@xx_docs</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">doc</span>
|
|
21
|
-
290: <span class="ruby-identifier">b</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">doc</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">b</span>
|
|
22
|
-
291:
|
|
23
|
-
292: <span class="ruby-identifier">doctype</span> = <span class="ruby-identifier">xx_config_for</span> <span class="ruby-value str">"doctype"</span>, <span class="ruby-identifier">xx_which</span>
|
|
24
|
-
293: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">doctype</span>
|
|
25
|
-
294: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ddoc</span>.<span class="ruby-identifier">doctype</span>
|
|
26
|
-
295: <span class="ruby-identifier">doctype</span> = <span class="ruby-operator">::</span><span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">DocType</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span> <span class="ruby-identifier">doctype</span> <span class="ruby-keyword kw">unless</span>
|
|
27
|
-
296: <span class="ruby-operator">::</span><span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">DocType</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">doctype</span>
|
|
28
|
-
297: <span class="ruby-identifier">ddoc</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">doctype</span>
|
|
29
|
-
298: <span class="ruby-keyword kw">end</span>
|
|
30
|
-
299: <span class="ruby-keyword kw">end</span>
|
|
31
|
-
300:
|
|
32
|
-
301: <span class="ruby-identifier">xmldecl</span> = <span class="ruby-identifier">xx_config_for</span> <span class="ruby-value str">"xmldecl"</span>, <span class="ruby-identifier">xx_which</span>
|
|
33
|
-
302: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">xmldecl</span>
|
|
34
|
-
303: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ddoc</span>.<span class="ruby-identifier">xml_decl</span> <span class="ruby-operator">==</span> <span class="ruby-operator">::</span><span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XMLDecl</span><span class="ruby-operator">::</span><span class="ruby-identifier">default</span>
|
|
35
|
-
304: <span class="ruby-identifier">xmldecl</span> = <span class="ruby-operator">::</span><span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XMLDecl</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span> <span class="ruby-identifier">xmldecl</span> <span class="ruby-keyword kw">unless</span>
|
|
36
|
-
305: <span class="ruby-operator">::</span><span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">XMLDecl</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">xmldecl</span>
|
|
37
|
-
306: <span class="ruby-identifier">ddoc</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">xmldecl</span>
|
|
38
|
-
307: <span class="ruby-keyword kw">end</span>
|
|
39
|
-
308: <span class="ruby-keyword kw">end</span>
|
|
40
|
-
309:
|
|
41
|
-
310: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">doc</span>
|
|
42
|
-
311: <span class="ruby-keyword kw">ensure</span>
|
|
43
|
-
312: <span class="ruby-ivar">@xx_docs</span>.<span class="ruby-identifier">pop</span>
|
|
44
|
-
313: <span class="ruby-keyword kw">end</span>
|
|
45
|
-
314: <span class="ruby-comment cmt">#--}}}</span>
|
|
46
|
-
315: <span class="ruby-keyword kw">end</span></pre>
|
|
47
|
-
</body>
|
|
48
|
-
</html>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html>
|
|
7
|
-
<head>
|
|
8
|
-
<title>xx_doc (XX::Markup::InstanceMethods)</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
10
|
-
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
-
</head>
|
|
12
|
-
<body class="standalone-code">
|
|
13
|
-
<pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/xx.rb, line 316</span>
|
|
14
|
-
316: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">xx_doc</span>
|
|
15
|
-
317: <span class="ruby-comment cmt">#--{{{</span>
|
|
16
|
-
318: <span class="ruby-ivar">@xx_docs</span>.<span class="ruby-identifier">last</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-identifier">raise</span> <span class="ruby-value str">"no xx_doc in effect!"</span>
|
|
17
|
-
319: <span class="ruby-comment cmt">#--}}}</span>
|
|
18
|
-
320: <span class="ruby-keyword kw">end</span></pre>
|
|
19
|
-
</body>
|
|
20
|
-
</html>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html>
|
|
7
|
-
<head>
|
|
8
|
-
<title>xx_text_ (XX::Markup::InstanceMethods)</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
10
|
-
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
11
|
-
</head>
|
|
12
|
-
<body class="standalone-code">
|
|
13
|
-
<pre> <span class="ruby-comment cmt"># File lib/ruby-vpi/xx.rb, line 321</span>
|
|
14
|
-
321: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">xx_text_</span> <span class="ruby-operator">*</span><span class="ruby-identifier">objects</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>
|
|
15
|
-
322: <span class="ruby-comment cmt">#--{{{</span>
|
|
16
|
-
323: <span class="ruby-identifier">doc</span> = <span class="ruby-identifier">xx_doc</span>
|
|
17
|
-
324:
|
|
18
|
-
325: <span class="ruby-identifier">text</span> =
|
|
19
|
-
326: <span class="ruby-operator">::</span><span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Text</span><span class="ruby-operator">::</span><span class="ruby-identifier">new</span>(<span class="ruby-value str">""</span>,
|
|
20
|
-
327: <span class="ruby-identifier">respect_whitespace</span>=<span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">parent</span>=<span class="ruby-keyword kw">nil</span>
|
|
21
|
-
328: )
|
|
22
|
-
329:
|
|
23
|
-
330: <span class="ruby-identifier">objects</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">object</span><span class="ruby-operator">|</span>
|
|
24
|
-
331: <span class="ruby-identifier">text</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">object</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">object</span>
|
|
25
|
-
332: <span class="ruby-keyword kw">end</span>
|
|
26
|
-
333:
|
|
27
|
-
334: <span class="ruby-identifier">doc</span>.<span class="ruby-identifier">create</span> <span class="ruby-identifier">text</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">b</span>
|
|
28
|
-
335: <span class="ruby-comment cmt">#--}}}</span>
|
|
29
|
-
336: <span class="ruby-keyword kw">end</span></pre>
|
|
30
|
-
</body>
|
|
31
|
-
</html>
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
`define WIDTH 32
|
|
2
|
-
`define DATABITS 7
|
|
3
|
-
`define OP_NOP 0
|
|
4
|
-
`define OP_ADD 1
|
|
5
|
-
`define OP_SUB 2
|
|
6
|
-
`define OP_MULT 3
|
|
7
|
-
|
|
8
|
-
module hw5_unit_bench;
|
|
9
|
-
|
|
10
|
-
// configuration for the design under test
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
// accessors for the design under test
|
|
14
|
-
reg clk ;
|
|
15
|
-
reg reset ;
|
|
16
|
-
reg [`DATABITS-1:0] in_databits ;
|
|
17
|
-
reg [`WIDTH-1:0] a ;
|
|
18
|
-
reg [`WIDTH-1:0] b ;
|
|
19
|
-
reg [1:0] in_op ;
|
|
20
|
-
wire [`WIDTH-1:0] res ;
|
|
21
|
-
wire [`DATABITS-1:0] out_databits ;
|
|
22
|
-
wire [1:0] out_op;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// instantiate the design under test
|
|
26
|
-
hw5_unit hw5_unit_bench_design (.clk(clk), .reset(reset), .in_databits(in_databits), .a(a), .b(b), .in_op(in_op), .res(res), .out_databits(out_databits), .out_op(out_op));
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// interface to Ruby-VPI
|
|
30
|
-
initial begin
|
|
31
|
-
clk = 0;
|
|
32
|
-
$ruby_init("ruby", "-w", "-I", "../../lib", "hw5_unit_bench.rb");
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
// generate a 50% duty-cycle clock for the design under test
|
|
36
|
-
always begin
|
|
37
|
-
#5 clk = ~clk;
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
// transfer control to Ruby-VPI every clock cycle
|
|
41
|
-
always @(posedge clk) begin
|
|
42
|
-
#1 $ruby_relay();
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
endmodule
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# An interface to the design under test.
|
|
3
|
-
class Hw5_unit
|
|
4
|
-
attr_reader :clk, :reset, :in_databits, :a, :b, :in_op, :res, :out_databits, :out_op
|
|
5
|
-
|
|
6
|
-
def initialize
|
|
7
|
-
@clk = Vpi::vpi_handle_by_name("hw5_unit_bench.clk", nil)
|
|
8
|
-
@reset = Vpi::vpi_handle_by_name("hw5_unit_bench.reset", nil)
|
|
9
|
-
@in_databits = Vpi::vpi_handle_by_name("hw5_unit_bench.in_databits", nil)
|
|
10
|
-
@a = Vpi::vpi_handle_by_name("hw5_unit_bench.a", nil)
|
|
11
|
-
@b = Vpi::vpi_handle_by_name("hw5_unit_bench.b", nil)
|
|
12
|
-
@in_op = Vpi::vpi_handle_by_name("hw5_unit_bench.in_op", nil)
|
|
13
|
-
@res = Vpi::vpi_handle_by_name("hw5_unit_bench.res", nil)
|
|
14
|
-
@out_databits = Vpi::vpi_handle_by_name("hw5_unit_bench.out_databits", nil)
|
|
15
|
-
@out_op = Vpi::vpi_handle_by_name("hw5_unit_bench.out_op", nil)
|
|
16
|
-
|
|
17
|
-
end
|
|
18
|
-
end
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
=begin
|
|
2
|
-
Copyright 2006 Suraj N. Kurapati
|
|
3
|
-
|
|
4
|
-
This file is part of Ruby-VPI.
|
|
5
|
-
|
|
6
|
-
Ruby-VPI is free software; you can redistribute it and/or
|
|
7
|
-
modify it under the terms of the GNU General Public License
|
|
8
|
-
as published by the Free Software Foundation; either version 2
|
|
9
|
-
of the License, or (at your option) any later version.
|
|
10
|
-
|
|
11
|
-
Ruby-VPI is distributed in the hope that it will be useful,
|
|
12
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
GNU General Public License for more details.
|
|
15
|
-
|
|
16
|
-
You should have received a copy of the GNU General Public License
|
|
17
|
-
along with Ruby-VPI; if not, write to the Free Software Foundation,
|
|
18
|
-
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
19
|
-
=end
|
|
20
|
-
|
|
21
|
-
# A specification which verifies the design under test.
|
|
22
|
-
require 'hw5_unit_design.rb'
|
|
23
|
-
require 'ruby-vpi/vpi_util'
|
|
24
|
-
require 'test/unit'
|
|
25
|
-
|
|
26
|
-
require 'InputGenerator'
|
|
27
|
-
require 'Hw5UnitModel'
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
class Hw5_unit_spec < Test::Unit::TestCase
|
|
32
|
-
include Vpi
|
|
33
|
-
|
|
34
|
-
# Number of input sequences to test.
|
|
35
|
-
NUM_TESTS = 4000
|
|
36
|
-
|
|
37
|
-
# Ruby's native int is 31 bits
|
|
38
|
-
RUBY_INTEGER_BITS = 31
|
|
39
|
-
|
|
40
|
-
# Used to convert VPI integer into Ruby integer
|
|
41
|
-
VPI_INTEGER_MASK = (2 ** RUBY_INTEGER_BITS.succ) - 1
|
|
42
|
-
|
|
43
|
-
# Upper limit of values allowed for an operation's tag.
|
|
44
|
-
OPERATION_TAG_LIMIT = 2 ** 7
|
|
45
|
-
|
|
46
|
-
OPERATION_ENCODINGS = {
|
|
47
|
-
:nop => 0,
|
|
48
|
-
:add => 1,
|
|
49
|
-
:sub => 2,
|
|
50
|
-
:mul => 3,
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
# Number of cycles needed to reset the DUT
|
|
54
|
-
DUT_RESET_DELAY = 5
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def setup
|
|
58
|
-
@ig = InputGenerator.new(RUBY_INTEGER_BITS)
|
|
59
|
-
@design = Hw5_unit.new
|
|
60
|
-
|
|
61
|
-
reset
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
def reset
|
|
65
|
-
@design.reset.intVal = 1
|
|
66
|
-
DUT_RESET_DELAY.times {relay_verilog}
|
|
67
|
-
|
|
68
|
-
@design.reset.intVal = 0
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def test_pipeline
|
|
72
|
-
operationQueue = []
|
|
73
|
-
numOperations = 0
|
|
74
|
-
|
|
75
|
-
begin
|
|
76
|
-
# start a new operation
|
|
77
|
-
if numOperations < NUM_TESTS
|
|
78
|
-
op = Hw5UnitModel::Operation.new(
|
|
79
|
-
Hw5UnitModel::OPERATIONS[rand(Hw5UnitModel::OPERATIONS.size)],
|
|
80
|
-
numOperations % OPERATION_TAG_LIMIT,
|
|
81
|
-
@ig.gen.abs,
|
|
82
|
-
@ig.gen.abs
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
@design.a.intVal = op.arg1
|
|
87
|
-
@design.b.intVal = op.arg2
|
|
88
|
-
@design.in_op.intVal = OPERATION_ENCODINGS[op.type]
|
|
89
|
-
@design.in_databits.intVal = op.tag
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
operationQueue << op
|
|
93
|
-
numOperations += 1
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
# simulate a clock cycle
|
|
98
|
-
relay_verilog
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
# verify the output when present
|
|
102
|
-
unless @design.out_databits.hexStrVal =~ /x/
|
|
103
|
-
finishedOp = Hw5UnitModel::Operation.new(
|
|
104
|
-
OPERATION_ENCODINGS.index(@design.out_op.intVal),
|
|
105
|
-
@design.out_databits.intVal
|
|
106
|
-
)
|
|
107
|
-
finishedOp.result = @design.res.intVal & VPI_INTEGER_MASK
|
|
108
|
-
|
|
109
|
-
expectedOp = operationQueue.shift
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
assert_equal expectedOp.type, finishedOp.type, "incorrect operation"
|
|
113
|
-
assert_equal expectedOp.tag, finishedOp.tag, "incorrect tag"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
# ignore the result of a NOP operation
|
|
117
|
-
unless finishedOp.type == :nop
|
|
118
|
-
assert_equal expectedOp.compute & VPI_INTEGER_MASK, finishedOp.result, "incorrect result"
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end until operationQueue.empty?
|
|
122
|
-
end
|
|
123
|
-
end
|