Class: UdbGen::GenCfgSvhHeaderOptions

Inherits:
SubcommandWithCommonOptions show all
Includes:
TTY::Exit, CfgHeaderBase
Defined in:
lib/udb-gen/generators/cfg_svh_header/generator.rb

Constant Summary collapse

NAME =
"cfg-svh-header"

Instance Attribute Summary

Attributes inherited from Subcommand

#desc, #name

Instance Method Summary collapse

Methods included from CfgHeaderBase

#cfg_arch, #exit_with, #generate_header, #help, #params, #parse, #run_generator

Methods inherited from SubcommandWithCommonOptions

#cfg_arch, #resolve_cfg_arg, #resolver

Constructor Details

#initializeGenCfgSvhHeaderOptions

Returns a new instance of GenCfgSvhHeaderOptions.



22
23
24
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 22

def initialize
  super(name: NAME, desc: "Generate a SystemVerilog header with `define directives from a fully configured UDB config")
end

Instance Method Details

#command_nameObject



52
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 52

def command_name = NAME

#define_directiveObject



49
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 49

def define_directive = "`define"

#file_type_nameObject



72
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 72

def file_type_name = "SystemVerilog header"

#format_integer(value) ⇒ Object



76
77
78
79
80
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 76

def format_integer(value)
  bits = [32, value.bit_length].max
  width = ((bits + 31) / 32) * 32
  "#{width}'h#{value.to_s(16).upcase}"
end

#guard_begin(guard_name) ⇒ Object



55
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 55

def guard_begin(guard_name) = "`ifndef #{guard_name}"

#guard_end(guard_name) ⇒ Object



58
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 58

def guard_end(guard_name) = "`endif // #{guard_name}"

#guard_suffixObject



61
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 61

def guard_suffix = "_SVH"

#header_comment(text_lines) ⇒ Object



67
68
69
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 67

def header_comment(text_lines)
  text_lines.map { |line| line.empty? ? "//" : "// #{line}" }
end

#run(argv) ⇒ Object



83
84
85
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 83

def run(argv)
  run_generator(argv)
end

#section_comment(text) ⇒ Object



64
# File 'lib/udb-gen/generators/cfg_svh_header/generator.rb', line 64

def section_comment(text) = "// #{text}"