class ClassHDL::ClearSdlModule

Public Class Methods

new(name=nil) click to toggle source
# File lib/tdl/class_hdl/hdl_module_def.rb, line 414
def initialize(name=nil)
    ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do 
        @@allmodule << self
        @module_name = name || "clear_board_sdlmodule_#{@@id_cnt}"
        # @real_sv_path = File.join(@out_sv_path,"#{@module_name}.sv") if @out_sv_path
        @dont_gen_sv = true
        @port_clocks        = Hash.new
        @port_resets        = Hash.new
        @port_params        = Hash.new
        @port_logics        = Hash.new
        @port_datainfs      = Hash.new
        @port_datainf_c_s   = Hash.new
        @port_videoinfs     = Hash.new
        @port_axisinfs      = Hash.new
        @port_axi4infs      = Hash.new
        @port_axilinfs      = Hash.new

        # @techbench = TechBench.new
        @sub_instanced = []
        ## --------
        @@ele_array.each do |e|
            head_str = "@#{e.to_s}"
            self.instance_variable_set("#{head_str}_collect",[])
            self.instance_variable_set("#{head_str}_inst",[])
            self.instance_variable_set("#{head_str}_draw",[])
            self.instance_variable_set("#{head_str}_pre_inst_stack",[])
            self.instance_variable_set("#{head_str}_post_inst_stack",[])
            # tmp = e.new(name:"#{e.to_s}_NC")
            # tmp.ghost = true
            # self.instance_variable_set("#{head_str}_NC",tmp)
        end
        create_ghost
        @@id_cnt += 1

        @instanced_and_parent_module ||= Hash.new
        @instance_and_children_module ||= Hash.new
    end
end

Public Instance Methods

root_sdlmodule() click to toggle source
# File lib/tdl/class_hdl/hdl_module_def.rb, line 453
def root_sdlmodule
    unless @belong_to_module
        return nil 
    else  
        if @belong_to_module.is_a?(SdlModule) && !@belong_to_module.is_a?(ClearSdlModule)
            return @belong_to_module
        else  
            return @belong_to_module.root_sdlmodule 
        end 
    end
end