Class: RubyHDL::High::Select
- Inherits:
-
Expression
- Object
- Expression
- RubyHDL::High::Select
- Defined in:
- lib/HDLRuby/std/sequencer_sw.rb
Overview
Describes the software implementation of an select operation.
Instance Attribute Summary
Attributes inherited from Expression
Instance Method Summary collapse
-
#initialize(type, operator, sel, *choices) ⇒ Select
constructor
Create a new select operation with +type+ data type, selection operand +sel+ and possible choices +choices+.
-
#to_ruby ⇒ Object
Convert to ruby code.
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_ruby ⇒ Object
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 |