ruby-vpi 8.2.0 → 9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HEADER +0 -19
- data/HISTORY +40 -0
- data/README +20 -2
- data/Rakefile +38 -42
- data/bin/generate_test.rb +50 -35
- data/bin/generate_test_tpl/bench.rb +3 -3
- data/bin/generate_test_tpl/bench.v +1 -1
- data/bin/generate_test_tpl/runner.rake +3 -2
- data/bin/generate_test_tpl/spec.rb +2 -2
- data/doc/background.organization.html +1 -1
- data/doc/glossary.html +1 -1
- data/doc/index.html +2 -2
- data/doc/manual.txt +163 -83
- data/doc/problems.html +1 -1
- data/doc/problems.ruby.html +1 -1
- data/doc/src/manual.xml +132 -49
- data/doc/usage.examples.html +1 -1
- data/doc/usage.html +1 -1
- data/doc/usage.installation.html +2 -2
- data/doc/usage.recommendations.html +3 -0
- data/doc/usage.requirements.html +1 -1
- data/doc/usage.tutorial.html +46 -42
- data/ext/extconf.rb +5 -2
- data/ext/relay.c +138 -0
- data/ext/{relay.hin → relay.h} +7 -7
- data/ext/{swig.cin → swig.c} +5 -7
- data/ext/{swig.hin → swig.h} +4 -4
- data/ext/verilog.h +1 -2
- data/ext/vlog.c +86 -0
- data/ext/{vlog.hin → vlog.h} +9 -12
- data/header.html +0 -31
- data/header.part.html +0 -31
- data/history.html +72 -31
- data/history.part.html +72 -0
- data/lib/ruby-vpi.rb +16 -0
- data/lib/ruby-vpi/runner.rb +34 -16
- data/memo.html +0 -31
- data/readme.html +33 -33
- data/readme.part.html +34 -3
- data/ref/c/annotated.html +1 -1
- data/ref/c/common_8h.html +1 -1
- data/ref/c/files.html +7 -8
- data/ref/c/functions.html +2 -2
- data/ref/c/functions_vars.html +2 -2
- 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 +9 -9
- data/ref/c/globals_0x73.html +3 -3
- data/ref/c/globals_0x74.html +1 -1
- data/ref/c/globals_0x76.html +5 -5
- 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 +2 -2
- 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 +11 -11
- data/ref/c/globals_type.html +1 -1
- data/ref/c/globals_vars.html +5 -5
- data/ref/c/index.html +1 -1
- data/ref/c/relay_8c.html +214 -0
- data/ref/c/{relay_8hin.html → relay_8h.html} +23 -23
- data/ref/c/structrelay____RubyOptions____def.html +6 -6
- 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_8c.html +80 -0
- data/ref/c/{swig_8hin.html → swig_8h.html} +13 -13
- data/ref/c/verilog_8h.html +3 -3
- data/ref/c/{vlog_8cin.html → vlog_8c.html} +30 -21
- data/ref/c/{vlog_8hin.html → vlog_8h.html} +12 -12
- data/ref/c/vpi__user_8h.html +1 -1
- data/ref/ruby/classes/ERB.html +5 -5
- data/ref/ruby/classes/ERB.src/{M000033.html → M000034.html} +0 -0
- data/ref/ruby/classes/FileUtils.html +10 -10
- data/ref/ruby/classes/FileUtils.src/M000089.html +5 -5
- data/ref/ruby/classes/FileUtils.src/M000090.html +18 -0
- data/ref/ruby/classes/Integer.html +68 -68
- data/ref/ruby/classes/Integer.src/M000012.html +12 -5
- data/ref/ruby/classes/Integer.src/M000013.html +5 -5
- data/ref/ruby/classes/Integer.src/M000014.html +5 -5
- data/ref/ruby/classes/Integer.src/M000015.html +5 -5
- data/ref/ruby/classes/Integer.src/M000016.html +5 -5
- data/ref/ruby/classes/Integer.src/M000017.html +18 -0
- data/ref/ruby/classes/Integer.src/M000020.html +9 -9
- data/ref/ruby/classes/Integer.src/M000021.html +9 -12
- data/ref/ruby/classes/Integer.src/M000022.html +12 -18
- data/ref/ruby/classes/Integer.src/M000023.html +18 -12
- data/ref/ruby/classes/Integer.src/M000024.html +12 -17
- data/ref/ruby/classes/Integer.src/M000025.html +30 -0
- data/ref/ruby/classes/OutputInfo.html +6 -6
- data/ref/ruby/classes/OutputInfo.src/{M000029.html → M000030.html} +37 -37
- data/ref/ruby/classes/RDoc.html +5 -5
- data/ref/ruby/classes/RDoc.src/{M000092.html → M000093.html} +0 -0
- data/ref/ruby/classes/RubyVpi.html +16 -10
- data/ref/ruby/classes/RubyVpi.src/M000091.html +37 -7
- data/ref/ruby/classes/RubyVpi.src/M000092.html +20 -0
- data/ref/ruby/classes/RubyVpi/Config.html +148 -0
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.html +45 -45
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000081.html +5 -5
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000082.html +5 -9
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000083.html +9 -31
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000084.html +31 -69
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000085.html +69 -114
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000086.html +114 -13
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000087.html +13 -5
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000088.html +18 -0
- data/ref/ruby/classes/String.html +10 -10
- data/ref/ruby/classes/String.src/M000032.html +28 -5
- data/ref/ruby/classes/String.src/M000033.html +18 -0
- data/ref/ruby/classes/Table.html +20 -20
- data/ref/ruby/classes/Table.src/M000026.html +25 -5
- data/ref/ruby/classes/Table.src/M000027.html +5 -5
- data/ref/ruby/classes/Table.src/M000028.html +5 -5
- data/ref/ruby/classes/Table.src/M000029.html +18 -0
- data/ref/ruby/classes/Template.html +5 -5
- data/ref/ruby/classes/Template.src/{M000030.html → M000031.html} +4 -4
- data/ref/ruby/classes/VerilogParser.html +5 -5
- data/ref/ruby/classes/VerilogParser.src/{M000004.html → M000005.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module.src/{M000005.html → M000006.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Parameter.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module/Parameter.src/{M000010.html → M000011.html} +0 -0
- data/ref/ruby/classes/VerilogParser/Module/Port.html +20 -20
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000007.html +8 -5
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000008.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000009.html +5 -5
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000010.html +18 -0
- data/ref/ruby/classes/XX/Document.html +45 -45
- data/ref/ruby/classes/XX/Document.src/M000072.html +9 -7
- data/ref/ruby/classes/XX/Document.src/M000073.html +7 -7
- data/ref/ruby/classes/XX/Document.src/M000074.html +7 -7
- data/ref/ruby/classes/XX/Document.src/M000075.html +7 -9
- data/ref/ruby/classes/XX/Document.src/M000076.html +9 -8
- data/ref/ruby/classes/XX/Document.src/M000077.html +8 -8
- data/ref/ruby/classes/XX/Document.src/M000078.html +8 -21
- data/ref/ruby/classes/XX/Document.src/M000079.html +21 -85
- data/ref/ruby/classes/XX/Document.src/M000080.html +98 -0
- data/ref/ruby/classes/XX/HTML4.html +5 -5
- data/ref/ruby/classes/XX/HTML4.src/{M000035.html → M000036.html} +0 -0
- data/ref/ruby/classes/XX/HTML4/Strict.html +5 -5
- data/ref/ruby/classes/XX/HTML4/Strict.src/{M000037.html → M000038.html} +0 -0
- data/ref/ruby/classes/XX/HTML4/Transitional.html +5 -5
- data/ref/ruby/classes/XX/HTML4/Transitional.src/{M000036.html → M000037.html} +0 -0
- data/ref/ruby/classes/XX/Markup.html +5 -5
- data/ref/ruby/classes/XX/Markup.src/{M000042.html → M000043.html} +0 -0
- data/ref/ruby/classes/XX/Markup/ClassMethods.html +40 -40
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000044.html +9 -7
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000045.html +7 -12
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000046.html +12 -7
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000047.html +7 -14
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000048.html +14 -7
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000049.html +7 -14
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000050.html +14 -9
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000051.html +22 -0
- data/ref/ruby/classes/XX/Markup/InstanceMethods.html +100 -100
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000052.html +43 -20
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000053.html +20 -18
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000054.html +18 -35
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000055.html +35 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000056.html +7 -18
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000057.html +18 -19
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000058.html +19 -19
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000059.html +19 -15
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000060.html +15 -10
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000061.html +10 -13
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000062.html +13 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000063.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000064.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000065.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000066.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000067.html +7 -8
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000068.html +8 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000069.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000070.html +7 -7
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000071.html +20 -0
- data/ref/ruby/classes/XX/XHTML.html +5 -5
- data/ref/ruby/classes/XX/XHTML.src/{M000038.html → M000039.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Strict.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Strict.src/{M000040.html → M000041.html} +0 -0
- data/ref/ruby/classes/XX/XHTML/Transitional.html +5 -5
- data/ref/ruby/classes/XX/XHTML/Transitional.src/{M000039.html → M000040.html} +0 -0
- data/ref/ruby/classes/XX/XML.html +5 -5
- data/ref/ruby/classes/XX/XML.src/{M000034.html → M000035.html} +0 -0
- data/ref/ruby/classes/XX/XMLish.html +5 -5
- data/ref/ruby/classes/XX/XMLish.src/{M000041.html → M000042.html} +0 -0
- data/ref/ruby/created.rid +1 -1
- data/ref/ruby/files/bin/generate_test_rb.html +49 -9
- data/ref/ruby/files/bin/generate_test_rb.src/M000001.html +5 -16
- data/ref/ruby/files/bin/generate_test_rb.src/M000002.html +39 -0
- data/ref/ruby/files/bin/header_to_ruby_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/erb_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/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 +22 -21
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000003.html +11 -13
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000004.html +26 -0
- data/ref/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +1 -1
- data/ref/ruby/files/lib/ruby-vpi/vpi_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 +1 -0
- data/ref/ruby/fr_method_index.html +93 -92
- data/samp/counter/{counter_rspecTest_bench.rb → counter_rspec_bench.rb} +2 -2
- data/samp/counter/{counter_rspecTest_bench.v → counter_rspec_bench.v} +3 -3
- data/samp/counter/{counter_unitTest_design.rb → counter_rspec_design.rb} +3 -3
- data/samp/counter/{counter_rspecTest_proto.rb → counter_rspec_proto.rb} +0 -0
- data/samp/counter/{counter_unitTest_runner.rake → counter_rspec_runner.rake} +5 -4
- data/samp/counter/{counter_rspecTest_spec.rb → counter_rspec_spec.rb} +0 -0
- data/samp/counter/{counter_unitTest_bench.rb → counter_xunit_bench.rb} +2 -2
- data/samp/counter/{counter_unitTest_bench.v → counter_xunit_bench.v} +3 -3
- data/samp/counter/{counter_rspecTest_design.rb → counter_xunit_design.rb} +3 -3
- data/samp/counter/{counter_unitTest_proto.rb → counter_xunit_proto.rb} +0 -0
- data/samp/counter/{counter_rspecTest_runner.rake → counter_xunit_runner.rake} +5 -4
- data/samp/counter/{counter_unitTest_spec.rb → counter_xunit_spec.rb} +0 -0
- data/samp/pipelined_alu/hw5_unit_test_runner.rake +3 -2
- metadata +177 -177
- data/ext/README +0 -124
- data/ext/relay.cin +0 -146
- data/ext/ruby-vpi.c +0 -36
- data/ext/vlog.cin +0 -92
- data/lib/ruby-vpi/synopsys_vcs.tab +0 -2
- data/ref/c/relay_8cin.html +0 -204
- data/ref/c/ruby-vpi_8c.html +0 -34
- data/ref/c/swig_8cin.html +0 -75
- data/ref/ruby/classes/FileUtils.src/M000088.html +0 -18
- data/ref/ruby/classes/Integer.src/M000011.html +0 -25
- data/ref/ruby/classes/Integer.src/M000019.html +0 -22
- data/ref/ruby/classes/RubyVpi.src/M000090.html +0 -50
- data/ref/ruby/classes/SWIG/TYPE_p_unsigned_int.src/M000080.html +0 -18
- data/ref/ruby/classes/String.src/M000031.html +0 -41
- data/ref/ruby/classes/Table.src/M000025.html +0 -38
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +0 -21
- data/ref/ruby/classes/XX/Document.src/M000071.html +0 -22
- data/ref/ruby/classes/XX/Markup/ClassMethods.src/M000043.html +0 -22
- data/ref/ruby/classes/XX/Markup/InstanceMethods.src/M000051.html +0 -56
- data/ref/ruby/files/lib/ruby-vpi/runner_rb.src/M000002.html +0 -20
data/ext/README
DELETED
@@ -1,124 +0,0 @@
|
|
1
|
-
Class|Module Naming Convention
|
2
|
-
------------------------------
|
3
|
-
|
4
|
-
FooBar
|
5
|
-
C module named "FooBar".
|
6
|
-
|
7
|
-
RFooBar
|
8
|
-
Ruby class or module named "FooBar".
|
9
|
-
|
10
|
-
RFooBar_rb_do_stuff
|
11
|
-
Ruby function named "do_stuff" which is callable from Ruby like this: "FooBar.new.do_stuff" or "FooBar::do_stuff" or ...
|
12
|
-
|
13
|
-
RFooBar_doStuff
|
14
|
-
Service function named "doStuff" which is callable from C only.
|
15
|
-
|
16
|
-
RFooBar__someStuff
|
17
|
-
Something named "someStuff", which is neither a Ruby function nor a service function, that belongs to "FooBar". Think of the two underscores "__" as being two colons "::" in Ruby.
|
18
|
-
|
19
|
-
|
20
|
-
Variable Naming Convention
|
21
|
-
--------------------------
|
22
|
-
|
23
|
-
fooBar
|
24
|
-
Ordinary variable named "fooBar".
|
25
|
-
|
26
|
-
a?p?(r|v)?FooBar
|
27
|
-
Variable named "FooBar" which has additional properties denoted by the optional prefixes.
|
28
|
-
|
29
|
-
aFooBar
|
30
|
-
Function argument named named "FooBar". For example: "int divide(int aDividend, aDivisor);".
|
31
|
-
|
32
|
-
pFooBar
|
33
|
-
Pointer named "FooBar".
|
34
|
-
|
35
|
-
rFooBar
|
36
|
-
Ruby object (instance of a Ruby class) named "FooBar".
|
37
|
-
|
38
|
-
vFooBar
|
39
|
-
Verilog object named "FooBar".
|
40
|
-
|
41
|
-
|
42
|
-
Code Formatting Convention
|
43
|
-
--------------------------
|
44
|
-
|
45
|
-
Indenting
|
46
|
-
Use a single tab character to indent by one level. If you feel that tab characters occupy too much space or indent too deeply, then configure your text editor to *visually* display tab characters using less space. This is similar to the output produced by the filter "expand -t 2" in UNIX.
|
47
|
-
|
48
|
-
level 1
|
49
|
-
level 2
|
50
|
-
level 3
|
51
|
-
... and so on ...
|
52
|
-
level 2
|
53
|
-
level 1
|
54
|
-
|
55
|
-
Line breaking
|
56
|
-
Do not break a long line into multiple lines. Let it be as long as it wants and configure your text editor to *visually* wrap long lines and indent them so they are easy to read. This is similar to the output produced by the filter "fmt -cs" in UNIX.
|
57
|
-
|
58
|
-
For example:
|
59
|
-
|
60
|
-
/**
|
61
|
-
Foo is a fantastic bar which can be seen from atop the majestic peaks of baz. However, let us not forget the beauty of sparkling rubies beneath its rugged, earthy exterior. Yes, this line is very long, and that is the point.
|
62
|
-
*/
|
63
|
-
|
64
|
-
Vertical spacing
|
65
|
-
Use 1 line comment before the start of a group of related statements if necessary.
|
66
|
-
|
67
|
-
Use 1 line within a group of related statements.
|
68
|
-
|
69
|
-
Use 2 lines to mark the boundary between groups of related statements.
|
70
|
-
|
71
|
-
Use 3 lines to mark the boundary of a completely disjoint block of code, which has its own groups of related statements.
|
72
|
-
|
73
|
-
Braces alignment
|
74
|
-
Put an open brace on same line as the start of the block statement. For example:
|
75
|
-
|
76
|
-
if(foo) {
|
77
|
-
doFoo();
|
78
|
-
|
79
|
-
if(bar) {
|
80
|
-
doBar();
|
81
|
-
}
|
82
|
-
}
|
83
|
-
else {
|
84
|
-
doRuby();
|
85
|
-
}
|
86
|
-
|
87
|
-
Delimiting operators
|
88
|
-
When there are many operators in a single statement, indent the first element beneath the block-starter and put the operator at the start of subsequent elements. For example:
|
89
|
-
|
90
|
-
static unsigned long int
|
91
|
-
foo
|
92
|
-
, bar
|
93
|
-
, baz
|
94
|
-
;
|
95
|
-
|
96
|
-
doStuff(
|
97
|
-
foo
|
98
|
-
, bar
|
99
|
-
, baz
|
100
|
-
);
|
101
|
-
|
102
|
-
if(
|
103
|
-
foo
|
104
|
-
&& bar
|
105
|
-
|| baz
|
106
|
-
) {
|
107
|
-
doStuff();
|
108
|
-
}
|
109
|
-
|
110
|
-
|
111
|
-
Code Documenting Convention
|
112
|
-
---------------------------
|
113
|
-
|
114
|
-
Doxygen
|
115
|
-
Use Javadoc style (at "@" to start a documenting command) instead of LaTeX style (backslash "\" to start a documenting command) whenever possible. All public functions, variables, etc. must have such comments. For example:
|
116
|
-
|
117
|
-
/**
|
118
|
-
Writes out a foo and returns a bar.
|
119
|
-
|
120
|
-
@param aFoo The foo to write out.
|
121
|
-
@return A bar.
|
122
|
-
*/
|
123
|
-
bar doStuff(foo aFoo);
|
124
|
-
|
data/ext/relay.cin
DELETED
@@ -1,146 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2006 Suraj N. Kurapati
|
3
|
-
Copyright 1999 Kazuhiro HIWADA
|
4
|
-
|
5
|
-
This file is part of Ruby-VPI.
|
6
|
-
|
7
|
-
Ruby-VPI is free software; you can redistribute it and/or
|
8
|
-
modify it under the terms of the GNU General Public License
|
9
|
-
as published by the Free Software Foundation; either version 2
|
10
|
-
of the License, or (at your option) any later version.
|
11
|
-
|
12
|
-
Ruby-VPI is distributed in the hope that it will be useful,
|
13
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
-
GNU General Public License for more details.
|
16
|
-
|
17
|
-
You should have received a copy of the GNU General Public License
|
18
|
-
along with Ruby-VPI; if not, write to the Free Software Foundation,
|
19
|
-
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
20
|
-
*/
|
21
|
-
|
22
|
-
#ifndef RELAY_CIN
|
23
|
-
#define RELAY_CIN
|
24
|
-
|
25
|
-
#include <stdlib.h>
|
26
|
-
#include <pthread.h>
|
27
|
-
#include <ruby.h>
|
28
|
-
#include <assert.h>
|
29
|
-
|
30
|
-
#include "verilog.h"
|
31
|
-
#include "common.h"
|
32
|
-
|
33
|
-
#include "relay.hin"
|
34
|
-
#include "swig.hin"
|
35
|
-
|
36
|
-
|
37
|
-
static pthread_t relay__rubyThread;
|
38
|
-
static pthread_mutex_t relay__rubyLock;
|
39
|
-
static pthread_mutex_t relay__verilogLock;
|
40
|
-
|
41
|
-
static void relay_init() {
|
42
|
-
pthread_mutex_init(&relay__rubyLock, NULL);
|
43
|
-
pthread_mutex_lock(&relay__rubyLock);
|
44
|
-
pthread_mutex_init(&relay__verilogLock, NULL);
|
45
|
-
pthread_mutex_lock(&relay__verilogLock);
|
46
|
-
}
|
47
|
-
|
48
|
-
static void relay_ruby() {
|
49
|
-
pthread_mutex_unlock(&relay__rubyLock);
|
50
|
-
pthread_mutex_lock(&relay__verilogLock);
|
51
|
-
}
|
52
|
-
|
53
|
-
static void relay_verilog() {
|
54
|
-
pthread_mutex_unlock(&relay__verilogLock);
|
55
|
-
pthread_mutex_lock(&relay__rubyLock);
|
56
|
-
}
|
57
|
-
|
58
|
-
typedef struct {
|
59
|
-
PLI_BYTE8** mArgs; /// Array of command-line arguments.
|
60
|
-
uint mCount; /// Number of command-line arguments.
|
61
|
-
} relay__RubyOptions__def;
|
62
|
-
|
63
|
-
/**
|
64
|
-
@param apRubyOptions relay__RubyOptions__def structure which contains command-line options passsed to the Ruby interpreter.
|
65
|
-
@note The structure will be freed *deeply* after use.
|
66
|
-
*/
|
67
|
-
static void* ruby_run_handshake(void* apRubyOptions) {
|
68
|
-
// initialize Ruby interpreter
|
69
|
-
ruby_init();
|
70
|
-
ruby_init_loadpath();
|
71
|
-
|
72
|
-
swig_init();
|
73
|
-
|
74
|
-
// pass command-line arguments to the interpreter
|
75
|
-
relay__RubyOptions__def* pRubyOptions = (relay__RubyOptions__def*) apRubyOptions;
|
76
|
-
|
77
|
-
PLI_BYTE8** argv = pRubyOptions->mArgs;
|
78
|
-
uint argc = pRubyOptions->mCount;
|
79
|
-
|
80
|
-
ruby_options(argc, argv);
|
81
|
-
|
82
|
-
// free the memory used by command-line options
|
83
|
-
uint i;
|
84
|
-
for (i = 0; i < argc; i++) {
|
85
|
-
free(argv[i]);
|
86
|
-
}
|
87
|
-
|
88
|
-
free(argv);
|
89
|
-
free(pRubyOptions);
|
90
|
-
|
91
|
-
|
92
|
-
// start Ruby interpreter
|
93
|
-
ruby_run();
|
94
|
-
|
95
|
-
|
96
|
-
// Ruby interpreter is now finished, so clean it up before terminating this thread
|
97
|
-
ruby_finalize();
|
98
|
-
return NULL;
|
99
|
-
}
|
100
|
-
|
101
|
-
static void relay_ruby_run() {
|
102
|
-
relay__RubyOptions__def* pRubyOptions = malloc(sizeof(relay__RubyOptions__def));
|
103
|
-
|
104
|
-
if (pRubyOptions) {
|
105
|
-
pRubyOptions->mArgs = NULL;
|
106
|
-
pRubyOptions->mCount = 0;
|
107
|
-
|
108
|
-
// transform the arguments passed to this function by Verilog into command-line arguments for Ruby interpeter
|
109
|
-
vpiHandle vCall = vpi_handle(vpiSysTfCall, NULL);
|
110
|
-
|
111
|
-
if (vCall) {
|
112
|
-
vpiHandle vCallArgs = vpi_iterate(vpiArgument, vCall);
|
113
|
-
|
114
|
-
if (vCallArgs) {
|
115
|
-
vpiHandle vArg;
|
116
|
-
s_vpi_value argVal;
|
117
|
-
argVal.format = vpiStringVal;
|
118
|
-
|
119
|
-
while ((vArg = vpi_scan(vCallArgs)) != NULL) {
|
120
|
-
vpi_get_value(vArg, &argVal);
|
121
|
-
|
122
|
-
pRubyOptions->mCount++;
|
123
|
-
|
124
|
-
|
125
|
-
if (pRubyOptions->mArgs == NULL)
|
126
|
-
pRubyOptions->mArgs = malloc(sizeof(PLI_BYTE8*) * pRubyOptions->mCount);
|
127
|
-
else
|
128
|
-
pRubyOptions->mArgs = realloc(pRubyOptions->mArgs, sizeof(PLI_BYTE8*) * pRubyOptions->mCount);
|
129
|
-
|
130
|
-
assert(pRubyOptions->mArgs != NULL);
|
131
|
-
|
132
|
-
|
133
|
-
pRubyOptions->mArgs[pRubyOptions->mCount-1] = strdup(argVal.value.str);
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
137
|
-
|
138
|
-
pthread_create(&relay__rubyThread, 0, ruby_run_handshake, pRubyOptions);
|
139
|
-
return;
|
140
|
-
}
|
141
|
-
|
142
|
-
common_printf("error: unable to allocate memory for Ruby's command-line arguments.");
|
143
|
-
exit(EXIT_FAILURE);
|
144
|
-
}
|
145
|
-
|
146
|
-
#endif
|
data/ext/ruby-vpi.c
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2006 Suraj N. Kurapati
|
3
|
-
Copyright 1999 Kazuhiro HIWADA
|
4
|
-
|
5
|
-
This file is part of Ruby-VPI.
|
6
|
-
|
7
|
-
Ruby-VPI is free software; you can redistribute it and/or
|
8
|
-
modify it under the terms of the GNU General Public License
|
9
|
-
as published by the Free Software Foundation; either version 2
|
10
|
-
of the License, or (at your option) any later version.
|
11
|
-
|
12
|
-
Ruby-VPI is distributed in the hope that it will be useful,
|
13
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
-
GNU General Public License for more details.
|
16
|
-
|
17
|
-
You should have received a copy of the GNU General Public License
|
18
|
-
along with Ruby-VPI; if not, write to the Free Software Foundation,
|
19
|
-
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
20
|
-
*/
|
21
|
-
|
22
|
-
/**\file
|
23
|
-
The Ruby-VPI extension, in a nutshell.
|
24
|
-
*/
|
25
|
-
|
26
|
-
#ifdef __cplusplus
|
27
|
-
extern "C" {
|
28
|
-
#endif
|
29
|
-
|
30
|
-
#include "swig.cin"
|
31
|
-
#include "vlog.cin"
|
32
|
-
#include "relay.cin"
|
33
|
-
|
34
|
-
#ifdef __cplusplus
|
35
|
-
}
|
36
|
-
#endif
|
data/ext/vlog.cin
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2006 Suraj N. Kurapati
|
3
|
-
Copyright 1999 Kazuhiro HIWADA
|
4
|
-
|
5
|
-
This file is part of Ruby-VPI.
|
6
|
-
|
7
|
-
Ruby-VPI is free software; you can redistribute it and/or
|
8
|
-
modify it under the terms of the GNU General Public License
|
9
|
-
as published by the Free Software Foundation; either version 2
|
10
|
-
of the License, or (at your option) any later version.
|
11
|
-
|
12
|
-
Ruby-VPI is distributed in the hope that it will be useful,
|
13
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
-
GNU General Public License for more details.
|
16
|
-
|
17
|
-
You should have received a copy of the GNU General Public License
|
18
|
-
along with Ruby-VPI; if not, write to the Free Software Foundation,
|
19
|
-
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
20
|
-
*/
|
21
|
-
|
22
|
-
#ifndef VLOG_CIN
|
23
|
-
#define VLOG_CIN
|
24
|
-
|
25
|
-
#include <assert.h>
|
26
|
-
#include "common.h"
|
27
|
-
#include "relay.hin"
|
28
|
-
#include "vlog.hin"
|
29
|
-
|
30
|
-
|
31
|
-
verilog_tf_funcSig(vlog_ruby_relay) {
|
32
|
-
// transfer control to ruby
|
33
|
-
relay_ruby();
|
34
|
-
|
35
|
-
|
36
|
-
// transfer control to verilog
|
37
|
-
verilog_tf_funcReturn(0);
|
38
|
-
}
|
39
|
-
|
40
|
-
verilog_tf_funcSig(vlog_ruby_init) {
|
41
|
-
// setup control transfer mechanism
|
42
|
-
relay_init();
|
43
|
-
|
44
|
-
|
45
|
-
// start ruby interpreter and transfer control to it
|
46
|
-
relay_ruby_run();
|
47
|
-
|
48
|
-
|
49
|
-
// transfer control to verilog
|
50
|
-
verilog_tf_funcReturn(0);
|
51
|
-
}
|
52
|
-
|
53
|
-
#ifndef SYNOPSYS_VCS
|
54
|
-
static void vlog_bind_task(PLI_BYTE8* apTaskName, verilog_tf_funcPtr(apTaskDef)) {
|
55
|
-
s_vpi_systf_data tf;
|
56
|
-
|
57
|
-
tf.type = vpiSysTask;
|
58
|
-
tf.sysfunctype = 0;
|
59
|
-
tf.tfname = apTaskName;
|
60
|
-
tf.calltf = (verilog_tf_funcPtr_strict())apTaskDef;
|
61
|
-
tf.compiletf = NULL;
|
62
|
-
tf.sizetf = NULL;
|
63
|
-
tf.user_data = NULL;
|
64
|
-
|
65
|
-
vpi_register_systf(&tf);
|
66
|
-
}
|
67
|
-
|
68
|
-
/**
|
69
|
-
Binds the default VPI tasks (provided by Ruby-VPI) before the Verilog simulator begins to simulate.
|
70
|
-
*/
|
71
|
-
static void vlog_startup() {
|
72
|
-
vlog_bind_task("$ruby_init", vlog_ruby_init);
|
73
|
-
vlog_bind_task("$ruby_relay", vlog_ruby_relay);
|
74
|
-
}
|
75
|
-
|
76
|
-
void (*vlog_startup_routines[])() = { vlog_startup, 0 };
|
77
|
-
|
78
|
-
#ifdef PRAGMATIC_CVER
|
79
|
-
/**
|
80
|
-
Invokes each routine specified in the vlog_startup_routines array.
|
81
|
-
|
82
|
-
This code was originally taken from GPL Cver 2.11a: Copyright (c) 1991-2005 Pragmatic C Software Corp.
|
83
|
-
*/
|
84
|
-
void vlog_startup_routines_bootstrap() {
|
85
|
-
uint i;
|
86
|
-
for (i = 0; vlog_startup_routines[i] != NULL; i++)
|
87
|
-
vlog_startup_routines[i]();
|
88
|
-
}
|
89
|
-
#endif
|
90
|
-
#endif
|
91
|
-
|
92
|
-
#endif
|
data/ref/c/relay_8cin.html
DELETED
@@ -1,204 +0,0 @@
|
|
1
|
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
-
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
3
|
-
<title>Ruby-VPI: relay.cin File Reference</title>
|
4
|
-
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
5
|
-
<link href="tabs.css" rel="stylesheet" type="text/css">
|
6
|
-
</head><body>
|
7
|
-
<!-- Generated by Doxygen 1.4.7 -->
|
8
|
-
<div class="tabs">
|
9
|
-
<ul>
|
10
|
-
<li><a href="index.html"><span>Main Page</span></a></li>
|
11
|
-
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
12
|
-
<li id="current"><a href="files.html"><span>Files</span></a></li>
|
13
|
-
</ul></div>
|
14
|
-
<div class="tabs">
|
15
|
-
<ul>
|
16
|
-
<li><a href="files.html"><span>File List</span></a></li>
|
17
|
-
<li><a href="globals.html"><span>Globals</span></a></li>
|
18
|
-
</ul></div>
|
19
|
-
<h1>relay.cin File Reference</h1><code>#include <stdlib.h></code><br>
|
20
|
-
<code>#include <pthread.h></code><br>
|
21
|
-
<code>#include <ruby.h></code><br>
|
22
|
-
<code>#include <assert.h></code><br>
|
23
|
-
<code>#include "<a class="el" href="verilog_8h.html">verilog.h</a>"</code><br>
|
24
|
-
<code>#include "<a class="el" href="common_8h.html">common.h</a>"</code><br>
|
25
|
-
<code>#include "<a class="el" href="relay_8hin.html">relay.hin</a>"</code><br>
|
26
|
-
<code>#include "<a class="el" href="swig_8hin.html">swig.hin</a>"</code><br>
|
27
|
-
<table border="0" cellpadding="0" cellspacing="0">
|
28
|
-
<tr><td></td></tr>
|
29
|
-
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
|
30
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structrelay____RubyOptions____def.html">relay__RubyOptions__def</a></td></tr>
|
31
|
-
|
32
|
-
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
33
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="relay_8cin.html#3200e521b223bc6f09430c60ddebb8be">relay_init</a> ()</td></tr>
|
34
|
-
|
35
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="relay_8cin.html#2780928864223802e61d338188f95a60">relay_ruby</a> ()</td></tr>
|
36
|
-
|
37
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="relay_8cin.html#f7fcb35f079ab7f3f568adf6f7bb9c2f">relay_verilog</a> ()</td></tr>
|
38
|
-
|
39
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void * </td><td class="memItemRight" valign="bottom"><a class="el" href="relay_8cin.html#c9322be286809df2b947ef11da69e2fd">ruby_run_handshake</a> (void *apRubyOptions)</td></tr>
|
40
|
-
|
41
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="relay_8cin.html#84bc77ed3fd41c02a85a338390abdc7a">relay_ruby_run</a> ()</td></tr>
|
42
|
-
|
43
|
-
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
|
44
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">static pthread_t </td><td class="memItemRight" valign="bottom"><a class="el" href="relay_8cin.html#b7e726577af7e3a6e01b747b741a8112">relay__rubyThread</a></td></tr>
|
45
|
-
|
46
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">static pthread_mutex_t </td><td class="memItemRight" valign="bottom"><a class="el" href="relay_8cin.html#28b9f9f296b0ef144d005c01ac1fe49f">relay__rubyLock</a></td></tr>
|
47
|
-
|
48
|
-
<tr><td class="memItemLeft" nowrap align="right" valign="top">static pthread_mutex_t </td><td class="memItemRight" valign="bottom"><a class="el" href="relay_8cin.html#16c2cdb7e43e9d99b680843830f8a2f1">relay__verilogLock</a></td></tr>
|
49
|
-
|
50
|
-
</table>
|
51
|
-
<hr><h2>Function Documentation</h2>
|
52
|
-
<a class="anchor" name="3200e521b223bc6f09430c60ddebb8be"></a><!-- doxytag: member="relay.cin::relay_init" ref="3200e521b223bc6f09430c60ddebb8be" args="()" -->
|
53
|
-
<div class="memitem">
|
54
|
-
<div class="memproto">
|
55
|
-
<table class="memname">
|
56
|
-
<tr>
|
57
|
-
<td class="memname">static void relay_init </td>
|
58
|
-
<td>(</td>
|
59
|
-
<td class="paramname"> </td>
|
60
|
-
<td> ) </td>
|
61
|
-
<td width="100%"><code> [static]</code></td>
|
62
|
-
</tr>
|
63
|
-
</table>
|
64
|
-
</div>
|
65
|
-
<div class="memdoc">
|
66
|
-
|
67
|
-
<p>
|
68
|
-
|
69
|
-
</div>
|
70
|
-
</div><p>
|
71
|
-
<a class="anchor" name="2780928864223802e61d338188f95a60"></a><!-- doxytag: member="relay.cin::relay_ruby" ref="2780928864223802e61d338188f95a60" args="()" -->
|
72
|
-
<div class="memitem">
|
73
|
-
<div class="memproto">
|
74
|
-
<table class="memname">
|
75
|
-
<tr>
|
76
|
-
<td class="memname">static void relay_ruby </td>
|
77
|
-
<td>(</td>
|
78
|
-
<td class="paramname"> </td>
|
79
|
-
<td> ) </td>
|
80
|
-
<td width="100%"><code> [static]</code></td>
|
81
|
-
</tr>
|
82
|
-
</table>
|
83
|
-
</div>
|
84
|
-
<div class="memdoc">
|
85
|
-
|
86
|
-
<p>
|
87
|
-
|
88
|
-
</div>
|
89
|
-
</div><p>
|
90
|
-
<a class="anchor" name="84bc77ed3fd41c02a85a338390abdc7a"></a><!-- doxytag: member="relay.cin::relay_ruby_run" ref="84bc77ed3fd41c02a85a338390abdc7a" args="()" -->
|
91
|
-
<div class="memitem">
|
92
|
-
<div class="memproto">
|
93
|
-
<table class="memname">
|
94
|
-
<tr>
|
95
|
-
<td class="memname">static void relay_ruby_run </td>
|
96
|
-
<td>(</td>
|
97
|
-
<td class="paramname"> </td>
|
98
|
-
<td> ) </td>
|
99
|
-
<td width="100%"><code> [static]</code></td>
|
100
|
-
</tr>
|
101
|
-
</table>
|
102
|
-
</div>
|
103
|
-
<div class="memdoc">
|
104
|
-
|
105
|
-
<p>
|
106
|
-
|
107
|
-
</div>
|
108
|
-
</div><p>
|
109
|
-
<a class="anchor" name="f7fcb35f079ab7f3f568adf6f7bb9c2f"></a><!-- doxytag: member="relay.cin::relay_verilog" ref="f7fcb35f079ab7f3f568adf6f7bb9c2f" args="()" -->
|
110
|
-
<div class="memitem">
|
111
|
-
<div class="memproto">
|
112
|
-
<table class="memname">
|
113
|
-
<tr>
|
114
|
-
<td class="memname">static void relay_verilog </td>
|
115
|
-
<td>(</td>
|
116
|
-
<td class="paramname"> </td>
|
117
|
-
<td> ) </td>
|
118
|
-
<td width="100%"><code> [static]</code></td>
|
119
|
-
</tr>
|
120
|
-
</table>
|
121
|
-
</div>
|
122
|
-
<div class="memdoc">
|
123
|
-
|
124
|
-
<p>
|
125
|
-
|
126
|
-
</div>
|
127
|
-
</div><p>
|
128
|
-
<a class="anchor" name="c9322be286809df2b947ef11da69e2fd"></a><!-- doxytag: member="relay.cin::ruby_run_handshake" ref="c9322be286809df2b947ef11da69e2fd" args="(void *apRubyOptions)" -->
|
129
|
-
<div class="memitem">
|
130
|
-
<div class="memproto">
|
131
|
-
<table class="memname">
|
132
|
-
<tr>
|
133
|
-
<td class="memname">static void* ruby_run_handshake </td>
|
134
|
-
<td>(</td>
|
135
|
-
<td class="paramtype">void * </td>
|
136
|
-
<td class="paramname"> <em>apRubyOptions</em> </td>
|
137
|
-
<td> ) </td>
|
138
|
-
<td width="100%"><code> [static]</code></td>
|
139
|
-
</tr>
|
140
|
-
</table>
|
141
|
-
</div>
|
142
|
-
<div class="memdoc">
|
143
|
-
|
144
|
-
<p>
|
145
|
-
<dl compact><dt><b>Parameters:</b></dt><dd>
|
146
|
-
<table border="0" cellspacing="2" cellpadding="0">
|
147
|
-
<tr><td valign="top"></td><td valign="top"><em>apRubyOptions</em> </td><td><a class="el" href="structrelay____RubyOptions____def.html">relay__RubyOptions__def</a> structure which contains command-line options passsed to the Ruby interpreter. </td></tr>
|
148
|
-
</table>
|
149
|
-
</dl>
|
150
|
-
<dl compact><dt><b>Note:</b></dt><dd>The structure will be freed *deeply* after use. </dd></dl>
|
151
|
-
|
152
|
-
</div>
|
153
|
-
</div><p>
|
154
|
-
<hr><h2>Variable Documentation</h2>
|
155
|
-
<a class="anchor" name="28b9f9f296b0ef144d005c01ac1fe49f"></a><!-- doxytag: member="relay.cin::relay__rubyLock" ref="28b9f9f296b0ef144d005c01ac1fe49f" args="" -->
|
156
|
-
<div class="memitem">
|
157
|
-
<div class="memproto">
|
158
|
-
<table class="memname">
|
159
|
-
<tr>
|
160
|
-
<td class="memname">pthread_mutex_t <a class="el" href="relay_8cin.html#28b9f9f296b0ef144d005c01ac1fe49f">relay__rubyLock</a><code> [static]</code> </td>
|
161
|
-
</tr>
|
162
|
-
</table>
|
163
|
-
</div>
|
164
|
-
<div class="memdoc">
|
165
|
-
|
166
|
-
<p>
|
167
|
-
|
168
|
-
</div>
|
169
|
-
</div><p>
|
170
|
-
<a class="anchor" name="b7e726577af7e3a6e01b747b741a8112"></a><!-- doxytag: member="relay.cin::relay__rubyThread" ref="b7e726577af7e3a6e01b747b741a8112" args="" -->
|
171
|
-
<div class="memitem">
|
172
|
-
<div class="memproto">
|
173
|
-
<table class="memname">
|
174
|
-
<tr>
|
175
|
-
<td class="memname">pthread_t <a class="el" href="relay_8cin.html#b7e726577af7e3a6e01b747b741a8112">relay__rubyThread</a><code> [static]</code> </td>
|
176
|
-
</tr>
|
177
|
-
</table>
|
178
|
-
</div>
|
179
|
-
<div class="memdoc">
|
180
|
-
|
181
|
-
<p>
|
182
|
-
|
183
|
-
</div>
|
184
|
-
</div><p>
|
185
|
-
<a class="anchor" name="16c2cdb7e43e9d99b680843830f8a2f1"></a><!-- doxytag: member="relay.cin::relay__verilogLock" ref="16c2cdb7e43e9d99b680843830f8a2f1" args="" -->
|
186
|
-
<div class="memitem">
|
187
|
-
<div class="memproto">
|
188
|
-
<table class="memname">
|
189
|
-
<tr>
|
190
|
-
<td class="memname">pthread_mutex_t <a class="el" href="relay_8cin.html#16c2cdb7e43e9d99b680843830f8a2f1">relay__verilogLock</a><code> [static]</code> </td>
|
191
|
-
</tr>
|
192
|
-
</table>
|
193
|
-
</div>
|
194
|
-
<div class="memdoc">
|
195
|
-
|
196
|
-
<p>
|
197
|
-
|
198
|
-
</div>
|
199
|
-
</div><p>
|
200
|
-
<hr size="1"><address style="align: right;"><small>Generated on Tue Oct 24 12:19:09 2006 for Ruby-VPI by
|
201
|
-
<a href="http://www.doxygen.org/index.html">
|
202
|
-
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
|
203
|
-
</body>
|
204
|
-
</html>
|