Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/HDLRuby/hruby_high.rb

Overview

Extends the Hash class for declaring signals of structure types.

Direct Known Subclasses

HDLRuby::Low::HashName

Instance Method Summary collapse

Instance Method Details

#constant(hsh) ⇒ Object

Declares high-level untyped constant signals by name and value given by +hsh+ of the current type.

Retuns the last declared constant.



4004
4005
4006
4007
4008
4009
4010
4011
4012
# File 'lib/HDLRuby/hruby_high.rb', line 4004

def constant(hsh)
    res = nil
    hsh.each do |name,value|
        res = HDLRuby::High.top_user.
            add_inner(SignalC.new(name,
                      TypeStruct.new(:"",:little,self),:inner,value))
    end
    return res
end

#inner(*names) ⇒ Object

Declares high-level untyped inner signals named +names+ of the current type.

Retuns the last declared inner.



3990
3991
3992
3993
3994
3995
3996
3997
3998
# File 'lib/HDLRuby/hruby_high.rb', line 3990

def inner(*names)
    res = nil
    names.each do |name|
        res = HDLRuby::High.top_user.
            add_inner(SignalI.new(name,
                            TypeStruct.new(:"",:little,self),:inner))
    end
    return res
end

#inout(*names) ⇒ Object

Declares high-level untyped inout signals named +names+ of the current type.

Retuns the last declared inout.



3976
3977
3978
3979
3980
3981
3982
3983
3984
# File 'lib/HDLRuby/hruby_high.rb', line 3976

def inout(*names)
    res = nil
    names.each do |name|
        res = HDLRuby::High.top_user.
            add_inout(SignalI.new(name,
                            TypeStruct.new(:"",:little,self),:inout))
    end
    return res
end

#input(*names) ⇒ Object

Declares high-level input signals named +names+ of the current type.

Retuns the last declared input.



3948
3949
3950
3951
3952
3953
3954
3955
3956
# File 'lib/HDLRuby/hruby_high.rb', line 3948

def input(*names)
    res = nil
    names.each do |name|
        res = HDLRuby::High.top_user.
            add_input(SignalI.new(name,
                            TypeStruct.new(:"",:little,self),:input))
    end
    return res
end

#output(*names) ⇒ Object

Declares high-level untyped output signals named +names+ of the current type.

Retuns the last declared output.



3962
3963
3964
3965
3966
3967
3968
3969
3970
# File 'lib/HDLRuby/hruby_high.rb', line 3962

def output(*names)
    res = nil
    names.each do |name|
        res = HDLRuby::High.top_user.
            add_output(SignalI.new(name,
                            TypeStruct.new(:"",:little,self),:output))
    end
    return res
end

#to_typeObject

Converts to a new type.



3936
3937
3938
# File 'lib/HDLRuby/hruby_high.rb', line 3936

def to_type
    return TypeStruct.new(:"",:little,self)
end

#typedef(name) ⇒ Object

Declares a new type definition with +name+ equivalent to current one.



3941
3942
3943
# File 'lib/HDLRuby/hruby_high.rb', line 3941

def typedef(name)
    return self.to_type.typedef(name)
end