class MailBox

Attributes

ghost[RW]

include AlwaysBlock include RedefOpertor

Public Class Methods

new(name:'mbox',depth:100, belong_to_module: nil ) click to toggle source
# File lib/tdl/elements/mail_box.rb, line 7
def initialize(name:'mbox',depth:100, belong_to_module: nil )
    @name = name

    @depth = depth

    @belong_to_module = belong_to_module
    unless @belong_to_module 
        raise TdlError.new("Clock<#{name}> dnot have belong_to_module")
    end

end

Public Instance Methods

cond_block_proc(a,b=nil) click to toggle source

redefine cond_block_proc

Calls superclass method
# File lib/tdl/elements/mail_box.rb, line 48
def cond_block_proc(a,b=nil)
    unless a.eql? self
        super(a,b)
    else
        if(b.is_a? Hash)
            if b[:cond_type].eql? :if_exp
                exp_element(b[:cond_value])
            end
        elsif b.nil?
            rel = exp_element(a)
            if rel =~ /\s+end\s*$/
                rel
            else
                rel.concat(";")
            end
        else
            exp_element(a).concat(".put(").concat(exp_element(b)).concat(");")
        end
    end
end
get(baseelm) click to toggle source
# File lib/tdl/elements/mail_box.rb, line 41
def get(baseelm)
    b = "#{signal}.get(#{exp_element(baseelm)})"
    $__curr_logic_for_expect.last.assign_proc(nil,b)
    return nil
end
inst() click to toggle source
# File lib/tdl/elements/mail_box.rb, line 27
def inst
    "mailbox #{@name} = new(#{@depth});\n"
end
put(baseelm) click to toggle source

def _assign_small_and_eq(b)

$__tdl_cur_always_env__.assign_proc(self,b)

end

# File lib/tdl/elements/mail_box.rb, line 35
def put(baseelm)
    b = "#{signal}.put(#{exp_element(baseelm)})"
    $__curr_logic_for_expect.last.assign_proc(nil,b)
    return nil
end
signal() click to toggle source
# File lib/tdl/elements/mail_box.rb, line 19
def signal
    "#{@name}"
end
to_s() click to toggle source
# File lib/tdl/elements/mail_box.rb, line 23
def to_s
    signal
end