ref/ruby/classes/RubyVpi.src/M000029.html in ruby-vpi-14.0.0 vs ref/ruby/classes/RubyVpi.src/M000029.html in ruby-vpi-15.0.0
- old
+ new
@@ -77,38 +77,38 @@
94: <span class="ruby-comment cmt"># set up the VPI utility layer</span>
95: <span class="ruby-constant">Object</span>.<span class="ruby-identifier">class_eval</span> <span class="ruby-keyword kw">do</span>
96: <span class="ruby-identifier">include</span> <span class="ruby-constant">Vpi</span>
97: <span class="ruby-keyword kw">end</span>
98:
- 99: <span class="ruby-comment cmt"># load the design under test</span>
-100: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">design</span> = <span class="ruby-identifier">vpi_handle_by_name</span>(<span class="ruby-node">"#{testName}_bench"</span>, <span class="ruby-keyword kw">nil</span>)
-101: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Verilog bench for test #{testName.inspect} is inaccessible."</span>
-102: <span class="ruby-keyword kw">end</span>
-103:
-104: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">const_set</span>(<span class="ruby-identifier">aDesignId</span>, <span class="ruby-identifier">design</span>)
-105: <span class="ruby-identifier">require</span> <span class="ruby-node">"#{testName}_design.rb"</span>
-106:
-107: <span class="ruby-comment cmt"># load the design's prototype</span>
-108: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">usePrototype</span>
-109: <span class="ruby-identifier">require</span> <span class="ruby-node">"#{testName}_proto.rb"</span>
+ 99: <span class="ruby-constant">Vpi</span>.<span class="ruby-identifier">module_eval</span> <span class="ruby-keyword kw">do</span>
+100: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:simulate</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">aSimulationCycle</span>
+101: <span class="ruby-keyword kw">end</span>
+102:
+103: <span class="ruby-comment cmt"># load the design under test</span>
+104: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">design</span> = <span class="ruby-identifier">vpi_handle_by_name</span>(<span class="ruby-node">"#{testName}_bench"</span>, <span class="ruby-keyword kw">nil</span>)
+105: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Verilog bench for test #{testName.inspect} is inaccessible."</span>
+106: <span class="ruby-keyword kw">end</span>
+107:
+108: <span class="ruby-constant">Kernel</span>.<span class="ruby-identifier">const_set</span>(<span class="ruby-identifier">aDesignId</span>, <span class="ruby-identifier">design</span>)
+109: <span class="ruby-identifier">require</span> <span class="ruby-node">"#{testName}_design.rb"</span>
110:
-111: <span class="ruby-constant">Vpi</span>.<span class="ruby-identifier">module_eval</span> <span class="ruby-keyword kw">do</span>
-112: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:simulate</span> <span class="ruby-keyword kw">do</span>
-113: <span class="ruby-identifier">design</span>.<span class="ruby-identifier">simulate!</span>
-114: <span class="ruby-keyword kw">end</span>
-115:
-116: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:vpi_register_cb</span> <span class="ruby-keyword kw">do</span>
-117: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"vpi_register_cb: callbacks not allowed when prototyping"</span>
+111: <span class="ruby-comment cmt"># load the design's prototype</span>
+112: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">usePrototype</span>
+113: <span class="ruby-identifier">require</span> <span class="ruby-node">"#{testName}_proto.rb"</span>
+114:
+115: <span class="ruby-constant">Vpi</span>.<span class="ruby-identifier">module_eval</span> <span class="ruby-keyword kw">do</span>
+116: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:advance_time</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">args</span><span class="ruby-operator">|</span>
+117: <span class="ruby-constant">Integer</span>(<span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">||</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">times</span> { <span class="ruby-identifier">design</span>.<span class="ruby-identifier">simulate!</span> }
118: <span class="ruby-keyword kw">end</span>
-119: <span class="ruby-keyword kw">end</span>
-120:
-121: <span class="ruby-constant">Vpi</span><span class="ruby-operator">::</span><span class="ruby-identifier">vpi_printf</span> <span class="ruby-node">"#{Config::PROJECT_NAME}: prototype is enabled for test #{testName.inspect}\n"</span>
-122:
-123: <span class="ruby-keyword kw">else</span>
-124: <span class="ruby-constant">Vpi</span>.<span class="ruby-identifier">module_eval</span> <span class="ruby-keyword kw">do</span>
-125: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:simulate</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">aSimulationCycle</span>
-126: <span class="ruby-keyword kw">end</span>
-127:
+119:
+120: <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">:vpi_register_cb</span> <span class="ruby-keyword kw">do</span>
+121: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"vpi_register_cb: callbacks are ignored when prototype is enabled"</span>
+122: <span class="ruby-keyword kw">end</span>
+123: <span class="ruby-keyword kw">end</span>
+124:
+125: <span class="ruby-constant">Vpi</span><span class="ruby-operator">::</span><span class="ruby-identifier">vpi_printf</span> <span class="ruby-node">"#{Config::PROJECT_NAME}: prototype is enabled for test #{testName.inspect}\n"</span>
+126:
+127: <span class="ruby-keyword kw">else</span>
128: <span class="ruby-comment cmt"># XXX: this completes the handshake, by calling relay_verilog, with pthread_mutex_lock() in relay_main() in the C extension</span>
129: <span class="ruby-identifier">advance_time</span>
130: <span class="ruby-keyword kw">end</span>
131:
132: <span class="ruby-comment cmt"># load the design's specification</span>
\ No newline at end of file