class RgGen::SystemVerilog::Common::Utility::InterfacePort
Public Class Methods
new(default_attributes = {}) { |self| ... }
click to toggle source
# File lib/rggen/systemverilog/common/utility/interface_port.rb, line 10 def initialize(default_attributes = {}) apply_attributes(**default_attributes) block_given? && yield(self) end
Public Instance Methods
declaration()
click to toggle source
# File lib/rggen/systemverilog/common/utility/interface_port.rb, line 29 def declaration "#{port_type} #{port_identifier}" end
identifier()
click to toggle source
# File lib/rggen/systemverilog/common/utility/interface_port.rb, line 33 def identifier Identifier.new(name) do |identifier| identifier.__array_size__(array_size) identifier.__sub_identifiers__(@modport_ports) end end
modport(name_and_ports, ports = nil)
click to toggle source
# File lib/rggen/systemverilog/common/utility/interface_port.rb, line 20 def modport(name_and_ports, ports = nil) @modport_name, @modport_ports = if ports [name_and_ports, ports] else Array(name_and_ports)[0..1] end end
Private Instance Methods
port_identifier()
click to toggle source
# File lib/rggen/systemverilog/common/utility/interface_port.rb, line 46 def port_identifier [ name, *Array(array_size).map { |size| "[#{size}]" } ].join end
port_type()
click to toggle source
# File lib/rggen/systemverilog/common/utility/interface_port.rb, line 42 def port_type [@interface_type, @modport_name].compact.join('.') end