class RgGen::SystemVerilog::Common::Utility::LocalScope
Public Instance Methods
top_scope(value = true)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 13 def top_scope(value = true) @top_scope = value end
Private Instance Methods
generate_for(genvar, size)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 48 def generate_for(genvar, size) "for (#{genvar} = 0;#{genvar} < #{size};++#{genvar}) begin : g" end
generate_for_end(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 64 def generate_for_end(code) code.indent -= 2 code << 'end' << nl end
generate_for_header(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 41 def generate_for_header(code) loop_size&.each do |genvar, size| code << generate_for(genvar, size) << nl code.indent += 2 end end
genvar_declarations(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 36 def genvar_declarations(code) genvars = Array(loop_size&.keys).map { |genvar| "genvar #{genvar}" } add_declarations_to_body(code, genvars) end
header_code(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 19 def header_code(code) code << ['generate', space] if @top_scope code << "if (1) begin : #{name}" << nl end
parameter_declarations(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 52 def parameter_declarations(code) add_declarations_to_body(code, Array(parameters)) end
post_body_code(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 60 def post_body_code(code) loop_size&.size&.times { generate_for_end(code) } end
pre_body_code(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 29 def pre_body_code(code) genvar_declarations(code) generate_for_header(code) parameter_declarations(code) variable_declarations(code) end
variable_declarations(code)
click to toggle source
# File lib/rggen/systemverilog/common/utility/local_scope.rb, line 56 def variable_declarations(code) add_declarations_to_body(code, Array(variables)) end