Module: Enumerable
- Included in:
- HDLRuby::High::HRef, VerilogTools::AST
- Defined in:
- lib/HDLRuby/std/sequencer.rb
Instance Method Summary collapse
-
#seach(&ruby_block) ⇒ Object
HW iteration on each element.
Instance Method Details
#seach(&ruby_block) ⇒ Object
HW iteration on each element.
2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 |
# File 'lib/HDLRuby/std/sequencer.rb', line 2191 def seach(&ruby_block) # Convert the enumrable to an array for easier processing. ar = self.to_a return if ar.empty? # The array is empty, nothing to do. # Compute the type of the elements. typ = ar[0].respond_to?(:type) ? ar[0].type : signed[32] # Create the hardware iterator. hw_enum = SEnumeratorBase.new(typ,ar.size) do |idx| HDLRuby::High.top_user.mux(idx,*ar) end # Is there a ruby block? if(ruby_block) then # Yes, apply it. return hw_enum.seach(&ruby_block) else # No, return the resulting enumerator. return hw_enum end end |