ruby-vpi 19.0.0 → 20.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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/doc/history.inc
DELETED
@@ -1,1077 +0,0 @@
|
|
1
|
-
<% section "Version 19.0.0 (2007-08-27)", "19.0.0" do %>This release restores support for Cadence NC-Sim, breaks support for Mentor Modelsim, adds support for concurrent processes which simplify implementing Ruby prototypess, and offers numerous other improvements.
|
2
|
-
|
3
|
-
*Mentor Modelsim users, take note*: this release does not work very well with Mentor Modelsim, so do not upgrade until compatibility is restored in a future release. In the mean time, consider using this release with another simulator, such as "GPL Cver":http://www.pragmatic-c.com/gpl-cver/.
|
4
|
-
|
5
|
-
|
6
|
-
h2. Thanks
|
7
|
-
|
8
|
-
* Calvin Wong "requested the concurrent processes feature":http://rubyforge.org/pipermail/ruby-vpi-discuss/2007-August/000046.html, helped test it, and provided useful feedback.
|
9
|
-
|
10
|
-
|
11
|
-
h2. Caution
|
12
|
-
|
13
|
-
* Prototypes no longer have a @feign!@ method. Instead, they emulate the behavior of the real Verilog DUT using the new "concurrency model":manual.html#usage.concurrency.
|
14
|
-
|
15
|
-
* All "initial" blocks in Verilog code are now evaluated _before_ the specification begins executing. This allows you to set the initial value of registers in Verilog before the specification interacts with them.
|
16
|
-
|
17
|
-
* The @Vpi@ module has been renamed to @VPI@ for consistency with the project name.
|
18
|
-
|
19
|
-
* The @VPI::simulation_time@ method has been renamed to @VPI::current_time@.
|
20
|
-
|
21
|
-
* The @VPI::Handle.value_forced?@ method has been renamed to @VPI::Handle.force?@
|
22
|
-
|
23
|
-
* The <tt>samp/</tt> directory has been renamed to <tt>examples/</tt>.
|
24
|
-
|
25
|
-
* Code coverage analysis results are now produced only in plain-text format.
|
26
|
-
|
27
|
-
|
28
|
-
h2. Repairs
|
29
|
-
|
30
|
-
* You can now access VPI constants using their original uncapitalized names. For example, you can now write "vpiIntVal" instead of having to write "VpiIntVal". However, note that the capitalized names are still supported, so you are not required to change your code.
|
31
|
-
|
32
|
-
* Value change / edge detection for VPI handles was previously incorrect: if you called the @VPI::Handle.posedge?@ function twice in the same time step, it would give you two different answers.
|
33
|
-
|
34
|
-
* The problem of not being able to write values to nets in Cadence NC-Sim has been fixed.
|
35
|
-
|
36
|
-
|
37
|
-
h2. Additions
|
38
|
-
|
39
|
-
* Added support for "concurrent processes":manual.html#usage.concurrency, which make Ruby prototypes appear more like Verilog code and also give the ability to write parallel tests.
|
40
|
-
|
41
|
-
* Added support for performance profiling using the "ruby-prof":http://ruby-prof.rubyforge.org project. The profiler can be enabled by setting the @PROFILER@ environment variable to "1" before running a Ruby-VPI test.
|
42
|
-
|
43
|
-
* Added new method aliases to @VPI::Handle@ for value detection. The complete list of aliases is now:
|
44
|
-
** Tests if the logic value of this handle is unknown (x).
|
45
|
-
*** x?
|
46
|
-
*** unknown?
|
47
|
-
*** dont_care?
|
48
|
-
** Sets the logic value of this handle to unknown (x).
|
49
|
-
*** x!
|
50
|
-
*** unknown!
|
51
|
-
*** dont_care!
|
52
|
-
** Tests if the logic value of this handle is high impedance (z).
|
53
|
-
*** z?
|
54
|
-
*** hi_z?
|
55
|
-
*** high_z?
|
56
|
-
*** high_impedance?
|
57
|
-
*** tri_state?
|
58
|
-
*** floating?
|
59
|
-
** Sets the logic value of this handle to high impedance (z).
|
60
|
-
*** z!
|
61
|
-
*** hi_z!
|
62
|
-
*** high_z!
|
63
|
-
*** high_impedance!
|
64
|
-
*** tri_state!
|
65
|
-
*** floating!
|
66
|
-
** Tests if the logic value of this handle is at "logic high" level.
|
67
|
-
*** high?
|
68
|
-
*** one?
|
69
|
-
** Sets the logic value of this handle to "logic high" level.
|
70
|
-
*** high!
|
71
|
-
*** one!
|
72
|
-
** Tests if the logic value of this handle is at "logic low" level.
|
73
|
-
*** low?
|
74
|
-
*** zero?
|
75
|
-
** Sets the logic value of this handle to "logic low" level.
|
76
|
-
*** low!
|
77
|
-
*** zero!
|
78
|
-
|
79
|
-
* Added new methods to @VPI::Handle@ for value change / edge detection:
|
80
|
-
** edge? - detects positive and negative edges
|
81
|
-
** change? - detects any kind of value change
|
82
|
-
** change_00? - detects a value change from 0 to 0
|
83
|
-
** change_01? - detects a value change from 0 to 1
|
84
|
-
** change_0x? - detects a value change from 0 to unknown
|
85
|
-
** change_0z? - detects a value change from 0 to high-Z
|
86
|
-
** change_10? - detects a value change from 1 to 0
|
87
|
-
** change_11? - detects a value change from 1 to 1
|
88
|
-
** change_1x? - detects a value change from 1 to unknown
|
89
|
-
** change_1z? - detects a value change from 1 to high-Z
|
90
|
-
** change_x0? - detects a value change from unknown to 0
|
91
|
-
** change_x1? - detects a value change from unknown to 1
|
92
|
-
** change_xx? - detects a value change from unknown to unknown
|
93
|
-
** change_xz? - detects a value change from unknown to high-Z
|
94
|
-
** change_z0? - detects a value change from high-Z to 0
|
95
|
-
** change_z1? - detects a value change from high-Z to 1
|
96
|
-
** change_zx? - detects a value change from high-Z to unknown
|
97
|
-
** change_zz? - detects a value change from high-Z to high-Z
|
98
|
-
<% end %><% section "Version 18.0.2 (2007-08-03)", "18.0.2" do %>This release fixes a bug in error reporting.
|
99
|
-
|
100
|
-
|
101
|
-
h2. Repairs
|
102
|
-
|
103
|
-
* Unhandled Ruby exceptions and errors were not being printed to the screen because Ruby-VPI unconditionally gave control back to the Verilog simulator before it exited.
|
104
|
-
<% end %><% section "Version 18.0.1 (2007-08-02)", "18.0.1" do %>This release fixes some bugs regarding simulation time and control.
|
105
|
-
|
106
|
-
|
107
|
-
h2. Thanks
|
108
|
-
|
109
|
-
* Calvin Wong reported the bugs listed in the Repairs section.
|
110
|
-
|
111
|
-
|
112
|
-
h2. Repairs
|
113
|
-
|
114
|
-
* VCS does not acknowledge passage of time when cbReadWriteSynch callback is used, so I reverted back to using the cbAfterDelay callback (as was done in version 17.0.0).
|
115
|
-
|
116
|
-
* Ruby-VPI did not give control back to the Verilog simulator before it exited. As a result, the Verilog simulator did not have a chance to do any clean up or finish any pending tasks that remained in the simulation.
|
117
|
-
<% end %><% section "Version 18.0.0 (2007-07-31)", "18.0.0" do %>This release restores support for Synopsys VCS and Cadence NC-Sim, improves portability and performance, and enhances the VPI abstraction layer.
|
118
|
-
|
119
|
-
|
120
|
-
h2. Thanks
|
121
|
-
|
122
|
-
* Calvin Wong discovered "how to bypass the following error":http://rubyforge.org/forum/message.php?msg_id=25691 emitted by Synopsys VCS when loading the Ruby-VPI shared object file.
|
123
|
-
|
124
|
-
<pre>
|
125
|
-
Could not open library specified in -load option obj/vcs
|
126
|
-
obj/vcs: undefined symbol: vpi_put_data
|
127
|
-
</pre>
|
128
|
-
|
129
|
-
|
130
|
-
h2. Caution
|
131
|
-
|
132
|
-
* "SWIG":http://www.swig.org/ is now required in order to compile and install Ruby-VPI.
|
133
|
-
|
134
|
-
* @Vpi::Handle.put_value@ no longer checks whether the value written matches the value read back after writing because that only works when there is no VPI delay associated with the write.
|
135
|
-
|
136
|
-
* When @Vpi::Handle.put_value@ is used to write a value to a wire (VpiNet), it now _forces_ the value. This is done to ensure portability:
|
137
|
-
|
138
|
-
Synopsys VCS and Cadence NC-Sim forget the value written to a wire during the next simulation time step, whereas Mentor Modelsim and GPL Cver remember the value (thereby treating wires as registers).
|
139
|
-
|
140
|
-
Note that you have to release a forced value (using @Vpi::Handle.release_value@) on a wire after writing to the wire if you want the design under test have the ability to update the value of the wire later on:
|
141
|
-
|
142
|
-
<code>
|
143
|
-
your_wire.intVal = 15
|
144
|
-
your_wire.release_value
|
145
|
-
advance_time # let the Verilog DUT modify your_wire
|
146
|
-
</code>
|
147
|
-
|
148
|
-
In addition, you can check if a wire has a forced value using the @Vpi::Handle.value_forced?@ method.
|
149
|
-
|
150
|
-
* If the format is not specified, @Vpi::Handle.get_value@ now assumes that you want to read the value in VpiIntVal format (because this is the most common case).
|
151
|
-
|
152
|
-
* The definition of "Derivatives" has been reworded for clarity in the "project license":readme.html#intro.license.
|
153
|
-
|
154
|
-
|
155
|
-
h2. Repairs
|
156
|
-
|
157
|
-
* Synopsys VCS and Cadence NC-Sim simulators now correctly load Ruby-VPI. Also, the 64-bit versions of these simulators are now supported.
|
158
|
-
|
159
|
-
|
160
|
-
h2. Improvements
|
161
|
-
|
162
|
-
* Added "force_value", "release_value", and "value_forced?" methods to the @Vpi::Handle@ class.
|
163
|
-
|
164
|
-
* @Vpi::Handle.put_value@ now tries to automatically detect the format of the value to be written. As a result, you can now write @your_handle.put_value 35@ in lieu of writing @your_handle.intVal = 35@.
|
165
|
-
|
166
|
-
* @Vpi::Handle.inspect@ now shows the hexStrVal of the handle (because it is a common case to want to see a handle's logic value along with its other information).
|
167
|
-
|
168
|
-
* Added method caching (memoizing) for VPI property accesses on handles.
|
169
|
-
<% end %><% section "Version 17.0.0 (2007-07-22)", "17.0.0" do %>This release makes the Ruby-VPI testing framework more lightweight by reducing the number of files and parameters involved.
|
170
|
-
|
171
|
-
|
172
|
-
h2. Caution
|
173
|
-
|
174
|
-
* The *generate_test.rb* and *convert.rb* executables have been replaced by a single *ruby-vpi* executable to avoid name conflicts with other software. They are now accessed using the <pre>ruby-vpi generate</pre> and <pre>ruby-vpi convert</pre> commands respectively.
|
175
|
-
|
176
|
-
* The <tt>--name</tt> parameter has been removed from the automated test generator. Similarly, you can no longer insert an arbitrary name in a test's file names (see the "user manual":manual.html#Do_not_rename_generated_files for details).
|
177
|
-
|
178
|
-
* The @DEBUG@ environment variable, which controls wether the test runner starts the interactive debugger, has been renamed to @DEBUGGER@.
|
179
|
-
|
180
|
-
* The @SIMULATOR_TARGET@ and @SIMULATOR_INCLUDES@ parameters have been eliminated from test runners. The former is detected automatically. As for the latter, you can specify paths to directories in the @SIMULATOR_SOURCES@ parameter instead.
|
181
|
-
|
182
|
-
* The <tt>bench.rb</tt> and <tt>bench.v</tt> files of a generated test are (1) no longer generated by the test generator and (2) are now ignored. You must move the functionality provided by these files into <tt>design.rb</tt> and your Verilog module's source file respectively.
|
183
|
-
|
184
|
-
* The <tt>design.rb</tt> and <tt>proto.rb</tt> files are now loaded into a separate namespace (Ruby module). For example, if the Verilog module under test has the name "counter" and the <tt>design.rb</tt> file defines a class named "Foo", then that class will be accessible as "Counter::Foo".
|
185
|
-
|
186
|
-
* The global @Vpi::simulate@ method has been replaced by the @cycle!@ method in the <tt>design.rb</tt> file.
|
187
|
-
|
188
|
-
* The @simulate!@ method in the <tt>proto.rb</tt> file has been renamed to @feign!@ for accuracy.
|
189
|
-
|
190
|
-
* The @RubyVpi@ module has been renamed to @RubyVPI@.
|
191
|
-
|
192
|
-
* RSpec >= 1.0.0 is now required by Ruby-VPI.
|
193
|
-
|
194
|
-
* The "project license":readme.html#intro.license has been further simplified.
|
195
|
-
|
196
|
-
|
197
|
-
h2. Repairs
|
198
|
-
|
199
|
-
* Restored support for Enumerable methods in @Vpi::Handle@.
|
200
|
-
|
201
|
-
* The specification now begins to execute at simulation time 0. Previously it began at simulation time 1.
|
202
|
-
|
203
|
-
|
204
|
-
h2. Improvements
|
205
|
-
|
206
|
-
* The <tt>bench.rb</tt> and <tt>bench.v</tt> files of a generated test have been eliminated!
|
207
|
-
|
208
|
-
One important benefit is that the Ruby interface to the Verilog module under test is now a direct reference, whereas previously it was an _indirect_ reference (it pointed to the Verilog module defined in <tt>bench.v</tt>, which in turn wrapped around the actual Verilog module under test).
|
209
|
-
|
210
|
-
As a result, you can now access the internals of the Verilog module under test by simply calling methods on the Ruby interface, as you would naturally expect to be the case.
|
211
|
-
|
212
|
-
* The "a" accessor, which returns an _array_ of child handles, has been added to "the method naming format":manual.html#tbl:accessors for accessing child handles.
|
213
|
-
|
214
|
-
* All parameter objects in the Verilog module under test are automatically made available as constants. For example, if the Verilog module under test has the name @counter@ and has a parameter object named @WIDTH@, then you can access the integer value of that parameter using @Counter::WIDTH@.
|
215
|
-
|
216
|
-
* The automated test generator now tries to automatically detect the clock and reset signal from Verilog module declarations.
|
217
|
-
|
218
|
-
* The automated test generator now supports Verilog 95 style module declarations.
|
219
|
-
|
220
|
-
* Exceptions are now raised when you try to write to a read-only VPI property, such as @VpiName@.
|
221
|
-
|
222
|
-
* Added @high?@, @high!@, @low?@, and @low!@ methods to the @Vpi::Handle@ class.
|
223
|
-
|
224
|
-
* Revised the user manual by removing unnecessary sections and adding newer material from my master's thesis.
|
225
|
-
|
226
|
-
|
227
|
-
h2. Contributions
|
228
|
-
|
229
|
-
* Added Jacinto Shy II's "register file example":http://jacintoshy.blogspot.com/2007/05/hacking-verilog-with-ruby-part-2.html to Ruby-VPI. It can be found in <tt>samp/register_file/</tt>.
|
230
|
-
<% end %><% section "Version 16.0.1 (2007-05-27)", "16.0.1" do %>This release restores support for installation on Mac OS X.
|
231
|
-
|
232
|
-
h2. Thanks
|
233
|
-
|
234
|
-
* Mark Thompson "reported and solved":http://rubyforge.org/tracker/index.php?func=detail&aid=11125&group_id=1339&atid=5281 the problem.
|
235
|
-
|
236
|
-
h2. Repairs
|
237
|
-
|
238
|
-
* Shared-object files have a file extension of <tt>.so</tt> in Linux and <tt>.bundle</tt> on Mac OS X. Previously, only the Linux file extension was supported.
|
239
|
-
<% end %><% section "Version 16.0.0 (2007-05-02)", "16.0.0" do %>This release adds support for the "Cadence NC-Sim":http://www.cadence.com/products/functional_ver/nc-verilog/ simulator, improves the project website and documentation, simplifies interaction with VPI, and comes with a more permissive license.
|
240
|
-
|
241
|
-
|
242
|
-
h2. Caution
|
243
|
-
|
244
|
-
* The @Integer.ensure_min@ and @Integer.ensure_max@ methods have been removed from the <tt>ruby-vpi/integer.rb</tt> library because Ruby already has idioms for these operations: <pre>
|
245
|
-
>> 5.ensure_min 10
|
246
|
-
=> 10
|
247
|
-
>> [5, 10].max
|
248
|
-
=> 10
|
249
|
-
|
250
|
-
>> 5.ensure_max 10
|
251
|
-
=> 5
|
252
|
-
>> [5, 10].min
|
253
|
-
=> 5
|
254
|
-
</pre>
|
255
|
-
|
256
|
-
* Ruby-VPI is now developed under a "more permissive license":readme.html#intro.license that better reflects my ethical beliefs than "the previous license":http://www.gnu.org/copyleft/gpl.html.
|
257
|
-
|
258
|
-
|
259
|
-
h2. New features
|
260
|
-
|
261
|
-
* The "Cadence NC-Sim":http://www.cadence.com/products/functional_ver/nc-verilog/ (ncsim) simulator is now supported.
|
262
|
-
|
263
|
-
* VPI structures (whose names begin with "S_") now allow initialization of their members through their constructor, in the style of Ruby on Rails. For example, the expression @time = S_vpi_time.new :type => VpiSuppressTime@ is equivalent to: <code>
|
264
|
-
time = S_vpi_time.new
|
265
|
-
time.type = VpiSuppressTime
|
266
|
-
</code>
|
267
|
-
|
268
|
-
* Added the @Vpi::Handle.cbValueChange@ method which simplifies the registration of a value-change callback for a particular VPI handle. For instance, the user manual's "example of setting up a value-change callback":manual.html#ex..callback can now be written as follows: <code>
|
269
|
-
Counter.count.cbValueChange do |s_cb_data|
|
270
|
-
puts "hello from callback! time=#{s_cb_data.time.to_i} count=#{s_cb_data.obj.intVal}"
|
271
|
-
end
|
272
|
-
</code>
|
273
|
-
|
274
|
-
|
275
|
-
h2. Details
|
276
|
-
|
277
|
-
* Revised the project website according to the "Producing OSS":http://producingoss.com guidelines.
|
278
|
-
|
279
|
-
* Added instructions for checking out source code and generating documentation.
|
280
|
-
<% end %><% section "Version 15.0.2 (2007-01-22)", "15.0.2" do %>This release fixes problems with linking of the C extension and installation of the gem.
|
281
|
-
|
282
|
-
|
283
|
-
h2. Details
|
284
|
-
|
285
|
-
* Added checks for POSIX threads & Ruby libraries before creating makefile. Otherwise the <tt>.so</tt> files were not being linked to those libraries on the MASC machine!
|
286
|
-
|
287
|
-
* The *make* program on the MASC machine does not like an empty Makefile. It was causing gem installation to fail.
|
288
|
-
<% end %><% section "Version 15.0.1 (2007-01-15)", "15.0.1" do %>This release fixes another problem with compilation of the C extension and improves the user documentation's appearance.
|
289
|
-
|
290
|
-
|
291
|
-
h2. Thanks
|
292
|
-
|
293
|
-
* Derek Graham reported the problem with compilation of the C extension.
|
294
|
-
|
295
|
-
|
296
|
-
h2. Details
|
297
|
-
|
298
|
-
* Restored the monkey patch, which was removed in release 14.0.0, for the SWIG @va_list@ problem.
|
299
|
-
|
300
|
-
* Made table of contents in-line with the content in user documentation.
|
301
|
-
|
302
|
-
* Added printer-friendly stylesheet for user documentation.
|
303
|
-
<% end %><% section "Version 15.0.0 (2007-01-13)", "15.0.0" do %>This release fixes a problem with compilation of the C extension, and makes clock generation code correctly affect Ruby prototypes.
|
304
|
-
|
305
|
-
|
306
|
-
h2. Thanks
|
307
|
-
|
308
|
-
* Derek Graham reported the problem with compilation of the C extension.
|
309
|
-
|
310
|
-
|
311
|
-
h2. Caution
|
312
|
-
|
313
|
-
* The @Vpi::advance_time@ method (instead of the @Vpi::simulate@ method) now invokes the design's @simulate!@ method when prototyping is enabled.
|
314
|
-
|
315
|
-
This makes clock generation code (passed to the @RubyVpi::init_bench@ method) affect Ruby prototypes, just as it affects a real Verilog design.
|
316
|
-
|
317
|
-
As a result, Ruby prototypes may need to check for edge-triggering through the new @Vpi::Handle.posedge?@ and @Vpi::Handle.negedge?@ methods. For example, see the "new implementation of the Counter prototype":manual.html#fig..counter_proto.rb.
|
318
|
-
|
319
|
-
h3. New features
|
320
|
-
|
321
|
-
* Added @Vpi::Handle.posedge?@ and @Vpi::Handle.negedge?@ methods which check if a handle's logic value is currently at a positive or negative edge, respectively.
|
322
|
-
|
323
|
-
* Added @Vpi::S_vpi_time.integer@ and @Vpi::S_vpi_time.integer=@ methods which access the @high@ and @low@ integer fields as a single 64-bit integer.
|
324
|
-
|
325
|
-
* Added utility methods for accessing the @value@ field in the @Vpi::S_vpi_value@ structure.
|
326
|
-
|
327
|
-
|
328
|
-
h2. Details
|
329
|
-
|
330
|
-
* Fixed problem with incorrect Ruby library flag in <tt>ext/extconf.rb</tt>. It happens that the @mkmf@ library determines the correct library flag all by itself!
|
331
|
-
|
332
|
-
* Added new "prototyping section":manual.html#usage.prototyping to user manual.
|
333
|
-
|
334
|
-
* Fixed some broken URLs in user documentation.
|
335
|
-
<% end %><% section "Version 14.0.0 (2006-12-30)", "14.0.0" do %>This release adds support for simulation callbacks, renders Verilog benches _fully simplified_, and revises the user manual to reflect major changes.
|
336
|
-
|
337
|
-
|
338
|
-
h2. Caution
|
339
|
-
|
340
|
-
* The @Vpi::relay_verilog@ method has been replaced by @Vpi::simulate@.
|
341
|
-
|
342
|
-
Please update you tests accordingly, because invoking the @Vpi::relay_verilog@ method directly will cause your tests to freeze/hang.
|
343
|
-
|
344
|
-
* Verilog benches no longer contain any clock generation code. They are now mere skeletons, whose _only_ purpose is to instantiate the design under test.
|
345
|
-
|
346
|
-
The clock generation code is now contained in the Ruby bench.
|
347
|
-
|
348
|
-
h3. New features
|
349
|
-
|
350
|
-
* The @RubyVpi::init_bench@ method now gives you _complete control_ over performing a clock/operation/whatever cycle for your design. This feature allows you to work with multi-clocked designs.
|
351
|
-
|
352
|
-
* Callbacks are now supported through the @Vpi::vpi_register_cb@ method. See "the callbacks section in the user manual":manual.html#usage.vpi.callbacks for details.
|
353
|
-
|
354
|
-
* Added the @Vpi::advance_time@ method, which makes the Verilog simulator simulate a given number of time steps.
|
355
|
-
|
356
|
-
* Added the @Vpi::simulation_time@ method, which gives you the current simulation time as a 64-bit integer.
|
357
|
-
|
358
|
-
|
359
|
-
h2. Details
|
360
|
-
|
361
|
-
* Removed the monkey patch for the SWIG @va_list@ problem -- it no longer occurs.
|
362
|
-
|
363
|
-
* Cleansed the appearance of the user documentation.
|
364
|
-
** Added indices to section headings, just like LaTeX.
|
365
|
-
** Admonition boxes no longer interfere with surrounding text, and they don't have big gap above them.
|
366
|
-
** Navigation menu is now elastic (fluid layout).
|
367
|
-
|
368
|
-
* Revised the user manual and added new content.
|
369
|
-
** Moved "VPI utility layer" section from background chapter into usage chapter in user manual.
|
370
|
-
** Added a nice introduction to entire manual with links to reference documentation.
|
371
|
-
<% end %><% section "Version 13.0.0 (2006-12-27)", "13.0.0" do %>This release fixes a _major_ instability bug, simplifies generated Verilog benches, and purifies the API reference documentation.
|
372
|
-
|
373
|
-
|
374
|
-
h2. Caution
|
375
|
-
|
376
|
-
* The @$ruby_init@ and @$ruby_relay@ system task/functions have been removed. Generated Verilog benches no longer use them.
|
377
|
-
** To pass your own command-line options to Ruby, set the @RUBYOPT@ environment variable before running a test.
|
378
|
-
|
379
|
-
h3. New features
|
380
|
-
|
381
|
-
* You can now choose when @Vpi::relay_verilog@ is triggered: upon positive/negative edge of the clock signal, or any other criteria. This is done by passing a block to the @RubyVpi::init_bench@ method (see "the API reference documentation":../ref/ruby/classes/RubyVpi.html for details).
|
382
|
-
|
383
|
-
|
384
|
-
h2. Details
|
385
|
-
|
386
|
-
* Fixed a major instability bug that was randomly causing segmentation faults and pthread assertion failures.
|
387
|
-
|
388
|
-
The problem was that the @$ruby_init@ system task/function was mischeviously unlocking a pthread mutex. From then onward, all code assumed that the mutex was still locked -- but in reality, the mutex was already unlocked.
|
389
|
-
|
390
|
-
* Replaced the @$ruby_init@ and @$ruby_relay@ system task/functions with callbacks.
|
391
|
-
|
392
|
-
* Excluded internal stuff from the API reference documentation for Ruby.
|
393
|
-
|
394
|
-
* Removed system-dependent path <tt>/usr/bin/ruby</tt> from the tools.
|
395
|
-
<% end %><% section "Version 12.1.0 (2006-12-22)", "12.1.0" do %>This release adds interactive debugging support, adds new sections to the user manual, and cleanses some internals.
|
396
|
-
|
397
|
-
|
398
|
-
h2. Caution
|
399
|
-
|
400
|
-
* The <tt>lib/ruby-vpi/rspec.rb</tt> and <tt>lib/ruby-vpi/xx.rb</tt> files have been removed because they are no longer necessary.
|
401
|
-
|
402
|
-
* rSpec 0.7.0 or newer is now required because the sample tests utilize the @should ==@ syntax.
|
403
|
-
|
404
|
-
h3. New features
|
405
|
-
|
406
|
-
* Test runners now support the @DEBUG@ environment variable, which enables the interactive debugger (ruby-debug) in "post-mortem debugging mode":http://www.datanoise.com/articles/2006/12/20/post-mortem-debugging.
|
407
|
-
** The @debugger@ command can also be used when the @DEBUG@ environment variable is not activated.
|
408
|
-
|
409
|
-
* Status messages, which are shown during initialization of a Ruby bench, now appear in your simulator's log files.
|
410
|
-
|
411
|
-
|
412
|
-
h2. Details
|
413
|
-
|
414
|
-
* ruby-debug is now a gem dependency for Ruby-VPI.
|
415
|
-
|
416
|
-
* Added documentation about "test runners":manual.html#usage.test-runner and the "interactive debugger":manual.html#usage.debugger in the user manual.
|
417
|
-
|
418
|
-
* Added a <tt>README</tt> file with hint about where to find the user manual.
|
419
|
-
|
420
|
-
* Removed code that wasn't being used, according to code coverage analysis, from the pipelined ALU sample.
|
421
|
-
<% end %><% section "Version 12.0.2 (2006-12-18)", "12.0.2" do %>This release fixes a problem in the 12.0.1 gem, where the *generate_test.rb* and *header_to_ruby.rb* tools were not being installed properly.
|
422
|
-
<% end %><% section "Version 12.0.1 (2006-12-18)", "12.0.1" do %>This release fixes a problem in code coverage analysis.
|
423
|
-
|
424
|
-
|
425
|
-
h2. Thanks
|
426
|
-
|
427
|
-
* Mauricio Fernandez helped me solve the problem with code coverage analysis.
|
428
|
-
|
429
|
-
|
430
|
-
h2. Details
|
431
|
-
|
432
|
-
Previously, code coverage reports were not providing any useful information because they were being generated _before_ the test had a chance to run. This problem has been fixed -- code coverage reports are now generated _after_ the test has finished running.
|
433
|
-
|
434
|
-
This problem occurred because I had forgotten that @Kernel.at_exit@ invokes the blocks passed to it in _reverse_ order. So, the coverage report was being generated before Test::Unit had a chance to run (it also uses @Kernel.at_exit@).
|
435
|
-
<% end %><% section "Version 12.0.0 (2006-12-07)", "12.0.0" do %>This release adds support for the "test/spec":http://chneukirchen.org/blog/archive/2006/10/announcing-test-spec-0-2-a-bdd-interface-for-test-unit.html library, fixes some bugs, and improves the user manual and generated tests.
|
436
|
-
|
437
|
-
|
438
|
-
h2. Caution
|
439
|
-
|
440
|
-
* Icarus Verilog 0.8 has been demoted to a "mostly acceptable":manual.html#setup.reqs status.
|
441
|
-
|
442
|
-
* Generated Verilog benches no longer supply the <tt>-w</tt> option to the @$ruby_init@ task.
|
443
|
-
|
444
|
-
* The @ruby-vpi/runner_proxy@ library now invokes test runners
|
445
|
-
** just before exiting. Thus, you can invoke tasks in the main <tt>Rakefile</tt> before the test runners are invoked.
|
446
|
-
** located within any directory that is a descendant of the current working directory.
|
447
|
-
|
448
|
-
* The @SIMULATOR_ARGS@ parameter of generated runners has been renamed to @SIMULATOR_ARGUMENTS@ for clarity.
|
449
|
-
|
450
|
-
* The automated test generator
|
451
|
-
** no longer displays the *backup* status indicator.
|
452
|
-
** now supplies a third argument to the @MERGER@ command.
|
453
|
-
** no longer replaces existing files with newly generated content during the *update* action. Instead, it now writes the newly generated output to a <tt>.new</tt> file and then invokes the @MERGER@ command.
|
454
|
-
|
455
|
-
|
456
|
-
h2. Details
|
457
|
-
|
458
|
-
* The @Vpi::Handle@ class has two new methods: @x!@ and @z!@, which set the handle's logic value to _unknown_ and _high impedance_ respectively.
|
459
|
-
|
460
|
-
* The tests for the simple up-counter example were randomly failing because the specifications were not asserting the design's @reset@ signal long enough. So the design was getting into weird states and behaving in a non-deterministic way. This problem has been fixed.
|
461
|
-
|
462
|
-
* The user manual has been revised and some minor issues have been fixed.
|
463
|
-
|
464
|
-
h3. Test generation
|
465
|
-
|
466
|
-
* The automated test generator accepts new command-line options:
|
467
|
-
** <tt>--test-unit</tt>
|
468
|
-
** <tt>--test-spec</tt>
|
469
|
-
** <tt>--tspec</tt>
|
470
|
-
|
471
|
-
* The automated test generator was crashing when parsing module parameters of an input file which did not have any module parameters. This has been fixed.
|
472
|
-
|
473
|
-
* Generated Verilog benches now contain simpler clock generation code.
|
474
|
-
|
475
|
-
* Generated runners now contain
|
476
|
-
** a @:setup@ task which is invoked before the simulator runs. It can be used to make preprations, such as converting Verilog header files into Ruby, for the simulation.
|
477
|
-
** better explanations to accomodate new users.
|
478
|
-
|
479
|
-
* Specifications generated in the *generic* format no longer contain a class that is instantiated in the generated Ruby bench.
|
480
|
-
<% end %><% section "Version 11.1.1 (2006-11-15)", "11.1.1" do %>This release fixes a bug in the automated test generator, unifies the user manual and the website into a single documentation system, and adds support for rSpec 0.7.2.
|
481
|
-
|
482
|
-
|
483
|
-
h2. Thanks
|
484
|
-
|
485
|
-
* John Burr found the bug in the automated test generator.
|
486
|
-
|
487
|
-
|
488
|
-
h2. Caution
|
489
|
-
|
490
|
-
* The user manual is now available _only_ in HTML format. If you still wish to have a plain-text version, you can use a text-based browser, such as "lynx":http://lynx.browser.org/, to perform the necessary conversion.
|
491
|
-
|
492
|
-
|
493
|
-
h2. Details
|
494
|
-
|
495
|
-
* The automated test generator no longer crashes when parsing a Verilog module declaration that contains multiple module parameters.
|
496
|
-
|
497
|
-
* The user manual and the website are now written using a custom documentation system based on RedCloth and ERB instead of DocBook-XML. This makes it easier to edit the user manual and reuse its content in other areas of the website.
|
498
|
-
<% end %><% section "Version 11.1.0 (2006-11-08)", "11.1.0" do %>This release fixes a bug in generated benches, improves the "the @Vpi::Handle@ class":../ref/ruby/classes/Vpi/Handle.html, and improves performance by roughly 20%.
|
499
|
-
|
500
|
-
|
501
|
-
h2. Thanks
|
502
|
-
|
503
|
-
* Matt Fischler found the bug in generated benches (see below).
|
504
|
-
|
505
|
-
|
506
|
-
h2. Caution
|
507
|
-
|
508
|
-
* A bug in generated Verilog and Ruby benches, which caused the <pre>ruby: no such file to load -- ruby-vpi (LoadError)</pre> error, has been fixed. Please regenerate your tests to apply this bug fix to your tests.
|
509
|
-
|
510
|
-
|
511
|
-
h2. Details
|
512
|
-
|
513
|
-
* The class @SWIG::TYPE_p_unsigned_int@ has been aliased as @Vpi::Handle@ for easier access.
|
514
|
-
|
515
|
-
* @Vpi::Handle.to_s@ and @Vpi::Handle.inspect@ now produce more informative output. For example, what used to appear as <pre>#<SWIG::TYPE_p_unsigned_int:0x2aaab6574fa0></pre> now appears as <pre>#<Vpi::Handle vpiModule fullName=counter_rspec_bench, size=-1, file=counter_rspec_bench.v, lineNo=2></pre> in this release.
|
516
|
-
** You can also provide a list of VPI properties, as names or integer constants, to those methods to see additional information in the output.
|
517
|
-
|
518
|
-
* @Vpi::Handle@ now implements all methods from @Enumerable@, such as @map@, @each@, @select@, and so on. However, unlike their counterparts in @Enumerable@, these methods also accept a list of VPI properties, as names or integer constants. Thus, you are now able to write @handle.select(:reg, :net) {|h| h.size > 5}@ to obtain a list of child handles to registers and nets whose capacity is greater than 5 bits.
|
519
|
-
|
520
|
-
* The @Vpi::Handle.[]@, @Vpi::Handle.get_value@, and @Vpi::Handle.put_value@ methods now accept names of VPI properties as well as their integer constants. Thus, you are now able to write @handle[:reg, :net]@ to obtain a list of handles to all child registers and nets.
|
521
|
-
|
522
|
-
* @Vpi::Handle.method_missing@ has been refactored to cache queries. There is now, approximately, 20% improvement in performance.
|
523
|
-
|
524
|
-
* @Vpi::Handle.method_missing@ has been fixed to accept operations with multiple underscores. For example, before this release, you could not write @handle.find_all_reg {|r| r.name =~ /foo/}@ because the "find_all_reg" method would be interpreted as the operation "find" and the VPI property "all_reg".
|
525
|
-
|
526
|
-
* @Vpi::Handle.method_missing@ no longer requires that the first letter of a method be lower case. For example, now you can now write @handle.IntVal@ in addition to @handle.intVal@.
|
527
|
-
|
528
|
-
* The @IntegerGenerator@ class, in the pipelined ALU example, has been fixed so that multiple instances do not interfere with the generation of each other's prime integers.
|
529
|
-
|
530
|
-
* Due to a bug in the <tt>Rakefile</tt>, the reference documentation was not included in the previous few releases. This has been fixed.
|
531
|
-
<% end %><% section "Version 11.0.0 (2006-11-05)", "11.0.0" do %>This release shortens generated Ruby benches and uses the less confusing notation for defining "singleton methods":http://wiki.rubygarden.org/Ruby/page/show/SingletonTutorial in generated designs and prototypes.
|
532
|
-
|
533
|
-
|
534
|
-
h2. Caution
|
535
|
-
|
536
|
-
* The arguments for the "@RubyVPI.init_bench@ method":../ref/ruby/classes/RubyVpi.html have changed.
|
537
|
-
|
538
|
-
* *generate_test.rb* no longer emits undocumented status indicators: _name_ and _format_.
|
539
|
-
|
540
|
-
* The source code is no longer distributed as a *zip* package, because it seems to be quite underutilized in comparison to the *tgz* and *gem* packages.
|
541
|
-
|
542
|
-
|
543
|
-
h2. Details
|
544
|
-
|
545
|
-
* Generated Ruby benches have been shortened to just _one_ line of code!
|
546
|
-
|
547
|
-
* The less confusing notation of <code>def some_object.a_singleton_method
|
548
|
-
do_stuff
|
549
|
-
end</code> is now used instead of the <code>class << some_object
|
550
|
-
def a_singleton_method
|
551
|
-
do_stuff
|
552
|
-
end
|
553
|
-
end</code> notation.
|
554
|
-
** The tutorial and examples have been updated accordingly.
|
555
|
-
|
556
|
-
* The pipelined ALU example now has an updated @IntegerGenerator@ class.
|
557
|
-
<% end %><% section "Version 10.0.0 (2006-11-05)", "10.0.0" do %>This release adds the ability to access a handle's children and reduces the amount of code produced by the automated test generator.
|
558
|
-
|
559
|
-
|
560
|
-
h2. Thanks
|
561
|
-
|
562
|
-
* Matt Fischler found the problem of misdirected compilation errors in Verilog benches.
|
563
|
-
|
564
|
-
|
565
|
-
h2. Caution
|
566
|
-
|
567
|
-
* The way in which Ruby-VPI and generated tests interact has changed: the design is now a VPI handle object and the <tt>design.rb</tt> and <tt>proto.rb</tt> files define "singleton methods":http://wiki.rubygarden.org/Ruby/page/show/SingletonTutorial for that object.
|
568
|
-
** I suggest that you regenerate your existing tests (just run *generate_test.rb* again) whilst employing the service of a text merging tool (see the user manual).
|
569
|
-
|
570
|
-
* You can now access a handle's children by simply calling methods on it. In the event that a child handle has the same name as a VPI property, the child is given priority. However, you can always access VPI properties explicitly via the @get_value@ and @put_value@ methods.
|
571
|
-
|
572
|
-
* *generate_test.rb* no longer accepts the <pre>-s</pre> and <pre>-u</pre> options. Use their longer counterparts <pre>--rspec</pre> and <pre>--xunit</pre> instead.
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
h2. Details
|
577
|
-
|
578
|
-
h3. Automated test generator
|
579
|
-
|
580
|
-
* Generated Verilog benches no longer divert compilation errors from Verilog design files. That is, if the Verilog simulator finds compilation errors in a Verilog design file, it will report that the Verilog design file is at fault (instead of reporting that the generated Verilog bench is at fault).
|
581
|
-
|
582
|
-
* The user is now notified when a backup of an existing file is made.
|
583
|
-
|
584
|
-
* Generated tests have been greatly simplified to reduce the amount of work for the user.
|
585
|
-
** The design is now just a handle to the module in the Verilog bench.
|
586
|
-
** @include Vpi@ and @@design@ are no longer generated.
|
587
|
-
** The tutorial and examples have been updated accordingly.
|
588
|
-
|
589
|
-
h3. User manual
|
590
|
-
|
591
|
-
* Revised the stylesheet to make disjoint sections readily distinguishable from each other, through generous spacing and minor coloring.
|
592
|
-
|
593
|
-
* Added tips about <tt>ruby-vpi/runner_proxy</tt>, <pre>rake -T</pre>, and using *kdiff3* with *generate_test.rb*.
|
594
|
-
|
595
|
-
* Moved installation information into a new "setup" chapter.
|
596
|
-
<% end %><% section "Version 9.0.0 (2006-10-28)", "9.0.0" do %>This release improves the automated test generator and adds new content to the user manual.
|
597
|
-
|
598
|
-
|
599
|
-
h2. Thanks
|
600
|
-
|
601
|
-
* Matt Fischler helped test and debug the installation of Ruby-VPI on Windows.
|
602
|
-
|
603
|
-
|
604
|
-
h2. Caution
|
605
|
-
|
606
|
-
* The command-line options for *generate_test.rb* have changed. Run the command <pre>generate_test.rb --help</pre> for details.
|
607
|
-
|
608
|
-
|
609
|
-
h2. Details
|
610
|
-
|
611
|
-
* Test runners now attempt to resolve paths in @SIMULATOR_SOURCES@ by searching for them within the directories specified in @SIMULATOR_INCLUDES@.
|
612
|
-
|
613
|
-
* Synopsys VCS is now used in a better way (via the <pre>-load</pre> option).
|
614
|
-
** The old PLI table file (<tt>synopsys_vcs.tab</tt>) has been removed.
|
615
|
-
** The C extension has been revised accordingly.
|
616
|
-
|
617
|
-
** The C extension now compiles without errors in Cygwin.
|
618
|
-
|
619
|
-
* The automated test generator now:
|
620
|
-
** Only creates output files when necessary.
|
621
|
-
** Updates existing output files using "text merging tools":manual.html#setup.recom if possible. (Refer to @MERGER@ in the help information of *generate_test.rb*.)
|
622
|
-
** Emits progress information similar to Ruby on Rails.
|
623
|
-
|
624
|
-
* The user manual now:
|
625
|
-
** Includes instructions for installing on Windows (via Cygwin).
|
626
|
-
** Has a recommended software section, with links to text merging tools.
|
627
|
-
** Uses the term "xUnit":http://en.wikipedia.org/wiki/XUnit instead of "unit test".
|
628
|
-
** Correctly spells "rSpec".
|
629
|
-
<% end %><% section "Version 8.2.0 (2006-10-24)", "8.2.0" do %>This release simplifies configuration of generated tests.
|
630
|
-
|
631
|
-
|
632
|
-
h2. Thanks
|
633
|
-
|
634
|
-
* "Students in the CMPE-126 class":http://www.soe.ucsc.edu/classes/cmpe126/Fall06/ for their comments and criticisms.
|
635
|
-
|
636
|
-
|
637
|
-
h2. Caution
|
638
|
-
|
639
|
-
* Generated runners now have a @SIMULATOR_INCLUDES@ array, whose entries specify places where Verilog source files, needed by the Verilog design, reside.
|
640
|
-
|
641
|
-
|
642
|
-
h2. Details
|
643
|
-
|
644
|
-
* Generated Verilog benches now inherit all @`include@ and @`define@ directives from the Verilog design in a simpler manner.
|
645
|
-
* A generated test no longer requires its Verilog design to reside in the same directory.
|
646
|
-
* The sample tests have been updated accordingly.
|
647
|
-
<% end %><% section "Version 8.1.0 (2006-10-21)", "8.1.0" do %>This release adds an integer library and renames the vpi_util library.
|
648
|
-
|
649
|
-
|
650
|
-
h2. Caution
|
651
|
-
|
652
|
-
* The *vpi_util* library has been renamed to *vpi*. This change should not affect your code unless you explicitly imported this library via @require 'ruby-vpi/vpi_util'@. In which case, you should update your code to use @require 'ruby-vpi/vpi'@ accordingly.
|
653
|
-
|
654
|
-
|
655
|
-
h2. Details
|
656
|
-
|
657
|
-
* An integer library has been added to simplify common tasks related to hardware and the binary number system. You can import this library for use via @require 'ruby-vpi/integer'@.
|
658
|
-
<% end %><% section "Version 8.0.0 (2006-10-13)", "8.0.0" do %>This release renames some identifiers for consistency, updates the documentation, and improves integration with RubyGems.
|
659
|
-
|
660
|
-
|
661
|
-
h2. Caution
|
662
|
-
|
663
|
-
* The @RubyVPI@ module has been renamed to @RubyVpi@.
|
664
|
-
|
665
|
-
* The @PROTO@ environment variable has been renamed to @PROTOTYPE@.
|
666
|
-
** In addition to using *unset*, you can now disable simulation of the prototype by assigning an empty value to this variable.
|
667
|
-
|
668
|
-
|
669
|
-
h2. Details
|
670
|
-
|
671
|
-
* We now use "Darcs":http://darcs.net for revision control, instead of Subversion. The source repository can now be accessed at "http://ruby-vpi.rubyforge.org/src/ruby-vpi":http://ruby-vpi.rubyforge.org/src/ruby-vpi.
|
672
|
-
|
673
|
-
* The source code is now distributed in tar.gz and zip form, in addition to gem.
|
674
|
-
|
675
|
-
* Some identifiers have been renamed for better consistency.
|
676
|
-
|
677
|
-
* The user manual now resides directly within the <tt>doc/</tt> directory.
|
678
|
-
** The integration of documentation in *gem_server* has been improved.
|
679
|
-
|
680
|
-
* The glossary and tutorial in the user manual have been revised.
|
681
|
-
<% end %><% section "Version 7.3.0 (2006-09-30)", "7.3.0" do %>This release fixes a bug in generated Verilog benches, includes parsed constants in generated tests, and adds new methods to handles.
|
682
|
-
|
683
|
-
|
684
|
-
h2. Caution
|
685
|
-
|
686
|
-
* Handles now have two new methods:
|
687
|
-
** @handle.x?@ checks if the logic value is "don't care"
|
688
|
-
** @handle.z?@ checks if the logic value is high impedance
|
689
|
-
|
690
|
-
|
691
|
-
h2. Details
|
692
|
-
|
693
|
-
* Module instantiation code in generated Verilog benches has been fixed. Whitespace between the module type and instance variable was missing.
|
694
|
-
|
695
|
-
* The test generator tool now provides parsed Verilog constants and include-directives in generated Verilog benches; and parsed Verilog constants in generated Ruby designs.
|
696
|
-
** The pipelined ALU example has been revised accordingly.
|
697
|
-
|
698
|
-
* A library for parsing Verilog source code has been added as <tt>lib/ruby-vpi/verilog_parser.rb</tt>.
|
699
|
-
<% end %><% section "Version 7.2.0 (2006-09-15)", "7.2.0" do %>This release adds initial support for code coverage analysis via the "rcov library":http://eigenclass.org/hiki.rb?rcov.
|
700
|
-
|
701
|
-
|
702
|
-
h2. Thanks
|
703
|
-
|
704
|
-
* Mauricio Fernandez helped me use rcov without its runner.
|
705
|
-
|
706
|
-
|
707
|
-
h2. Details
|
708
|
-
|
709
|
-
* Added initial support (full capabilites of the rcov library, such as its various analysis modes, are not yet utilized) for code coverage analysis, which can be enabled by setting the @COVERAGE@ environment variable to a non-empty value before running a test.
|
710
|
-
** For example, you can run a test with the GPL Cver simulator while enabling the generation of code coverage reports as follows: <pre>export COVERAGE=1; rake cver</pre>
|
711
|
-
|
712
|
-
* Coverage reports are generated in text and HTML formats.
|
713
|
-
<% end %><% section "Version 7.1.0 (2006-08-29)", "7.1.0" do %>This release simplifies running of multiple tests, restores compatibility with Synopsys VCS, and better integrates with RubyGems.
|
714
|
-
|
715
|
-
|
716
|
-
h2. Details
|
717
|
-
|
718
|
-
* Added <tt>lib/ruby-vpi/runner_proxy.rb</tt> library which, when embedded into a Rakefile, runs all generated tests in the working directory with any specified arguments. For example, have a look at the <tt>samp/counter/Rakefile</tt> file.
|
719
|
-
|
720
|
-
* Fixed a bug that prevented one from running tests with Synopsys VCS.
|
721
|
-
|
722
|
-
* Ruby-VPI documentation is now available through RubyGems' "*gem_server* web interface":http://docs.rubygems.org/read/chapter/2#page10.
|
723
|
-
|
724
|
-
* The user manual now discusses how to determine the location of a Ruby-VPI installation.
|
725
|
-
|
726
|
-
* The <tt>tpl/</tt> directory has been removed.
|
727
|
-
<% end %><% section "Version 7.0.0 (2006-08-29)", "7.0.0" do %>This release distributes Ruby-VPI as a gem, improves portability of generated tests, and fixes a bug.
|
728
|
-
|
729
|
-
|
730
|
-
h2. Caution
|
731
|
-
|
732
|
-
* @put_value()@ now accomodates register value overflows when verifying the value it has written.
|
733
|
-
|
734
|
-
* The test generator's templates and the examples have been updated as follows:
|
735
|
-
** Test runners no longer have to specify the path to Ruby-VPI installation directory. Instead, they simply @require 'ruby-vpi/runner'@. Thus, you can run your tests on any machine with Ruby-VPI without having to know where it is installed.
|
736
|
-
** Ruby benches now invoke @RubyVPI.init_bench@ instead of @require 'bench'; setup_bench@ to become initialized.
|
737
|
-
|
738
|
-
* All Ruby libraries in the <tt>lib/</tt> directory have been moved into <tt>lib/ruby-vpi/</tt> to prevent load-path clashes with other gems. You should access these libraries by prefixing their path with "ruby-vpi". For example, @require 'vpi_util'@ should now be written as @require 'ruby-vpi/vpi_util'@.
|
739
|
-
|
740
|
-
* The <tt>src/</tt> directory has been renamed to <tt>ext/</tt> to follow RubyGems convention.
|
741
|
-
|
742
|
-
|
743
|
-
h2. Details
|
744
|
-
|
745
|
-
* Ruby-VPI is now distributed only as a "source gem":http://www.rubygems.org. You can decompress the gem without installing it onto your system by running the command <pre>gem install -i output_directory ruby-vpi-7.0.0.gem</pre>. In addition, you can still obtain the source code directly from the Subversion repository.
|
746
|
-
|
747
|
-
* The tools in <tt>bin/</tt> become available in your system's <tt>bin/</tt> directory when the gem is installed.
|
748
|
-
** Usage and help information has been added to the *header_to_ruby.rb* tool.
|
749
|
-
|
750
|
-
* Incorrect spelling of GPL Cver (v should be uncapitalized) has been fixed.
|
751
|
-
|
752
|
-
* Incorrect link to GPL Cver website has been fixed.
|
753
|
-
|
754
|
-
* The user manual has been updated according to all of the above changes.
|
755
|
-
<% end %><% section "Version 6.3.0 (2006-08-27)", "6.3.0" do %>This release adds support for the GPL Cver simulator, provides both binary and source packages, and explicitly defines the version numbering system.
|
756
|
-
|
757
|
-
|
758
|
-
h2. Caution
|
759
|
-
|
760
|
-
* Ruby-VPI now only needs to be built once.
|
761
|
-
** You can run tests with different Verilog simulators without having to re-compile Ruby-VPI.
|
762
|
-
|
763
|
-
|
764
|
-
h2. Details
|
765
|
-
|
766
|
-
* The GPL Cver simulator is now supported.
|
767
|
-
|
768
|
-
* Release packages are now available in both source and binary form.
|
769
|
-
|
770
|
-
* The RSpec based specifications for the counter example now use the @should_equal@ instead of the @should_be@ assertion, because the latter ensures strict equivalence. For instance, it will fail when a Fixnum is compared to a Bignum.
|
771
|
-
|
772
|
-
* We now follow the RubyGems project's "rational versioning policy":http://www.rubygems.org/read/chapter/7. The version numbers of previous releases have been revised accordingly:
|
773
|
-
|_. Release date |_. Original version number |_. New version number |
|
774
|
-
| 1999-10-31 | 0.0 | 0.0.0 |
|
775
|
-
| 2006-02-26 | 0.1 | 1.0.0 |
|
776
|
-
| 2006-04-17 | 0.2 | 2.0.0 |
|
777
|
-
| 2006-04-23 | 0.3 | 3.0.0 |
|
778
|
-
| 2006-04-28 | 0.4 | 3.1.0 |
|
779
|
-
| 2006-05-13 | 0.5 | 3.2.0 |
|
780
|
-
| 2006-05-25 | 0.6 | 4.0.0 |
|
781
|
-
| 2006-07-22 | 0.7 | 5.0.0 |
|
782
|
-
| 2006-07-29 | 0.8 | 5.1.0 |
|
783
|
-
| 2006-08-04 | 0.8.1 | 5.1.1 |
|
784
|
-
| 2006-08-07 | 0.9 | 6.0.0 |
|
785
|
-
| 2006-08-09 | 0.9.1 | 6.1.0 |
|
786
|
-
| 2006-08-26 | 0.9.2 | 6.2.0 |
|
787
|
-
<% end %><% section "Version 6.2.0 (2006-08-26)", "6.2.0" do %>This release beautifies generated tests, adds checks to find signal width bugs, and includes a new tool.
|
788
|
-
|
789
|
-
|
790
|
-
h2. Caution
|
791
|
-
|
792
|
-
* @put_value()@ now returns the value it puts. Therefore, it is easier to chain together a series of assignments: @foo.intVal = bar.intVal = baz.intVal = 10@
|
793
|
-
|
794
|
-
* @put_value()@ now verifies that the value it puts was written correctly. This helps to find bugs regarding invalid assumptions about the number of bits supported by a signal.
|
795
|
-
|
796
|
-
|
797
|
-
h2. Details
|
798
|
-
|
799
|
-
* The test generator now uses ERB templates which ensures nice indentation of generated output.
|
800
|
-
|
801
|
-
* The test generator now decouples Ruby-VPI paths from Verilog benches via the RUBYLIB environment variable.
|
802
|
-
|
803
|
-
* A tool which converts Verilog headers into Ruby has been added.
|
804
|
-
|
805
|
-
* The source code is now indented with two spaces instead of one tab character.
|
806
|
-
<% end %><% section "Version 6.1.0 (2006-08-09)", "6.1.0" do %>This release simplifies generated tests and fixes a bug.
|
807
|
-
|
808
|
-
|
809
|
-
h2. Details
|
810
|
-
|
811
|
-
* The test generator now produces simpler Ruby benches and specifications.
|
812
|
-
** A template used by generated specifications has been added.
|
813
|
-
** The counter example and tutorial have also been simplified accordingly.
|
814
|
-
|
815
|
-
* Boolean VPI property values are now correctly converted into Ruby truth values.
|
816
|
-
<% end %><% section "Version 6.0.0 (2006-08-07)", "6.0.0" do %>This release adds support and documentation for rapid prototyping of Verilog designs in Ruby.
|
817
|
-
|
818
|
-
|
819
|
-
h2. Caution
|
820
|
-
|
821
|
-
* The directory structure has been reorganized as follows:
|
822
|
-
** <tt>ext</tt> → <tt>src</tt>
|
823
|
-
** <tt>tools</tt> → <tt>bin</tt>
|
824
|
-
** <tt>examples</tt> → <tt>samp</tt>
|
825
|
-
|
826
|
-
* All template files have been moved into the <tt>tpl</tt> directory.
|
827
|
-
|
828
|
-
|
829
|
-
h2. Details
|
830
|
-
|
831
|
-
* Support for prototyping designs in Ruby, before they are implemented in Verilog, has been added.
|
832
|
-
** The _same_ specification can be used to verify both prototype _and_ design! :-)
|
833
|
-
** The tutorial in the user manual has been updated to discuss prototyping.
|
834
|
-
*** Prototypes have been added to the counter example.
|
835
|
-
|
836
|
-
* The user manual has been revised for consistency.
|
837
|
-
<% end %><% section "Version 5.1.1 (2006-08-04)", "5.1.1" do %>This release fixes unreadable syntax coloring in the user manual.
|
838
|
-
|
839
|
-
|
840
|
-
h2. Thanks
|
841
|
-
|
842
|
-
* Todd Nagengast and Matt Fischler notified me about unreadable text in the user manual.
|
843
|
-
|
844
|
-
|
845
|
-
h2. Details
|
846
|
-
|
847
|
-
* Source code comments in the user manual are now readable.
|
848
|
-
|
849
|
-
* The <tt>README</tt> and <tt>HISTORY</tt> files have been converted to "textile":http://www.textism.com/tools/textile/ format.
|
850
|
-
<% end %><% section "Version 5.1.0 (2006-07-29)", "5.1.0" do %>This release adds a tutorial to the user manual, and improves the tools and examples.
|
851
|
-
|
852
|
-
|
853
|
-
h2. Thanks
|
854
|
-
|
855
|
-
* Phil Tomson corrected the URL of the RHDL website in the user manual.
|
856
|
-
|
857
|
-
|
858
|
-
h2. Details
|
859
|
-
|
860
|
-
h3. User manual
|
861
|
-
|
862
|
-
* A tutorial, based on the counter example, has been added to the user manual.
|
863
|
-
|
864
|
-
* The user manual's appearance has been dramatically improved with syntax coloring for source code, and "graphics for admonitions and navigation":http://tango.freedesktop.org.
|
865
|
-
|
866
|
-
h3. Examples
|
867
|
-
|
868
|
-
* A specification, expressed in unit test format, has been added to the counter example.
|
869
|
-
|
870
|
-
* The <pre>--name</pre> and <pre>-n</pre> options, which lets you specify an identifier for a generated test, have been added to the *generate_test.rb* tool.
|
871
|
-
|
872
|
-
* Running <pre>rake clobber</pre> in an example directory no longer destroys documentation in the Ruby-VPI directory.
|
873
|
-
|
874
|
-
* The examples' Rakefiles now invoke all tests present in the directory via the <tt>launcher_template.rake</tt> template.
|
875
|
-
|
876
|
-
* The Rake template for test runners (generated by <tt>tools/generate_test.rb</tt>) has moved from <tt>examples/template.rake</tt> to <tt>examples/runner_template.rake</tt>.
|
877
|
-
|
878
|
-
h3. VPI utility layer
|
879
|
-
|
880
|
-
* The value of a handle's boolean VPI property is treated as @false@ if it is zero, because zero is @false@ in the C language.
|
881
|
-
<% end %><% section "Version 5.0.0 (2006-07-22)", "5.0.0" do %>This release enhances the VPI utility layer and adds new content to the user manual.
|
882
|
-
|
883
|
-
|
884
|
-
h2. Thanks
|
885
|
-
|
886
|
-
* Jan Decaluwe corrected the description of MyHDL in the user manual.
|
887
|
-
|
888
|
-
|
889
|
-
h2. Caution
|
890
|
-
|
891
|
-
* SWIG is no longer required for users because its output is included in the release package.
|
892
|
-
|
893
|
-
* The @handle.value@ and @handle.value=@ methods have been removed.
|
894
|
-
|
895
|
-
|
896
|
-
h2. Details
|
897
|
-
|
898
|
-
* The VPI utility layer provides access to VPI properties of handles in a "simpler, more powerful way":manual.html#background.org.vpi.
|
899
|
-
|
900
|
-
** All VPI properties, except delay values, are now accessible from a handle.
|
901
|
-
|
902
|
-
* The user manual has been revised and new content in the organization and usage sections has been added.
|
903
|
-
|
904
|
-
* This release was tested and developed using:
|
905
|
-
** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
|
906
|
-
** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
|
907
|
-
<% end %><% section "Version 4.0.0 (2006-05-25)", "4.0.0" do %>This release adds a comprehensive user manual, upgrades from make to "Rake":http://rake.rubyforge.org, and improves the test generation tool.
|
908
|
-
|
909
|
-
|
910
|
-
h2. Thanks
|
911
|
-
|
912
|
-
* Jose Renau solved the problem of strange delays that occurred whenever a design was reset.
|
913
|
-
|
914
|
-
|
915
|
-
h2. Caution
|
916
|
-
|
917
|
-
* Rake has replaced the role of *make*. All makefiles have been converted accordingly.
|
918
|
-
|
919
|
-
* The test generation tool now generates multiple files (runner, bench, design, spec) and makes backups of existing files. See its help information for details.
|
920
|
-
|
921
|
-
|
922
|
-
h2. Details
|
923
|
-
|
924
|
-
* A comprehensive user manual, written in DocBook-XML, has been added.
|
925
|
-
|
926
|
-
* Support for RSpec 0.5.4 has been added.
|
927
|
-
** The counter example now makes use of RSpec.
|
928
|
-
|
929
|
-
* This release was tested and developed using:
|
930
|
-
** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
|
931
|
-
** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
|
932
|
-
<% end %><% section "Version 3.2.0 (2006-05-13)", "3.2.0" do %>This release adds a tool which generates test benches, and adds support for "Behavior Driven Development":http://behaviour-driven.org via the "RSpec":http://rspec.rubyforge.org library.
|
933
|
-
|
934
|
-
|
935
|
-
h2. Thanks
|
936
|
-
|
937
|
-
* Scott L Holmes helped me "use the RSpec library without its runner":http://article.gmane.org/gmane.comp.lang.ruby.general/150087 program.
|
938
|
-
|
939
|
-
|
940
|
-
h2. Details
|
941
|
-
|
942
|
-
* A tool, which generates most of a Ruby-VPI test bench from a Verilog 2001 module declaration, has been added.
|
943
|
-
|
944
|
-
* Ability to use RSpec in a test bench has been added.
|
945
|
-
|
946
|
-
* Ability to specify arbitrary command-line arguments to Verilog simulators has been added in the examples' makefile template.
|
947
|
-
|
948
|
-
* This release was tested and developed using:
|
949
|
-
** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
|
950
|
-
** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
|
951
|
-
<% end %><% section "Version 3.1.0 (2006-04-28)", "3.1.0" do %>This release adds simple ways of reading and writing values to VPI handles, adds documentation for the VPI utility layer, and fixes the pipelined ALU example.
|
952
|
-
|
953
|
-
|
954
|
-
h2. Caution
|
955
|
-
|
956
|
-
* The *msim* Makefile target for Mentor Modelsim has been renamed back to *vsim*.
|
957
|
-
|
958
|
-
|
959
|
-
h2. Details
|
960
|
-
|
961
|
-
* Simple, consistent ways of reading and writing values to handles have been added to the VPI utility layer. These ways are described in the @SWIG::TYPE_p_unsigned_int@ class' documentation.
|
962
|
-
|
963
|
-
* The makefiles now use the *rbconfig* library to determine the default compiler and linker flags for Ruby.
|
964
|
-
|
965
|
-
* A race condition in the pipelined ALU example has been fixed. This example should now run successfully in all Verilog simulators.
|
966
|
-
|
967
|
-
* The project wiki has been abandoned in favor of RDoc.
|
968
|
-
|
969
|
-
* The project website is now generated by RDoc.
|
970
|
-
|
971
|
-
* This release was tested and developed using:
|
972
|
-
** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
|
973
|
-
** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
|
974
|
-
<% end %><% section "Version 3.0.0 (2006-04-23)", "3.0.0" do %>This release adds support for the _entire_ "IEEE Std. 1364-2005":http://ieeexplore.ieee.org/xpl/standardstoc.jsp?isnumber=33945 VPI interface, and updates the examples into unit tests.
|
975
|
-
|
976
|
-
|
977
|
-
h2. Thanks
|
978
|
-
|
979
|
-
* The "SWIG developers":http://www.swig.org/guilty.html made this project _much_ easier! ;-)
|
980
|
-
|
981
|
-
|
982
|
-
h2. Caution
|
983
|
-
|
984
|
-
* The *vsim* Makefile target for Mentor Modelsim has been renamed to *msim*.
|
985
|
-
|
986
|
-
|
987
|
-
h2. Details
|
988
|
-
|
989
|
-
* The Ruby interface to VPI is now generated by "SWIG":http://www.swig.org.
|
990
|
-
** The main @VPI@ module has been renamed to @Vpi@.
|
991
|
-
** The @VPI::Handle@ class has been removed.
|
992
|
-
** The @VPI::stop@, @VPI::finish@, and @VPI::reset@ methods have been removed.
|
993
|
-
|
994
|
-
* The "_final ballot_ version":http://www.boydtechinc.com/ptf/archive/ptf_2005/0737.html of the <tt>vpi_user.h</tt> header file is now packaged along with and used by Ruby-VPI.
|
995
|
-
|
996
|
-
* The VPI module, its sub-classes, and its functionality have been replaced by the VPI utility layer (see <tt>src/vpi_util.rb</tt>).
|
997
|
-
|
998
|
-
* The examples now make use of the *test/unit* unit testing framework.
|
999
|
-
|
1000
|
-
* The makefiles for the examples have been simplified through the use of a common template.
|
1001
|
-
|
1002
|
-
* This release was tested and developed using:
|
1003
|
-
** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
|
1004
|
-
** Ruby 1.8.4 and Mentor Modelsim 6.1d on x86_64 GNU/Linux
|
1005
|
-
<% end %><% section "Version 2.0.0 (2006-04-17)", "2.0.0" do %>This release fixes major bugs, adds support for Mentor Modelsim, and removes the @$ruby_task@ callback.
|
1006
|
-
|
1007
|
-
|
1008
|
-
h2. Thanks
|
1009
|
-
|
1010
|
-
* Nobu Nakada explained the "cross-thread violation on rb_gc()":http://article.gmane.org/gmane.comp.lang.ruby.general/146653 error.
|
1011
|
-
|
1012
|
-
|
1013
|
-
h2. Caution
|
1014
|
-
|
1015
|
-
* Removed @$ruby_task@ callback and ability to dynamically register system tasks from Ruby because inter-process communication is complicated at present.
|
1016
|
-
|
1017
|
-
|
1018
|
-
h2. Details
|
1019
|
-
|
1020
|
-
* The "cross-thread violation on rb_gc()" error has been fixed.
|
1021
|
-
** The "stack level too deep (SystemStackError)" error has been fixed.
|
1022
|
-
** The test/unit library can be used in Ruby test bench.
|
1023
|
-
** Mentor Modelsim Verilog simulator works with Ruby-VPI.
|
1024
|
-
|
1025
|
-
* Added piplelined ALU example.
|
1026
|
-
|
1027
|
-
* This release was tested and developed using:
|
1028
|
-
** Ruby 1.8.4 and Icarus Verilog 0.8 on i686 GNU/Linux
|
1029
|
-
** Ruby 1.8.4 and Modelsim 6.1d on x86_64 GNU/Linux
|
1030
|
-
** Ruby 1.8.4 and Synopsys VCS-MX X-2005.06-SP1 on SPARC4 SunOS 5.10
|
1031
|
-
<% end %><% section "Version 1.0.0 (2006-02-26)", "1.0.0" do %>This release adds enough Verilog VPI functionality to make Ruby-VPI usable for simple test benches:
|
1032
|
-
* access Verilog objects through VPI handles
|
1033
|
-
* read and change VPI handle values
|
1034
|
-
* stop, finish, restart the simulation
|
1035
|
-
|
1036
|
-
|
1037
|
-
h2. Thanks
|
1038
|
-
|
1039
|
-
* Jose Renau helped me debug how Synopsys VCS works with Verilog VPI. The problem was that VCS required calltf signatures to be @void (*)(void)@, whereas the Verilog standard defines a calltf signature as @PLI_INT32 (*)(PLI_BYTE8*)@.
|
1040
|
-
|
1041
|
-
* Ross Bamford, Eric Hodel, and Yukihiro Matsumoto "helped me discover":http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/180662 why the @SystemStackError@ was happening.
|
1042
|
-
|
1043
|
-
|
1044
|
-
h2. Details
|
1045
|
-
|
1046
|
-
* Implemented some Verilog VPI functionality:
|
1047
|
-
** @VPI::handle_by_name(string, VPI::Handle)@ → @VPI::Handle@
|
1048
|
-
** @VPI::handle_by_name(string)@ → @VPI::Handle@
|
1049
|
-
** @VPI::Handle.put_value(integer)@
|
1050
|
-
** @VPI::Handle.value = integer@
|
1051
|
-
** @VPI::Handle.get_value@ → @integer@
|
1052
|
-
** @VPI::Handle.value@ → @integer@
|
1053
|
-
** @VPI::stop@
|
1054
|
-
** @VPI::finish@
|
1055
|
-
** @VPI::reset@
|
1056
|
-
|
1057
|
-
* Implemented some additional functionality:
|
1058
|
-
** @VPI::register_task(string, &proc)@
|
1059
|
-
|
1060
|
-
* Added ability to pass arbitrary command-line arguments to the Ruby interpreter (using @$ruby_init@). Now you can invoke any Ruby script you want, instead of <tt>pli_init.rb</tt>.
|
1061
|
-
|
1062
|
-
* Added ability to dynamically register system tasks from Ruby, using @VPI::register_task("task name")@, and call them from Verilog, using @$ruby_task("task name")@.
|
1063
|
-
|
1064
|
-
* Added @VPI::Handle@ class which encapsulates a @vpiHandle@ VPI object.
|
1065
|
-
|
1066
|
-
* This release was tested and developed using:
|
1067
|
-
** Ruby 1.8.2 and Icarus Verilog 0.8 on i686 GNU/Linux
|
1068
|
-
** Ruby 1.8.4, Synopsys VCS X-2005.06, and Mentor Modelsim 6.1b on i686 GNU/Linux
|
1069
|
-
<% end %><% section "Version 0.0.0 (1999-10-31)", "0.0.0" do %>This is Kazuhiro HIWADA's initial testing release of Ruby-VPI. See its "original announcement":http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/18193 and "source code":http://rubyforge.org/frs/?group_id=1339&release_id=8852.
|
1070
|
-
|
1071
|
-
|
1072
|
-
h2. Details
|
1073
|
-
|
1074
|
-
* Added ability to relay control from Verilog test bench to Ruby (using @$ruby_callback@) and vice versa (using @PLI::relay_Verilog@).
|
1075
|
-
|
1076
|
-
* Tested and developed using Ruby 1.4 and Verilog-XL from Cadence systems, on a SPARC machine running Solaris 2.6.
|
1077
|
-
<% end %>
|