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/LICENSE
CHANGED
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
Copyright 2006 Suraj N. Kurapati <SNK at GNA dot ORG>
|
|
2
2
|
Copyright 1999 Kazuhiro HIWADA <HIWADA at KUEE dot KYOTO-U dot AC dot JP>
|
|
3
3
|
|
|
4
|
-
Permission is hereby granted, free of charge, to any person obtaining a
|
|
5
|
-
this software and associated documentation files (the "Software"),
|
|
6
|
-
the Software without restriction, including without limitation
|
|
7
|
-
use, copy, modify, merge, publish, distribute, sublicense,
|
|
8
|
-
the Software, and to permit persons to whom the
|
|
9
|
-
subject to the following conditions:
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a
|
|
5
|
+
copy of this software and associated documentation files (the "Software"),
|
|
6
|
+
to deal in the Software without restriction, including without limitation
|
|
7
|
+
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
8
|
+
and/or sell copies of the Software, and to permit persons to whom the
|
|
9
|
+
Software is furnished to do so, subject to the following conditions:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
permission notice.
|
|
11
|
+
* All copies and substantial portions of the Software (the "Derivatives")
|
|
12
|
+
and their corresponding machine-readable source code (the "Code") must
|
|
13
|
+
include the above copyright notice and this permission notice.
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
* Upon distribution, the Derivatives must be accompanied either by the Code
|
|
16
|
+
or--provided that the Code is obtainable for no more than the cost of
|
|
17
|
+
distribution plus a nominal fee--by information on how to obtain the Code.
|
|
19
18
|
|
|
20
19
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
20
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
data/README
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Please see ./
|
|
1
|
+
Please see ./doc/guide.html in your web browser.
|
data/Rakefile
CHANGED
|
@@ -13,24 +13,15 @@ require 'tempfile'
|
|
|
13
13
|
require 'rbconfig'
|
|
14
14
|
|
|
15
15
|
PROJECT_LIBS = File.join(File.dirname(__FILE__), 'lib')
|
|
16
|
+
DYNAMIC_DOCS = 'ruby-vpi-dynamic.rb'
|
|
16
17
|
|
|
17
18
|
$:.unshift PROJECT_LIBS
|
|
18
19
|
require 'ruby-vpi'
|
|
19
20
|
require 'ruby-vpi/rake'
|
|
21
|
+
require 'ruby-vpi/util'
|
|
20
22
|
|
|
21
23
|
task :default => :build
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
# load project information
|
|
25
|
-
include RubyVPI
|
|
26
|
-
PROJECT_SSH_URL = "snk@rubyforge.org:/var/www/gforge-projects/#{PROJECT_ID}"
|
|
27
|
-
|
|
28
|
-
load 'doc/history.rb'
|
|
29
|
-
head = @history.first
|
|
30
|
-
PROJECT_VERSION = head['Version']
|
|
31
|
-
PROJECT_BIRTHDAY = head['Date']
|
|
32
|
-
|
|
33
|
-
|
|
34
25
|
# utility
|
|
35
26
|
|
|
36
27
|
# Returns a temporary, unique path ready for
|
|
@@ -41,16 +32,10 @@ task :default => :build
|
|
|
41
32
|
path
|
|
42
33
|
end
|
|
43
34
|
|
|
44
|
-
# uploads the given sources to the given destination URL
|
|
45
|
-
def upload aDestUrl, *aSources
|
|
46
|
-
sh 'rsync', '-avz', '--delete', aSources, aDestUrl
|
|
47
|
-
end
|
|
48
|
-
|
|
49
35
|
# propogate cleaning tasks recursively to lower levels
|
|
50
36
|
%w[clean clobber].each do |t|
|
|
51
37
|
task t do
|
|
52
|
-
files = FileList['**/Rakefile'].exclude('_darcs')
|
|
53
|
-
files.shift # avoid infinite loop on _this_ file
|
|
38
|
+
files = FileList['**/Rakefile'].exclude('_darcs') - %w[Rakefile]
|
|
54
39
|
|
|
55
40
|
# allows propogation to lower levels when gem not installed
|
|
56
41
|
ENV['RUBYLIB'] = PROJECT_LIBS
|
|
@@ -63,9 +48,7 @@ task :default => :build
|
|
|
63
48
|
end
|
|
64
49
|
end
|
|
65
50
|
|
|
66
|
-
|
|
67
51
|
# extension
|
|
68
|
-
|
|
69
52
|
desc "Builds object files for all simulators."
|
|
70
53
|
task :build
|
|
71
54
|
|
|
@@ -75,20 +58,20 @@ task :default => :build
|
|
|
75
58
|
ccFlags = ENV['CFLAGS']
|
|
76
59
|
ldFlags = ENV['LDFLAGS']
|
|
77
60
|
|
|
78
|
-
SIMULATORS.
|
|
79
|
-
taskName = "build_#{id}"
|
|
61
|
+
RubyVPI::SIMULATORS.each do |sim|
|
|
62
|
+
taskName = "build_#{sim.id}"
|
|
80
63
|
|
|
81
64
|
desc "Builds object files for #{sim.name}."
|
|
82
65
|
task taskName => ['obj', 'ext'] do
|
|
83
|
-
src =
|
|
84
|
-
dst = File.expand_path(File.join('obj', "#{id}.so"))
|
|
66
|
+
src = RubyVPI::Project[:name] + '.' + Config::CONFIG['DLEXT']
|
|
67
|
+
dst = File.expand_path(File.join('obj', "#{sim.id}.so"))
|
|
85
68
|
|
|
86
69
|
unless File.exist? dst
|
|
87
70
|
cd 'ext' do
|
|
88
71
|
ENV['CFLAGS'] = [ccFlags, sim.compiler_args].compact.join(' ')
|
|
89
72
|
ENV['LDFLAGS'] = [ldFlags, sim.linker_args].compact.join(' ')
|
|
90
73
|
|
|
91
|
-
sh "rake SIMULATOR=#{id}"
|
|
74
|
+
sh "rake SIMULATOR=#{sim.id}"
|
|
92
75
|
mv src, dst
|
|
93
76
|
sh 'rake clean'
|
|
94
77
|
end
|
|
@@ -98,41 +81,88 @@ task :default => :build
|
|
|
98
81
|
task :build => taskName
|
|
99
82
|
end
|
|
100
83
|
|
|
101
|
-
|
|
102
84
|
# documentation
|
|
85
|
+
desc "Build the documentation."
|
|
86
|
+
task :doc
|
|
103
87
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
sh 'rake'
|
|
108
|
-
end
|
|
88
|
+
# the user guide
|
|
89
|
+
file 'doc/guide.html' => 'doc/guide.erb' do |t|
|
|
90
|
+
sh "gerbil html #{t.prerequisites} > #{t.name}"
|
|
109
91
|
end
|
|
92
|
+
task :doc => 'doc/guide.html'
|
|
93
|
+
CLOBBER.include 'doc/guide.html'
|
|
110
94
|
|
|
95
|
+
# API reference
|
|
96
|
+
directory 'doc/api'
|
|
97
|
+
CLOBBER.include 'doc/api'
|
|
111
98
|
|
|
112
|
-
|
|
113
|
-
|
|
99
|
+
desc "Build API reference."
|
|
100
|
+
task :ref => ['doc/api/ruby', 'doc/api/c']
|
|
114
101
|
|
|
115
|
-
|
|
116
|
-
|
|
102
|
+
file DYNAMIC_DOCS => 'ext/vpi_user.h' do |t|
|
|
103
|
+
File.open t.name, 'w' do |f|
|
|
104
|
+
f.puts "# This module encapsulates all functionality provided by the C-language Application Programming Interface (API) of the Verilog Procedural Interface (VPI). See the ext/vpi_user.h file for details."
|
|
105
|
+
f.puts "module VPI"
|
|
106
|
+
body = File.read(t.prerequisites[0])
|
|
117
107
|
|
|
108
|
+
# constants
|
|
109
|
+
body.scan %r{^#define\s+(vpi\S+)\s+(\S+)\s+/\*+(.*?)\*+/} do |var, val, info|
|
|
110
|
+
const = var.to_ruby_const_name
|
|
111
|
+
f.puts '# ' << info
|
|
112
|
+
f.puts "#{const}=#{val}"
|
|
118
113
|
|
|
119
|
-
|
|
120
|
-
|
|
114
|
+
f.puts "# Returns the #{const} constant: #{info}"
|
|
115
|
+
f.puts "def self.#{var}; end"
|
|
116
|
+
end
|
|
121
117
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
118
|
+
# functions
|
|
119
|
+
body.scan /^XXTERN\s+(\S+\s+\*?)(\S+)\s+PROTO_PARAMS\(\((.*?)\)\);/m do |type, func, args|
|
|
120
|
+
meth = func.gsub(/\W/, '')
|
|
121
|
+
args = args.gsub(/[\r\n]/, ' ')
|
|
122
|
+
|
|
123
|
+
[
|
|
124
|
+
[ /PLI_BYTE8(\s*)\*(\s*data)/ , 'Object\1\2' ],
|
|
125
|
+
[ /PLI_BYTE8(\s*)\*?/ , 'String\1' ],
|
|
126
|
+
[ /PLI_U?INT32(\s*)\*/ , 'Array\1' ],
|
|
127
|
+
[ /PLI_U?INT32/ , 'Integer' ],
|
|
128
|
+
[ /\b[ps]_/ , 'VPI::S_' ],
|
|
129
|
+
[ 'vpiHandle' , 'VPI::Handle' ],
|
|
130
|
+
[ /va_list\s+\w+/ , '...' ],
|
|
131
|
+
[ /\bvoid(\s*)\*/ , 'Object\1' ],
|
|
132
|
+
[ 'void' , 'nil' ],
|
|
133
|
+
].each do |(a, b)|
|
|
134
|
+
args.gsub! a, b
|
|
135
|
+
type.gsub! a, b
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
f.puts "# #{func}(#{args}) returns #{type}"
|
|
139
|
+
f.puts "def self.#{meth}; end"
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# VPI::Handle methods
|
|
143
|
+
f.puts "class Handle"
|
|
144
|
+
require 'lib/ruby-vpi/core/edge-methods.rb'
|
|
145
|
+
RubyVPI::EdgeClass::DETECTION_METHODS.each do |m|
|
|
146
|
+
f.puts "# #{m.info}"
|
|
147
|
+
f.puts "def #{m.name}; end"
|
|
148
|
+
end
|
|
149
|
+
f.puts "end"
|
|
150
|
+
f.puts "end"
|
|
151
|
+
end
|
|
128
152
|
end
|
|
153
|
+
CLOBBER.include DYNAMIC_DOCS
|
|
129
154
|
|
|
155
|
+
Rake::RDocTask.new 'doc/api/ruby' do |t|
|
|
156
|
+
Rake::Task['doc/api'].invoke
|
|
157
|
+
t.rdoc_dir = t.name
|
|
130
158
|
|
|
131
|
-
|
|
132
|
-
|
|
159
|
+
Rake::Task[DYNAMIC_DOCS].invoke
|
|
160
|
+
t.rdoc_files.include 'bin/{ruby-vpi,*.rb}', 'lib/**/*.rb', DYNAMIC_DOCS
|
|
161
|
+
end
|
|
133
162
|
|
|
134
|
-
|
|
135
|
-
|
|
163
|
+
|
|
164
|
+
desc 'Build API reference for C.'
|
|
165
|
+
file 'doc/api/c' => 'doc/api' do |t|
|
|
136
166
|
# doxygen outputs to this temporary destination
|
|
137
167
|
tempDest = 'ext/html'
|
|
138
168
|
|
|
@@ -140,67 +170,25 @@ task :default => :build
|
|
|
140
170
|
sh "doxygen"
|
|
141
171
|
end
|
|
142
172
|
|
|
143
|
-
mv
|
|
144
|
-
rmdir tempDest
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
# distribution
|
|
149
|
-
|
|
150
|
-
desc 'Publish documentation to website.'
|
|
151
|
-
task :web => ['ref/web', 'doc/web']
|
|
152
|
-
|
|
153
|
-
desc "Publish reference documentation."
|
|
154
|
-
task 'ref/web' => 'ref' do |t|
|
|
155
|
-
upload PROJECT_SSH_URL, *t.prerequisites
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
desc "Publish user documentation."
|
|
159
|
-
task 'doc/web' => 'doc' do |t|
|
|
160
|
-
upload PROJECT_SSH_URL, *t.prerequisites
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
desc 'Connect to website FTP.'
|
|
164
|
-
task :ftp do
|
|
165
|
-
sh 'lftp', "sftp://#{PROJECT_SSH_URL}"
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
desc 'Generate release announcement.'
|
|
169
|
-
task :ann => 'doc/history.rb' do |t|
|
|
170
|
-
require t.prerequisites[0]
|
|
171
|
-
|
|
172
|
-
$: << File.join(File.dirname(__FILE__), 'doc', 'lib')
|
|
173
|
-
require 'doc_proxy'
|
|
174
|
-
|
|
175
|
-
text = [
|
|
176
|
-
PROJECT_DETAIL,
|
|
177
|
-
"* See #{PROJECT_URL} for details.",
|
|
178
|
-
"---",
|
|
179
|
-
@history.first
|
|
180
|
-
].join "\n\n"
|
|
181
|
-
|
|
182
|
-
IO.popen('w3m -T text/html -dump -cols 60', 'w+') do |pipe|
|
|
183
|
-
pipe.write text.to_html
|
|
184
|
-
pipe.close_write
|
|
185
|
-
puts pipe.read
|
|
186
|
-
end
|
|
173
|
+
mv tempDest, t.name
|
|
187
174
|
end
|
|
188
175
|
|
|
189
|
-
|
|
190
176
|
# packaging
|
|
191
|
-
|
|
192
|
-
desc "Generate release packages."
|
|
193
|
-
task :release => [:ref, :doc] do
|
|
194
|
-
sh 'rake package'
|
|
195
|
-
end
|
|
196
|
-
|
|
197
177
|
spec = Gem::Specification.new do |s|
|
|
198
|
-
s.name =
|
|
199
|
-
s.
|
|
200
|
-
s.summary =
|
|
201
|
-
s.description =
|
|
202
|
-
s.homepage =
|
|
203
|
-
s.
|
|
178
|
+
s.name = RubyVPI::Project[:name].downcase
|
|
179
|
+
s.version = RubyVPI::Project[:version]
|
|
180
|
+
s.summary = "Ruby interface to IEEE 1364-2005 Verilog VPI"
|
|
181
|
+
s.description = "Ruby-VPI is a #{s.summary} and a platform for unit testing, rapid prototyping, and systems integration of Verilog modules through Ruby. It lets you create complex Verilog test benches easily and wholly in Ruby."
|
|
182
|
+
s.homepage = RubyVPI::Project[:website]
|
|
183
|
+
s.rubyforge_project = s.name
|
|
184
|
+
|
|
185
|
+
s.files = FileList['**/*'].exclude('_darcs', DYNAMIC_DOCS)
|
|
186
|
+
s.autorequire = s.name
|
|
187
|
+
s.extensions << 'gem_extconf.rb'
|
|
188
|
+
s.executables = s.name
|
|
189
|
+
|
|
190
|
+
s.requirements << "POSIX threads library"
|
|
191
|
+
s.requirements << "C language compiler"
|
|
204
192
|
|
|
205
193
|
s.add_dependency 'rake', '>= 0.7.0'
|
|
206
194
|
s.add_dependency 'rspec', '>= 1.0.0'
|
|
@@ -208,23 +196,13 @@ task :default => :build
|
|
|
208
196
|
s.add_dependency 'xx' # needed by rcov
|
|
209
197
|
s.add_dependency 'ruby-debug', '>= 0.5.2'
|
|
210
198
|
s.add_dependency 'ruby-prof'
|
|
211
|
-
|
|
212
|
-
s.requirements << "POSIX threads library"
|
|
213
|
-
s.requirements << "C language compiler"
|
|
214
|
-
|
|
215
|
-
s.files = FileList['**/*'].exclude('_darcs')
|
|
216
|
-
s.autorequire = PROJECT_ID
|
|
217
|
-
s.extensions << 'gem_extconf.rb'
|
|
218
|
-
s.executables = PROJECT_ID
|
|
219
199
|
end
|
|
220
200
|
|
|
221
201
|
Rake::GemPackageTask.new(spec) do |pkg|
|
|
222
202
|
pkg.need_tar = true
|
|
223
203
|
end
|
|
224
204
|
|
|
225
|
-
|
|
226
205
|
# installation
|
|
227
|
-
|
|
228
206
|
desc "Configures the gem during installation."
|
|
229
207
|
task :gem_config_inst do |t|
|
|
230
208
|
# make documentation available to gem_server
|
|
@@ -236,8 +214,18 @@ task :default => :build
|
|
|
236
214
|
ln_s gemDir, File.join(docDir, 'rdoc')
|
|
237
215
|
end
|
|
238
216
|
|
|
217
|
+
# releasing
|
|
218
|
+
desc 'Build release packages.'
|
|
219
|
+
task :dist => [:clobber, :doc, :ref] do
|
|
220
|
+
system 'rake package'
|
|
221
|
+
end
|
|
239
222
|
|
|
240
|
-
#
|
|
223
|
+
# utility
|
|
224
|
+
desc 'Upload to project website.'
|
|
225
|
+
task :upload => [:doc, :ref] do
|
|
226
|
+
sh "rsync -av doc/ ~/www/lib/#{spec.name}"
|
|
227
|
+
sh "rsync -av doc/api/ ~/www/lib/#{spec.name}/api/ --delete"
|
|
228
|
+
end
|
|
241
229
|
|
|
242
230
|
desc "Ensure that examples work with $SIMULATOR"
|
|
243
231
|
task :test => :build do
|
|
@@ -247,8 +235,6 @@ task :default => :build
|
|
|
247
235
|
sim = ENV['SIMULATOR'] || 'cver'
|
|
248
236
|
|
|
249
237
|
FileList['examples/**/*.rake'].each do |runner|
|
|
250
|
-
|
|
251
|
-
sh 'rake', '-f', File.basename(runner), sim
|
|
252
|
-
end
|
|
238
|
+
sh 'rake', '-f', runner, sim
|
|
253
239
|
end
|
|
254
240
|
end
|
data/TODO
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
Pending tasks
|
|
2
|
+
=============
|
|
3
|
+
|
|
4
|
+
* add support for multiple Ruby prototypes so that you can do integration
|
|
5
|
+
testing and ESL stuff
|
|
6
|
+
|
|
7
|
+
* add shortcuts for reading & writing VPI delay values
|
|
8
|
+
|
|
9
|
+
* add support for GHDL simulator (and thereby VHDL!) because it supports VPI
|
|
10
|
+
|
|
11
|
+
* add instructions for using *ruby-debug* with a graphical debugging tool or IDE
|
|
12
|
+
like RadRails
|
|
13
|
+
|
|
14
|
+
* write section about code coverage and prototyping in manual
|
|
15
|
+
|
|
16
|
+
* write unit tests for the non-VPI libraries like integer.rb and float.rb
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
Finished tasks
|
|
20
|
+
==============
|
|
21
|
+
|
|
22
|
+
* add support for ESL prototyping (like SystemC)
|
|
23
|
+
|
|
24
|
+
* decouple code generation with $RUBYLIB and erb
|
|
25
|
+
|
|
26
|
+
* change should_be to should_equal in examples
|
|
27
|
+
|
|
28
|
+
* add support for GPL Cver in the test runner template
|
|
29
|
+
|
|
30
|
+
* build ruby-vpi once to generate all .so files
|
|
31
|
+
|
|
32
|
+
* test runner should not rebuild ruby-vpi every time
|
|
33
|
+
|
|
34
|
+
* distribute as a GEM, binary, and source
|
|
35
|
+
|
|
36
|
+
* use RUBYLIB to bypass rubygems site installation for local testing.
|
|
37
|
+
otherwise have to build & install gem _every_ time!
|
|
38
|
+
|
|
39
|
+
* move stuff from lib/ into lib/ruby-vpi/
|
|
40
|
+
|
|
41
|
+
* integrate RCov for code-coverage statistics
|
|
42
|
+
|
|
43
|
+
* method_missing for Design class
|
|
44
|
+
|
|
45
|
+
* define handled methods in Vpi::method_missing for faster response
|
|
46
|
+
|
|
47
|
+
* this has been verified as bottleneck from profiling data
|
|
48
|
+
|
|
49
|
+
* make RCov correctly profile the code and report useful coverage metrics...
|
|
50
|
+
|
|
51
|
+
* add support for VPI callbacks which execute Ruby blocks
|
|
52
|
+
|
|
53
|
+
* write section about code coverage and prototyping in manual
|
|
54
|
+
|
|
55
|
+
* clean up the teriminology section... unnecessary
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Obsolete tasks
|
|
59
|
+
==============
|
|
60
|
+
|
|
61
|
+
* smarter test generation, which adjusts to user modifications in previously
|
|
62
|
+
generated output
|
|
63
|
+
|
|
64
|
+
Just use a smart merging tool like *kdiff3*.
|
|
65
|
+
|
|
66
|
+
* interactive console IRB wrapper for spec (just like Breakpoints in Rails)
|
|
67
|
+
|
|
68
|
+
Use the *ruby-debug* library with "*debugger* command for
|
|
69
|
+
breakpoints":http://www.datanoise.com/articles/category/ruby-debug instead!
|
|
70
|
+
|
|
71
|
+
* need to dump signal values when expectation fails in rSpec
|
|
72
|
+
|
|
73
|
+
You can use the interactive debugger instead.
|
|
74
|
+
|
|
75
|
+
* maybe a waveform dump will also help
|
|
76
|
+
|
|
77
|
+
After reading some RTL verification books, this is not necessarily true.
|
data/bin/convert.rb
CHANGED
data/bin/generate/design.rb
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
<% clock = aModuleInfo.clock_port.name rescue "YOUR_CLOCK_SIGNAL_HERE" %>
|
|
2
2
|
# Simulates the design under test for one clock cycle.
|
|
3
|
-
def cycle!
|
|
3
|
+
def DUT.cycle!
|
|
4
4
|
<%= clock %>.high!
|
|
5
5
|
advance_time
|
|
6
|
+
|
|
6
7
|
<%= clock %>.low!
|
|
7
8
|
advance_time
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
<% reset = aModuleInfo.reset_port.name rescue "YOUR_RESET_SIGNAL_HERE" %>
|
|
11
12
|
# Brings the design under test into a blank state.
|
|
12
|
-
def reset!
|
|
13
|
+
def DUT.reset!
|
|
13
14
|
<%= reset %>.high!
|
|
14
15
|
cycle!
|
|
15
16
|
<%= reset %>.low!
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
RubyVPI.load_test(<%= aModuleInfo.name.inspect %>, <%= aOutputInfo.designPath.inspect %>, <%= aOutputInfo.protoPath.inspect %>, <%= aOutputInfo.specPath.inspect %>)
|
data/bin/generate/proto.rb
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
if RubyVPI::USE_PROTOTYPE
|
|
2
|
+
always do
|
|
3
|
+
wait until DUT.<%= aModuleInfo.clock_port.name rescue "YOUR_CLOCK_SIGNAL_HERE" %>.posedge?
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
# discard old outputs
|
|
6
|
+
<% aModuleInfo.output_ports.each do |port| %>
|
|
7
|
+
DUT.<%= port.name %>.x!
|
|
8
|
+
<% end %>
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
# process new inputs
|
|
11
|
+
<% aModuleInfo.input_ports.each do |port| %>
|
|
12
|
+
# some_interesting_process( DUT.<%= port.name %> )
|
|
13
|
+
<% end %>
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
# produce new outputs
|
|
16
|
+
<% aModuleInfo.output_ports.each do |port| %>
|
|
17
|
+
# DUT.<%= port.name %> = some interesting output
|
|
18
|
+
<% end %>
|
|
19
|
+
end
|
|
18
20
|
end
|
data/bin/generate/runner.rake
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Path to a Ruby script that will be invoked before the Verilog
|
|
2
|
+
# simulation begins. This script shall then load the appropriate
|
|
3
|
+
# tests to exercise the desired designs in the Verilog simulation.
|
|
4
|
+
TEST_LOADER = <%= aOutputInfo.loaderPath.inspect %>
|
|
5
|
+
|
|
1
6
|
# Array of paths and shell globs (see the Dir.glob method's documentation for
|
|
2
7
|
# details) to source files and directories that contain source files. These
|
|
3
8
|
# source files will be loaded by the simulator before the simulation begins.
|
|
@@ -13,9 +18,9 @@ SIMULATOR_SOURCES = FileList[
|
|
|
13
18
|
# :cver => %w[these are also separate arguments],
|
|
14
19
|
#
|
|
15
20
|
SIMULATOR_ARGUMENTS = {
|
|
16
|
-
<% RubyVPI::SIMULATORS.
|
|
21
|
+
<% RubyVPI::SIMULATORS.each do |sim| %>
|
|
17
22
|
# <%= sim.name %>
|
|
18
|
-
:<%= id %> => "",
|
|
23
|
+
:<%= sim.id %> => "<%= aModuleInfo.name if sim.id == :vsim %>",
|
|
19
24
|
|
|
20
25
|
<% end %>
|
|
21
26
|
}
|
|
@@ -29,5 +34,5 @@ task :setup do
|
|
|
29
34
|
end
|
|
30
35
|
|
|
31
36
|
# This command loads the Ruby-VPI runner template,
|
|
32
|
-
# which
|
|
37
|
+
# which starts the simulator with the above parameters.
|
|
33
38
|
require 'ruby-vpi/runner'
|
data/bin/generate/spec.rb
CHANGED
|
@@ -1,45 +1,43 @@
|
|
|
1
|
-
<% dut = aOutputInfo.designClassName %>
|
|
2
|
-
|
|
3
1
|
<% case aOutputInfo.specFormat %>
|
|
4
2
|
<% when :xUnit %>
|
|
5
3
|
require 'test/unit'
|
|
6
4
|
|
|
7
|
-
class <%=
|
|
5
|
+
class A_<%= aModuleInfo.name %>_when_reset < Test::Unit::TestCase
|
|
8
6
|
def setup
|
|
9
|
-
|
|
7
|
+
DUT.reset!
|
|
10
8
|
end
|
|
11
9
|
<% aModuleInfo.ports.each do |port| %>
|
|
12
10
|
|
|
13
11
|
def test_<%= port.name %>
|
|
14
|
-
# assert
|
|
12
|
+
# assert DUT.<%= port.name %> ..., "<%= port.name %> should ..."
|
|
15
13
|
end
|
|
16
14
|
<% end %>
|
|
17
15
|
end
|
|
18
16
|
<% when :tSpec %>
|
|
19
17
|
require 'test/spec'
|
|
20
18
|
|
|
21
|
-
context "A
|
|
19
|
+
context "A #{DUT.name}, when reset" do
|
|
22
20
|
setup do
|
|
23
|
-
|
|
21
|
+
DUT.reset!
|
|
24
22
|
end
|
|
25
23
|
|
|
26
24
|
specify "should ..." do
|
|
27
|
-
#
|
|
25
|
+
# DUT.should ...
|
|
28
26
|
end
|
|
29
27
|
end
|
|
30
28
|
<% when :rSpec %>
|
|
31
29
|
require 'spec'
|
|
32
30
|
|
|
33
|
-
describe
|
|
31
|
+
describe "A #{DUT.name}, when reset" do
|
|
34
32
|
before do
|
|
35
|
-
|
|
33
|
+
DUT.reset!
|
|
36
34
|
end
|
|
37
35
|
|
|
38
36
|
it "should ..." do
|
|
39
|
-
#
|
|
37
|
+
# DUT.should ...
|
|
40
38
|
end
|
|
41
39
|
end
|
|
42
40
|
<% else %>
|
|
43
|
-
|
|
44
|
-
# raise "should ..." unless
|
|
41
|
+
DUT.reset!
|
|
42
|
+
# raise "should ..." unless DUT ...
|
|
45
43
|
<% end %>
|