Class: RubyHDL::High::Select

Inherits:
Expression show all
Defined in:
lib/HDLRuby/std/sequencer_sw.rb

Overview

Describes the software implementation of an select operation.

Instance Attribute Summary

Attributes inherited from Expression

#type

Instance Method Summary collapse

Methods inherited from Expression

#<=, #[], #mux, #sdownto, #seach, #stimes, #supto, #to_expr, #to_value

Constructor Details

#initialize(type, operator, sel, *choices) ⇒ Select

Create a new select operation with +type+ data type, selection operand +sel+ and possible choices +choices+.



1756
1757
1758
1759
1760
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 1756

def initialize(type,operator,sel,*choices)
  super(type)
  @sel = sel.to_expr
  @choices = choices.map(&:to_expr)
end

Instance Method Details

#to_rubyObject

Convert to ruby code.



1763
1764
1765
1766
1767
1768
# File 'lib/HDLRuby/std/sequencer_sw.rb', line 1763

def to_ruby
  return "case(#{@sel.to_}) ; " +
    @choices.map.with_index do |choice,i|
      "when #{i} ; #{choice.to_ruby} ; "
    end.join + "end"
end