ruby-vpi 21.0.0 → 21.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +14 -9
- data/doc/api/c/annotated.html +1 -1
- data/doc/api/c/binding_8c.html +1 -1
- data/doc/api/c/binding_8h.html +1 -1
- data/doc/api/c/files.html +1 -1
- data/doc/api/c/functions.html +1 -1
- data/doc/api/c/functions_vars.html +1 -1
- data/doc/api/c/globals.html +1 -1
- data/doc/api/c/globals_0x65.html +1 -1
- data/doc/api/c/globals_0x70.html +1 -1
- data/doc/api/c/globals_0x72.html +11 -7
- data/doc/api/c/globals_0x76.html +1 -1
- data/doc/api/c/globals_0x78.html +1 -1
- data/doc/api/c/globals_defs.html +1 -1
- data/doc/api/c/globals_defs_0x65.html +1 -1
- data/doc/api/c/globals_defs_0x70.html +1 -1
- data/doc/api/c/globals_defs_0x72.html +1 -1
- data/doc/api/c/globals_defs_0x76.html +1 -1
- data/doc/api/c/globals_defs_0x78.html +1 -1
- data/doc/api/c/globals_func.html +1 -1
- data/doc/api/c/globals_type.html +1 -1
- data/doc/api/c/globals_vars.html +5 -1
- data/doc/api/c/host_8c.html +1 -1
- data/doc/api/c/host_8h.html +1 -1
- data/doc/api/c/index.html +1 -1
- data/doc/api/c/main_8c.html +1 -1
- data/doc/api/c/structs__cb__data.html +1 -1
- data/doc/api/c/structs__vpi__delay.html +1 -1
- data/doc/api/c/structs__vpi__error__info.html +1 -1
- data/doc/api/c/structs__vpi__strengthval.html +1 -1
- data/doc/api/c/structs__vpi__systf__data.html +1 -1
- data/doc/api/c/structs__vpi__time.html +1 -1
- data/doc/api/c/structs__vpi__value.html +1 -1
- data/doc/api/c/structs__vpi__vecval.html +1 -1
- data/doc/api/c/structs__vpi__vlog__info.html +1 -1
- data/doc/api/c/user_8c.html +37 -1
- data/doc/api/c/user_8h.html +1 -1
- data/doc/api/c/util_8h.html +1 -1
- data/doc/api/c/verilog_8h.html +1 -1
- data/doc/api/c/vpi__user_8h.html +1 -1
- data/doc/api/ruby/classes/ERB.html +5 -5
- data/doc/api/ruby/classes/ERB.src/{M000026.html → M000025.html} +0 -0
- data/doc/api/ruby/classes/FileUtils.html +6 -6
- data/doc/api/ruby/classes/FileUtils.src/{M000027.html → M000026.html} +0 -0
- data/doc/api/ruby/classes/Float.html +6 -6
- data/doc/api/ruby/classes/Float.src/{M000021.html → M000020.html} +0 -0
- data/doc/api/ruby/classes/Integer.html +65 -65
- data/doc/api/ruby/classes/Integer.src/M000008.html +25 -0
- data/doc/api/ruby/classes/Integer.src/M000009.html +4 -11
- data/doc/api/ruby/classes/Integer.src/M000010.html +4 -4
- data/doc/api/ruby/classes/Integer.src/M000011.html +4 -4
- data/doc/api/ruby/classes/Integer.src/M000012.html +4 -4
- data/doc/api/ruby/classes/Integer.src/M000013.html +4 -4
- data/doc/api/ruby/classes/Integer.src/M000016.html +25 -0
- data/doc/api/ruby/classes/Integer.src/M000017.html +11 -5
- data/doc/api/ruby/classes/Integer.src/M000018.html +8 -14
- data/doc/api/ruby/classes/Integer.src/M000019.html +13 -8
- data/doc/api/ruby/classes/Kernel.html +0 -14
- data/doc/api/ruby/classes/Object.html +0 -5
- data/doc/api/ruby/classes/RDoc.html +5 -5
- data/doc/api/ruby/classes/RDoc.src/{M000546.html → M000550.html} +0 -0
- data/doc/api/ruby/classes/RubyVPI.html +30 -69
- data/doc/api/ruby/classes/RubyVPI.src/M000027.html +19 -0
- data/doc/api/ruby/classes/RubyVPI.src/M000028.html +5 -5
- data/doc/api/ruby/classes/RubyVPI.src/M000029.html +4 -5
- data/doc/api/ruby/classes/RubyVPI.src/M000030.html +4 -4
- data/doc/api/ruby/classes/RubyVPI.src/M000031.html +29 -5
- data/doc/api/ruby/classes/RubyVPI/SIMULATORS.html +5 -5
- data/doc/api/ruby/classes/RubyVPI/SIMULATORS.src/{M000033.html → M000032.html} +0 -0
- data/doc/api/ruby/classes/RubyVPI/SchedulerClass/Routine.html +235 -0
- data/doc/api/ruby/classes/RubyVPI/SchedulerClass/Routine.src/M000033.html +23 -0
- data/doc/api/ruby/classes/RubyVPI/SchedulerClass/Routine.src/M000034.html +18 -0
- data/doc/api/ruby/classes/{VerilogParser/Module/Port.src/M000008.html → RubyVPI/SchedulerClass/Routine.src/M000035.html} +4 -4
- data/doc/api/ruby/{files/lib/ruby-vpi/runner_boot_loader_rb.src/M000002.html → classes/RubyVPI/SchedulerClass/Routine.src/M000036.html} +5 -4
- data/doc/api/ruby/classes/RubyVPI/SchedulerClass/Routine.src/M000037.html +18 -0
- data/doc/api/ruby/classes/String.html +20 -20
- data/doc/api/ruby/classes/String.src/M000021.html +36 -0
- data/doc/api/ruby/classes/String.src/M000022.html +4 -22
- data/doc/api/ruby/classes/String.src/M000023.html +4 -4
- data/doc/api/ruby/classes/String.src/M000024.html +27 -4
- data/doc/api/ruby/classes/VPI.html +2075 -2067
- data/doc/api/ruby/classes/VPI.src/M000038.html +5 -11
- data/doc/api/ruby/classes/VPI.src/M000039.html +4 -12
- data/doc/api/ruby/classes/VPI.src/{M000036.html → M000040.html} +2 -3
- data/doc/api/ruby/classes/VPI.src/M000042.html +5 -3
- data/doc/api/ruby/classes/VPI.src/M000043.html +13 -3
- data/doc/api/ruby/classes/VPI.src/M000045.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000046.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000047.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000048.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000049.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000050.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000051.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000052.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000053.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000054.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000055.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000056.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000057.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000058.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000059.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000060.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000061.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000062.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000063.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000064.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000065.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000066.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000067.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000068.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000069.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000070.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000071.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000072.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000073.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000074.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000075.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000076.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000077.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000078.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000079.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000080.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000081.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000082.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000083.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000084.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000085.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000086.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000087.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000088.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000089.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000090.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000091.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000092.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000093.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000094.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000095.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000096.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000097.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000098.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000099.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000100.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000101.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000102.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000103.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000104.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000105.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000106.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000107.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000108.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000109.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000110.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000111.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000112.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000113.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000114.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000115.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000116.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000117.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000118.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000119.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000120.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000121.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000122.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000123.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000124.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000125.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000126.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000127.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000128.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000129.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000130.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000131.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000132.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000133.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000134.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000135.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000136.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000137.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000138.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000139.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000140.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000141.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000142.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000143.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000144.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000145.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000146.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000147.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000148.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000149.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000150.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000151.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000152.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000153.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000154.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000155.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000156.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000157.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000158.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000159.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000160.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000161.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000162.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000163.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000164.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000165.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000166.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000167.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000168.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000169.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000170.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000171.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000172.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000173.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000174.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000175.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000176.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000177.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000178.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000179.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000180.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000181.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000182.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000183.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000184.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000185.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000186.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000187.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000188.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000189.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000190.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000191.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000192.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000193.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000194.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000195.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000196.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000197.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000198.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000199.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000200.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000201.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000202.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000203.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000204.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000205.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000206.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000207.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000208.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000209.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000210.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000211.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000212.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000213.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000214.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000215.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000216.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000217.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000218.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000219.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000220.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000221.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000222.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000223.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000224.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000225.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000226.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000227.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000228.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000229.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000230.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000231.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000232.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000233.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000234.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000235.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000236.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000237.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000238.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000239.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000240.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000241.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000242.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000243.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000244.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000245.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000246.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000247.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000248.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000249.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000250.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000251.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000252.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000253.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000254.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000255.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000256.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000257.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000258.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000259.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000260.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000261.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000262.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000263.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000264.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000265.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000266.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000267.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000268.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000269.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000270.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000271.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000272.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000273.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000274.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000275.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000276.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000277.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000278.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000279.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000280.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000281.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000282.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000283.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000284.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000285.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000286.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000287.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000288.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000289.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000290.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000291.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000292.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000293.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000294.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000295.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000296.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000297.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000298.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000299.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000300.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000301.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000302.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000303.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000304.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000305.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000306.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000307.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000308.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000309.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000310.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000311.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000312.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000313.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000314.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000315.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000316.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000317.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000318.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000319.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000320.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000321.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000322.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000323.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000324.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000325.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000326.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000327.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000328.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000329.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000330.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000331.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000332.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000333.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000334.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000335.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000336.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000337.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000338.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000339.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000340.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000341.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000342.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000343.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000344.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000345.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000346.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000347.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000348.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000349.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000350.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000351.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000352.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000353.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000354.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000355.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000356.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000357.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000358.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000359.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000360.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000361.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000362.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000363.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000364.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000365.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000366.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000367.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000368.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000369.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000370.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000371.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000372.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000373.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000374.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000375.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000376.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000377.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000378.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000379.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000380.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000381.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000382.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000383.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000384.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000385.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000386.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000387.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000388.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000389.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000390.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000391.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000392.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000393.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000394.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000395.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000396.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000397.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000398.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000399.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000400.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000401.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000402.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000403.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000404.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000405.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000406.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000407.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000408.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000409.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000410.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000411.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000412.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000413.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000414.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000415.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000416.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000417.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000418.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000419.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000420.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000421.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000422.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000423.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000424.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000425.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000426.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000427.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000428.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000429.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000430.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000431.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000432.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000433.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000434.html +3 -3
- data/doc/api/ruby/classes/VPI.src/M000435.html +3 -3
- data/doc/api/ruby/classes/VPI.src/{M000041.html → M000436.html} +3 -3
- data/doc/api/ruby/classes/{Integer.src/M000014.html → VPI.src/M000437.html} +3 -5
- data/doc/api/ruby/classes/VPI.src/{M000044.html → M000438.html} +3 -3
- data/doc/api/ruby/classes/VPI.src/M000439.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.html +498 -498
- data/doc/api/ruby/classes/VPI/Handle.src/{M000439.html → M000443.html} +0 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000444.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000445.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000448.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000449.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000452.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000453.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000456.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000457.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000460.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000461.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000464.html +4 -10
- data/doc/api/ruby/classes/VPI/Handle.src/{M000441.html → M000465.html} +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000468.html +7 -33
- data/doc/api/ruby/classes/VPI/Handle.src/M000470.html +7 -5
- data/doc/api/ruby/classes/VPI/Handle.src/M000471.html +14 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000472.html +36 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000473.html +5 -16
- data/doc/api/ruby/classes/VPI/Handle.src/M000474.html +5 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000475.html +4 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000476.html +4 -26
- data/doc/api/ruby/classes/VPI/Handle.src/M000477.html +16 -4
- data/doc/api/ruby/classes/VPI/Handle.src/M000478.html +4 -7
- data/doc/api/ruby/classes/VPI/Handle.src/M000479.html +5 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000480.html +27 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000481.html +5 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000482.html +8 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000483.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000484.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000485.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000486.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000487.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000488.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000489.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000490.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000491.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000492.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000493.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000494.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000495.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000496.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000497.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000498.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000499.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000500.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000501.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000502.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000503.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000504.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000505.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000506.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000507.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000508.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000509.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000510.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000511.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000512.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000513.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000514.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000515.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000516.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000517.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000518.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000519.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000520.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000521.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000522.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000523.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000524.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000525.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000526.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000527.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000528.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000529.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000530.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000531.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000532.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000533.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000534.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000535.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000536.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000537.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000538.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000539.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000540.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000541.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000542.html +3 -3
- data/doc/api/ruby/classes/VPI/Handle.src/M000543.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000544.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000545.html +16 -0
- data/doc/api/ruby/classes/VPI/Handle.src/M000546.html +16 -0
- data/doc/api/ruby/classes/VPI/S_vpi_time.html +16 -16
- data/doc/api/ruby/classes/VPI/S_vpi_time.src/{M000543.html → M000547.html} +0 -0
- data/doc/api/ruby/classes/VPI/S_vpi_time.src/{M000544.html → M000548.html} +0 -0
- data/doc/api/ruby/classes/VPI/S_vpi_value.html +15 -15
- data/doc/api/ruby/classes/VPI/S_vpi_value.src/{M000436.html → M000440.html} +0 -0
- data/doc/api/ruby/classes/VPI/S_vpi_value.src/{M000437.html → M000441.html} +0 -0
- data/doc/api/ruby/classes/VPI/S_vpi_value.src/{M000438.html → M000442.html} +0 -0
- data/doc/api/ruby/classes/VerilogParser.html +5 -5
- data/doc/api/ruby/classes/VerilogParser.src/{M000004.html → M000003.html} +0 -0
- data/doc/api/ruby/classes/VerilogParser/Module.html +5 -5
- data/doc/api/ruby/classes/VerilogParser/Module.src/{M000005.html → M000004.html} +0 -0
- data/doc/api/ruby/classes/VerilogParser/Module/Port.html +15 -15
- data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000005.html +23 -0
- data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000006.html +4 -9
- data/doc/api/ruby/classes/VerilogParser/Module/Port.src/M000007.html +4 -4
- data/doc/api/ruby/created.rid +1 -1
- data/doc/api/ruby/files/lib/ruby-vpi/boot/loader_rb.html +6 -6
- data/doc/api/ruby/files/lib/ruby-vpi/boot/loader_rb.src/{M000003.html → M000002.html} +0 -0
- data/doc/api/ruby/files/lib/ruby-vpi/boot/relay_rb.html +1 -1
- data/doc/api/ruby/files/lib/ruby-vpi/core/callback_rb.html +1 -1
- data/doc/api/ruby/files/lib/ruby-vpi/core/scheduler_rb.html +3 -2
- data/doc/api/ruby/files/lib/ruby-vpi/runner_rb.html +1 -1
- data/doc/api/ruby/files/lib/ruby-vpi_rb.html +1 -1
- data/doc/api/ruby/files/ruby-vpi-dynamic_rb.html +1 -1
- data/doc/api/ruby/fr_class_index.html +1 -0
- data/doc/api/ruby/fr_file_index.html +0 -1
- data/doc/api/ruby/fr_method_index.html +549 -545
- data/doc/guide.erb +90 -46
- data/doc/guide.html +1629 -2292
- data/ext/Rakefile +15 -10
- data/ext/extconf.rb +30 -1
- data/ext/host.c +11 -7
- data/ext/user.c +13 -21
- data/lib/ruby-vpi.rb +3 -3
- data/lib/ruby-vpi/boot/loader.rb +4 -3
- data/lib/ruby-vpi/core/scheduler.rb +113 -122
- data/lib/ruby-vpi/runner.rb +2 -3
- metadata +39 -35
- data/doc/api/ruby/classes/Integer.src/M000020.html +0 -30
- data/doc/api/ruby/classes/RubyVPI.src/M000032.html +0 -42
- data/doc/api/ruby/classes/String.src/M000025.html +0 -41
- data/doc/api/ruby/classes/VPI.src/M000034.html +0 -19
- data/doc/api/ruby/classes/VPI.src/M000035.html +0 -18
- data/doc/api/ruby/classes/VPI/Handle.src/M000440.html +0 -18
- data/doc/api/ruby/classes/VPI/Handle.src/M000466.html +0 -21
- data/doc/api/ruby/classes/VPI/Handle.src/M000467.html +0 -28
- data/doc/api/ruby/classes/VPI/Handle.src/M000469.html +0 -19
- data/doc/api/ruby/files/lib/ruby-vpi/runner_boot_loader_rb.html +0 -150
- data/lib/ruby-vpi/runner_boot_loader.rb +0 -161
data/ext/Rakefile
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
# Build file for the native C extension.
|
2
2
|
#
|
3
3
|
# = Environment variables
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
4
|
+
#
|
5
|
+
# CFLAGS :: Override the default options passed to the compiler.
|
6
|
+
# CFLAGS_EXTRA :: Provide additional options for the compiler.
|
7
|
+
# LDFLAGS :: Override the default options passed to the linker.
|
8
|
+
# LDFLAGS_EXTRA :: Provide additional options for the linker.
|
9
|
+
# SIMULATOR :: ID of the simulator.
|
10
|
+
#
|
7
11
|
#--
|
8
12
|
# Copyright 2006 Suraj N. Kurapati
|
9
13
|
# See the file named LICENSE for details.
|
@@ -21,16 +25,17 @@ task :default => 'Makefile' do |t|
|
|
21
25
|
end
|
22
26
|
|
23
27
|
file 'Makefile' => [:swig, 'extconf.rb'] do |t|
|
24
|
-
|
28
|
+
args = []
|
29
|
+
|
30
|
+
if flags = ENV['CFLAGS']
|
31
|
+
args << "--with-cflags=#{flags}"
|
32
|
+
end
|
25
33
|
|
26
|
-
|
27
|
-
|
28
|
-
until v.empty?
|
29
|
-
cflags << " -DHAVE_RUBY_#{v.join '_'}"
|
30
|
-
v.pop
|
34
|
+
if flags = ENV['LDFLAGS']
|
35
|
+
args << "--with-ldflags=#{flags}"
|
31
36
|
end
|
32
37
|
|
33
|
-
ruby t.prerequisites[1],
|
38
|
+
ruby t.prerequisites[1], *args
|
34
39
|
end
|
35
40
|
|
36
41
|
CLEAN.include 'Makefile', 'mkmf.log', '*.o', "*.#{Config::CONFIG['DLEXT']}"
|
data/ext/extconf.rb
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
# Generates a makefile for buiding the C extension.
|
2
|
+
#
|
3
|
+
# = Environment variables
|
4
|
+
#
|
5
|
+
# CFLAGS_EXTRA :: Provide additional options for the compiler.
|
6
|
+
# LDFLAGS_EXTRA :: Provide additional options for the linker.
|
7
|
+
#
|
2
8
|
#--
|
3
9
|
# Copyright 2006 Suraj N. Kurapati
|
4
10
|
# See the file named LICENSE for details.
|
@@ -28,4 +34,27 @@ require 'mkmf'
|
|
28
34
|
end
|
29
35
|
|
30
36
|
# generate the makefile
|
31
|
-
|
37
|
+
if hasRuby
|
38
|
+
# apply additional arguments for compiler and linker
|
39
|
+
if flags = ENV['CFLAGS_EXTRA']
|
40
|
+
$CFLAGS << " #{flags}"
|
41
|
+
end
|
42
|
+
|
43
|
+
if flags = ENV['LDFLAGS_EXTRA']
|
44
|
+
$LDFLAGS << " #{flags}"
|
45
|
+
end
|
46
|
+
|
47
|
+
$CFLAGS << ' -Wall'
|
48
|
+
|
49
|
+
# disable optimization when debugging
|
50
|
+
$CFLAGS << ' -g -O0' if $CFLAGS =~ /-DDEBUG\b/
|
51
|
+
|
52
|
+
# detect ruby version on behalf of C extension
|
53
|
+
v = RUBY_VERSION.split('.')
|
54
|
+
until v.empty?
|
55
|
+
$CFLAGS << " -DHAVE_RUBY_#{v.join '_'}"
|
56
|
+
v.pop
|
57
|
+
end
|
58
|
+
|
59
|
+
create_makefile 'ruby-vpi'
|
60
|
+
end
|
data/ext/host.c
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
VALUE RubyVPI_host_gProgName;
|
14
14
|
|
15
15
|
#ifdef RUBY_GLOBAL_SETUP
|
16
|
-
RUBY_GLOBAL_SETUP
|
16
|
+
RUBY_GLOBAL_SETUP
|
17
17
|
#endif
|
18
18
|
|
19
19
|
PLI_INT32 RubyVPI_host_init(p_cb_data aCallback)
|
@@ -23,8 +23,8 @@ PLI_INT32 RubyVPI_host_init(p_cb_data aCallback)
|
|
23
23
|
//
|
24
24
|
|
25
25
|
#ifdef RUBY_INIT_STACK
|
26
|
-
|
27
|
-
|
26
|
+
RubyVPI_util_debug("Host: RUBY_INIT_STACK");
|
27
|
+
RUBY_INIT_STACK;
|
28
28
|
#endif
|
29
29
|
|
30
30
|
RubyVPI_util_debug("Host: ruby_init()");
|
@@ -41,11 +41,11 @@ PLI_INT32 RubyVPI_host_init(p_cb_data aCallback)
|
|
41
41
|
ruby_init_loadpath();
|
42
42
|
|
43
43
|
#ifdef HAVE_RUBY_1_9
|
44
|
-
|
45
|
-
|
44
|
+
RubyVPI_util_debug("Host: ruby_init_gems(Qtrue)");
|
45
|
+
rb_const_set(rb_define_module("Gem"), rb_intern("Enable"), Qtrue);
|
46
46
|
|
47
|
-
|
48
|
-
|
47
|
+
RubyVPI_util_debug("Host: Init_prelude()");
|
48
|
+
Init_prelude();
|
49
49
|
#endif
|
50
50
|
|
51
51
|
|
@@ -63,6 +63,8 @@ PLI_INT32 RubyVPI_host_init(p_cb_data aCallback)
|
|
63
63
|
|
64
64
|
RubyVPI_util_debug("Host: user_init()");
|
65
65
|
RubyVPI_user_init();
|
66
|
+
|
67
|
+
return 0;
|
66
68
|
}
|
67
69
|
|
68
70
|
PLI_INT32 RubyVPI_host_fini(p_cb_data aCallback)
|
@@ -72,4 +74,6 @@ PLI_INT32 RubyVPI_host_fini(p_cb_data aCallback)
|
|
72
74
|
|
73
75
|
RubyVPI_util_debug("Host: ruby_finalize()");
|
74
76
|
ruby_finalize();
|
77
|
+
|
78
|
+
return 0;
|
75
79
|
}
|
data/ext/user.c
CHANGED
@@ -36,8 +36,13 @@ static VALUE RubyVPI_user_body(char* aUserScript)
|
|
36
36
|
|
37
37
|
RubyVPI_util_debug("Ruby: END");
|
38
38
|
// don't wait for anyone to resume me anymore
|
39
|
+
|
40
|
+
return Qnil;
|
39
41
|
}
|
40
42
|
|
43
|
+
static VALUE RubyVPI_user__module_RubyVPI = Qnil;
|
44
|
+
static ID RubyVPI_user__symbol_resume = 0;
|
45
|
+
|
41
46
|
void RubyVPI_user_init()
|
42
47
|
{
|
43
48
|
// mailbox init
|
@@ -47,49 +52,36 @@ void RubyVPI_user_init()
|
|
47
52
|
|
48
53
|
// ruby thread init
|
49
54
|
RubyVPI_util_debug("User: ruby thread init");
|
50
|
-
|
51
55
|
rb_thread_create(RubyVPI_user_body, "ruby-vpi/boot/loader");
|
52
56
|
|
53
57
|
|
54
58
|
// wait for thread to pause
|
55
59
|
RubyVPI_util_debug("User: calling RubyVPI.attach");
|
56
60
|
|
57
|
-
|
58
|
-
|
59
|
-
rb_funcall(target, method, 0);
|
61
|
+
RubyVPI_user__module_RubyVPI = rb_const_get(rb_cObject, rb_intern("RubyVPI"));
|
62
|
+
rb_funcall(RubyVPI_user__module_RubyVPI, rb_intern("attach"), 0);
|
60
63
|
|
61
64
|
RubyVPI_util_debug("User: calling RubyVPI.attach DONE");
|
62
65
|
|
63
66
|
|
64
67
|
RubyVPI_util_debug("User: ruby thread is active & ran once");
|
68
|
+
RubyVPI_user__symbol_resume = rb_intern("resume");
|
65
69
|
}
|
66
70
|
|
67
71
|
void RubyVPI_user_fini()
|
68
72
|
{
|
69
|
-
|
73
|
+
RubyVPI_user__module_RubyVPI = Qnil;
|
74
|
+
// Ruby will garbage collect everything else
|
70
75
|
}
|
71
76
|
|
72
77
|
PLI_INT32 RubyVPI_user_resume(p_cb_data aCallback)
|
73
78
|
{
|
74
79
|
RubyVPI_util_debug("Main: callback = %p", aCallback);
|
75
|
-
|
76
|
-
if (aCallback)
|
77
|
-
{
|
78
|
-
RubyVPI_util_debug("Main: callback.user_data = %p", aCallback->user_data);
|
79
|
-
}
|
80
|
-
else
|
81
|
-
{
|
82
|
-
RubyVPI_util_debug("Main: callback is NULL");
|
83
|
-
}
|
84
|
-
|
85
|
-
RubyVPI_util_debug("Main: ruby callback for %p =>", aCallback);
|
86
|
-
VALUE call = RubyVPI_binding_rubify_callback(aCallback);
|
87
|
-
|
88
|
-
VALUE target = rb_const_get(rb_cObject, rb_intern("RubyVPI"));
|
89
|
-
ID method = rb_intern("resume");
|
80
|
+
RubyVPI_util_debug("Main: callback.user_data = %p", aCallback ? aCallback->user_data : 0);
|
90
81
|
|
91
82
|
RubyVPI_util_debug("Main: calling RubyVPI.resume");
|
92
|
-
|
83
|
+
// pass VPI callback to user code as Ruby object
|
84
|
+
rb_funcall(RubyVPI_user__module_RubyVPI, RubyVPI_user__symbol_resume, 1, RubyVPI_binding_rubify_callback(aCallback));
|
93
85
|
|
94
86
|
return 0;
|
95
87
|
}
|
data/lib/ruby-vpi.rb
CHANGED
@@ -6,9 +6,9 @@
|
|
6
6
|
module RubyVPI
|
7
7
|
Project = {
|
8
8
|
:name => 'ruby-vpi',
|
9
|
-
:version => '21.
|
10
|
-
:release => '2008-
|
11
|
-
:website =>
|
9
|
+
:version => '21.1.0',
|
10
|
+
:release => '2008-08-02',
|
11
|
+
:website => 'http://ruby-vpi.rubyforge.org',
|
12
12
|
:home => File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
13
13
|
}
|
14
14
|
|
data/lib/ruby-vpi/boot/loader.rb
CHANGED
@@ -141,11 +141,11 @@ begin
|
|
141
141
|
include VPI
|
142
142
|
end
|
143
143
|
|
144
|
-
|
145
|
-
|
144
|
+
RubyVPI::Scheduler.run do
|
145
|
+
# load the user-defined test loader
|
146
146
|
require ENV['RUBYVPI_TEST_LOADER']
|
147
147
|
|
148
|
-
|
148
|
+
# simulate at_exit handler invocation
|
149
149
|
Kernel.__RubyVPI__simulate_exit
|
150
150
|
|
151
151
|
# restore original at_exit handler
|
@@ -153,6 +153,7 @@ begin
|
|
153
153
|
alias at_exit __RubyVPI__orig_at_exit
|
154
154
|
undef __RubyVPI__simulate_exit
|
155
155
|
end
|
156
|
+
end
|
156
157
|
|
157
158
|
RubyVPI.detach
|
158
159
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Concurrent processes.
|
1
|
+
# Concurrent processes (coroutines).
|
2
2
|
#--
|
3
3
|
# Copyright 2007 Suraj N. Kurapati
|
4
4
|
# See the file named LICENSE for details.
|
@@ -6,147 +6,159 @@
|
|
6
6
|
Thread.abort_on_exception = true
|
7
7
|
|
8
8
|
require 'singleton'
|
9
|
+
require 'generator'
|
9
10
|
|
10
11
|
module RubyVPI
|
11
12
|
class SchedulerClass #:nodoc:
|
12
13
|
include Singleton
|
13
14
|
|
15
|
+
def initialize
|
16
|
+
@writes = Hash.new {|h,k| h[k] = []}
|
17
|
+
@writes_lock = Mutex.new
|
14
18
|
|
15
|
-
|
19
|
+
# for coroutines in Ruby-based prototypes of Verilog hardware
|
20
|
+
@routines = []
|
21
|
+
@routines_lock = Mutex.new
|
22
|
+
@current_routine = nil
|
16
23
|
|
17
|
-
|
18
|
-
def run
|
19
|
-
self.state = :run
|
20
|
-
self.thread.wakeup
|
21
|
-
end
|
24
|
+
@current_time = 0
|
22
25
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
+
# allow "initial" blocks in Verilog code of DUT to take effect
|
27
|
+
if @current_time.zero?
|
28
|
+
unless RubyVPI::USE_PROTOTYPE
|
29
|
+
advance_to_read_only_slot
|
30
|
+
end
|
26
31
|
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Returns the current simulation time, as tracked by the scheduler.
|
35
|
+
attr_reader :current_time
|
27
36
|
|
28
|
-
|
29
|
-
|
37
|
+
# Registers a new routine with the scheduler. The given block is the body
|
38
|
+
# of the routine and the given arguments are passed directly to the block.
|
39
|
+
def register_routine *aRoutineArgs, &aRoutineBody
|
40
|
+
@routines_lock.synchronize do
|
41
|
+
@routines << Routine.new(*aRoutineArgs, &aRoutineBody)
|
30
42
|
end
|
31
43
|
end
|
32
44
|
|
45
|
+
# Makes the current routine wait for the
|
46
|
+
# scheduler to arrive in the next time step.
|
47
|
+
def pause_current_routine
|
48
|
+
@current_routine.pause
|
49
|
+
end
|
33
50
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
51
|
+
# Runs the scheduler until there are no more routines to be scheduled.
|
52
|
+
def run &aRoutineBody
|
53
|
+
main = Routine.new(&aRoutineBody)
|
54
|
+
|
55
|
+
until main.done?
|
56
|
+
# run software in current time step
|
57
|
+
resume_routine main
|
39
58
|
|
40
|
-
|
41
|
-
@time = 0
|
59
|
+
Edge.refresh_cache
|
42
60
|
|
61
|
+
# go to time slot where writing is permitted
|
62
|
+
# before applying captured write operations
|
43
63
|
unless RubyVPI::USE_PROTOTYPE
|
44
|
-
|
64
|
+
if RubyVPI::USE_SIMULATOR == :vsim
|
65
|
+
Callback.relay_verilog(VPI::CbAfterDelay, 0)
|
66
|
+
else
|
67
|
+
Callback.relay_verilog(VPI::CbAfterDelay, 1)
|
68
|
+
end
|
45
69
|
end
|
46
70
|
|
47
|
-
|
48
|
-
# pause because boot loader is not fully initialized yet
|
49
|
-
Thread.stop
|
50
|
-
|
51
|
-
loop do
|
52
|
-
# run software in current time step
|
53
|
-
run_tasks @thread2task_soft, true
|
54
|
-
Edge.refresh_cache
|
55
|
-
|
56
|
-
# go to time slot where writing is permitted before flushing writes
|
57
|
-
unless RubyVPI::USE_PROTOTYPE
|
58
|
-
Callback.relay_verilog(VPI::CbAfterDelay, 1)
|
59
|
-
end
|
71
|
+
apply_writes
|
60
72
|
|
61
|
-
|
73
|
+
# run hardware in next time step
|
74
|
+
@current_time += 1
|
62
75
|
|
63
|
-
|
64
|
-
|
76
|
+
if RubyVPI::USE_PROTOTYPE
|
77
|
+
@routines_lock.synchronize do
|
78
|
+
@routines.reject! {|r| r.done? }
|
65
79
|
|
66
|
-
|
67
|
-
|
68
|
-
flush_writes
|
69
|
-
else
|
70
|
-
Callback.relay_verilog(VPI::CbReadOnlySynch, 0)
|
80
|
+
@routines.each do |r|
|
81
|
+
resume_routine r
|
71
82
|
end
|
83
|
+
end
|
84
|
+
|
85
|
+
apply_writes
|
86
|
+
else
|
87
|
+
advance_to_read_only_slot
|
72
88
|
end
|
73
89
|
end
|
90
|
+
end
|
74
91
|
|
75
|
-
|
76
|
-
|
77
|
-
|
92
|
+
# Captures the given write operation so it
|
93
|
+
# can be flushed later, at the correct time.
|
94
|
+
def capture_write aHandle, *aArgs
|
95
|
+
@writes_lock.synchronize do
|
96
|
+
@writes[aHandle] << Write.new(Thread.current, caller, aArgs)
|
97
|
+
end
|
78
98
|
end
|
79
99
|
|
80
|
-
|
81
|
-
|
100
|
+
private
|
101
|
+
|
102
|
+
def advance_to_read_only_slot
|
103
|
+
Callback.relay_verilog(VPI::CbReadOnlySynch, 0)
|
82
104
|
end
|
83
105
|
|
84
|
-
|
85
|
-
|
106
|
+
# Resumes the given routine while marking it as the current one.
|
107
|
+
def resume_routine aRoutine
|
108
|
+
@current_routine = aRoutine
|
109
|
+
@current_routine.resume
|
110
|
+
@current_routine = nil
|
86
111
|
end
|
87
112
|
|
88
|
-
#
|
89
|
-
|
90
|
-
|
113
|
+
# Represents Verilog's "process block" construct (a coroutine or concurrent
|
114
|
+
# process), which is used as the body of an "initial" or "forever" block.
|
115
|
+
class Routine
|
116
|
+
def initialize *aLogicArgs, &aLogicBody
|
117
|
+
raise ArgumentError unless block_given?
|
91
118
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
else
|
96
|
-
@thread2task_hard
|
119
|
+
@gen = Generator.new do |@ctl|
|
120
|
+
pause # until we are ready to begin
|
121
|
+
aLogicBody.call(*aLogicArgs)
|
97
122
|
end
|
98
|
-
|
99
|
-
@thread2task_lock.synchronize do
|
100
|
-
task = Task.new(key, :run)
|
101
|
-
hash[key] = task
|
102
|
-
@thread2task[key] = task
|
103
123
|
end
|
104
|
-
end
|
105
124
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
@thread2task.delete key
|
112
|
-
@thread2task_hard.delete key
|
113
|
-
@thread2task_soft.delete key
|
125
|
+
# Pauses the execution of this process block.
|
126
|
+
#
|
127
|
+
# Must be called from *inside* the logic of this process block.
|
128
|
+
def pause
|
129
|
+
@ctl.yield nil
|
114
130
|
end
|
115
|
-
end
|
116
|
-
|
117
|
-
# Waits for the scheduler to arrive in the next time step.
|
118
|
-
def await
|
119
|
-
key = Thread.current
|
120
131
|
|
121
|
-
|
122
|
-
|
132
|
+
# Returns true if this process block is
|
133
|
+
# currently paused and can thus be resumed.
|
134
|
+
#
|
135
|
+
# Must be called from *outside* the logic of this process block.
|
136
|
+
def pause?
|
137
|
+
@gen.next?
|
123
138
|
end
|
124
139
|
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
raise SecurityError, 'This method may only be invoked from within a process (see the VPI::process() method).'
|
140
|
+
# Resumes the execution of this process block.
|
141
|
+
#
|
142
|
+
# Must be called from *outside* the logic of this process block.
|
143
|
+
def resume
|
144
|
+
@gen.next
|
131
145
|
end
|
132
|
-
end
|
133
146
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
@handle2write[aHandle] << Write.new(Thread.current, caller, aArgs)
|
147
|
+
# Returns true if this process block is
|
148
|
+
# finished (it cannot be resumed anymore).
|
149
|
+
#
|
150
|
+
# Must be called from *outside* the logic of this process block.
|
151
|
+
def done?
|
152
|
+
not pause?
|
141
153
|
end
|
142
154
|
end
|
143
155
|
|
144
|
-
|
156
|
+
Write = Struct.new :thread, :trace, :args
|
145
157
|
|
146
158
|
# Flushes all captured writes.
|
147
|
-
def
|
148
|
-
@
|
149
|
-
@
|
159
|
+
def apply_writes
|
160
|
+
@writes_lock.synchronize do
|
161
|
+
@writes.each_pair do |handle, writes|
|
150
162
|
if writes.map {|w| w.thread}.uniq.length > 1
|
151
163
|
culprits = writes.map {|w| "\n\n#{w.thread}" << w.trace.map {|x| "\n\t#{x}"}.join}.join
|
152
164
|
STDERR.puts "Race condition detected at time step #{current_time}: the logic value of handle #{handle} is being modified by more than one concurrent process: #{culprits}"
|
@@ -161,27 +173,14 @@ module RubyVPI
|
|
161
173
|
end
|
162
174
|
end
|
163
175
|
end
|
164
|
-
|
165
|
-
def run_tasks aHash, aExitWhenEmpty
|
166
|
-
@thread2task_lock.synchronize do
|
167
|
-
tasks = aHash.values
|
168
|
-
tasks.each {|t| t.run}
|
169
|
-
|
170
|
-
if aExitWhenEmpty && tasks.empty?
|
171
|
-
Thread.exit
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
until @thread2task_lock.synchronize { aHash.values.all? {|t| t.stop? } }
|
176
|
-
Thread.pass
|
177
|
-
end
|
178
|
-
end
|
179
176
|
end
|
180
177
|
|
181
178
|
Scheduler = SchedulerClass.instance
|
182
179
|
end
|
183
180
|
|
184
181
|
module VPI
|
182
|
+
# intercept all writes to VPI handles so that
|
183
|
+
# they can be applied later by the scheduler
|
185
184
|
alias_method :__scheduler__vpi_put_value, :vpi_put_value
|
186
185
|
module_function :__scheduler__vpi_put_value
|
187
186
|
|
@@ -197,8 +196,7 @@ module VPI
|
|
197
196
|
|
198
197
|
# Wait until the simulation advances by the given number of time steps.
|
199
198
|
def advance_time aNumTimeSteps = 1
|
200
|
-
RubyVPI::Scheduler.
|
201
|
-
aNumTimeSteps.times { RubyVPI::Scheduler.await }
|
199
|
+
aNumTimeSteps.times { RubyVPI::Scheduler.pause_current_routine }
|
202
200
|
end
|
203
201
|
|
204
202
|
alias wait advance_time
|
@@ -206,15 +204,8 @@ module VPI
|
|
206
204
|
|
207
205
|
# Creates a new concurrent process, which will execute the
|
208
206
|
# given block with the given arguments, and returns it.
|
209
|
-
def process *aBlockArgs
|
210
|
-
RubyVPI::Scheduler.
|
211
|
-
raise ArgumentError, 'block must be given' unless block_given?
|
212
|
-
|
213
|
-
Thread.new do
|
214
|
-
RubyVPI::Scheduler.attach
|
215
|
-
yield(*aBlockArgs)
|
216
|
-
RubyVPI::Scheduler.detach
|
217
|
-
end
|
207
|
+
def process *aBlockArgs, &aBlock
|
208
|
+
RubyVPI::Scheduler.register_routine(*aBlockArgs, &aBlock)
|
218
209
|
end
|
219
210
|
|
220
211
|
# Wraps the given block inside an infinite loop and executes it
|
@@ -226,7 +217,7 @@ module VPI
|
|
226
217
|
aBlock.call(*aBlockArgs)
|
227
218
|
finishTime = VPI.current_time
|
228
219
|
|
229
|
-
|
220
|
+
advance_time unless finishTime > startTime
|
230
221
|
end
|
231
222
|
end
|
232
223
|
end
|