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.
1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 |
# File 'lib/HDLRuby/std/sequencer.rb', line 1956 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 |