class RgGen::VHDL::Utility::LocalScope

Private Instance Methods

block_header_code(code) click to toggle source
# File lib/rggen/vhdl/utility/local_scope.rb, line 18
def block_header_code(code)
  code << "#{name}: block" << nl
  header_begin(code, no_loop?)
end
generate_for(code, loop_variable, size, loop_depth) click to toggle source
# File lib/rggen/vhdl/utility/local_scope.rb, line 34
def generate_for(code, loop_variable, size, loop_depth)
  code << "g: for #{loop_variable} in 0 to #{size - 1} generate" << nl
  header_begin(code, last_loop?(loop_depth))
end
generate_for_header(code) click to toggle source
# File lib/rggen/vhdl/utility/local_scope.rb, line 27
def generate_for_header(code)
  loop_size&.each_with_index do |(loop_variable, size), i|
    code.indent += 2
    generate_for(code, loop_variable, size, i)
  end
end
header_begin(code, include_declarations) click to toggle source
# File lib/rggen/vhdl/utility/local_scope.rb, line 43
def header_begin(code, include_declarations)
  signal_declarations(code) if include_declarations
  code << 'begin' << nl
end
header_code(code) click to toggle source
# File lib/rggen/vhdl/utility/local_scope.rb, line 13
def header_code(code)
  block_header_code(code)
  generate_for_header(code)
end
last_loop?(loop_depth) click to toggle source
# File lib/rggen/vhdl/utility/local_scope.rb, line 39
def last_loop?(loop_depth)
  loop_depth == (loop_size.size - 1)
end
no_loop?() click to toggle source
# File lib/rggen/vhdl/utility/local_scope.rb, line 23
def no_loop?
  loop_size.nil? || loop_size.empty?
end
signal_declarations(code) click to toggle source
# File lib/rggen/vhdl/utility/local_scope.rb, line 48
def signal_declarations(code)
  indent(code, 2) do
    add_declarations_to_body(code, Array(signals))
  end
end