ruby-vpi 21.0.0 → 21.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/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
|