Class: RgGen::OutputBase::VerilogUtility::SubroutineDefinition

Inherits:
StructureDefinition show all
Defined in:
lib/rggen/output_base/verilog_utility/subroutine_definition.rb

Instance Method Summary collapse

Methods inherited from StructureDefinition

#body, #to_code

Constructor Details

#initialize(type, name, &body) ⇒ SubroutineDefinition

Returns a new instance of SubroutineDefinition.



5
6
7
8
# File 'lib/rggen/output_base/verilog_utility/subroutine_definition.rb', line 5

def initialize(type, name, &body)
  @type = type
  super(name, &body)
end

Instance Method Details

#return_type(data_type_and_width) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/rggen/output_base/verilog_utility/subroutine_definition.rb', line 10

def return_type(data_type_and_width)
  if [Symbol, String].any?(&data_type_and_width.method(:is_a?))
    @return_type  = data_type_and_width
  else
    data_type     = data_type_and_width[:data_type]
    width         = data_type_and_width[:width    ] || 1
    @return_type  =
      ((width > 1) && "#{data_type} [#{width - 1}:0]") || data_type
  end
end