class TrackInf
Attributes
dsize[RW]
enable[RW]
ghost[RW]
id[RW]
name[RW]
port[RW]
tsize[RW]
Public Class Methods
new(name:"t_inf",dsize:24,tsize:1,clock:nil,reset:nil,enable:"1'b1".to_nq,port:false,dimension:[],freqM:nil)
click to toggle source
Calls superclass method
CLKInfElm::new
# File lib/tdl/elements/track_inf.rb, line 10 def initialize(name:"t_inf",dsize:24,tsize:1,clock:nil,reset:nil,enable:"1'b1".to_nq,port:false,dimension:[],freqM:nil) name_legal?(name) super(dimension:dimension,clock:clock,reset:reset,freqM:freqM) @name = name @dsize = dsize @port = port @tsize = tsize @enable = enable end
parse_ports(port_array=nil) { |h| ... }
click to toggle source
SV FILE PORT PARSE
# File lib/tdl/elements/track_inf.rb, line 42 def self.parse_ports(port_array=nil) rep = /(?<up_down>\(\*\s+(?<ud_name>stream_up|stream_down)\s*=\s*"true"\s+\*\))?\s*(track_inf\.)(?<modport>master|slaver)\s+(?<name>\w+)\s*(?<vector>\[.*?\])?/m up_stream_rep = /stream_up/ InfElm.parse_ports(port_array,rep,"track_inf",up_stream_rep) do |h| h[:type] = TrackInf yield h end end
sdlinst_t0(ele)
click to toggle source
# File lib/tdl/elements/track_inf.rb, line 54 def self.sdlinst_t0(ele) if ele.class == TrackInf then "track_inf.#{ele.port}" else nil end end
Public Instance Methods
__inf_signal__(name)
click to toggle source
# File lib/tdl/elements/track_inf.rb, line 66 def __inf_signal__(name) raise TdlError.new("\nARRAY Don't have '#{name}'\n") unless @dimension.empty? # puts "--------------" # puts $new_m.instance_variable_get("@port_axisinfs") # puts "=============" NqString.new(signal.concat ".#{name}") # signal.concat ".#{name}" end
inst()
click to toggle source
# File lib/tdl/elements/track_inf.rb, line 21 def inst return "" if @ghost || @port with_new_align(0) do if @reset.is_a? SignalElm if @reset.active.casecmp("LOW") == 0 "track_inf #(.DSIZE(#{dsize}),.TSIZE(#{tsize}),.FreqM(#{intf_def_freqM})) #{signal} #{array_inst}(.clock(#{align_signal(@clock,false)}),.rst_n(#{align_signal(@reset,false)}),.enable(#{align_signal(@enable,false)}));" else "track_inf #(.DSIZE(#{dsize}),.TSIZE(#{tsize}),.FreqM(#{intf_def_freqM})) #{signal} #{array_inst}(.clock(#{align_signal(@clock,false)}),.rst_n(!#{align_signal(@reset,false)}),.enable(#{align_signal(@enable,false)}));" end else "track_inf #(.DSIZE(#{dsize}),.TSIZE(#{tsize}),.FreqM(#{intf_def_freqM})) #{signal} #{array_inst}(.clock(#{align_signal(@clock,false)}),.rst_n(#{align_signal(@reset,false)}),.enable(#{align_signal(@enable,false)}));" end end end
inst_port()
click to toggle source
# File lib/tdl/elements/track_inf.rb, line 36 def inst_port return ["track_inf." + @port.to_s,@name.to_s,array_inst] end
track_signals(h=nil,l=nil)
click to toggle source
# File lib/tdl/elements/track_inf.rb, line 104 def track_signals(h=nil,l=nil) raise TdlError.new("\nARRAY Don't have 'track_signals'") unless @dimension.empty? if h.is_a? Range l = h.to_a.min h = h.to_a.max end if h if l sqr = "[#{h.to_s}:#{l.to_s}]" else sqr = "[#{h.to_s}]" end else sqr = "" end NqString.new(signal.concat(".track_signals").concat(sqr)) end
track_trigger(h=nil,l=nil)
click to toggle source
# File lib/tdl/elements/track_inf.rb, line 84 def track_trigger(h=nil,l=nil) raise TdlError.new("\nARRAY Don't have 'track_trigger'") unless @dimension.empty? if h.is_a? Range l = h.to_a.min h = h.to_a.max end if h if l sqr = "[#{h.to_s}:#{l.to_s}]" else sqr = "[#{h.to_s}]" end else sqr = "" end NqString.new(signal.concat(".track_trigger").concat(sqr)) end