class CLKInfElm

class InfElm

private

# def add_dsize_func
#     _dsize = @dsize
#     @dsize.define_singleton_method("*") do |a|
#         if(_dsize.is_a? Numeric)
#             @dsize * a
#         elsif _dsize.is_a? String
#             "#{_dsize} * #{a}"
#         else
#             @dsize * a
#         end
#     end
# end

end

clock_reset_taps

Attributes

clock[RW]
origin_freqM[RW]
reset[RW]

Public Class Methods

new(clock:nil,reset:nil,dimension:[],freqM:nil) click to toggle source
Calls superclass method InfElm::new
# File lib/tdl/elements/originclass.rb, line 585
def initialize(clock:nil,reset:nil,dimension:[],freqM:nil)
    # super(dimension:dimension,clock:clock,reset:reset,freqM:freqM)
    super(dimension:dimension)
    @clock = clock
    @reset = reset
    @origin_freqM = freqM
    check_freqM

end

Public Instance Methods

FreqM() click to toggle source
# File lib/tdl/elements/originclass.rb, line 624
def FreqM()
    "#{@name}.FreqM".to_nq
end
check_freqM() click to toggle source
# File lib/tdl/elements/originclass.rb, line 628
def check_freqM
    if @origin_freqM && @clock.is_a?(Clock)
        if @origin_freqM != @clock.freqM
            raise TdlError.new("Interface origin clock freqM[#{@origin_freqM}Mhz] dont eql CLOCK freqM[#{@clock.freqM}Mhz]")
        end
    end
end
clock_reset_taps(def_clock_name,def_reset_name,self_clock,self_reset) click to toggle source
# File lib/tdl/elements/originclass.rb, line 652
def clock_reset_taps(def_clock_name,def_reset_name,self_clock,self_reset)

    new_clk = belong_to_module.logic.clock(self.FreqM) - def_clock_name
    new_reset = belong_to_module.logic.reset('low') - def_reset_name

    belong_to_module.Assign do 
        new_clk <= self_clock 
        new_reset <= self_reset
    end 
    [new_clk,new_reset]
end
freqM() click to toggle source
# File lib/tdl/elements/originclass.rb, line 595
def freqM
    if @clock.is_a?(Clock)
        @clock.freqM
    elsif @origin_freqM
        @origin_freqM
    else
        nil
    end
end
freq_align_signal() click to toggle source
# File lib/tdl/elements/originclass.rb, line 615
def freq_align_signal
    data = freqM
    if data
        align_signal(data)
    else
        align_signal( 1.11 )
    end
end
intf_def_freqM() click to toggle source
# File lib/tdl/elements/originclass.rb, line 605
def intf_def_freqM
    if @clock.is_a?(Clock)
        @clock.freqM
    elsif @origin_freqM
        @origin_freqM
    else
        1.11
    end
end
use_which_freq_when_copy(argv_clock,argv_origin) click to toggle source
# File lib/tdl/elements/originclass.rb, line 636
def use_which_freq_when_copy(argv_clock,argv_origin)
    if argv_clock == @clock && @clock
        @origin_freqM
    elsif argv_clock != @clock && argv_clock.is_a?(Clock)
        argv_clock.freqM
    elsif !(argv_clock.is_a?(Clock)) && argv_origin
        argv_origin
    else
        nil
    end
end