class CommonCFGReg

Attributes

asize[RW]
dsize[RW]
ghost[RW]
id[RW]
name[RW]
port[RW]

Public Class Methods

new(name:"cfg_inf",dsize:8,asize:8,port:false,dimension:[]) click to toggle source
Calls superclass method InfElm::new
# File lib/tdl/elements/common_configure_reg.rb, line 6
def initialize(name:"cfg_inf",dsize:8,asize:8,port:false,dimension:[])
    name_legal?(name)
    super(dimension:dimension)
    @port = port
    @dsize = dsize
    @name = name
    @asize = asize
end
parse_ports(port_array=nil) { |h| ... } click to toggle source

SV FILE PORT PARSE

# File lib/tdl/elements/common_configure_reg.rb, line 29
def self.parse_ports(port_array=nil)
    rep = /(?<up_down>\(\*\s+(?<ud_name>stream_up|stream_down)\s*=\s*"true"\s+\*\))?\s*(common_configure_reg_interface\.)(?<modport>master|slaver)\s+(?<name>\w+)\s*(?<vector>\[.*?\])?/m
    up_stream_rep = /stream_up/

    InfElm.parse_ports(port_array,rep,"common_configure_reg_interface",up_stream_rep) do |h|
        h[:type] = CommonCFGReg
        yield h
    end
end
sdlinst_t0(ele) click to toggle source

SdlInst

# File lib/tdl/elements/common_configure_reg.rb, line 41
def self.sdlinst_t0(ele)
    if ele.class ==  CommonCFGReg then
        "common_configure_reg_interface.#{ele.port}"
    else
        nil
    end
end

Public Instance Methods

__inf_signal__(name,index=0) click to toggle source
# File lib/tdl/elements/common_configure_reg.rb, line 54
def __inf_signal__(name,index=0)
    NqString.new(signal(index).concat ".#{name}")
    # signal.concat ".#{name}"
end
__inf_signal_list_(lname,index=0,h=nil,l=nil) click to toggle source
# File lib/tdl/elements/common_configure_reg.rb, line 75
def __inf_signal_list_(lname,index=0,h=nil,l=nil)

    if h.is_a? Range
        l = h.to_a.min
        h = h.to_a.max
    end

    if h
        if l
            sqr = "[#{h.to_s}:#{l.to_s}]"
        else
            sqr = "[#{h.to_s}]"
        end
    else
        sqr = ""
    end
    NqString.new(signal(index).concat(".#{lname}").concat(sqr))
end
inst() click to toggle source
# File lib/tdl/elements/common_configure_reg.rb, line 15
    def inst
        return "" if @ghost || @port
"common_configure_reg_interface #(
    .ASIZE  (#{asize}),
    .DSIZE  (#{dsize})
)#{signal} #{array_inst} ();"
    end
inst_port() click to toggle source
# File lib/tdl/elements/common_configure_reg.rb, line 23
def inst_port
    return ["common_configure_reg_interface." + @port.to_s,@name.to_s,array_inst]
end