Module: Enumerable
- Included in:
- HDLRuby::High::HRef
- 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.
2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 |
# File 'lib/HDLRuby/std/sequencer.rb', line 2162 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 |