ruby-vpi 19.0.0 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +12 -13
- data/README +1 -1
- data/Rakefile +104 -118
- data/TODO +77 -0
- data/bin/convert.rb +1 -1
- data/bin/generate/design.rb +3 -2
- data/bin/generate/loader.rb +1 -0
- data/bin/generate/proto.rb +16 -14
- data/bin/generate/runner.rake +8 -3
- data/bin/generate/spec.rb +11 -13
- data/bin/generate.rb +23 -18
- data/bin/ruby-vpi +36 -27
- data/doc/api/c/annotated.html +36 -0
- data/{ref → doc/api}/c/common_8h.html +9 -13
- data/{ref → doc/api}/c/doxygen.css +0 -0
- data/{ref → doc/api}/c/doxygen.png +0 -0
- data/{ref → doc/api}/c/files.html +10 -8
- data/doc/api/c/functions.html +184 -0
- data/doc/api/c/functions_vars.html +184 -0
- data/{ref → doc/api}/c/globals.html +12 -11
- data/{ref → doc/api}/c/globals_0x63.html +12 -11
- data/{ref → doc/api}/c/globals_0x65.html +12 -11
- data/{ref → doc/api}/c/globals_0x66.html +12 -11
- data/{ref → doc/api}/c/globals_0x6d.html +14 -13
- data/{ref → doc/api}/c/globals_0x70.html +21 -20
- data/{ref → doc/api}/c/globals_0x72.html +14 -13
- data/{ref → doc/api}/c/globals_0x74.html +12 -11
- data/{ref → doc/api}/c/globals_0x76.html +17 -16
- data/{ref → doc/api}/c/globals_0x78.html +12 -11
- data/{ref → doc/api}/c/globals_defs.html +12 -10
- data/{ref → doc/api}/c/globals_defs_0x65.html +12 -10
- data/{ref → doc/api}/c/globals_defs_0x70.html +12 -10
- data/{ref → doc/api}/c/globals_defs_0x76.html +14 -12
- data/{ref → doc/api}/c/globals_defs_0x78.html +12 -10
- data/{ref → doc/api}/c/globals_enum.html +11 -9
- data/{ref → doc/api}/c/globals_eval.html +11 -9
- data/{ref → doc/api}/c/globals_func.html +17 -15
- data/doc/api/c/globals_type.html +72 -0
- data/{ref → doc/api}/c/globals_vars.html +13 -11
- data/{ref → doc/api}/c/index.html +7 -6
- data/{ref → doc/api}/c/main_8c.html +7 -11
- data/{ref → doc/api}/c/main_8h.html +7 -11
- data/{ref → doc/api}/c/relay_8c.html +7 -11
- data/{ref → doc/api}/c/relay_8h.html +7 -11
- data/{ref/c/structt__cb__data.html → doc/api/c/structs__cb__data.html} +32 -30
- data/{ref/c/structt__vpi__delay.html → doc/api/c/structs__vpi__delay.html} +29 -27
- data/{ref/c/structt__vpi__error__info.html → doc/api/c/structs__vpi__error__info.html} +32 -30
- data/{ref/c/structt__vpi__strengthval.html → doc/api/c/structs__vpi__strengthval.html} +20 -18
- data/{ref/c/structt__vpi__systf__data.html → doc/api/c/structs__vpi__systf__data.html} +32 -30
- data/{ref/c/structt__vpi__time.html → doc/api/c/structs__vpi__time.html} +23 -21
- data/doc/api/c/structs__vpi__value.html +207 -0
- data/{ref/c/structt__vpi__vecval.html → doc/api/c/structs__vpi__vecval.html} +17 -15
- data/{ref/c/structt__vpi__vlog__info.html → doc/api/c/structs__vpi__vlog__info.html} +23 -21
- data/{ref → doc/api}/c/tab_b.gif +0 -0
- data/{ref → doc/api}/c/tab_l.gif +0 -0
- data/{ref → doc/api}/c/tab_r.gif +0 -0
- data/{ref → doc/api}/c/tabs.css +2 -2
- data/{ref → doc/api}/c/verilog_8h.html +11 -15
- data/{ref → doc/api}/c/vlog_8c.html +14 -18
- data/{ref → doc/api}/c/vlog_8h.html +9 -13
- data/{ref → doc/api}/c/vpi__user_8h.html +120 -239
- data/{ref → doc/api}/ruby/classes/ERB.html +7 -7
- data/doc/api/ruby/classes/ERB.src/M000025.html +29 -0
- data/{ref → doc/api}/ruby/classes/FileUtils.html +6 -23
- data/doc/api/ruby/classes/FileUtils.src/M000026.html +20 -0
- data/{ref → doc/api}/ruby/classes/Float.html +8 -8
- data/doc/api/ruby/classes/Float.src/M000020.html +19 -0
- data/{ref → doc/api}/ruby/classes/Integer.html +67 -67
- data/doc/api/ruby/classes/Integer.src/M000008.html +25 -0
- data/doc/api/ruby/classes/Integer.src/M000009.html +18 -0
- data/doc/api/ruby/classes/Integer.src/M000010.html +18 -0
- data/doc/api/ruby/classes/Integer.src/M000011.html +18 -0
- data/doc/api/ruby/classes/Integer.src/M000012.html +18 -0
- data/doc/api/ruby/classes/Integer.src/M000013.html +18 -0
- data/doc/api/ruby/classes/Integer.src/M000016.html +25 -0
- data/doc/api/ruby/classes/Integer.src/M000017.html +31 -0
- data/doc/api/ruby/classes/Integer.src/M000018.html +25 -0
- data/doc/api/ruby/classes/Integer.src/M000019.html +30 -0
- data/{ref → doc/api}/ruby/classes/Object.html +3 -3
- data/{ref → doc/api}/ruby/classes/RDoc.html +7 -7
- data/doc/api/ruby/classes/RDoc.src/M000541.html +40 -0
- data/doc/api/ruby/classes/RubyVPI/SIMULATORS.html +130 -0
- data/doc/api/ruby/classes/RubyVPI/SIMULATORS.src/M000028.html +19 -0
- data/{ref → doc/api}/ruby/classes/RubyVPI.html +96 -55
- data/doc/api/ruby/classes/RubyVPI.src/M000027.html +34 -0
- data/{ref → doc/api}/ruby/classes/String.html +16 -16
- data/doc/api/ruby/classes/String.src/M000021.html +36 -0
- data/doc/api/ruby/classes/String.src/M000022.html +18 -0
- data/doc/api/ruby/classes/String.src/M000023.html +18 -0
- data/doc/api/ruby/classes/String.src/M000024.html +41 -0
- data/doc/api/ruby/classes/VPI/Handle.html +2098 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000434.html +31 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000435.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000436.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000439.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000440.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000443.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000444.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000447.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000448.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000451.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000452.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000455.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000456.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000459.html +24 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000461.html +21 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000462.html +28 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000463.html +50 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000464.html +19 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000465.html +19 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000466.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000467.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000468.html +30 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000469.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000470.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000471.html +40 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000472.html +18 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000473.html +21 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000474.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000475.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000476.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000477.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000478.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000479.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000480.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000481.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000482.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000483.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000484.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000485.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000486.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000487.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000488.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000489.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000490.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000491.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000492.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000493.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000494.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000495.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000496.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000497.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000498.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000499.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000500.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000501.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000502.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000503.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000504.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000505.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000506.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000507.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000508.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000509.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000510.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000511.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000512.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000513.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000514.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000515.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000516.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000517.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000518.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000519.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000520.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000521.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000522.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000523.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000524.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000525.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000526.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000527.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000528.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000529.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000530.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000531.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000532.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000533.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000534.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000535.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000536.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000537.html +16 -0
- data/{ref → doc/api}/ruby/classes/VPI/S_vpi_time.html +18 -18
- data/doc/api/ruby/classes/VPI/S_vpi_time.src/M000538.html +18 -0
- data/doc/api/ruby/classes/VPI/S_vpi_time.src/M000539.html +19 -0
- data/{ref → doc/api}/ruby/classes/VPI/S_vpi_value.html +17 -17
- data/doc/api/ruby/classes/VPI/S_vpi_value.src/M000431.html +35 -0
- data/doc/api/ruby/classes/VPI/S_vpi_value.src/M000432.html +42 -0
- data/doc/api/ruby/classes/VPI/S_vpi_value.src/M000433.html +42 -0
- data/doc/api/ruby/classes/VPI.html +11152 -0
- data/doc/api/ruby/classes/VPI.src/M000029.html +19 -0
- data/doc/api/ruby/classes/VPI.src/M000030.html +18 -0
- data/doc/api/ruby/classes/VPI.src/M000031.html +19 -0
- data/doc/api/ruby/classes/VPI.src/M000033.html +25 -0
- data/doc/api/ruby/classes/VPI.src/M000034.html +26 -0
- data/doc/api/ruby/classes/VPI.src/M000036.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000037.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000038.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000039.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000040.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000041.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000042.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000043.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000044.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000045.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000046.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000047.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000048.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000049.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000050.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000051.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000052.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000053.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000054.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000055.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000056.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000057.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000058.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000059.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000060.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000061.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000062.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000063.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000064.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000065.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000066.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000067.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000068.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000069.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000070.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000071.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000072.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000073.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000074.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000075.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000076.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000077.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000078.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000079.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000080.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000081.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000082.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000083.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000084.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000085.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000086.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000087.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000088.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000089.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000090.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000091.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000092.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000093.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000094.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000095.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000096.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000097.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000098.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000099.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000100.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000101.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000102.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000103.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000104.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000105.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000106.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000107.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000108.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000109.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000110.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000111.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000112.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000113.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000114.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000115.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000116.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000117.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000118.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000119.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000120.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000121.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000122.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000123.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000124.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000125.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000126.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000127.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000128.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000129.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000130.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000131.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000132.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000133.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000134.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000135.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000136.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000137.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000138.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000139.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000140.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000141.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000142.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000143.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000144.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000145.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000146.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000147.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000148.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000149.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000150.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000151.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000152.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000153.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000154.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000155.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000156.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000157.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000158.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000159.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000160.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000161.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000162.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000163.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000164.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000165.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000166.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000167.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000168.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000169.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000170.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000171.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000172.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000173.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000174.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000175.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000176.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000177.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000178.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000179.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000180.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000181.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000182.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000183.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000184.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000185.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000186.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000187.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000188.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000189.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000190.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000191.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000192.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000193.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000194.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000195.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000196.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000197.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000198.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000199.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000200.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000201.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000202.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000203.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000204.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000205.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000206.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000207.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000208.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000209.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000210.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000211.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000212.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000213.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000214.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000215.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000216.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000217.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000218.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000219.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000220.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000221.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000222.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000223.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000224.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000225.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000226.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000227.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000228.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000229.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000230.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000231.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000232.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000233.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000234.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000235.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000236.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000237.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000238.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000239.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000240.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000241.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000242.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000243.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000244.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000245.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000246.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000247.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000248.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000249.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000250.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000251.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000252.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000253.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000254.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000255.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000256.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000257.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000258.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000259.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000260.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000261.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000262.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000263.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000264.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000265.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000266.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000267.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000268.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000269.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000270.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000271.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000272.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000273.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000274.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000275.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000276.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000277.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000278.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000279.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000280.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000281.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000282.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000283.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000284.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000285.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000286.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000287.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000288.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000289.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000290.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000291.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000292.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000293.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000294.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000295.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000296.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000297.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000298.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000299.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000300.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000301.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000302.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000303.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000304.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000305.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000306.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000307.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000308.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000309.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000310.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000311.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000312.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000313.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000314.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000315.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000316.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000317.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000318.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000319.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000320.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000321.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000322.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000323.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000324.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000325.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000326.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000327.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000328.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000329.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000330.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000331.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000332.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000333.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000334.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000335.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000336.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000337.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000338.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000339.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000340.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000341.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000342.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000343.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000344.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000345.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000346.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000347.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000348.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000349.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000350.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000351.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000352.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000353.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000354.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000355.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000356.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000357.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000358.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000359.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000360.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000361.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000362.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000363.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000364.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000365.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000366.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000367.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000368.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000369.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000370.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000371.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000372.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000373.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000374.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000375.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000376.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000377.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000378.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000379.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000380.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000381.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000382.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000383.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000384.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000385.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000386.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000387.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000388.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000389.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000390.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000391.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000392.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000393.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000394.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000395.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000396.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000397.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000398.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000399.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000400.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000401.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000402.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000403.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000404.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000405.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000406.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000407.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000408.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000409.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000410.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000411.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000412.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000413.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000414.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000415.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000416.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000417.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000418.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000419.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000420.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000421.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000422.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000423.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000424.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000425.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000426.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000427.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000428.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000429.html +16 -0
- data/doc/api/ruby/classes/VPI.src/M000430.html +16 -0
- data/{ref → doc/api}/ruby/classes/VerilogParser/Module/Port.html +17 -17
- data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000005.html +23 -0
- data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000006.html +18 -0
- data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000007.html +18 -0
- data/{ref → doc/api}/ruby/classes/VerilogParser/Module.html +7 -7
- data/doc/api/ruby/classes/VerilogParser/Module.src/M000004.html +29 -0
- data/{ref → doc/api}/ruby/classes/VerilogParser.html +7 -7
- data/doc/api/ruby/classes/VerilogParser.src/M000003.html +26 -0
- data/doc/api/ruby/created.rid +1 -0
- data/{ref → doc/api}/ruby/files/bin/convert_rb.html +4 -4
- data/{ref → doc/api}/ruby/files/bin/generate_rb.html +10 -6
- data/doc/api/ruby/files/bin/ruby-vpi.html +169 -0
- data/doc/api/ruby/files/bin/ruby-vpi.src/M000001.html +35 -0
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/callback_rb.html +3 -3
- data/doc/api/ruby/files/lib/ruby-vpi/core/edge-methods_rb.html +107 -0
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/edge_rb.html +3 -3
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/handle_rb.html +10 -3
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/scheduler_rb.html +3 -3
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core/struct_rb.html +2 -2
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/core_rb.html +3 -3
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/erb_rb.html +2 -2
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/float_rb.html +2 -2
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/integer_rb.html +2 -2
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/rake_rb.html +3 -3
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/rcov_rb.html +3 -4
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/rdoc_rb.html +2 -2
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +9 -10
- data/doc/api/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html +17 -0
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/runner_proxy_rb.html +3 -3
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/runner_rb.html +3 -3
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/util_rb.html +2 -2
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi/verilog_parser_rb.html +2 -2
- data/{ref → doc/api}/ruby/files/lib/ruby-vpi_rb.html +3 -3
- data/doc/api/ruby/files/ruby-vpi-dynamic_rb.html +110 -0
- data/{ref → doc/api}/ruby/fr_class_index.html +3 -2
- data/{ref → doc/api}/ruby/fr_file_index.html +5 -2
- data/doc/api/ruby/fr_method_index.html +567 -0
- data/{ref → doc/api}/ruby/index.html +5 -5
- data/{ref → doc/api}/ruby/rdoc-style.css +0 -0
- data/doc/{manual.doc → guide.erb} +379 -121
- data/doc/guide.html +3524 -0
- data/examples/counter/RSpec/counter_design.rb +7 -7
- data/examples/counter/RSpec/counter_loader.rb +1 -0
- data/examples/counter/RSpec/counter_proto.rb +8 -6
- data/examples/counter/RSpec/counter_runner.rake +9 -4
- data/examples/counter/RSpec/counter_spec.rb +13 -13
- data/examples/counter/xUnit/counter_design.rb +7 -6
- data/examples/counter/xUnit/counter_loader.rb +1 -0
- data/examples/counter/xUnit/counter_proto.rb +8 -6
- data/examples/counter/xUnit/counter_runner.rake +9 -4
- data/examples/counter/xUnit/counter_spec.rb +15 -15
- data/examples/pipelined_alu/hw5_unit_design.rb +11 -10
- data/examples/pipelined_alu/hw5_unit_loader.rb +1 -0
- data/examples/pipelined_alu/hw5_unit_proto.rb +4 -2
- data/examples/pipelined_alu/hw5_unit_runner.rake +9 -4
- data/examples/pipelined_alu/hw5_unit_spec.rb +18 -18
- data/examples/register_file/register_file_design.rb +2 -2
- data/examples/register_file/register_file_loader.rb +1 -0
- data/examples/register_file/register_file_proto.rb +15 -8
- data/examples/register_file/register_file_runner.rake +9 -4
- data/examples/register_file/register_file_spec.rb +15 -15
- data/ext/main.c +4 -4
- data/lib/ruby-vpi/core/edge-methods.rb +32 -0
- data/lib/ruby-vpi/core/edge.rb +8 -43
- data/lib/ruby-vpi/core/handle.rb +127 -91
- data/lib/ruby-vpi/core/scheduler.rb +14 -15
- data/lib/ruby-vpi/core.rb +1 -1
- data/lib/ruby-vpi/rake.rb +5 -7
- data/lib/ruby-vpi/rcov.rb +2 -7
- data/lib/ruby-vpi/runner.rb +16 -11
- data/lib/ruby-vpi/runner_boot_loader.rb +24 -60
- data/lib/ruby-vpi/runner_proxy.rb +2 -6
- data/lib/ruby-vpi.rb +56 -14
- metadata +809 -368
- data/doc/README +0 -9
- data/doc/Rakefile +0 -92
- data/doc/common.css +0 -108
- data/doc/common.inc +0 -14
- data/doc/common.tpl +0 -90
- data/doc/history.doc +0 -17
- data/doc/history.html +0 -2694
- data/doc/history.inc +0 -1077
- data/doc/history.rb +0 -22
- data/doc/history.yaml +0 -1409
- data/doc/images/feed-icon-28x28.png +0 -0
- data/doc/images/tango/LICENSE +0 -67
- data/doc/images/tango/caution.png +0 -0
- data/doc/images/tango/caution.svg +0 -290
- data/doc/images/tango/home.png +0 -0
- data/doc/images/tango/home.svg +0 -386
- data/doc/images/tango/important.png +0 -0
- data/doc/images/tango/important.svg +0 -163
- data/doc/images/tango/next.png +0 -0
- data/doc/images/tango/next.svg +0 -191
- data/doc/images/tango/note.png +0 -0
- data/doc/images/tango/note.svg +0 -483
- data/doc/images/tango/prev.png +0 -0
- data/doc/images/tango/prev.svg +0 -852
- data/doc/images/tango/tip.png +0 -0
- data/doc/images/tango/tip.svg +0 -1145
- data/doc/images/tango/up.png +0 -0
- data/doc/images/tango/up.svg +0 -195
- data/doc/images/tango/warning.png +0 -0
- data/doc/images/tango/warning.svg +0 -334
- data/doc/intro.inc +0 -215
- data/doc/lib/doc_format.rb +0 -137
- data/doc/lib/doc_proxy.rb +0 -562
- data/doc/lib/erb_content.rb +0 -55
- data/doc/lib/erb_proxy.rb +0 -42
- data/doc/manual.html +0 -3061
- data/doc/memo.doc +0 -66
- data/doc/memo.html +0 -210
- data/doc/print.css +0 -69
- data/doc/readme.doc +0 -10
- data/doc/readme.html +0 -515
- data/doc/rss.erb +0 -29
- data/doc/rss.xml +0 -186
- data/doc/screen.css +0 -146
- data/doc/spacing.css +0 -57
- data/index.html +0 -2
- data/ref/c/annotated.html +0 -34
- data/ref/c/functions.html +0 -182
- data/ref/c/functions_vars.html +0 -182
- data/ref/c/globals_0x73.html +0 -73
- data/ref/c/globals_type.html +0 -88
- data/ref/c/structt__vpi__value.html +0 -204
- data/ref/ruby/classes/ERB.src/M000024.html +0 -29
- data/ref/ruby/classes/FileUtils.src/M000025.html +0 -18
- data/ref/ruby/classes/FileUtils.src/M000026.html +0 -18
- data/ref/ruby/classes/Float.src/M000019.html +0 -19
- data/ref/ruby/classes/Integer.src/M000007.html +0 -25
- data/ref/ruby/classes/Integer.src/M000008.html +0 -18
- data/ref/ruby/classes/Integer.src/M000009.html +0 -18
- data/ref/ruby/classes/Integer.src/M000010.html +0 -18
- data/ref/ruby/classes/Integer.src/M000011.html +0 -18
- data/ref/ruby/classes/Integer.src/M000012.html +0 -18
- data/ref/ruby/classes/Integer.src/M000015.html +0 -25
- data/ref/ruby/classes/Integer.src/M000016.html +0 -31
- data/ref/ruby/classes/Integer.src/M000017.html +0 -25
- data/ref/ruby/classes/Integer.src/M000018.html +0 -30
- data/ref/ruby/classes/RDoc.src/M000081.html +0 -40
- data/ref/ruby/classes/String.src/M000020.html +0 -36
- data/ref/ruby/classes/String.src/M000021.html +0 -41
- data/ref/ruby/classes/String.src/M000022.html +0 -18
- data/ref/ruby/classes/String.src/M000023.html +0 -18
- data/ref/ruby/classes/VPI/Handle.html +0 -898
- data/ref/ruby/classes/VPI/Handle.src/M000037.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000038.html +0 -21
- data/ref/ruby/classes/VPI/Handle.src/M000039.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000040.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000045.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000046.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000057.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000058.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000061.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000062.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000065.html +0 -24
- data/ref/ruby/classes/VPI/Handle.src/M000067.html +0 -21
- data/ref/ruby/classes/VPI/Handle.src/M000068.html +0 -28
- data/ref/ruby/classes/VPI/Handle.src/M000069.html +0 -50
- data/ref/ruby/classes/VPI/Handle.src/M000070.html +0 -19
- data/ref/ruby/classes/VPI/Handle.src/M000071.html +0 -19
- data/ref/ruby/classes/VPI/Handle.src/M000072.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000073.html +0 -30
- data/ref/ruby/classes/VPI/Handle.src/M000075.html +0 -18
- data/ref/ruby/classes/VPI/Handle.src/M000076.html +0 -40
- data/ref/ruby/classes/VPI/Handle.src/M000077.html +0 -31
- data/ref/ruby/classes/VPI/S_vpi_time.src/M000078.html +0 -18
- data/ref/ruby/classes/VPI/S_vpi_time.src/M000079.html +0 -19
- data/ref/ruby/classes/VPI/S_vpi_value.src/M000034.html +0 -35
- data/ref/ruby/classes/VPI/S_vpi_value.src/M000035.html +0 -42
- data/ref/ruby/classes/VPI/S_vpi_value.src/M000036.html +0 -42
- data/ref/ruby/classes/VPI.html +0 -356
- data/ref/ruby/classes/VPI.src/M000027.html +0 -19
- data/ref/ruby/classes/VPI.src/M000028.html +0 -18
- data/ref/ruby/classes/VPI.src/M000029.html +0 -19
- data/ref/ruby/classes/VPI.src/M000031.html +0 -25
- data/ref/ruby/classes/VPI.src/M000032.html +0 -26
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000004.html +0 -23
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000005.html +0 -18
- data/ref/ruby/classes/VerilogParser/Module/Port.src/M000006.html +0 -18
- data/ref/ruby/classes/VerilogParser/Module.src/M000003.html +0 -29
- data/ref/ruby/classes/VerilogParser.src/M000002.html +0 -26
- data/ref/ruby/created.rid +0 -1
- data/ref/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.src/M000001.html +0 -17
- data/ref/ruby/fr_method_index.html +0 -107
data/lib/ruby-vpi/core/edge.rb
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
# Copyright 2007 Suraj N. Kurapati
|
|
4
4
|
# See the file named LICENSE for details.
|
|
5
5
|
|
|
6
|
-
require '
|
|
6
|
+
require File.join(File.dirname(__FILE__), 'edge-methods.rb')
|
|
7
7
|
|
|
8
8
|
module RubyVPI
|
|
9
9
|
class EdgeClass #:nodoc:
|
|
10
|
+
require 'singleton'
|
|
10
11
|
include Singleton
|
|
11
12
|
|
|
12
13
|
def initialize
|
|
@@ -40,7 +41,7 @@ module RubyVPI
|
|
|
40
41
|
# Remember the current value as the "previous" value.
|
|
41
42
|
def refresh_handle aHandle
|
|
42
43
|
aHandle.instance_eval do
|
|
43
|
-
@__edge__prev_val = get_value(
|
|
44
|
+
@__edge__prev_val = get_value(VpiScalarVal)
|
|
44
45
|
end
|
|
45
46
|
end
|
|
46
47
|
end
|
|
@@ -48,34 +49,11 @@ module RubyVPI
|
|
|
48
49
|
Edge = EdgeClass.instance
|
|
49
50
|
end
|
|
50
51
|
|
|
51
|
-
module VPI
|
|
52
|
-
class Handle
|
|
53
|
-
# create methods for detecting all possible value changes
|
|
54
|
-
vals = %w[0 1 x z]
|
|
55
|
-
edges = vals.map {|a| vals.map {|b| a + b}}.flatten
|
|
56
|
-
|
|
57
|
-
edges.each do |edge|
|
|
58
|
-
meth = "change_#{edge}?"
|
|
59
|
-
old, new = edge.split(//)
|
|
60
|
-
|
|
61
|
-
old_int = old =~ /[01]/
|
|
62
|
-
new_int = new =~ /[01]/
|
|
63
52
|
|
|
64
|
-
old_read = old_int ? 'int' : 'hex'
|
|
65
|
-
new_read = new_int ? 'VpiIntVal' : 'VpiHexStrVal'
|
|
66
53
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
class_eval %{
|
|
71
|
-
def #{meth}
|
|
72
|
-
old = __edge__prev_val_#{old_read}
|
|
73
|
-
new = get_value(#{new_read})
|
|
74
|
-
|
|
75
|
-
old #{old_test} and new #{new_test}
|
|
76
|
-
end
|
|
77
|
-
}
|
|
78
|
-
end
|
|
54
|
+
module VPI
|
|
55
|
+
class Handle
|
|
56
|
+
RubyVPI::EdgeClass::DETECTION_METHODS.each {|m| class_eval m.body}
|
|
79
57
|
|
|
80
58
|
alias posedge? change_01?
|
|
81
59
|
alias negedge? change_10?
|
|
@@ -88,24 +66,11 @@ module VPI
|
|
|
88
66
|
# Tests if the logic value of this handle has
|
|
89
67
|
# changed since the last simulation time step.
|
|
90
68
|
def change?
|
|
91
|
-
old =
|
|
92
|
-
new = get_value(
|
|
69
|
+
old = @__edge__prev_val
|
|
70
|
+
new = get_value(VpiScalarVal)
|
|
93
71
|
|
|
94
72
|
old != new
|
|
95
73
|
end
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
private
|
|
99
|
-
|
|
100
|
-
# Returns the previous value as a hex string.
|
|
101
|
-
def __edge__prev_val_hex #:nodoc:
|
|
102
|
-
@__edge__prev_val.to_s
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
# Returns the previous value as an integer.
|
|
106
|
-
def __edge__prev_val_int #:nodoc:
|
|
107
|
-
__edge__prev_val_hex.to_i(16)
|
|
108
|
-
end
|
|
109
74
|
end
|
|
110
75
|
|
|
111
76
|
%w[
|
data/lib/ruby-vpi/core/handle.rb
CHANGED
|
@@ -3,96 +3,112 @@
|
|
|
3
3
|
# Copyright 2006 Suraj N. Kurapati
|
|
4
4
|
# See the file named LICENSE for details.
|
|
5
5
|
|
|
6
|
+
require 'ruby-vpi/util'
|
|
7
|
+
|
|
6
8
|
module VPI
|
|
7
9
|
Handle = SWIG::TYPE_p_unsigned_int
|
|
8
10
|
|
|
9
11
|
# A handle is an object inside a Verilog simulation (see
|
|
10
|
-
# *vpiHandle* in IEEE Std. 1364-2005).
|
|
11
|
-
# properties listed in ext/vpi_user.h can be specified by
|
|
12
|
-
# their names (strings or symbols) or integer constants.
|
|
12
|
+
# *vpiHandle* in IEEE Std. 1364-2005 for details).
|
|
13
13
|
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
# * :vpiIntVal
|
|
19
|
-
# * "VpiIntVal"
|
|
20
|
-
# * :VpiIntVal
|
|
14
|
+
# Nearly all methods of this class, such as put_value()
|
|
15
|
+
# and get_value(), you allow you to specify VPI types
|
|
16
|
+
# and properties (which are listed in ext/vpi_user.h) by
|
|
17
|
+
# their names (strings or symbols) or integer constants.
|
|
21
18
|
#
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
#
|
|
25
|
-
# * VpiReg
|
|
19
|
+
# For example, the vpiIntVal property can be specified as a string
|
|
20
|
+
# (<code>"vpiIntVal"</code>), a symbol (<code>:vpiIntVal</code>), or as
|
|
21
|
+
# an integer (<code>VpiIntVal</code> or <code>VPI::vpiIntVal</code>).
|
|
26
22
|
#
|
|
27
23
|
class Handle
|
|
28
24
|
include VPI
|
|
29
25
|
|
|
26
|
+
#---------------------------------------------------------------------------
|
|
27
|
+
# testing & setting common logic values
|
|
28
|
+
#---------------------------------------------------------------------------
|
|
29
|
+
|
|
30
|
+
# Tests if the integer value of this handle is 1.
|
|
31
|
+
def vpi1?
|
|
32
|
+
get_value(VpiScalarVal) == Vpi1
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Sets the integer value of this handle to 1.
|
|
36
|
+
def vpi1!
|
|
37
|
+
put_value(Vpi1, VpiScalarVal)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
alias t? vpi1?
|
|
41
|
+
alias t! vpi1!
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
# Tests if the integer value of this handle is 0.
|
|
45
|
+
def vpi0?
|
|
46
|
+
get_value(VpiScalarVal) == Vpi0
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Sets the integer value of this handle to 0.
|
|
50
|
+
def vpi0!
|
|
51
|
+
put_value(Vpi0, VpiScalarVal)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
alias f? vpi0?
|
|
55
|
+
alias f! vpi0!
|
|
56
|
+
|
|
57
|
+
|
|
30
58
|
# Tests if the logic value of this handle is unknown (x).
|
|
31
|
-
def
|
|
32
|
-
get_value(
|
|
59
|
+
def vpiX?
|
|
60
|
+
get_value(VpiScalarVal) == VpiX
|
|
33
61
|
end
|
|
34
62
|
|
|
35
63
|
# Sets the logic value of this handle to unknown (x).
|
|
36
|
-
def
|
|
37
|
-
put_value(
|
|
64
|
+
def vpiX!
|
|
65
|
+
put_value(VpiX, VpiScalarVal)
|
|
38
66
|
end
|
|
39
67
|
|
|
40
|
-
alias
|
|
41
|
-
alias
|
|
68
|
+
alias x? vpiX?
|
|
69
|
+
alias x! vpiX!
|
|
42
70
|
|
|
43
|
-
alias dont_care? x?
|
|
44
|
-
alias dont_care! x!
|
|
45
71
|
|
|
46
72
|
# Tests if the logic value of this handle is high impedance (z).
|
|
47
|
-
def
|
|
48
|
-
get_value(
|
|
73
|
+
def vpiZ?
|
|
74
|
+
get_value(VpiScalarVal) == VpiZ
|
|
49
75
|
end
|
|
50
76
|
|
|
51
77
|
# Sets the logic value of this handle to high impedance (z).
|
|
52
|
-
def
|
|
53
|
-
put_value(
|
|
78
|
+
def vpiZ!
|
|
79
|
+
put_value(VpiZ, VpiScalarVal)
|
|
54
80
|
end
|
|
55
81
|
|
|
56
|
-
alias
|
|
57
|
-
alias
|
|
82
|
+
alias z? vpiZ?
|
|
83
|
+
alias z! vpiZ!
|
|
58
84
|
|
|
59
|
-
alias high_z? z?
|
|
60
|
-
alias high_z! z!
|
|
61
85
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
alias tri_state? z?
|
|
66
|
-
alias tri_state! z!
|
|
67
|
-
|
|
68
|
-
alias floating? z?
|
|
69
|
-
alias floating! z!
|
|
70
|
-
|
|
71
|
-
# Tests if the logic value of this handle is at "logic high" level.
|
|
72
|
-
def high?
|
|
73
|
-
get_value(VpiIntVal) != 0
|
|
86
|
+
# Tests if the strength value of this handle is high.
|
|
87
|
+
def vpiH?
|
|
88
|
+
get_value(VpiScalarVal) == VpiH
|
|
74
89
|
end
|
|
75
90
|
|
|
76
|
-
# Sets the
|
|
77
|
-
def
|
|
78
|
-
put_value(
|
|
91
|
+
# Sets the strength value of this handle to high.
|
|
92
|
+
def vpiH!
|
|
93
|
+
put_value(VpiH, VpiScalarVal)
|
|
79
94
|
end
|
|
80
95
|
|
|
81
|
-
alias
|
|
82
|
-
alias
|
|
96
|
+
alias h? vpiH?
|
|
97
|
+
alias h! vpiH!
|
|
83
98
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
99
|
+
|
|
100
|
+
# Tests if the strength value of this handle is low.
|
|
101
|
+
def vpiL?
|
|
102
|
+
get_value(VpiScalarVal) == VpiL
|
|
87
103
|
end
|
|
88
104
|
|
|
89
|
-
# Sets the
|
|
90
|
-
def
|
|
91
|
-
put_value(
|
|
105
|
+
# Sets the strength value of this handle to low.
|
|
106
|
+
def vpiL!
|
|
107
|
+
put_value(VpiL, VpiScalarVal)
|
|
92
108
|
end
|
|
93
109
|
|
|
94
|
-
alias
|
|
95
|
-
alias
|
|
110
|
+
alias l? vpiL?
|
|
111
|
+
alias l! vpiL!
|
|
96
112
|
|
|
97
113
|
|
|
98
114
|
# Inspects the given VPI property names, in
|
|
@@ -130,9 +146,9 @@ module VPI
|
|
|
130
146
|
@size ||= vpi_get(VpiSize, self)
|
|
131
147
|
|
|
132
148
|
if fmt == VpiIntVal and @size > INTEGER_BITS
|
|
133
|
-
fmt =
|
|
149
|
+
fmt = VpiBinStrVal
|
|
134
150
|
val = get_value_wrapper(fmt)
|
|
135
|
-
val.read(fmt).to_i(
|
|
151
|
+
val.read(fmt).gsub(/[^01]/, '0').to_i(2)
|
|
136
152
|
else
|
|
137
153
|
val = get_value_wrapper(fmt)
|
|
138
154
|
val.read(fmt)
|
|
@@ -142,14 +158,14 @@ module VPI
|
|
|
142
158
|
# Writes the given value using the given format (name or integer
|
|
143
159
|
# constant), time, and delay, and then returns the written value.
|
|
144
160
|
#
|
|
145
|
-
# * If
|
|
146
|
-
# will attempt to determine the correct format.
|
|
161
|
+
# * If you do not specify the format, then the Verilog
|
|
162
|
+
# simulator will attempt to determine the correct format.
|
|
147
163
|
#
|
|
148
164
|
def put_value aValue, aFormat = nil, aTime = nil, aDelay = VpiNoDelay
|
|
149
165
|
if vpi_get(VpiType, self) == VpiNet
|
|
150
166
|
aDelay = VpiForceFlag
|
|
151
167
|
|
|
152
|
-
if driver = self
|
|
168
|
+
if driver = self.to_a(VpiDriver).find {|d| vpi_get(VpiType, d) != VpiForce}
|
|
153
169
|
warn "forcing value #{aValue.inspect} onto wire #{self} that is already driven by #{driver.inspect}"
|
|
154
170
|
end
|
|
155
171
|
end
|
|
@@ -187,7 +203,7 @@ module VPI
|
|
|
187
203
|
put_value(*args)
|
|
188
204
|
end
|
|
189
205
|
|
|
190
|
-
# Releases
|
|
206
|
+
# Releases all forced values on this handle (if any).
|
|
191
207
|
def release_value
|
|
192
208
|
# this doesn't really change the value, it only removes the force flag
|
|
193
209
|
put_value(0, VpiIntVal, nil, VpiReleaseFlag)
|
|
@@ -195,7 +211,7 @@ module VPI
|
|
|
195
211
|
|
|
196
212
|
# Tests if there is currently a value forced onto this handle.
|
|
197
213
|
def force?
|
|
198
|
-
self
|
|
214
|
+
self.to_a(VpiDriver).any? {|d| vpi_get(VpiType, d) == VpiForce}
|
|
199
215
|
end
|
|
200
216
|
|
|
201
217
|
|
|
@@ -203,12 +219,17 @@ module VPI
|
|
|
203
219
|
# accessing related handles / traversing the hierarchy
|
|
204
220
|
#---------------------------------------------------------------------------
|
|
205
221
|
|
|
206
|
-
# Returns
|
|
207
|
-
|
|
208
|
-
|
|
222
|
+
# Returns the child handle at the given relative VPI path.
|
|
223
|
+
def / aRelativePath
|
|
224
|
+
access_child(aRelativePath)
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
# Returns an array of child handles which have
|
|
228
|
+
# the given types (names or integer constants).
|
|
229
|
+
def to_a *aChildTypes
|
|
209
230
|
handles = []
|
|
210
231
|
|
|
211
|
-
|
|
232
|
+
aChildTypes.each do |arg|
|
|
212
233
|
t = resolve_prop_type(arg)
|
|
213
234
|
|
|
214
235
|
if itr = vpi_iterate(t, self)
|
|
@@ -222,20 +243,21 @@ module VPI
|
|
|
222
243
|
end
|
|
223
244
|
|
|
224
245
|
# inherit Enumerable methods, such as #each, #map, #select, etc.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
246
|
+
list = Enumerable.instance_methods
|
|
247
|
+
list.delete 'to_a'
|
|
248
|
+
list.push 'each'
|
|
249
|
+
|
|
250
|
+
list.each do |meth|
|
|
251
|
+
# using a string because define_method
|
|
252
|
+
# does not accept a block until Ruby 1.9
|
|
253
|
+
class_eval %{
|
|
254
|
+
def #{meth}(*args, &block)
|
|
255
|
+
if ary = self.to_a(*args)
|
|
256
|
+
ary.#{meth}(&block)
|
|
257
|
+
end
|
|
232
258
|
end
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
end
|
|
236
|
-
|
|
237
|
-
# bypass Enumerable's #to_a method, which relies on #each
|
|
238
|
-
alias to_a []
|
|
259
|
+
}, __FILE__, __LINE__
|
|
260
|
+
end
|
|
239
261
|
|
|
240
262
|
# Sort by absolute VPI path.
|
|
241
263
|
def <=> other
|
|
@@ -247,17 +269,23 @@ module VPI
|
|
|
247
269
|
# accessing VPI properties
|
|
248
270
|
#---------------------------------------------------------------------------
|
|
249
271
|
|
|
250
|
-
|
|
272
|
+
# Returns the value of the given VPI property
|
|
273
|
+
# (name or integer constant) of this handle.
|
|
274
|
+
def [] aProp
|
|
275
|
+
access_prop(aProp)
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
@@propCache = Hash.new {|h,k| h[k] = Property.new(k)}
|
|
251
279
|
|
|
252
|
-
undef
|
|
280
|
+
undef id # deprecated in Ruby 1.8
|
|
281
|
+
undef type # used to access VpiType
|
|
253
282
|
|
|
254
|
-
# Provides access to this handle's (1) child handles
|
|
255
|
-
#
|
|
256
|
-
#
|
|
257
|
-
#
|
|
258
|
-
#
|
|
259
|
-
|
|
260
|
-
def method_missing aMeth, *aArgs, &aBlockArg
|
|
283
|
+
# Provides access to this handle's (1) child handles and (2) VPI
|
|
284
|
+
# properties through method calls. In the case that a child handle
|
|
285
|
+
# has the same name as a VPI property, the child handle will be
|
|
286
|
+
# accessed instead of the VPI property. However, you can still
|
|
287
|
+
# access the VPI property using the square brackets #[] method.
|
|
288
|
+
def method_missing aMeth, *aArgs, &aBlock
|
|
261
289
|
# cache the result for future accesses, in order
|
|
262
290
|
# to cut down number of calls to method_missing()
|
|
263
291
|
eigen_class = (class << self; self; end)
|
|
@@ -275,16 +303,24 @@ module VPI
|
|
|
275
303
|
# not support a block argument until Ruby 1.9
|
|
276
304
|
eigen_class.class_eval %{
|
|
277
305
|
def #{aMeth}(*a, &b)
|
|
278
|
-
|
|
306
|
+
access_prop(#{aMeth.inspect}, *a, &b)
|
|
279
307
|
end
|
|
280
308
|
}, __FILE__, __LINE__
|
|
281
309
|
|
|
282
|
-
__send__(aMeth, *aArgs, &
|
|
310
|
+
__send__(aMeth, *aArgs, &aBlock)
|
|
283
311
|
end
|
|
284
312
|
end
|
|
285
313
|
|
|
286
314
|
private
|
|
287
315
|
|
|
316
|
+
def access_child aPath
|
|
317
|
+
vpi_handle_by_name(aPath.to_s, self)
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
def access_prop aProp, *aArgs, &aBlock
|
|
321
|
+
@@propCache[aProp.to_sym].execute(self, *aArgs, &aBlock)
|
|
322
|
+
end
|
|
323
|
+
|
|
288
324
|
class Property # :nodoc:
|
|
289
325
|
attr_reader :name, :type, :accessor, :operation
|
|
290
326
|
|
|
@@ -399,7 +435,7 @@ module VPI
|
|
|
399
435
|
if @isAssign
|
|
400
436
|
raise NotImplementedError
|
|
401
437
|
else
|
|
402
|
-
aHandle
|
|
438
|
+
aHandle.to_a(@type)
|
|
403
439
|
end
|
|
404
440
|
|
|
405
441
|
else
|
|
@@ -33,25 +33,24 @@ module RubyVPI
|
|
|
33
33
|
|
|
34
34
|
def initialize
|
|
35
35
|
@thread2task = { Thread.main => Task.new(Thread.main, :run) }
|
|
36
|
-
@
|
|
37
|
-
@
|
|
36
|
+
@thread2task_soft = @thread2task.dup # software threads
|
|
37
|
+
@thread2task_hard = {} # hardware threads (Ruby prototype of DUT)
|
|
38
38
|
@thread2task_lock = Mutex.new
|
|
39
39
|
|
|
40
|
-
|
|
41
40
|
# base case: hardware runs first before any software does at startup
|
|
42
|
-
|
|
41
|
+
@time = 0
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
unless RubyVPI::USE_PROTOTYPE
|
|
44
|
+
Callback.relay_verilog(VPI::CbReadOnlySynch, 0)
|
|
45
|
+
end
|
|
47
46
|
|
|
48
47
|
@scheduler = Thread.new do
|
|
49
|
-
# pause because boot loader is not fully
|
|
48
|
+
# pause because boot loader is not fully initialized yet
|
|
50
49
|
Thread.stop
|
|
51
50
|
|
|
52
51
|
loop do
|
|
53
52
|
# run software in current time step
|
|
54
|
-
run_tasks @
|
|
53
|
+
run_tasks @thread2task_soft, true
|
|
55
54
|
Edge.refresh_cache
|
|
56
55
|
|
|
57
56
|
# go to time slot where writing is permitted before flushing writes
|
|
@@ -65,7 +64,7 @@ module RubyVPI
|
|
|
65
64
|
@time += 1
|
|
66
65
|
|
|
67
66
|
if RubyVPI::USE_PROTOTYPE
|
|
68
|
-
run_tasks @
|
|
67
|
+
run_tasks @thread2task_hard, false
|
|
69
68
|
flush_writes
|
|
70
69
|
else
|
|
71
70
|
Callback.relay_verilog(VPI::CbReadOnlySynch, 0)
|
|
@@ -92,9 +91,9 @@ module RubyVPI
|
|
|
92
91
|
|
|
93
92
|
hash =
|
|
94
93
|
if caller.grep(/_proto\.rb/).empty?
|
|
95
|
-
@
|
|
94
|
+
@thread2task_soft
|
|
96
95
|
else
|
|
97
|
-
@
|
|
96
|
+
@thread2task_hard
|
|
98
97
|
end
|
|
99
98
|
|
|
100
99
|
@thread2task_lock.synchronize do
|
|
@@ -110,8 +109,8 @@ module RubyVPI
|
|
|
110
109
|
|
|
111
110
|
@thread2task_lock.synchronize do
|
|
112
111
|
@thread2task.delete key
|
|
113
|
-
@
|
|
114
|
-
@
|
|
112
|
+
@thread2task_hard.delete key
|
|
113
|
+
@thread2task_soft.delete key
|
|
115
114
|
end
|
|
116
115
|
end
|
|
117
116
|
|
|
@@ -168,7 +167,7 @@ module RubyVPI
|
|
|
168
167
|
tasks = aHash.values
|
|
169
168
|
tasks.each {|t| t.run}
|
|
170
169
|
|
|
171
|
-
if aExitWhenEmpty
|
|
170
|
+
if aExitWhenEmpty && tasks.empty?
|
|
172
171
|
Thread.exit
|
|
173
172
|
end
|
|
174
173
|
end
|
data/lib/ruby-vpi/core.rb
CHANGED
|
@@ -26,7 +26,7 @@ module VPI
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
module RubyVPI
|
|
29
|
-
|
|
29
|
+
USE_SIMULATOR = ENV['RUBYVPI_SIMULATOR'].to_sym
|
|
30
30
|
USE_DEBUGGER = ENV['DEBUGGER'].to_i == 1
|
|
31
31
|
USE_COVERAGE = ENV['COVERAGE'].to_i == 1
|
|
32
32
|
USE_PROTOTYPE = ENV['PROTOTYPE'].to_i == 1
|
data/lib/ruby-vpi/rake.rb
CHANGED
|
@@ -8,13 +8,11 @@ require 'fileutils'
|
|
|
8
8
|
module FileUtils
|
|
9
9
|
alias old_sh sh
|
|
10
10
|
|
|
11
|
-
# An improved sh() that
|
|
11
|
+
# An improved sh() that accepts arrays as arguments, omits empty string
|
|
12
|
+
# arguments, and shows users exactly what ARGV is being executed.
|
|
12
13
|
def sh *aArgs, &aBlock
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
# Collects the given arguments into a single, sparse array.
|
|
17
|
-
def collect_args *aArgs
|
|
18
|
-
aArgs.flatten.compact
|
|
14
|
+
args = aArgs.flatten.compact.reject {|i| i.to_s.empty?}
|
|
15
|
+
STDERR.puts args.inspect
|
|
16
|
+
old_sh(*args, &aBlock)
|
|
19
17
|
end
|
|
20
18
|
end
|
data/lib/ruby-vpi/rcov.rb
CHANGED
|
@@ -13,21 +13,16 @@ require 'rcov'
|
|
|
13
13
|
include Markup
|
|
14
14
|
|
|
15
15
|
def xmlish_ *a, &b
|
|
16
|
-
xx_which(XMLish){ xx_with_doc_in_effect(*a, &b)}
|
|
16
|
+
xx_which(XMLish) { xx_with_doc_in_effect(*a, &b) }
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
require 'cgi'
|
|
22
|
-
|
|
23
21
|
require 'rcov/report'
|
|
24
22
|
|
|
25
23
|
|
|
26
|
-
module RubyVPI::Coverage #:nodoc:
|
|
27
|
-
end
|
|
28
|
-
|
|
29
24
|
module RubyVPI
|
|
30
|
-
module Coverage
|
|
25
|
+
module Coverage #:nodoc:
|
|
31
26
|
@@analyzer = Rcov::CodeCoverageAnalyzer.new
|
|
32
27
|
|
|
33
28
|
def Coverage.start
|
data/lib/ruby-vpi/runner.rb
CHANGED
|
@@ -18,18 +18,20 @@
|
|
|
18
18
|
|
|
19
19
|
require 'ruby-vpi/util'
|
|
20
20
|
|
|
21
|
+
# go into same directory as the test runner file
|
|
22
|
+
dir = File.dirname(caller.reject {|s| s =~ /:in /}.first.rstrip_from(':'))
|
|
23
|
+
cd dir unless Rake.original_dir == dir
|
|
24
|
+
|
|
21
25
|
# check for required variables
|
|
22
|
-
vars = %w[SIMULATOR_SOURCES SIMULATOR_ARGUMENTS]
|
|
26
|
+
vars = %w[TEST_LOADER SIMULATOR_SOURCES SIMULATOR_ARGUMENTS]
|
|
23
27
|
|
|
24
28
|
unless vars.all? {|v| eval "defined? #{v}"}
|
|
25
29
|
raise ArgumentError, "#{vars.join(' and ')} must be defined."
|
|
26
30
|
end
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
task :setup
|
|
32
|
+
raise ArgumentError, "The path specified by TEST_LOADER does not exist: #{TEST_LOADER.inspect}" unless File.exist? TEST_LOADER
|
|
33
|
+
raise ArgumentError, "The path specified by TEST_LOADER does not refer to a file: #{TEST_LOADER.inspect}" unless File.file? TEST_LOADER
|
|
34
|
+
raise ArgumentError, "The path specified by TEST_LOADER is not readable: #{TEST_LOADER.inspect}" unless File.readable? TEST_LOADER
|
|
33
35
|
|
|
34
36
|
# resolve paths to sources by searching include directories
|
|
35
37
|
@sources = SIMULATOR_SOURCES.to_a.uniq
|
|
@@ -53,10 +55,10 @@ require 'ruby-vpi/util'
|
|
|
53
55
|
|
|
54
56
|
# prepare hook for rb_load_file() in main.c
|
|
55
57
|
ENV['RUBYVPI_BOOT_LOADER'] = File.join(File.dirname(__FILE__), 'runner_boot_loader.rb')
|
|
56
|
-
ENV['
|
|
58
|
+
ENV['RUBYVPI_TEST_LOADER'] = TEST_LOADER
|
|
57
59
|
|
|
58
60
|
# check if the machine is 64-bit
|
|
59
|
-
@archIs64 =
|
|
61
|
+
@archIs64 = 0.size == 8
|
|
60
62
|
|
|
61
63
|
|
|
62
64
|
require 'rake/clean'
|
|
@@ -86,7 +88,7 @@ end
|
|
|
86
88
|
|
|
87
89
|
# Creates a new task for running the given simulator.
|
|
88
90
|
def sim_task aSimId #:nodoc:
|
|
89
|
-
desc "Simulate with #{RubyVPI::SIMULATORS
|
|
91
|
+
desc "Simulate with #{RubyVPI::SIMULATORS.find_by_id(aSimId).name}."
|
|
90
92
|
task aSimId => :setup do
|
|
91
93
|
ENV['RUBYVPI_SIMULATOR'] = aSimId.to_s
|
|
92
94
|
yield aSimId
|
|
@@ -94,6 +96,10 @@ def sim_task aSimId #:nodoc:
|
|
|
94
96
|
end
|
|
95
97
|
|
|
96
98
|
|
|
99
|
+
desc "User-defined task that is invoked before the simulator runs."
|
|
100
|
+
task :setup
|
|
101
|
+
|
|
102
|
+
|
|
97
103
|
desc "Show a list of available tasks."
|
|
98
104
|
task :default do
|
|
99
105
|
Rake.application.options.show_task_pattern = //
|
|
@@ -143,8 +149,7 @@ sim_task :vsim do |id|
|
|
|
143
149
|
sh %w[vsim -c],
|
|
144
150
|
'-do', 'run -all; exit',
|
|
145
151
|
'-pli', object_file_path(id),
|
|
146
|
-
SIMULATOR_ARGUMENTS[id]
|
|
147
|
-
@target
|
|
152
|
+
SIMULATOR_ARGUMENTS[id]
|
|
148
153
|
end
|
|
149
154
|
|
|
150
155
|
CLEAN.include 'work', 'vsim.wlf'
|