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