class TechBench

Attributes

auto_path[RW]
tb_path[RW]

Public Class Methods

new() click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 13
def initialize
    # @top_tb = TestModule.new()
    @modules = []
end

Public Instance Methods

add(tm) click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 18
def add(tm)
    @modules << tm if tm.is_a? TestModule
end
add_clock_unit(hash) click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 56
def add_clock_unit(hash)
    init_clock_reset
    @clock_reset.add_test_unit(type:ClockITest,hash:hash)
end
add_diff_clock_unit(hash) click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 51
def add_diff_clock_unit(hash)
    init_clock_reset
    @clock_reset.add_test_unit(type:DiffClockITest,hash:hash)
end
add_io_unit(hash,&block) click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 66
def add_io_unit(hash,&block)
    init_clock_reset
    @clock_reset.add_test_unit(type:IOITest,hash:hash,&block)
end
add_module(name,&block) click to toggle source

def add_top_unit(type:nil,hash:{})

@modules[0].add_test_unit(type:type,hash:hash)

end

# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 35
def add_module(name,&block)
    tm = TestModule.new(name,&block)
    @modules << tm
    tm
end
add_reset_unit(hash) click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 61
def add_reset_unit(hash)
    init_clock_reset
    @clock_reset.add_test_unit(type:ResetITest,hash:hash)
end
bfm_module(module_name) click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 86
def bfm_module(module_name)

    @bfm_modules ||= Hash.new
    if @bfm_modules[module_name]
        @bfm_modules[module_name]
    else
        @bfm_modules[module_name] = Tdl.send("inst_"+module_name.downcase)
    end
end
gen_tb_file(test_module_name) click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 22
def gen_tb_file(test_module_name)
    @top_connect_elements = []
    @modules.each do |e|
        sub_elements = e.gen_sub_tb_module_file
        @top_connect_elements += sub_elements
    end
    inst(test_module_name)
end
inst(test_module_name) click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 71
def inst(test_module_name)
    # require_path(auto_path)
    tb_m = TdlModule.new(name:"tb_"+test_module_name)
    tb_m.out_sv_path = tb_path
    #
    target_module = Tdl.send("inst_"+test_module_name.downcase)

    @top_connect_elements.each do |e|
        test_module = bfm_module(e.module_name)
        e.connect(target_module,test_module)
    end

    tb_m.exit_build_module
end

Private Instance Methods

init_clock_reset() click to toggle source
# File lib/tdl/exlib/integral_test/bak/integral_test.rb, line 42
def init_clock_reset
    unless @clock_reset
        @clock_reset = TestModule.new("clock_reset_unit_block")
        @modules << @clock_reset
    end
end