Class: BaseElm
- Inherits:
-
AxiTdl::SdlModuleActiveBaseElm
- Object
- AxiTdl::SdlModuleActiveBaseElm
- BaseElm
- Includes:
- TdlSpace::ExCreateTP
- Defined in:
- lib/tdl/exlib/test_point.rb,
lib/tdl/elements/originclass.rb,
lib/tdl/class_hdl/hdl_redefine_opertor.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#belong_to_module ⇒ Object
attr_accessor :belong_module.
-
#name ⇒ Object
Returns the value of attribute name.
Class Method Summary collapse
-
.define_arraychain_tail_method(name, width = 1, rv = false, &block) ⇒ Object
ArrayChain 相关.
-
.recfg_nc(new_nc) ⇒ Object
def signal @name.to_s end.
Instance Method Summary collapse
- #matrix(*indexs) ⇒ Object
- #name_copy(nstr) ⇒ Object
-
#path_refs(&block) ⇒ Object
获取信号的绝对路径.
-
#s(index = nil) ⇒ Object
def initialize @belong_module =.
-
#signal(index = nil) ⇒ Object
重覆盖掉.
Methods included from TdlSpace::ExCreateTP
Methods included from AxiTdl::TestUnitTrack
Instance Attribute Details
#belong_to_module ⇒ Object
attr_accessor :belong_module
80 81 82 |
# File 'lib/tdl/elements/originclass.rb', line 80 def belong_to_module @belong_to_module end |
#name ⇒ Object
Returns the value of attribute name.
81 82 83 |
# File 'lib/tdl/elements/originclass.rb', line 81 def name @name end |
Class Method Details
.define_arraychain_tail_method(name, width = 1, rv = false, &block) ⇒ Object
ArrayChain 相关
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
# File 'lib/tdl/elements/originclass.rb', line 168 def self.define_arraychain_tail_method(name,width=1,rv=false,&block) self.define_method(name) do RedefOpertor.with_normal_operators do if @dimension.empty? NqString.new(signal.concat ".#{name}") else @_array_chain_hash_ ||= {} unless @_array_chain_hash_[name.to_s] if width.is_a? Proc r_width = width.call(self) else r_width = width end rel = generate_inf_to_signals(name.to_s,width=r_width,rv=rv) @_array_chain_hash_[name.to_s] = rel end TdlSpace::ArrayChain.create(obj: @_array_chain_hash_[name.to_s],lchain:[],belong_to_module: self.belong_to_module) end end end end |
.recfg_nc(new_nc) ⇒ Object
def signal
@name.to_s
end
118 119 120 121 122 123 124 |
# File 'lib/tdl/elements/originclass.rb', line 118 def self.recfg_nc(new_nc) new_nc.instance_variable_set("@_id",0) new_nc.define_singleton_method(:signal) do id = new_nc.instance_variable_get("@_id") new_nc.instance_variable_set("@_id",id+1).to_s end end |
Instance Method Details
#matrix(*indexs) ⇒ Object
105 106 107 108 109 110 111 112 |
# File 'lib/tdl/elements/originclass.rb', line 105 def matrix(*indexs) with_new_align(0) do str = indexs.map do |i| "[#{align_signal(i,q_mark=false)}]" end.join("") NqString.new("#{@name.to_s}#{str}") end end |
#name_copy(nstr) ⇒ Object
126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/tdl/elements/originclass.rb', line 126 def name_copy(nstr) if nstr.is_a?(StringBandItegration) && true return nstr else if nstr.to_s.eql?(@name.to_s) @copy_id ||= 0 str = "#{nstr.to_s}_copy_#{@copy_id}" @copy_id += 1 str else nstr.to_s end end end |
#path_refs(&block) ⇒ Object
获取信号的绝对路径
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'lib/tdl/exlib/test_point.rb', line 141 def path_refs(&block) collects = [] if @belong_to_module != TopModule.current.techbench @belong_to_module.parents_inst_tree do |tree| ll = ["$root"] rt = tree.reverse rt.each_index do |index| if rt[index].respond_to? :module_name ll << rt[index].module_name else ll << rt[index].inst_name end end ll << @name new_name = ll.join('.').to_nq if block_given? if yield(new_name) collects << new_name end else collects << new_name end end else collects = ["$root.#{@belong_to_module.module_name}.#{@name}".to_nq] end collects.uniq end |
#s(index = nil) ⇒ Object
def initialize
@belong_module =
85 86 87 |
# File 'lib/tdl/elements/originclass.rb', line 85 def s(index=nil) signal end |
#signal(index = nil) ⇒ Object
重覆盖掉
552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 |
# File 'lib/tdl/class_hdl/hdl_redefine_opertor.rb', line 552 def signal(index=nil) RedefOpertor.with_normal_operators do with_new_align(0) do unless index NqString.new(@name.to_s) else unless index.is_a? String NqString.new("#{@name.to_s}[#{align_signal(index)}]") else NqString.new("#{@name.to_s}[#{index.strip}]") end end end end end |