Class: AxiStream

Inherits:
TdlSpace::TdlBaseInterface show all
Extended by:
BaseFunc
Includes:
BaseModule
Defined in:
lib/tdl/elements/axi_stream.rb,
lib/tdl/exlib/axis_eth_ex.rb,
lib/tdl/exlib/axis_verify.rb,
lib/tdl/elements/axi_stream.rb,
lib/tdl/elements/axi_stream.rb,
lib/tdl/elements/axi_stream.rb,
lib/tdl/elements/axi_stream.rb,
lib/tdl/elements/axi_stream.rb,
lib/tdl/elements/axi_stream.rb,
lib/tdl/elements/axi_stream.rb,
lib/tdl/rebuild_ele/axi_stream.rb,
lib/tdl/axi4/axis_to_axi4_wr_auto.rb,
lib/tdl/axi4/wide_axis_to_axi4_wr.rb,
lib/tdl/axi_stream/axis_valve_auto.rb,
lib/tdl/axi_stream/stream_crc_auto.rb,
lib/tdl/axi_stream/axis_append_auto.rb,
lib/tdl/axi_stream/axis_direct_auto.rb,
lib/tdl/axi_stream/axis_filter_auto.rb,
lib/tdl/axi_stream/axis_mirrors_auto.rb,
lib/tdl/axi_stream/bak/_axis_mirrors.rb,
lib/tdl/axi4/bak/axis_to_axi4_wr_auto.rb,
lib/tdl/axi_stream/axis_head_cut_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_S2M.rb,
lib/tdl/axi_stream/bak/axis_append_A1.rb,
lib/tdl/bfm/axi_stream/axi_stream_bfm.rb,
lib/tdl/bfm/axi_stream/axi_stream_bfm.rb,
lib/tdl/axi4/wide_axis_to_axi4_wr_auto.rb,
lib/tdl/axi_stream/axis_append_A1_auto.rb,
lib/tdl/axi_stream/bak/axis_valve_auto.rb,
lib/tdl/axi_stream/bak/stream_crc_auto.rb,
lib/tdl/axi4/axi4_rd_auxiliary_gen_auto.rb,
lib/tdl/axi_stream/axis_ram_buffer_auto.rb,
lib/tdl/axi_stream/axis_to_lite_rd_auto.rb,
lib/tdl/axi_stream/axis_to_lite_wr_auto.rb,
lib/tdl/axi_stream/axis_uncompress_auto.rb,
lib/tdl/axi_stream/bak/axis_append_auto.rb,
lib/tdl/axi_stream/bak/axis_direct_auto.rb,
lib/tdl/axi_stream/bak/axis_filter_auto.rb,
lib/tdl/axi_stream/gen_origin_axis_auto.rb,
lib/tdl/axi_stream/gen_simple_axis_auto.rb,
lib/tdl/axi_stream/axi_stream_cache_auto.rb,
lib/tdl/axi_stream/axis_length_fill_auto.rb,
lib/tdl/axi_stream/axis_slaver_pipe_auto.rb,
lib/tdl/axi_stream/axis_to_data_inf_auto.rb,
lib/tdl/axi_stream/bak/axis_mirrors_auto.rb,
lib/tdl/axi_stream/check_stream_crc_auto.rb,
lib/tdl/axi_stream/data_to_axis_inf_auto.rb,
lib/tdl/axi_stream/axis_connect_pipe_auto.rb,
lib/tdl/axi_stream/axis_length_split_auto.rb,
lib/tdl/axi_stream/axis_link_trigger_auto.rb,
lib/tdl/axi_stream/axis_master_empty_auto.rb,
lib/tdl/axi_stream/axis_slaver_empty_auto.rb,
lib/tdl/axi_stream/axis_width_combin_auto.rb,
lib/tdl/axi_stream/bak/axi_streams_scaler.rb,
lib/tdl/VideoInf/video_stream_2_axi_stream.rb,
lib/tdl/axi_stream/axi_stream_interconnect.rb,
lib/tdl/axi_stream/axi_stream_interconnect.rb,
lib/tdl/axi_stream/axi_streams_combin_auto.rb,
lib/tdl/axi_stream/axi_streams_scaler_auto.rb,
lib/tdl/axi_stream/axis_width_convert_auto.rb,
lib/tdl/axi_stream/bak/axis_append_A1_auto.rb,
lib/tdl/axi_stream/bak/data_to_axis_inf_A1.rb,
lib/tdl/axi_stream/bak/udp_server_bfm_auto.rb,
lib/tdl/axi_stream/gen_origin_axis_A1_auto.rb,
lib/tdl/bfm/axi_stream/axis_slice_to_logic.rb,
lib/tdl/axi_stream/axi_stream_cache_B1_auto.rb,
lib/tdl/axi_stream/axis_full_to_data_c_auto.rb,
lib/tdl/axi_stream/axis_slaver_pipe_A1_auto.rb,
lib/tdl/axi_stream/axis_width_destruct_auto.rb,
lib/tdl/axi_stream/bak/axis_ram_buffer_auto.rb,
lib/tdl/axi_stream/bak/axis_to_axi4_wr_auto.rb,
lib/tdl/axi_stream/bak/axis_uncompress_auto.rb,
lib/tdl/axi_stream/bak/gen_origin_axis_auto.rb,
lib/tdl/axi_stream/bak/gen_simple_axis_auto.rb,
lib/tdl/axi_stream/data_c_to_axis_full_auto.rb,
lib/tdl/axi_stream/data_to_axis_inf_A1_auto.rb,
lib/tdl/axi_stream/gen_big_field_table_auto.rb,
lib/tdl/axi_stream/axi_stream_long_fifo_auto.rb,
lib/tdl/axi_stream/axi_stream_partition_auto.rb,
lib/tdl/axi_stream/axi_stream_wide_fifo_auto.rb,
lib/tdl/axi_stream/axis_to_axi4_or_lite_auto.rb,
lib/tdl/axi_stream/axis_valve_with_pipe_auto.rb,
lib/tdl/axi_stream/axis_width_combin_A1_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_cache_auto.rb,
lib/tdl/axi_stream/bak/axis_length_fill_auto.rb,
lib/tdl/axi_stream/bak/axis_slaver_pipe_auto.rb,
lib/tdl/axi_stream/bak/axis_to_data_inf_auto.rb,
lib/tdl/axi_stream/bak/check_stream_crc_auto.rb,
lib/tdl/axi_stream/bak/data_to_axis_inf_auto.rb,
lib/tdl/axi_stream/bak/dynamic_port_cfg_auto.rb,
lib/tdl/axi_stream/axi_stream_cache_verb_auto.rb,
lib/tdl/axi_stream/axi_stream_long_cache_auto.rb,
lib/tdl/axi_stream/axi_streams_combin_A1_auto.rb,
lib/tdl/axi_stream/axi_streams_scaler_A1_auto.rb,
lib/tdl/axi_stream/axis_combin_with_fifo_auto.rb,
lib/tdl/axi_stream/axis_mirror_to_master_auto.rb,
lib/tdl/axi_stream/bak/axis_connect_pipe_auto.rb,
lib/tdl/axi_stream/bak/axis_length_split_auto.rb,
lib/tdl/axi_stream/bak/axis_master_empty_auto.rb,
lib/tdl/axi_stream/bak/axis_slaver_empty_auto.rb,
lib/tdl/axi_stream/bak/axis_width_combin_auto.rb,
lib/tdl/axi_stream/bak/dynnamic_addr_cfg_auto.rb,
lib/tdl/axi_stream/parse_big_field_table_auto.rb,
lib/tdl/axi_stream/axi_stream_cache_35bit_auto.rb,
lib/tdl/axi_stream/axi_stream_interconnect_M2S.rb,
lib/tdl/axi_stream/axi_stream_interconnect_S2M.rb,
lib/tdl/axi_stream/axi_stream_packet_fifo_auto.rb,
lib/tdl/axi_stream/bak/axi_streams_combin_auto.rb,
lib/tdl/axi_stream/bak/axi_streams_scaler_auto.rb,
lib/tdl/axi_stream/bak/axis_width_convert_auto.rb,
lib/tdl/axi_stream/axi_stream_cache_mirror_auto.rb,
lib/tdl/axi_stream/axi_stream_partition_A1_auto.rb,
lib/tdl/axi_stream/axis_connect_pipe_A1.sv_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_cache_B1_auto.rb,
lib/tdl/axi_stream/bak/axis_slaver_pipe_A1_auto.rb,
lib/tdl/axi_stream/bak/axis_width_destruct_auto.rb,
lib/tdl/axi_stream/bak/data_to_axis_inf_A1_auto.rb,
lib/tdl/axi_stream/bak/gen_big_field_table_auto.rb,
lib/tdl/axi_stream/bak/udp_server_ctrl_bfm_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_long_fifo_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_partition_auto.rb,
lib/tdl/axi_stream/bak/axis_valve_with_pipe_auto.rb,
lib/tdl/axi_stream/parse_big_field_table_A1_auto.rb,
lib/tdl/axi_stream/parse_big_field_table_A2_auto.rb,
lib/tdl/axi_stream/axi_stream_interconnect_M2S_A1.rb,
lib/tdl/axi_stream/axi_stream_long_fifo_verb_auto.rb,
lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_auto.rb,
lib/tdl/axi_stream/axis_width_destruct_A1.sv_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_cache_verb_auto.rb,
lib/tdl/axi_stream/bak/axis_combin_with_fifo_auto.rb,
lib/tdl/axi_stream/bak/parse_big_field_table_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_cache_35bit_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_packet_fifo_auto.rb,
lib/tdl/axi_stream/axi_stream_interconnect_M2S_auto.rb,
lib/tdl/axi_stream/axi_stream_interconnect_S2M_auto.rb,
lib/tdl/axi_stream/axis_connect_pipe_with_info_auto.rb,
lib/tdl/axi_stream/axis_length_split_with_addr_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_cache_mirror_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_partition_A1_auto.rb,
lib/tdl/axi_stream/bak/axis_connect_pipe_A1.sv_auto.rb,
lib/tdl/axi4/axi4_wr_auxiliary_gen_without_resp_auto.rb,
lib/tdl/axi_stream/axis_length_split_writh_user_auto.rb,
lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_A1_auto.rb,
lib/tdl/axi_stream/bak/__axi_stream_interconnect_S2M.rb,
lib/tdl/axi_stream/bak/parse_big_field_table_A1_auto.rb,
lib/tdl/axi_stream/bak/parse_big_field_table_A2_auto.rb,
lib/tdl/axi4/bak/__axi4_wr_auxiliary_gen_without_resp.rb,
lib/tdl/axi_stream/bak/axis_pkt_fifo_filter_keep_auto.rb,
lib/tdl/axi_stream/axi_stream_interconnect_M2S_A1_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_interconnect_S2M_auto.rb,
lib/tdl/axi_stream/bak/axis_connect_pipe_with_info_auto.rb,
lib/tdl/axi_stream/bak/axis_length_split_with_addr_auto.rb,
lib/tdl/axi4/bak/axi4_wr_auxiliary_gen_without_resp_auto.rb,
lib/tdl/axi_stream/axi_stream_interconnect_S2M_auto_auto.rb,
lib/tdl/axi_stream/axi_stream_packet_fifo_with_info_auto.rb,
lib/tdl/axi_stream/axi_stream_cache_72_95bit_with_keep_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_packet_fifo_with_info_auto.rb,
lib/tdl/axi_stream/axi_stream_interconnect_M2S_bind_tuser_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_cache_72_95bit_with_keep_auto.rb,
lib/tdl/axi_stream/axi_stream_interconnect_S2M_with_keep.sv_auto.rb,
lib/tdl/axi_stream/bak/axi_stream_interconnect_S2M_with_keep.sv_auto.rb

Overview

2018-05-04 14:40:10 +0800 require_relative “.././tdl” require_relative ‘....tdltdl’

Constant Summary collapse

Synth_REP =

parse text for autogen method and constant ###

/\(\*\s+axi_stream\s*=\s*"true"\s+\*\)/
PORT_REP =

def initialize(name: “test_axis”,clock: nil,reset: nil,dsize: nil,port: false,dimension: [],freqM: nil,belong_to_module: nil)

super belong_to_module
self.dsize = dsize
self.clock = clock
self.reset = reset
self.dimension = dimension
self.freqM = freqM
self.inst_name = name
self.modport_type = port

end

/(?<up_down>\(\*\s+(?<ud_name>axis_up|axis_down|up_stream|down_stream)\s*=\s*"true"\s+\*\))?\s*(axi_stream_inf\.)(?<modport>master|slaver|mirror|out_mirror)\s+(?<name>\w+)\s*(?<vector>\[.*?\])?/m
UP_STREAM_REP =
Regexp.union(/axis_up/,/up_stream/)

Instance Attribute Summary collapse

Attributes inherited from TdlSpace::TdlBaseInterface

#belong_to_module

Attributes included from TdlSpace::VarElemenCore

#dimension, #inst_name, #logic_type

Class Method Summary collapse

Instance Method Summary collapse

Methods included from BaseFunc

check_same, check_same_class, check_same_clock, check_same_dsize

Methods included from BaseModule

#length, #to_s

Methods inherited from TdlSpace::TdlBaseInterface

#element_to_module, #force_name_copy, inherited, #name_copy, #path_refs, subclass, #use_which_freq_when_copy

Methods included from TdlSpace::VarElemenAttr

#_io_map, #clock_io_map, #comm_io_map, #comm_io_maps_same, #gen_sv_interface, #get_class_var, #hdl_name, #modports, #param_map, #pdata_map, #reset_io_map, #sdata_maps, #set_class_var

Methods included from TdlSpace::VarElemenCore

#[], #_inner_inst, #instance, #modport_type, #modport_type=, #to_s

Methods included from TdlSpace::ExCreateTP

#root_ref

Methods included from AxiTdl::TestUnitTrack

#tracked_by_dve

Constructor Details

#initialize(name: "test_axis", clock: nil, reset: nil, dsize: nil, port: false, dimension: [], freqM: nil) ⇒ AxiStream

Returns a new instance of AxiStream.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/tdl/elements/axi_stream.rb', line 14

def initialize(name:"test_axis",clock:nil,reset:nil,dsize:nil,port:false,dimension:[],freqM:nil)
    name_legal?(name)
    super(dimension:dimension,clock:clock,reset:reset,freqM:freqM)
    @name = name.to_s
    # @id = GlobalParam.CurrTdlModule.BindEleClassVars.AxiStream.id

    @port = port
    # raise TdlError.new("AXI STREAM CLOCK ERROR >>#{clock.class}<<") unless clock.is_a? Clock
    # raise TdlError.new("AXI STREAM RESET ERROR") unless reset.is_a? Reset
    # raise TdlError.new("AXI STREAM DATA ERROR")  unless dsize.is_a? Fixnum

    @dsize = dsize

    unless port
        @dsize = dsize
        @clock = clock
        @reset = reset
    else
        if dimension.empty?
            @dsize = "#{name.to_s}.DSIZE".to_nq unless dsize
            @clock = "#{name.to_s}.aclk".to_nq  unless clock
            @reset = "#{name.to_s}.aresetn".to_nq unless reset
        else
            @dsize = "#{name.to_s}[0].DSIZE".to_nq unless dsize
            @clock = "#{name.to_s}[0].aclk".to_nq unless clock
            @reset = "#{name.to_s}[0].aresetn".to_nq unless reset
        end
    end
    # add_dsize_func
    # @correlation_proc = ""
    # @up_streams = []
    # if @port
    #     GlobalParam.CurrTdlModule.BindEleClassVars.AxiStream.ports << self
    # else
    #     GlobalParam.CurrTdlModule.BindEleClassVars.AxiStream.inst_stack << method(:inst).to_proc
    # end
    # @interconnect_up_streams = []

    # GlobalParam.CurrTdlModule.BindEleClassVars.AxiStream.draw_stack << method(:draw).to_proc
end

Instance Attribute Details

#branch_totalObject

Returns the value of attribute branch_total.



5
6
7
# File 'lib/tdl/axi_stream/axi_stream_interconnect.rb', line 5

def branch_total
  @branch_total
end

#dsizeObject

<tdl_key><hdl_key><default_value>



6
7
8
# File 'lib/tdl/rebuild_ele/axi_stream.rb', line 6

def dsize
  @dsize
end

#ghostObject

Returns the value of attribute ghost.



12
13
14
# File 'lib/tdl/elements/axi_stream.rb', line 12

def ghost
  @ghost
end

#idObject

Returns the value of attribute id.



12
13
14
# File 'lib/tdl/elements/axi_stream.rb', line 12

def id
  @id
end

#m2s_interconnect_addrObject

Returns the value of attribute m2s_interconnect_addr.



4
5
6
# File 'lib/tdl/axi_stream/axi_stream_interconnect.rb', line 4

def m2s_interconnect_addr
  @m2s_interconnect_addr
end

#nameObject

Returns the value of attribute name.



12
13
14
# File 'lib/tdl/elements/axi_stream.rb', line 12

def name
  @name
end

#portObject

Returns the value of attribute port.



13
14
15
# File 'lib/tdl/elements/axi_stream.rb', line 13

def port
  @port
end

Class Method Details

.aclk(obj) ⇒ Object



590
591
592
593
594
595
596
# File 'lib/tdl/elements/axi_stream.rb', line 590

def self.aclk(obj)
    if(obj.is_a? AxiStream)
        obj.aclk
    elsif obj.is_a? String
        NqString.new(obj.concat ".aclk")
    end
end

.aresetn(obj) ⇒ Object



598
599
600
601
602
603
604
# File 'lib/tdl/elements/axi_stream.rb', line 598

def self.aresetn(obj)
    if(obj.is_a? AxiStream)
        obj.aresetn
    elsif obj.is_a? String
        NqString.new(obj.concat ".aresetn")
    end
end

.axi4_rd_auxiliary_gen(id_add_len_in: "id_add_len_in", axi_rd_aux: "axi_rd_aux", belong_to_module: nil) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/tdl/axi4/axi4_rd_auxiliary_gen_auto.rb', line 54

def self.axi4_rd_auxiliary_gen(
    id_add_len_in:"id_add_len_in",
    axi_rd_aux:"axi_rd_aux",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [id_add_len_in].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axi4_rd_auxiliary_gen(
        id_add_len_in:id_add_len_in,
        axi_rd_aux:axi_rd_aux)
    return return_stream
end

.axi4_wr_auxiliary_gen_without_resp(stream_en: "stream_en", id_add_len_in: "id_add_len_in", axi_wr_aux: "axi_wr_aux") ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/tdl/axi4/axi4_wr_auxiliary_gen_without_resp_auto.rb', line 59

def self.axi4_wr_auxiliary_gen_without_resp(
    stream_en:"stream_en",
    id_add_len_in:"id_add_len_in",
    axi_wr_aux:"axi_wr_aux",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [id_add_len_in].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axi4_wr_auxiliary_gen_without_resp(
        stream_en:stream_en,
        id_add_len_in:id_add_len_in,
        axi_wr_aux:axi_wr_aux)
    return return_stream
end

.axi_stream_cache(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/tdl/axi_stream/axi_stream_cache_auto.rb', line 73

def self.axi_stream_cache(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    ms = [axis_in,axis_out,up_stream,down_stream].map do |e|
        if e.respond_to? :belong_to_module
            e.belong_to_module
        else 
            nil 
        end
    end
    belong_to_module = ms.compact.first unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_cache(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_cache(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_cache(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_cache_35bit(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axi_stream_cache_35bit_auto.rb', line 73

def self.axi_stream_cache_35bit(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_cache_35bit(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_cache_35bit(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_cache_35bit(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_cache_72_95bit_with_keep(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axi_stream_cache_72_95bit_with_keep_auto.rb', line 73

def self.axi_stream_cache_72_95bit_with_keep(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_cache_72_95bit_with_keep(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_cache_72_95bit_with_keep(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_cache_72_95bit_with_keep(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_cache_b1(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axi_stream_cache_B1_auto.rb', line 73

def self.axi_stream_cache_b1(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_cache_b1(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_cache_b1(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_cache_b1(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_cache_mirror(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axi_stream_cache_mirror_auto.rb', line 73

def self.axi_stream_cache_mirror(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_cache_mirror(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_cache_mirror(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_cache_mirror(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_cache_verb(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axi_stream_cache_verb_auto.rb', line 73

def self.axi_stream_cache_verb(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_cache_verb(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_cache_verb(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_cache_verb(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_interconnect_m2s(num: 8, nsize: "NUM <= 2? 1 :", addr: "addr", s00: "s00", m00: "m00", belong_to_module: nil) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/tdl/axi_stream/axi_stream_interconnect_M2S.rb', line 65

def self.axi_stream_interconnect_m2s(
    num:8,
    addr:"addr",
    s00:"s00",
    m00:"m00",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [m00].first.belong_to_module unless belong_to_module


    belong_to_module.AxiStream_NC._axi_stream_interconnect_m2s(
        num:num,
        addr:addr,
        s00:s00,
        m00:m00)
    return return_stream
end

.axi_stream_interconnect_m2s_a1(num: 8, s00: "s00", m00: "m00", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/tdl/axi_stream/axi_stream_interconnect_M2S_A1.rb', line 72

def self.axi_stream_interconnect_m2s_a1(
    num:nil,
    s00:"s00",
    m00:"m00",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [s00,m00].first.belong_to_module unless belong_to_module

    if down_stream.nil? && m00.eql?("m00")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy(name:"m00")
        else
            down_stream = s00.copy(name:"m00")
        end
        return_stream = down_stream
    end


    if up_stream.nil? && s00.eql?("s00")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy(name:"s00")
        else
            up_stream = m00.copy(name:"s00")
        end
        return_stream = up_stream
    end


    if down_stream.is_a? AxiStream
        down_stream.axi_stream_interconnect_m2s_a1(
            num:num,
            s00:s00,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif m00.is_a? AxiStream
        m00.axi_stream_interconnect_m2s_a1(
            num:num,
            s00:s00,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_interconnect_m2s_a1(
            num:num,
            s00:s00,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_interconnect_m2s_bind_tuser(num: 8, s00: "s00", m00: "m00", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axi_stream_interconnect_M2S_bind_tuser_auto.rb', line 79

def self.axi_stream_interconnect_m2s_bind_tuser(
    num:8,
    s00:"s00",
    m00:"m00",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [s00,m00].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && m00.eql?("m00")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = s00.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && s00.eql?("s00")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = m00.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_interconnect_m2s_bind_tuser(
            num:num,
            s00:s00,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif m00.is_a? AxiStream
        m00.axi_stream_interconnect_m2s_bind_tuser(
            num:num,
            s00:s00,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_interconnect_m2s_bind_tuser(
            num:num,
            s00:s00,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_interconnect_s2m(num: 8, addr: "addr", s00: "s00", m00: "m00") ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/tdl/axi_stream/axi_stream_interconnect_S2M.rb', line 66

def self.axi_stream_interconnect_s2m(
    num:8,
    addr:"addr",
    s00:"s00",
    m00:"m00",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [s00,m00].first.belong_to_module unless belong_to_module


    belong_to_module.AxiStream_NC._axi_stream_interconnect_s2m(
        num:num,
        addr:addr,
        s00:s00,
        m00:m00)
    return return_stream
end

.axi_stream_interconnect_s2m_auto(head_dummy: 4, num: 4, slaver: "slaver", sub_tx_inf: "sub_tx_inf", up_stream: nil, belong_to_module: nil) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/tdl/axi_stream/axi_stream_interconnect_S2M_auto_auto.rb', line 68

def self.axi_stream_interconnect_s2m_auto(
    head_dummy:4,
    num:4,
    slaver:"slaver",
    sub_tx_inf:"sub_tx_inf",
    up_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [slaver,sub_tx_inf].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axi_stream_interconnect_s2m_auto(
        head_dummy:head_dummy,
        num:num,
        slaver:slaver,
        sub_tx_inf:sub_tx_inf,
        up_stream:up_stream)
    return return_stream
end

.axi_stream_interconnect_s2m_with_keep(num: 8, nsize: "NUM <= 2? 1 :", addr: "addr", s00: "s00", m00: "m00") ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/tdl/axi_stream/axi_stream_interconnect_S2M_with_keep.sv_auto.rb', line 70

def self.axi_stream_interconnect_s2m_with_keep(
    num:8,
    nsize:"NUM <= 2? 1 :",
    addr:"addr",
    s00:"s00",
    m00:"m00",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [s00,m00].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axi_stream_interconnect_s2m_with_keep(
        num:num,
        nsize:nsize,
        addr:addr,
        s00:s00,
        m00:m00)
    return return_stream
end

.axi_stream_long_cache(depth: 8192, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axi_stream_long_cache_auto.rb', line 79

def self.axi_stream_long_cache(
    depth:8192,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_long_cache(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_long_cache(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_long_cache(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_long_fifo(depth: 2, byte_depth: 8192*2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/tdl/axi_stream/axi_stream_long_fifo_auto.rb', line 84

def self.axi_stream_long_fifo(
    depth:2,
    byte_depth:8192*2,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_long_fifo(
            depth:depth,
            byte_depth:byte_depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_long_fifo(
            depth:depth,
            byte_depth:byte_depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_long_fifo(
            depth:depth,
            byte_depth:byte_depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_long_fifo_verb(depth: 2, byte_depth: 8192*2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/tdl/axi_stream/axi_stream_long_fifo_verb_auto.rb', line 84

def self.axi_stream_long_fifo_verb(
    depth:2,
    byte_depth:8192*2,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_long_fifo_verb(
            depth:depth,
            byte_depth:byte_depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_long_fifo_verb(
            depth:depth,
            byte_depth:byte_depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_long_fifo_verb(
            depth:depth,
            byte_depth:byte_depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_packet_fifo(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axi_stream_packet_fifo_auto.rb', line 79

def self.axi_stream_packet_fifo(
    depth:2   ,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_packet_fifo(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_packet_fifo(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_packet_fifo(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_packet_fifo_with_info(depth: 2, esize: 8, info_in: "info_in", info_out: "info_out", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/tdl/axi_stream/axi_stream_packet_fifo_with_info_auto.rb', line 94

def self.axi_stream_packet_fifo_with_info(
    depth:2,
    esize:8,
    info_in:"info_in",
    info_out:"info_out",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_packet_fifo_with_info(
            depth:depth,
            esize:esize,
            info_in:info_in,
            info_out:info_out,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_packet_fifo_with_info(
            depth:depth,
            esize:esize,
            info_in:info_in,
            info_out:info_out,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_packet_fifo_with_info(
            depth:depth,
            esize:esize,
            info_in:info_in,
            info_out:info_out,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_partition(valve: "valve", partition_len: "partition_len", req_new_len: "req_new_len", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# File 'lib/tdl/axi_stream/axi_stream_partition_auto.rb', line 88

def self.axi_stream_partition(
    valve:"valve",
    partition_len:"partition_len",
    req_new_len:"req_new_len",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_partition(
            valve:valve,
            partition_len:partition_len,
            req_new_len:req_new_len,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_partition(
            valve:valve,
            partition_len:partition_len,
            req_new_len:req_new_len,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_partition(
            valve:valve,
            partition_len:partition_len,
            req_new_len:req_new_len,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_partition_a1(valve: "valve", partition_len: "partition_len", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/tdl/axi_stream/axi_stream_partition_A1_auto.rb', line 83

def self.axi_stream_partition_a1(
    valve:"valve",
    partition_len:"partition_len",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_partition_a1(
            valve:valve,
            partition_len:partition_len,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_partition_a1(
            valve:valve,
            partition_len:partition_len,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_partition_a1(
            valve:valve,
            partition_len:partition_len,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_stream_wide_fifo(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axi_stream_wide_fifo_auto.rb', line 79

def self.axi_stream_wide_fifo(
    depth:2,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_stream_wide_fifo(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axi_stream_wide_fifo(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_stream_wide_fifo(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_streams_combin(mode: "BOTH", cut_or_combin_body: "ON", dsize: 8, new_body_len: "new_body_len", trigger_signal: "trigger_signal", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/tdl/axi_stream/axi_streams_combin_auto.rb', line 111

def self.axi_streams_combin(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    dsize:8,
    new_body_len:"new_body_len",
    trigger_signal:"trigger_signal",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [head_inf,body_inf,end_inf,m00].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && m00.eql?("m00")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = body_inf.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && body_inf.eql?("body_inf")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = m00.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_streams_combin(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            dsize:dsize,
            new_body_len:new_body_len,
            trigger_signal:trigger_signal,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif m00.is_a? AxiStream
        m00.axi_streams_combin(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            dsize:dsize,
            new_body_len:new_body_len,
            trigger_signal:trigger_signal,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_streams_combin(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            dsize:dsize,
            new_body_len:new_body_len,
            trigger_signal:trigger_signal,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_streams_combin_a1(mode: "BOTH", cut_or_combin_body: "ON", new_body_len: "new_body_len", trigger_signal: "trigger_signal", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/tdl/axi_stream/axi_streams_combin_A1_auto.rb', line 106

def self.axi_streams_combin_a1(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    new_body_len:"new_body_len",
    trigger_signal:"trigger_signal",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [head_inf,body_inf,end_inf,m00].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && m00.eql?("m00")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = body_inf.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && body_inf.eql?("body_inf")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = m00.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_streams_combin_a1(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            trigger_signal:trigger_signal,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif m00.is_a? AxiStream
        m00.axi_streams_combin_a1(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            trigger_signal:trigger_signal,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_streams_combin_a1(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            trigger_signal:trigger_signal,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axi_streams_scaler(mode: "BOTH", cut_or_combin_body: "ON", dsize: 8, new_body_len: "new_body_len", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/tdl/axi_stream/bak/axi_streams_scaler.rb', line 42

def self.axi_streams_scaler(mode:"BOTH",cut_or_combin_body:"ON",dsize:8,new_body_len:"new_body_len",head_inf:"head_inf",body_inf:"body_inf",end_inf:"end_inf",m00:"m00",up_stream:nil,down_stream:nil)
    return_stream = nil

    if down_stream==nil && m00=="m00"
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy(name:"m00")
        else
            down_stream = body_inf.copy(name:"m00")
        end
        return_stream = down_stream
    end


    if up_stream==nil && body_inf=="body_inf"
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy(name:"body_inf")
        else
            up_stream = m00.copy(name:"body_inf")
        end
        return_stream = up_stream
    end


    if down_stream.is_a? AxiStream
        down_stream.axi_streams_scaler(mode:mode,cut_or_combin_body:cut_or_combin_body,dsize:dsize,new_body_len:new_body_len,head_inf:head_inf,body_inf:body_inf,end_inf:end_inf,m00:m00,up_stream:up_stream,down_stream:down_stream)
    elsif m00.is_a? AxiStream
        m00.axi_streams_scaler(mode:mode,cut_or_combin_body:cut_or_combin_body,dsize:dsize,new_body_len:new_body_len,head_inf:head_inf,body_inf:body_inf,end_inf:end_inf,m00:m00,up_stream:up_stream,down_stream:down_stream)
    else
        NC.axi_streams_scaler(mode:mode,cut_or_combin_body:cut_or_combin_body,dsize:dsize,new_body_len:new_body_len,head_inf:head_inf,body_inf:body_inf,end_inf:end_inf,m00:m00,up_stream:up_stream,down_stream:down_stream)
    end
    return return_stream
end

.axi_streams_scaler_a1(mode: "BOTH", cut_or_combin_body: "ON", new_body_len: "new_body_len", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
170
171
# File 'lib/tdl/axi_stream/axi_streams_scaler_A1_auto.rb', line 101

def self.axi_streams_scaler_a1(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    new_body_len:"new_body_len",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [head_inf,body_inf,end_inf,m00].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && m00.eql?("m00")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = body_inf.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && body_inf.eql?("body_inf")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = m00.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axi_streams_scaler_a1(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif m00.is_a? AxiStream
        m00.axi_streams_scaler_a1(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axi_streams_scaler_a1(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_append(mode: "BOTH", dsize: 8, head_field_len: 16*8, head_field_name: "HEAD Filed", end_field_len: 16*8, end_field_name: "END Filed", head_value: "head_value", end_value: "end_value", origin_in: "origin_in", append_out: "append_out", up_stream: nil, down_stream: nil) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# File 'lib/tdl/axi_stream/axis_append_auto.rb', line 114

def self.axis_append(
    mode:"BOTH",
    dsize:8,
    head_field_len:16*8,
    head_field_name:"HEAD Filed",
    end_field_len:16*8,
    end_field_name:"END Filed",
    head_value:"head_value",
    end_value:"end_value",
    origin_in:"origin_in",
    append_out:"append_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [origin_in,append_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && append_out.eql?("append_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = origin_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && origin_in.eql?("origin_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = append_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_append(
            mode:mode,
            dsize:dsize,
            head_field_len:head_field_len,
            head_field_name:head_field_name,
            end_field_len:end_field_len,
            end_field_name:end_field_name,
            head_value:head_value,
            end_value:end_value,
            origin_in:origin_in,
            append_out:append_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif append_out.is_a? AxiStream
        append_out.axis_append(
            mode:mode,
            dsize:dsize,
            head_field_len:head_field_len,
            head_field_name:head_field_name,
            end_field_len:end_field_len,
            end_field_name:end_field_name,
            head_value:head_value,
            end_value:end_value,
            origin_in:origin_in,
            append_out:append_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_append(
            mode:mode,
            dsize:dsize,
            head_field_len:head_field_len,
            head_field_name:head_field_name,
            end_field_len:end_field_len,
            end_field_name:end_field_name,
            head_value:head_value,
            end_value:end_value,
            origin_in:origin_in,
            append_out:append_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_append_a1(mode: "BOTH", dsize: 8, head_field_len: 16*8, head_field_name: "HEAD Filed", end_field_len: 16*8, end_field_name: "END Filed", enable: "enable", head_value: "head_value", end_value: "end_value", origin_in: "origin_in", append_out: "append_out", up_stream: nil, down_stream: nil) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/bak/axis_append_A1.rb', line 38

def self.axis_append_a1(mode:"BOTH",dsize:8,head_field_len:16*8,head_field_name:"HEAD Filed",end_field_len:16*8,end_field_name:"END Filed",enable:"enable",head_value:"head_value",end_value:"end_value",origin_in:"origin_in",append_out:"append_out",up_stream:nil,down_stream:nil)

    if down_stream.is_a? AxiStream
        down_stream.axis_append_a1(mode:mode,dsize:dsize,head_field_len:head_field_len,head_field_name:head_field_name,end_field_len:end_field_len,end_field_name:end_field_name,enable:enable,head_value:head_value,end_value:end_value,origin_in:origin_in,append_out:append_out,up_stream:up_stream,down_stream:down_stream)
    elsif append_out.is_a? AxiStream
        append_out.axis_append_a1(mode:mode,dsize:dsize,head_field_len:head_field_len,head_field_name:head_field_name,end_field_len:end_field_len,end_field_name:end_field_name,enable:enable,head_value:head_value,end_value:end_value,origin_in:origin_in,append_out:append_out,up_stream:up_stream,down_stream:down_stream)
    else
        NC.axis_append_a1(mode:mode,dsize:dsize,head_field_len:head_field_len,head_field_name:head_field_name,end_field_len:end_field_len,end_field_name:end_field_name,enable:enable,head_value:head_value,end_value:end_value,origin_in:origin_in,append_out:append_out,up_stream:up_stream,down_stream:down_stream)
    end

end

.axis_combin_with_fifo(mode: "BOTH", cut_or_combin_body: "ON", new_body_len: "new_body_len", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
170
171
# File 'lib/tdl/axi_stream/axis_combin_with_fifo_auto.rb', line 101

def self.axis_combin_with_fifo(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    new_body_len:"new_body_len",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [head_inf,body_inf,end_inf,m00].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && m00.eql?("m00")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = body_inf.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && body_inf.eql?("body_inf")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = m00.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_combin_with_fifo(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif m00.is_a? AxiStream
        m00.axis_combin_with_fifo(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_combin_with_fifo(
            mode:mode,
            cut_or_combin_body:cut_or_combin_body,
            new_body_len:new_body_len,
            head_inf:head_inf,
            body_inf:body_inf,
            end_inf:end_inf,
            m00:m00,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_connect_pipe(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_connect_pipe_auto.rb', line 73

def self.axis_connect_pipe(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_connect_pipe(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_connect_pipe(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_connect_pipe(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_connect_pipe_a1(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_connect_pipe_A1.sv_auto.rb', line 73

def self.axis_connect_pipe_a1(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_connect_pipe_a1(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_connect_pipe_a1(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_connect_pipe_a1(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_connect_pipe_with_info(ifsize: 32, info_in: "info_in", info_out: "info_out", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/tdl/axi_stream/axis_connect_pipe_with_info_auto.rb', line 89

def self.axis_connect_pipe_with_info(
    ifsize:32,
    info_in:"info_in",
    info_out:"info_out",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_connect_pipe_with_info(
            ifsize:ifsize,
            info_in:info_in,
            info_out:info_out,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_connect_pipe_with_info(
            ifsize:ifsize,
            info_in:info_in,
            info_out:info_out,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_connect_pipe_with_info(
            ifsize:ifsize,
            info_in:info_in,
            info_out:info_out,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_direct(slaver: "slaver", master: "master", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_direct_auto.rb', line 73

def self.axis_direct(
    slaver:"slaver",
    master:"master",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [slaver,master].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && master.eql?("master")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = slaver.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && slaver.eql?("slaver")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = master.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_direct(
            slaver:slaver,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif master.is_a? AxiStream
        master.axis_direct(
            slaver:slaver,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_direct(
            slaver:slaver,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_filter(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/tdl/axi_stream/axis_filter_auto.rb', line 78

def self.axis_filter(
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_filter(
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_filter(
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_filter(
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_full_to_data_c(data_out_inf: "data_out_inf", axis_in: "axis_in", belong_to_module: nil) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/tdl/axi_stream/axis_full_to_data_c_auto.rb', line 54

def self.axis_full_to_data_c(
    data_out_inf:"data_out_inf",
    axis_in:"axis_in",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_full_to_data_c(
        data_out_inf:data_out_inf,
        axis_in:axis_in)
    return return_stream
end

.axis_head_cut(len: 1, slaver: "slaver", master: "master", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axis_head_cut_auto.rb', line 79

def self.axis_head_cut(
    len:1,
    slaver:"slaver",
    master:"master",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [slaver,master].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && master.eql?("master")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = slaver.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && slaver.eql?("slaver")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = master.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_head_cut(
            len:len,
            slaver:slaver,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif master.is_a? AxiStream
        master.axis_head_cut(
            len:len,
            slaver:slaver,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_head_cut(
            len:len,
            slaver:slaver,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_length_fill(length: "length", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/tdl/axi_stream/axis_length_fill_auto.rb', line 78

def self.axis_length_fill(
    length:"length",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_length_fill(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_length_fill(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_length_fill(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_length_split(length: "length", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/tdl/axi_stream/axis_length_split_auto.rb', line 78

def self.axis_length_split(
    length:"length",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_length_split(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_length_split(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_length_split(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_length_split_with_addr(addr_step: 1024, origin_addr: "origin_addr", length: "length", band_addr: "band_addr", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/tdl/axi_stream/axis_length_split_with_addr_auto.rb', line 94

def self.axis_length_split_with_addr(
    addr_step:1024      ,
    origin_addr:"origin_addr",
    length:"length",
    band_addr:"band_addr",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_length_split_with_addr(
            addr_step:addr_step,
            origin_addr:origin_addr,
            length:length,
            band_addr:band_addr,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_length_split_with_addr(
            addr_step:addr_step,
            origin_addr:origin_addr,
            length:length,
            band_addr:band_addr,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_length_split_with_addr(
            addr_step:addr_step,
            origin_addr:origin_addr,
            length:length,
            band_addr:band_addr,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_length_split_with_user(length: "length", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/tdl/axi_stream/axis_length_split_writh_user_auto.rb', line 78

def self.axis_length_split_with_user(
    length:"length",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_length_split_with_user(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_length_split_with_user(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_length_split_with_user(
            length:length,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end


70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/tdl/axi_stream/axis_link_trigger_auto.rb', line 70

def self.axis_link_trigger(
    mode:"STREAM",
    dsize:32,
    data:"data",
    trigger_inf:"trigger_inf",
    mirror:"mirror",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [mirror].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_link_trigger(
        mode:mode,
        dsize:dsize,
        data:data,
        trigger_inf:trigger_inf,
        mirror:mirror)
    return return_stream
end

.axis_master_empty(master: "master", down_stream: nil) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/tdl/axi_stream/axis_master_empty_auto.rb', line 57

def self.axis_master_empty(
    master:"master",
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [master].first.belong_to_module unless belong_to_module
    
    
    
    if down_stream.is_a? AxiStream
        down_stream.axis_master_empty(
            master:master,
            down_stream:down_stream)
    elsif master.is_a? AxiStream
        master.axis_master_empty(
            master:master,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_master_empty(
            master:master,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_mirror_to_master(depth: 4, mirror: "mirror", master: "master", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axis_mirror_to_master_auto.rb', line 79

def self.axis_mirror_to_master(
    depth:4,
    mirror:"mirror",
    master:"master",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [mirror,master].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && master.eql?("master")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = mirror.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && mirror.eql?("mirror")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = master.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_mirror_to_master(
            depth:depth,
            mirror:mirror,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif master.is_a? AxiStream
        master.axis_mirror_to_master(
            depth:depth,
            mirror:mirror,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_mirror_to_master(
            depth:depth,
            mirror:mirror,
            master:master,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_mirrors(h: 0, l: 0, num: 8, mode: "CDS_MODE", condition_data: "condition_data", axis_in: "axis_in", axis_mirror: "axis_mirror", up_stream: nil, down_stream: nil) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
# File 'lib/tdl/axi_stream/axis_mirrors_auto.rb', line 99

def self.axis_mirrors(
    h:0,
    l:0,
    num:8,
    mode:"CDS_MODE",
    condition_data:"condition_data",
    axis_in:"axis_in",
    axis_mirror:"axis_mirror",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_mirror].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_mirror.eql?("axis_mirror")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_mirror.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_mirrors(
            h:h,
            l:l,
            num:num,
            mode:mode,
            condition_data:condition_data,
            axis_in:axis_in,
            axis_mirror:axis_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_mirror.is_a? AxiStream
        axis_mirror.axis_mirrors(
            h:h,
            l:l,
            num:num,
            mode:mode,
            condition_data:condition_data,
            axis_in:axis_in,
            axis_mirror:axis_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_mirrors(
            h:h,
            l:l,
            num:num,
            mode:mode,
            condition_data:condition_data,
            axis_in:axis_in,
            axis_mirror:axis_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_pkt_fifo_filter_keep(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_auto.rb', line 79

def self.axis_pkt_fifo_filter_keep(
    depth:2   ,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_pkt_fifo_filter_keep(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_pkt_fifo_filter_keep(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_pkt_fifo_filter_keep(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_pkt_fifo_filter_keep_a1(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_A1_auto.rb', line 79

def self.axis_pkt_fifo_filter_keep_a1(
    depth:2   ,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_pkt_fifo_filter_keep_a1(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_pkt_fifo_filter_keep_a1(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_pkt_fifo_filter_keep_a1(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_ram_buffer(length: 4096, wr_en: "wr_en", gen_en: "gen_en", gen_ready: "gen_ready", axis_wr_inf: "axis_wr_inf", axis_data_inf: "axis_data_inf", up_stream: nil, down_stream: nil) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/tdl/axi_stream/axis_ram_buffer_auto.rb', line 94

def self.axis_ram_buffer(
    length:4096,
    wr_en:"wr_en",
    gen_en:"gen_en",
    gen_ready:"gen_ready",
    axis_wr_inf:"axis_wr_inf",
    axis_data_inf:"axis_data_inf",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_wr_inf,axis_data_inf].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_data_inf.eql?("axis_data_inf")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_wr_inf.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_wr_inf.eql?("axis_wr_inf")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_data_inf.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_ram_buffer(
            length:length,
            wr_en:wr_en,
            gen_en:gen_en,
            gen_ready:gen_ready,
            axis_wr_inf:axis_wr_inf,
            axis_data_inf:axis_data_inf,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_data_inf.is_a? AxiStream
        axis_data_inf.axis_ram_buffer(
            length:length,
            wr_en:wr_en,
            gen_en:gen_en,
            gen_ready:gen_ready,
            axis_wr_inf:axis_wr_inf,
            axis_data_inf:axis_data_inf,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_ram_buffer(
            length:length,
            wr_en:wr_en,
            gen_en:gen_en,
            gen_ready:gen_ready,
            axis_wr_inf:axis_wr_inf,
            axis_data_inf:axis_data_inf,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_slaver_empty(slaver: "slaver", up_stream: nil) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/tdl/axi_stream/axis_slaver_empty_auto.rb', line 51

def self.axis_slaver_empty(
    slaver:"slaver",
    up_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [slaver].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_slaver_empty(
        slaver:slaver,
        up_stream:up_stream)
    return return_stream
end

.axis_slaver_pipe(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_slaver_pipe_auto.rb', line 73

def self.axis_slaver_pipe(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_slaver_pipe(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_slaver_pipe(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_slaver_pipe(
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_slaver_pipe_a1(depth: 1, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/tdl/axi_stream/axis_slaver_pipe_A1_auto.rb', line 79

def self.axis_slaver_pipe_a1(
    depth:1,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_slaver_pipe_a1(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_slaver_pipe_a1(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_slaver_pipe_a1(
            depth:depth,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_to_axi4_or_lite(lite: "lite", axis_in: "axis_in", rd_rel_axis: "rd_rel_axis", axi4: "axi4", belong_to_module: nil) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/tdl/axi_stream/axis_to_axi4_or_lite_auto.rb', line 66

def self.axis_to_axi4_or_lite(
    lite:"lite",
    axis_in:"axis_in",
    rd_rel_axis:"rd_rel_axis",
    axi4:"axi4",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,rd_rel_axis].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_to_axi4_or_lite(
        lite:lite,
        axis_in:axis_in,
        rd_rel_axis:rd_rel_axis,
        axi4:axi4)
    return return_stream
end

.axis_to_axi4_wr(addr: "addr", max_length: "max_length", axis_in: "axis_in", axi_wr: "axi_wr") ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/tdl/axi4/axis_to_axi4_wr_auto.rb', line 64

def self.axis_to_axi4_wr(
    addr:"addr",
    max_length:"max_length",
    axis_in:"axis_in",
    axi_wr:"axi_wr",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_to_axi4_wr(
        addr:addr,
        max_length:max_length,
        axis_in:axis_in,
        axi_wr:axi_wr)
    return return_stream
end

.axis_to_data_inf(data_out_inf: "data_out_inf", axis_in: "axis_in") ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/tdl/axi_stream/axis_to_data_inf_auto.rb', line 60

def self.axis_to_data_inf(
    contain_last:"OFF",
    data_out_inf:"data_out_inf",
    axis_in:"axis_in",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_to_data_inf(
        contain_last:contain_last,
        data_out_inf:data_out_inf,
        axis_in:axis_in)
    return return_stream
end

.axis_to_lite_rd(dummy: 8, lite: "lite", axis_in: "axis_in", rd_rel_axis: "rd_rel_axis", belong_to_module: nil) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/tdl/axi_stream/axis_to_lite_rd_auto.rb', line 66

def self.axis_to_lite_rd(
    dummy:8,
    lite:"lite",
    axis_in:"axis_in",
    rd_rel_axis:"rd_rel_axis",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,rd_rel_axis].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_to_lite_rd(
        dummy:dummy,
        lite:lite,
        axis_in:axis_in,
        rd_rel_axis:rd_rel_axis)
    return return_stream
end

.axis_to_lite_wr(dummy: 8, lite: "lite", axis_in: "axis_in", belong_to_module: nil) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/tdl/axi_stream/axis_to_lite_wr_auto.rb', line 60

def self.axis_to_lite_wr(
    dummy:8,
    lite:"lite",
    axis_in:"axis_in",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_to_lite_wr(
        dummy:dummy,
        lite:lite,
        axis_in:axis_in)
    return return_stream
end

.axis_uncompress(asize: 8, lsize: 8, axis_zip: "axis_zip", axis_unzip: "axis_unzip") ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/tdl/axi_stream/axis_uncompress_auto.rb', line 65

def self.axis_uncompress(
    asize:8,
    lsize:8,
    axis_zip:"axis_zip",
    axis_unzip:"axis_unzip",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_zip,axis_unzip].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._axis_uncompress(
        asize:asize,
        lsize:lsize,
        axis_zip:axis_zip,
        axis_unzip:axis_unzip)
    return return_stream
end

.axis_valve(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/tdl/axi_stream/axis_valve_auto.rb', line 78

def self.axis_valve(
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in,axis_out].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_valve(
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_valve(
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_valve(
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_valve_with_pipe(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/tdl/axi_stream/axis_valve_with_pipe_auto.rb', line 84

def self.axis_valve_with_pipe(
    mode:"BOTH",
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    ms = [axis_in,axis_out,up_stream,down_stream].map do |e|
        if e.respond_to? :belong_to_module
            e.belong_to_module
        else 
            nil 
        end
    end
    belong_to_module = ms.compact.first unless belong_to_module
    
    if down_stream.nil? && axis_out.eql?("axis_out")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = axis_in.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && axis_in.eql?("axis_in")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = axis_out.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_valve_with_pipe(
            mode:mode,
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.axis_valve_with_pipe(
            mode:mode,
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_valve_with_pipe(
            mode:mode,
            button:button,
            axis_in:axis_in,
            axis_out:axis_out,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_width_combin(slim_axis: "slim_axis", wide_axis: "wide_axis", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_width_combin_auto.rb', line 73

def self.axis_width_combin(
    slim_axis:"slim_axis",
    wide_axis:"wide_axis",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [slim_axis,wide_axis].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && wide_axis.eql?("wide_axis")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = slim_axis.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && slim_axis.eql?("slim_axis")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = wide_axis.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_width_combin(
            slim_axis:slim_axis,
            wide_axis:wide_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif wide_axis.is_a? AxiStream
        wide_axis.axis_width_combin(
            slim_axis:slim_axis,
            wide_axis:wide_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_width_combin(
            slim_axis:slim_axis,
            wide_axis:wide_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_width_combin_a1(slim_axis: "slim_axis", wide_axis: "wide_axis", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_width_combin_A1_auto.rb', line 73

def self.axis_width_combin_a1(
    slim_axis:"slim_axis",
    wide_axis:"wide_axis",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [slim_axis,wide_axis].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && wide_axis.eql?("wide_axis")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = slim_axis.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && slim_axis.eql?("slim_axis")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = wide_axis.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_width_combin_a1(
            slim_axis:slim_axis,
            wide_axis:wide_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif wide_axis.is_a? AxiStream
        wide_axis.axis_width_combin_a1(
            slim_axis:slim_axis,
            wide_axis:wide_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_width_combin_a1(
            slim_axis:slim_axis,
            wide_axis:wide_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_width_convert(in_axis: "in_axis", out_axis: "out_axis", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_width_convert_auto.rb', line 73

def self.axis_width_convert(
    in_axis:"in_axis",
    out_axis:"out_axis",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [in_axis,out_axis].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && out_axis.eql?("out_axis")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = in_axis.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && in_axis.eql?("in_axis")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = out_axis.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_width_convert(
            in_axis:in_axis,
            out_axis:out_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif out_axis.is_a? AxiStream
        out_axis.axis_width_convert(
            in_axis:in_axis,
            out_axis:out_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_width_convert(
            in_axis:in_axis,
            out_axis:out_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_width_destruct(wide_axis: "wide_axis", slim_axis: "slim_axis", up_stream: nil, down_stream: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_width_destruct_auto.rb', line 73

def self.axis_width_destruct(
    wide_axis:"wide_axis",
    slim_axis:"slim_axis",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [wide_axis,slim_axis].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && slim_axis.eql?("slim_axis")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = wide_axis.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && wide_axis.eql?("wide_axis")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = slim_axis.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_width_destruct(
            wide_axis:wide_axis,
            slim_axis:slim_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif slim_axis.is_a? AxiStream
        slim_axis.axis_width_destruct(
            wide_axis:wide_axis,
            slim_axis:slim_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_width_destruct(
            wide_axis:wide_axis,
            slim_axis:slim_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.axis_width_destruct_a1(wide_axis: "wide_axis", slim_axis: "slim_axis", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/tdl/axi_stream/axis_width_destruct_A1.sv_auto.rb', line 73

def self.axis_width_destruct_a1(
    wide_axis:"wide_axis",
    slim_axis:"slim_axis",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [wide_axis,slim_axis].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && slim_axis.eql?("slim_axis")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = wide_axis.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && wide_axis.eql?("wide_axis")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = slim_axis.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.axis_width_destruct_a1(
            wide_axis:wide_axis,
            slim_axis:slim_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif slim_axis.is_a? AxiStream
        slim_axis.axis_width_destruct_a1(
            wide_axis:wide_axis,
            slim_axis:slim_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.axis_width_destruct_a1(
            wide_axis:wide_axis,
            slim_axis:slim_axis,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.check_stream_crc(axis_in: "axis_in") ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/tdl/axi_stream/check_stream_crc_auto.rb', line 48

def self.check_stream_crc(
    axis_in:"axis_in",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._check_stream_crc(
        axis_in:axis_in)
    return return_stream
end

.collect_vector(main: nil, vector: nil) ⇒ Object

Raises:



159
160
161
162
163
164
165
166
167
168
169
170
171
172
# File 'lib/tdl/axi_stream/axi_stream_interconnect.rb', line 159

def self.collect_vector(main:nil,vector:nil)
    raise TdlError.new("AxiStream collect_vector `VECTOR` must be AxiStream Class") unless vector.is_a? AxiStream

    if main
        raise TdlError.new("AxiStream collect_vector `MAIN` must be AxiStream Class") unless main.is_a? AxiStream
    end

    main = vector.copy(dimension:[]) if main.nil?

    main.collect_vector(vector)

    return main

end

.copy(obj) ⇒ Object



619
620
621
622
623
624
625
# File 'lib/tdl/elements/axi_stream.rb', line 619

def self.copy(obj)
    if obj.is_a? AxiStream
        obj.copy
    elsif obj.is_a? String
        AxiStream.new(name:"copy_#{obj}",clock:AxiStream.aclk(obj),reset:AxiStream.aresetn(obj),dsize:AxiStream.DSIZE(obj))
    end
end

.data_c_to_axis_full(data_in_inf: "data_in_inf", axis_out: "axis_out", belong_to_module: nil) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/tdl/axi_stream/data_c_to_axis_full_auto.rb', line 54

def self.data_c_to_axis_full(
    data_in_inf:"data_in_inf",
    axis_out:"axis_out",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_out].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._data_c_to_axis_full(
        data_in_inf:data_in_inf,
        axis_out:axis_out)
    return return_stream
end

.data_to_axis_inf(mark_curr_data: "mark_curr_data", last_flag: "last_flag", data_slaver: "data_slaver", axis_master: "axis_master") ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/tdl/axi_stream/data_to_axis_inf_auto.rb', line 64

def self.data_to_axis_inf(
    mark_curr_data:"mark_curr_data",
    last_flag:"last_flag",
    data_slaver:"data_slaver",
    axis_master:"axis_master",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_master].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._data_to_axis_inf(
        mark_curr_data:mark_curr_data,
        last_flag:last_flag,
        data_slaver:data_slaver,
        axis_master:axis_master)
    return return_stream
end

.data_to_axis_inf_a1(last_flag: "last_flag", data_slaver: "data_slaver", axis_master: "axis_master") ⇒ Object



29
30
31
32
# File 'lib/tdl/axi_stream/bak/data_to_axis_inf_A1.rb', line 29

def self.data_to_axis_inf_a1(last_flag:"last_flag",data_slaver:"data_slaver",axis_master:"axis_master")
    NC._data_to_axis_inf_a1(last_flag:last_flag,data_slaver:data_slaver,axis_master:axis_master)

end

.direct(slaver: "slaver", master: "master", up_stream: nil, down_stream: nil, belong_to_module: nil) ⇒ Object



510
511
512
# File 'lib/tdl/elements/axi_stream.rb', line 510

def self.direct(slaver:"slaver",master:"master",up_stream:nil,down_stream:nil,belong_to_module:nil)
    self.axis_direct(slaver:slaver,master:master,up_stream:up_stream,down_stream:down_stream,belong_to_module:belong_to_module)
end

.dynamic_port_cfg(udp_port: "udp_port", port_index: "port_index", valid: "valid", tap_ex_udp_ctrl_inf: "tap_ex_udp_ctrl_inf", tap_local_udp_ctrl_inf: "tap_local_udp_ctrl_inf", tap_broadcast_udp_inf: "tap_broadcast_udp_inf", send_inf: "send_inf") ⇒ Object



35
36
37
38
39
40
41
# File 'lib/tdl/axi_stream/bak/dynamic_port_cfg_auto.rb', line 35

def self.dynamic_port_cfg(udp_port:"udp_port",port_index:"port_index",valid:"valid",tap_ex_udp_ctrl_inf:"tap_ex_udp_ctrl_inf",tap_local_udp_ctrl_inf:"tap_local_udp_ctrl_inf",tap_broadcast_udp_inf:"tap_broadcast_udp_inf",send_inf:"send_inf")
    return_stream = nil
    
    
    NC._dynamic_port_cfg(udp_port:udp_port,port_index:port_index,valid:valid,tap_ex_udp_ctrl_inf:tap_ex_udp_ctrl_inf,tap_local_udp_ctrl_inf:tap_local_udp_ctrl_inf,tap_broadcast_udp_inf:tap_broadcast_udp_inf,send_inf:send_inf)
    return return_stream
end

.dynnamic_addr_cfg(server_ip: "server_ip", server_mac: "server_mac", tap_local_udp_ctrl_inf: "tap_local_udp_ctrl_inf", tap_broadcast_udp_inf: "tap_broadcast_udp_inf", send_inf: "send_inf") ⇒ Object



33
34
35
36
37
38
39
# File 'lib/tdl/axi_stream/bak/dynnamic_addr_cfg_auto.rb', line 33

def self.dynnamic_addr_cfg(server_ip:"server_ip",server_mac:"server_mac",tap_local_udp_ctrl_inf:"tap_local_udp_ctrl_inf",tap_broadcast_udp_inf:"tap_broadcast_udp_inf",send_inf:"send_inf")
    return_stream = nil
    
    
    NC._dynnamic_addr_cfg(server_ip:server_ip,server_mac:server_mac,tap_local_udp_ctrl_inf:tap_local_udp_ctrl_inf,tap_broadcast_udp_inf:tap_broadcast_udp_inf,send_inf:send_inf)
    return return_stream
end

.gen_big_field_table(master_mode: "OFF", dsize: 8, field_len: 16*8, field_name: "Big Filed", enable: "enable", value: "value", cm_tb: "cm_tb", down_stream: nil) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/tdl/axi_stream/gen_big_field_table_auto.rb', line 88

def self.gen_big_field_table(
    master_mode:"OFF",
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    enable:"enable",
    value:"value",
    cm_tb:"cm_tb",
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [cm_tb].first.belong_to_module unless belong_to_module
    
    
    
    if down_stream.is_a? AxiStream
        down_stream.gen_big_field_table(
            master_mode:master_mode,
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            enable:enable,
            value:value,
            cm_tb:cm_tb,
            down_stream:down_stream)
    elsif cm_tb.is_a? AxiStream
        cm_tb.gen_big_field_table(
            master_mode:master_mode,
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            enable:enable,
            value:value,
            cm_tb:cm_tb,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.gen_big_field_table(
            master_mode:master_mode,
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            enable:enable,
            value:value,
            cm_tb:cm_tb,
            down_stream:down_stream)
    end
    return return_stream
end

.gen_origin_axis(mode: "RANGE", enable: "enable", ready: "ready", length: "length", axis_out: "axis_out", down_stream: nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/tdl/axi_stream/gen_origin_axis_auto.rb', line 78

def self.gen_origin_axis(
    mode:"RANGE",
    enable:"enable",
    ready:"ready",
    length:"length",
    axis_out:"axis_out",
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_out].first.belong_to_module unless belong_to_module
    
    
    
    if down_stream.is_a? AxiStream
        down_stream.gen_origin_axis(
            mode:mode,
            enable:enable,
            ready:ready,
            length:length,
            axis_out:axis_out,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.gen_origin_axis(
            mode:mode,
            enable:enable,
            ready:ready,
            length:length,
            axis_out:axis_out,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.gen_origin_axis(
            mode:mode,
            enable:enable,
            ready:ready,
            length:length,
            axis_out:axis_out,
            down_stream:down_stream)
    end
    return return_stream
end

.gen_origin_axis_a1(mode: "RANGE", enable: "enable", ready: "ready", length: "length", start: "start", axis_out: "axis_out", down_stream: nil, belong_to_module: nil) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/tdl/axi_stream/gen_origin_axis_A1_auto.rb', line 83

def self.gen_origin_axis_a1(
    mode:"RANGE",
    enable:"enable",
    ready:"ready",
    length:"length",
    start:"start",
    axis_out:"axis_out",
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_out].first.belong_to_module unless belong_to_module
    
    
    
    if down_stream.is_a? AxiStream
        down_stream.gen_origin_axis_a1(
            mode:mode,
            enable:enable,
            ready:ready,
            length:length,
            start:start,
            axis_out:axis_out,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.gen_origin_axis_a1(
            mode:mode,
            enable:enable,
            ready:ready,
            length:length,
            start:start,
            axis_out:axis_out,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.gen_origin_axis_a1(
            mode:mode,
            enable:enable,
            ready:ready,
            length:length,
            start:start,
            axis_out:axis_out,
            down_stream:down_stream)
    end
    return return_stream
end

.gen_simple_axis(mode: "RANGE", trigger: "trigger", gen_en: "gen_en", length: "length", led: "led", axis_out: "axis_out", down_stream: nil) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/tdl/axi_stream/gen_simple_axis_auto.rb', line 83

def self.gen_simple_axis(
    mode:"RANGE",
    trigger:"trigger",
    gen_en:"gen_en",
    length:"length",
    led:"led",
    axis_out:"axis_out",
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_out].first.belong_to_module unless belong_to_module
    
    
    
    if down_stream.is_a? AxiStream
        down_stream.gen_simple_axis(
            mode:mode,
            trigger:trigger,
            gen_en:gen_en,
            length:length,
            led:led,
            axis_out:axis_out,
            down_stream:down_stream)
    elsif axis_out.is_a? AxiStream
        axis_out.gen_simple_axis(
            mode:mode,
            trigger:trigger,
            gen_en:gen_en,
            length:length,
            led:led,
            axis_out:axis_out,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.gen_simple_axis(
            mode:mode,
            trigger:trigger,
            gen_en:gen_en,
            length:length,
            led:led,
            axis_out:axis_out,
            down_stream:down_stream)
    end
    return return_stream
end

.leave_empty(curr_type: :master, dsize: 8, clock: "", reset: "", belong_to_module: nil) ⇒ Object



164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/tdl/elements/axi_stream.rb', line 164

def self.leave_empty(curr_type: :master,dsize:8,clock:"",reset:"",belong_to_module:nil)
    nc = belong_to_module.Def.axi_stream(name:"empty_#{belong_to_module.AxiStream_NC.signal}",dsize:dsize,clock:clock,reset:reset)
    # puts belong_to_module.module_name
    if curr_type.to_sym == :slaver
        self.axis_master_empty(master:nc)
    elsif curr_type.to_sym == :master
        self.axis_slaver_empty(slaver:nc)
    else
        raise TdlError.new("\n\n Axi Stream don't has this type << #{type} >> \n\n")
    end

    return nc
end

.leave_master_empty(*ss) ⇒ Object



158
159
160
161
162
# File 'lib/tdl/elements/axi_stream.rb', line 158

def self.leave_master_empty(*ss)
    ss.each do |e|
        self.axis_slaver_empty(slaver:e)
    end
end

.leave_slaver_empty(*ms) ⇒ Object

—- new ————–



151
152
153
154
155
156
# File 'lib/tdl/elements/axi_stream.rb', line 151

def self.leave_slaver_empty(*ms)
    ms.each do |e|
        # puts e
        self.axis_master_empty(master:e)
    end
end

.master_empty(*ms) ⇒ Object



136
137
138
139
140
141
# File 'lib/tdl/elements/axi_stream.rb', line 136

def self.master_empty(*ms)
    ms.each do |e|
        # puts e
        self.axis_master_empty(master:e)
    end
end

.parse_big_field_table(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/tdl/axi_stream/parse_big_field_table_auto.rb', line 115

def self.parse_big_field_table(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [cm_tb_s,cm_tb_m,cm_mirror].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && cm_tb_m.eql?("cm_tb_m")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = cm_tb_s.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && cm_tb_s.eql?("cm_tb_s")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = cm_tb_m.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.parse_big_field_table(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif cm_tb_m.is_a? AxiStream
        cm_tb_m.parse_big_field_table(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.parse_big_field_table(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.parse_big_field_table_a1(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/tdl/axi_stream/parse_big_field_table_A1_auto.rb', line 115

def self.parse_big_field_table_a1(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [cm_tb_s,cm_tb_m,cm_mirror].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && cm_tb_m.eql?("cm_tb_m")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = cm_tb_s.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && cm_tb_s.eql?("cm_tb_s")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = cm_tb_m.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.parse_big_field_table_a1(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif cm_tb_m.is_a? AxiStream
        cm_tb_m.parse_big_field_table_a1(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.parse_big_field_table_a1(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.parse_big_field_table_a2(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/tdl/axi_stream/parse_big_field_table_A2_auto.rb', line 115

def self.parse_big_field_table_a2(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil,
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [cm_tb_s,cm_tb_m,cm_mirror].first.belong_to_module unless belong_to_module
    
    if down_stream.nil? && cm_tb_m.eql?("cm_tb_m")
        if up_stream.is_a? AxiStream
            down_stream = up_stream.copy
        else
            down_stream = cm_tb_s.copy
        end
        return_stream = down_stream
    end

    
    if up_stream.nil? && cm_tb_s.eql?("cm_tb_s")
        if down_stream.is_a? AxiStream
            up_stream = down_stream.copy
        else
            up_stream = cm_tb_m.copy
        end
        return_stream = up_stream
    end

    
    if down_stream.is_a? AxiStream
        down_stream.parse_big_field_table_a2(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    elsif cm_tb_m.is_a? AxiStream
        cm_tb_m.parse_big_field_table_a2(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    else
        belong_to_module.AxiStream_NC.parse_big_field_table_a2(
            dsize:dsize,
            field_len:field_len,
            field_name:field_name,
            try_parse:try_parse,
            enable:enable,
            value:value,
            out_valid:out_valid,
            cm_tb_s:cm_tb_s,
            cm_tb_m:cm_tb_m,
            cm_mirror:cm_mirror,
            up_stream:up_stream,
            down_stream:down_stream)
    end
    return return_stream
end

.parse_ports(port_array = nil) ⇒ Object



183
184
185
186
187
188
189
190
191
192
# File 'lib/tdl/elements/axi_stream.rb', line 183

def self.parse_ports(port_array=nil)
    rep = /(?<up_down>\(\*\s+(?<ud_name>axis_up|axis_down|up_stream|down_stream)\s*=\s*"true"\s+\*\))?\s*(axi_stream_inf\.)(?<modport>master|slaver|mirror|out_mirror)\s+(?<name>\w+)\s*(?<vector>\[.*?\])?/m
    up_stream_rep = Regexp.union(/axis_up/,/up_stream/)

    super(port_array,rep,"axi_stream_inf",up_stream_rep) do |h|
        h[:type]   = AxiStream
        # puts h
        yield h
    end
end

.slaver_empty(*ss) ⇒ Object



143
144
145
146
147
# File 'lib/tdl/elements/axi_stream.rb', line 143

def self.slaver_empty(*ss)
    ss.each do |e|
        self.axis_slaver_empty(slaver:e)
    end
end

.stream_crc(crc: "crc", axis_in: "axis_in") ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/tdl/axi_stream/stream_crc_auto.rb', line 53

def self.stream_crc(
    crc:"crc",
    axis_in:"axis_in",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in].first.belong_to_module unless belong_to_module
    
    
    belong_to_module.AxiStream_NC._stream_crc(
        crc:crc,
        axis_in:axis_in)
    return return_stream
end

.string_copy_inf(strs, belong_to_module) ⇒ Object



125
126
127
128
129
130
# File 'lib/tdl/elements/axi_stream.rb', line 125

def self.string_copy_inf(strs,belong_to_module)
    @@_str_cp_id ||= 0
    a = belong_to_module.Def.axi_stream(name:"string_copy_axis_#{@@_str_cp_id}",clock:"#{strs}.aclk",reset:"#{strs}.aresetn",dsize:"#{strs}.dsize")
    @@_str_cp_id += 1
    a
end

.udp_server_bfm(tx_udp_inf: "tx_udp_inf", rx_udp_inf: "rx_udp_inf") ⇒ Object



30
31
32
33
34
35
36
# File 'lib/tdl/axi_stream/bak/udp_server_bfm_auto.rb', line 30

def self.udp_server_bfm(tx_udp_inf:"tx_udp_inf",rx_udp_inf:"rx_udp_inf")
    return_stream = nil
    
    
    NC._udp_server_bfm(tx_udp_inf:tx_udp_inf,rx_udp_inf:rx_udp_inf)
    return return_stream
end

.udp_server_ctrl_bfm(tx_udp_inf: "tx_udp_inf", rx_udp_inf: "rx_udp_inf") ⇒ Object



30
31
32
33
34
35
36
# File 'lib/tdl/axi_stream/bak/udp_server_ctrl_bfm_auto.rb', line 30

def self.udp_server_ctrl_bfm(tx_udp_inf:"tx_udp_inf",rx_udp_inf:"rx_udp_inf")
    return_stream = nil
    
    
    NC._udp_server_ctrl_bfm(tx_udp_inf:tx_udp_inf,rx_udp_inf:rx_udp_inf)
    return return_stream
end

.video_stream_2_axi_stream(video_slaver: nil, axis_master: nil, mode: "LINE") ⇒ Object



51
52
53
# File 'lib/tdl/VideoInf/video_stream_2_axi_stream.rb', line 51

def self.video_stream_2_axi_stream(video_slaver:nil,axis_master:nil,mode:"LINE")
    VideoInf.video_stream_2_axi_stream(video_slaver:video_slaver,axis_master:axis_master,mode:"LINE")
end

.wide_axis_to_axi4_wr(addr: "addr", max_length: "max_length", axis_in: "axis_in", axi_wr: "axi_wr", belong_to_module: nil) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/tdl/axi4/wide_axis_to_axi4_wr.rb', line 64

def self.wide_axis_to_axi4_wr(
    addr:"addr",
    max_length:"max_length",
    axis_in:"axis_in",
    axi_wr:"axi_wr",
    belong_to_module:nil
    )
    return_stream = nil
    belong_to_module = [axis_in].first.belong_to_module unless belong_to_module


    belong_to_module.AxiStream_NC._wide_axis_to_axi4_wr(
        addr:addr,
        max_length:max_length,
        axis_in:axis_in,
        axi_wr:axi_wr)
    return return_stream
end

Instance Method Details

#%(plength) ⇒ Object

Raises:



446
447
448
449
450
451
452
453
# File 'lib/tdl/elements/axi_stream.rb', line 446

def %(plength)
    raise TdlError.new("#{plength} is not a Integer") unless plength.is_a? Integer

    down_stream = self.copy(name:"partition")
    AxiStream.axi_stream_partition(valve:"1'b1",partition_len:plength,req_new_len:"",up_stream:self,down_stream:down_stream)

    return down_stream
end

#*(num) ⇒ Object

Raises:



429
430
431
432
# File 'lib/tdl/elements/axi_stream.rb', line 429

def *(num)
    raise TdlError.new("#{num} is not a Integer") unless num.is_a? Integer
    div_mul(num,"*")
end

#+(other_stream) ⇒ Object

Raises:



421
422
423
424
425
426
427
# File 'lib/tdl/elements/axi_stream.rb', line 421

def +(other_stream)
    raise TdlError.new("#{other_stream} is not a AxiStream") unless other_stream.is_a? AxiStream
    master_stream = self.copy(name:"#{name}_scaler_m00")
    # AxiStream.axi_streams_scaler(mode:"HEAD",cut_or_combin_body:"OFF",dsize:@dsize,new_body_len:"16'hFFFF",head_inf:self,body_inf:other_stream,end_inf:self.copy(name:"tmp"),m00:master_stream)
    AxiStream.axi_streams_scaler_a1(mode:"HEAD",cut_or_combin_body:"OFF",new_body_len:"16'hFFFF",head_inf:self,body_inf:other_stream,end_inf:self.copy(name:"tmp"),m00:master_stream)
    return master_stream
end

#/(num) ⇒ Object

Raises:



434
435
436
437
# File 'lib/tdl/elements/axi_stream.rb', line 434

def /(num)
    raise TdlError.new("#{num} is not a Integer") unless num.is_a? Integer
    div_mul(num,"/")
end

#<<(*up_streams) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/tdl/axi_stream/axi_stream_interconnect.rb', line 22

def <<(*up_streams)
    @interconnect_up_streams ||= []
    push_to_stack
    up_streams.each do |e|
        # next unless e.is_a? AxiStream
        if e.is_a? AxiStream
            raise TdlError.new("AxiStream << [sub..] sub.dimension must 1") unless dimension_num(e).eql?(1)
            @interconnect_up_streams << e
            check_branch_num
        end 

        if e.is_a? TdlSpace::ArrayChain
            if e.obj.is_a? AxiStream
                @interconnect_up_streams << e
                check_branch_num
            end 
        end
    end
end

#>>(down_stream) ⇒ Object



42
43
44
# File 'lib/tdl/axi_stream/axi_stream_interconnect.rb', line 42

def >>(down_stream)
    down_stream.<< self
end

#__inf_signal__(name) ⇒ Object

Raises:



518
519
520
521
522
523
524
525
# File 'lib/tdl/elements/axi_stream.rb', line 518

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

#_axi4_rd_auxiliary_gen(id_add_len_in: "id_add_len_in", axi_rd_aux: "axi_rd_aux") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/tdl/axi4/axi4_rd_auxiliary_gen_auto.rb', line 9

def _axi4_rd_auxiliary_gen(
    id_add_len_in:"id_add_len_in",
    axi_rd_aux:"axi_rd_aux"
)

    Tdl.add_to_all_file_paths('axi4_rd_auxiliary_gen','../../axi/AXI4/axi4_rd_auxiliary_gen.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi4_rd_auxiliary_gen','../../axi/AXI4/axi4_rd_auxiliary_gen.sv'])
    return_stream = self
    
    id_add_len_in = AxiStream.same_name_socket(:from_up,mix=true,id_add_len_in,nil,belong_to_module) unless id_add_len_in.is_a? String
    axi_rd_aux = Axi4.same_name_socket(:mirror,mix=true,axi_rd_aux,nil,belong_to_module) unless axi_rd_aux.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axi4_rd_auxiliary_gen_draw(
        id_add_len_in:id_add_len_in,
        axi_rd_aux:axi_rd_aux)
    return return_stream
end

#_axi4_wr_auxiliary_gen_without_resp(stream_en: "stream_en", id_add_len_in: "id_add_len_in", axi_wr_aux: "axi_wr_aux") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/tdl/axi4/axi4_wr_auxiliary_gen_without_resp_auto.rb', line 9

def _axi4_wr_auxiliary_gen_without_resp(
    stream_en:"stream_en",
    id_add_len_in:"id_add_len_in",
    axi_wr_aux:"axi_wr_aux"
)

    Tdl.add_to_all_file_paths('axi4_wr_auxiliary_gen_without_resp','../../axi/AXI4/axi4_wr_auxiliary_gen_without_resp.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi4_wr_auxiliary_gen_without_resp','../../axi/AXI4/axi4_wr_auxiliary_gen_without_resp.sv'])
    return_stream = self
    
    id_add_len_in = AxiStream.same_name_socket(:from_up,mix=true,id_add_len_in,nil,belong_to_module) unless id_add_len_in.is_a? String
    axi_wr_aux = Axi4.same_name_socket(:mirror,mix=true,axi_wr_aux,nil,belong_to_module) unless axi_wr_aux.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axi4_wr_auxiliary_gen_without_resp_draw(
        stream_en:stream_en,
        id_add_len_in:id_add_len_in,
        axi_wr_aux:axi_wr_aux)
    return return_stream
end

#_axi4_wr_auxiliary_gen_without_resp_draw(stream_en: "stream_en", id_add_len_in: "id_add_len_in", axi_wr_aux: "axi_wr_aux") ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/tdl/axi4/axi4_wr_auxiliary_gen_without_resp_auto.rb', line 35

def _axi4_wr_auxiliary_gen_without_resp_draw(
    stream_en:"stream_en",
    id_add_len_in:"id_add_len_in",
    axi_wr_aux:"axi_wr_aux"
)

    large_name_len(
        stream_en,
        id_add_len_in,
        axi_wr_aux
    )
    instance_name = "axi4_wr_auxiliary_gen_without_resp_#{signal}_inst"
"
// FilePath:::../../axi/AXI4/axi4_wr_auxiliary_gen_without_resp.sv
axi4_wr_auxiliary_gen_without_resp #{instance_name}(
/*  output                       */ .stream_en     (#{align_signal(stream_en,q_mark=false)}),
/*  axi_stream_inf.slaver        */ .id_add_len_in (#{align_signal(id_add_len_in,q_mark=false)}),
/*  axi_inf.master_wr_aux_no_resp*/ .axi_wr_aux    (#{align_signal(axi_wr_aux,q_mark=false)})
);
"
end

#_axi_stream_interconnect_m2s(num: 8, nsize: "NUM <= 2? 1 :", addr: "addr", s00: "s00", m00: "m00") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/tdl/axi_stream/axi_stream_interconnect_M2S.rb', line 9

def _axi_stream_interconnect_m2s(
    num:8,
    addr:"addr",
    s00:"s00",
    m00:"m00"
)
    num = dimension_num(s00)
    Tdl.add_to_all_file_paths('axi_stream_interconnect_m2s','../../axi/AXI_stream/axi_stream_interconnect_M2S.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_interconnect_m2s','../../axi/AXI_stream/axi_stream_interconnect_M2S.sv'])
    return_stream = self

    s00 = AxiStream.same_name_socket(:from_up,mix=false,s00) unless s00.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=true,m00) unless m00.is_a? String





    belong_to_module.AxiStream_draw << _axi_stream_interconnect_m2s_draw(
        num:num,
        addr:addr,
        s00:s00,
        m00:m00)
    return return_stream
end

#_axi_stream_interconnect_s2m(num: 8, addr: "addr", s00: "s00", m00: "m00") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/tdl/axi_stream/axi_stream_interconnect_S2M.rb', line 9

def _axi_stream_interconnect_s2m(
    num:8,
    addr:"addr",
    s00:"s00",
    m00:"m00"
)
    num = dimension_num(m00)
    
    Tdl.add_to_all_file_paths('axi_stream_interconnect_s2m','../../axi/AXI_stream/axi_stream_interconnect_S2M.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_interconnect_s2m','../../axi/AXI_stream/axi_stream_interconnect_S2M.sv'])
    return_stream = self

    s00 = AxiStream.same_name_socket(:from_up,mix=true,s00) unless s00.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=false,m00) unless m00.is_a? String





    belong_to_module.AxiStream_draw << _axi_stream_interconnect_s2m_draw(
        num:num,
        addr:addr,
        s00:s00,
        m00:m00)
    return return_stream
end

#_axi_stream_interconnect_s2m_auto(head_dummy: 4, num: 4, slaver: "slaver", sub_tx_inf: "sub_tx_inf", up_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/tdl/axi_stream/axi_stream_interconnect_S2M_auto_auto.rb', line 9

def _axi_stream_interconnect_s2m_auto(
    head_dummy:4,
    num:4,
    slaver:"slaver",
    sub_tx_inf:"sub_tx_inf",
    up_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_interconnect_s2m_auto','../../axi/AXI_stream/axi_stream_interconnect_S2M_auto.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_interconnect_s2m_auto','../../axi/AXI_stream/axi_stream_interconnect_S2M_auto.sv'])
    return_stream = self
    
    slaver = AxiStream.same_name_socket(:from_up,mix=true,slaver,nil,belong_to_module) unless slaver.is_a? String
    sub_tx_inf = AxiStream.same_name_socket(:to_down,mix=false,sub_tx_inf,nil,belong_to_module) unless sub_tx_inf.is_a? String
    
    slaver = up_stream if up_stream
    


    belong_to_module.AxiStream_draw << _axi_stream_interconnect_s2m_auto_draw(
        head_dummy:head_dummy,
        num:num,
        slaver:slaver,
        sub_tx_inf:sub_tx_inf,
        up_stream:up_stream)
    return return_stream
end

#_axi_stream_interconnect_s2m_draw(num: 8, addr: "addr", s00: "s00", m00: "m00") ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/tdl/axi_stream/axi_stream_interconnect_S2M.rb', line 38

def _axi_stream_interconnect_s2m_draw(
    num:8,
    addr:"addr",
    s00:"s00",
    m00:"m00"
)

    large_name_len(
        num,
        addr,
        s00,
        m00
    )
    instance_name = "axi_stream_interconnect_S2M_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axi_stream_interconnect_S2M.sv
axi_stream_interconnect_S2M#(
.NUM    (#{align_signal(num)})
) #{instance_name}(
/*  input  [NSIZE-1:0]   */ .addr (#{align_signal(addr,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .s00  (#{align_signal(s00,q_mark=false)}),
/*  axi_stream_inf.master*/ .m00  (#{align_signal(m00,q_mark=false)})
);
"
end

#_axi_stream_interconnect_s2m_with_keep(num: 8, nsize: "NUM <= 2? 1 :", addr: "addr", s00: "s00", m00: "m00") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/tdl/axi_stream/axi_stream_interconnect_S2M_with_keep.sv_auto.rb', line 9

def _axi_stream_interconnect_s2m_with_keep(
    num:8,
    nsize:"NUM <= 2? 1 :",
    addr:"addr",
    s00:"s00",
    m00:"m00"
)

    Tdl.add_to_all_file_paths('axi_stream_interconnect_s2m_with_keep','../../axi/AXI_stream/axi_stream_interconnect_S2M_with_keep.sv.bak')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_interconnect_s2m_with_keep','../../axi/AXI_stream/axi_stream_interconnect_S2M_with_keep.sv.bak'])
    return_stream = self
    
    s00 = AxiStream.same_name_socket(:from_up,mix=true,s00,nil,belong_to_module) unless s00.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=false,m00,nil,belong_to_module) unless m00.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axi_stream_interconnect_s2m_with_keep_draw(
        num:num,
        nsize:nsize,
        addr:addr,
        s00:s00,
        m00:m00)
    return return_stream
end

#_axi_stream_interconnect_s2m_with_keep_draw(num: 8, nsize: "NUM <= 2? 1 :", addr: "addr", s00: "s00", m00: "m00") ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/tdl/axi_stream/axi_stream_interconnect_S2M_with_keep.sv_auto.rb', line 39

def _axi_stream_interconnect_s2m_with_keep_draw(
    num:8,
    nsize:"NUM <= 2? 1 :",
    addr:"addr",
    s00:"s00",
    m00:"m00"
)

    large_name_len(
        num,
        nsize,
        addr,
        s00,
        m00
    )
    instance_name = "axi_stream_interconnect_S2M_with_keep_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axi_stream_interconnect_S2M_with_keep.sv.bak
axi_stream_interconnect_S2M_with_keep#(
.NUM      (#{align_signal(num)}),
.NSIZE    (#{align_signal(nsize)})
) #{instance_name}(
/*  input  [NSIZE-1:0]   */ .addr (#{align_signal(addr,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .s00  (#{align_signal(s00,q_mark=false)}),
/*  axi_stream_inf.master*/ .m00  (#{align_signal(m00,q_mark=false)})
);
"
end

#_axis_full_to_data_c(data_out_inf: "data_out_inf", axis_in: "axis_in") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/tdl/axi_stream/axis_full_to_data_c_auto.rb', line 9

def _axis_full_to_data_c(
    data_out_inf:"data_out_inf",
    axis_in:"axis_in"
)

    Tdl.add_to_all_file_paths('axis_full_to_data_c','../../axi/AXI_stream/axis_full_to_data_c.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_full_to_data_c','../../axi/AXI_stream/axis_full_to_data_c.sv'])
    return_stream = self
    
    data_out_inf = DataInf_C.same_name_socket(:to_down,mix=true,data_out_inf,nil,belong_to_module) unless data_out_inf.is_a? String
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axis_full_to_data_c_draw(
        data_out_inf:data_out_inf,
        axis_in:axis_in)
    return return_stream
end


9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/tdl/axi_stream/axis_link_trigger_auto.rb', line 9

def _axis_link_trigger(
    mode:"STREAM",
    dsize:32,
    data:"data",
    trigger_inf:"trigger_inf",
    mirror:"mirror"
)

    Tdl.add_to_all_file_paths('axis_link_trigger','../../axi/AXI_stream/axis_link_trigger.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_link_trigger','../../axi/AXI_stream/axis_link_trigger.sv'])
    return_stream = self
    
    trigger_inf = DataInf_C.same_name_socket(:to_down,mix=true,trigger_inf,nil,belong_to_module) unless trigger_inf.is_a? String
    mirror = AxiStream.same_name_socket(:mirror,mix=true,mirror,nil,belong_to_module) unless mirror.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axis_link_trigger_draw(
        mode:mode,
        dsize:dsize,
        data:data,
        trigger_inf:trigger_inf,
        mirror:mirror)
    return return_stream
end

#_axis_slaver_empty(slaver: "slaver", up_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/tdl/axi_stream/axis_slaver_empty_auto.rb', line 9

def _axis_slaver_empty(
    slaver:"slaver",
    up_stream:nil
)

    Tdl.add_to_all_file_paths('axis_slaver_empty','../../axi/AXI_stream/axis_slaver_empty.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_slaver_empty','../../axi/AXI_stream/axis_slaver_empty.sv'])
    return_stream = self
    
    slaver = AxiStream.same_name_socket(:from_up,mix=true,slaver,nil,belong_to_module) unless slaver.is_a? String
    
    slaver = up_stream if up_stream
    


    belong_to_module.AxiStream_draw << _axis_slaver_empty_draw(
        slaver:slaver,
        up_stream:up_stream)
    return return_stream
end

#_axis_slaver_empty_draw(slaver: "slaver", up_stream: nil) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/tdl/axi_stream/axis_slaver_empty_auto.rb', line 32

def _axis_slaver_empty_draw(
    slaver:"slaver",
    up_stream:nil
)

    large_name_len(
        slaver
    )
    instance_name = "axis_slaver_empty_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_slaver_empty.sv
axis_slaver_empty #{instance_name}(
/*  axi_stream_inf.slaver*/ .slaver (#{align_signal(slaver,q_mark=false)})
);
"
end

#_axis_to_axi4_or_lite(lite: "lite", axis_in: "axis_in", rd_rel_axis: "rd_rel_axis", axi4: "axi4") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/tdl/axi_stream/axis_to_axi4_or_lite_auto.rb', line 9

def _axis_to_axi4_or_lite(
    lite:"lite",
    axis_in:"axis_in",
    rd_rel_axis:"rd_rel_axis",
    axi4:"axi4"
)

    Tdl.add_to_all_file_paths('axis_to_axi4_or_lite','../../axi/AXI_stream/axis_to_axi4_or_lite.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_to_axi4_or_lite','../../axi/AXI_stream/axis_to_axi4_or_lite.sv'])
    return_stream = self
    
    lite = AxiLite.same_name_socket(:to_down,mix=true,lite,nil,belong_to_module) unless lite.is_a? String
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    rd_rel_axis = AxiStream.same_name_socket(:to_down,mix=true,rd_rel_axis,nil,belong_to_module) unless rd_rel_axis.is_a? String
    axi4 = Axi4.same_name_socket(:to_down,mix=true,axi4,nil,belong_to_module) unless axi4.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axis_to_axi4_or_lite_draw(
        lite:lite,
        axis_in:axis_in,
        rd_rel_axis:rd_rel_axis,
        axi4:axi4)
    return return_stream
end

#_axis_to_axi4_wr(addr: "addr", max_length: "max_length", axis_in: "axis_in", axi_wr: "axi_wr") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/tdl/axi4/axis_to_axi4_wr_auto.rb', line 9

def _axis_to_axi4_wr(
    addr:"addr",
    max_length:"max_length",
    axis_in:"axis_in",
    axi_wr:"axi_wr"
)

    Tdl.add_to_all_file_paths('axis_to_axi4_wr','../../axi/AXI4/axis_to_axi4_wr.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_to_axi4_wr','../../axi/AXI4/axis_to_axi4_wr.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axi_wr = Axi4.same_name_socket(:mirror,mix=true,axi_wr,nil,belong_to_module) unless axi_wr.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axis_to_axi4_wr_draw(
        addr:addr,
        max_length:max_length,
        axis_in:axis_in,
        axi_wr:axi_wr)
    return return_stream
end

#_axis_to_axi4_wr_draw(addr: "addr", max_length: "max_length", axis_in: "axis_in", axi_wr: "axi_wr") ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/tdl/axi4/axis_to_axi4_wr_auto.rb', line 37

def _axis_to_axi4_wr_draw(
    addr:"addr",
    max_length:"max_length",
    axis_in:"axis_in",
    axi_wr:"axi_wr"
)

    large_name_len(
        addr,
        max_length,
        axis_in,
        axi_wr
    )
    instance_name = "axis_to_axi4_wr_#{signal}_inst"
"
// FilePath:::../../axi/AXI4/axis_to_axi4_wr.sv
axis_to_axi4_wr #{instance_name}(
/*  input  [31:0]        */ .addr       (#{align_signal(addr,q_mark=false)}),
/*  input  [31:0]        */ .max_length (#{align_signal(max_length,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in    (#{align_signal(axis_in,q_mark=false)}),
/*  axi_inf.master_wr    */ .axi_wr     (#{align_signal(axi_wr,q_mark=false)})
);
"
end

#_axis_to_data_inf(data_out_inf: "data_out_inf", axis_in: "axis_in") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/tdl/axi_stream/axis_to_data_inf_auto.rb', line 9

def _axis_to_data_inf(
    contain_last:"OFF",
    data_out_inf:"data_out_inf",
    axis_in:"axis_in"
)

    Tdl.add_to_all_file_paths('axis_to_data_inf','../../axi/AXI_stream/axis_to_data_inf.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_to_data_inf','../../axi/AXI_stream/axis_to_data_inf.sv'])
    return_stream = self
    
    data_out_inf = DataInf_C.same_name_socket(:to_down,mix=true,data_out_inf,nil,belong_to_module) unless data_out_inf.is_a? String
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axis_to_data_inf_draw(
        contain_last:contain_last,
        data_out_inf:data_out_inf,
        axis_in:axis_in)
    return return_stream
end

#_axis_to_data_inf_draw(data_out_inf: "data_out_inf", axis_in: "axis_in") ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/tdl/axi_stream/axis_to_data_inf_auto.rb', line 35

def _axis_to_data_inf_draw(
    contain_last:"OFF",
    data_out_inf:"data_out_inf",
    axis_in:"axis_in"
)

    large_name_len(
        contain_last,
        data_out_inf,
        axis_in
    )
    instance_name = "axis_to_data_inf_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_to_data_inf.sv
axis_to_data_inf#(
.CONTAIN_LAST    (#{align_signal(contain_last)})
) #{instance_name}(
/*  data_inf_c.master    */ .data_out_inf (#{align_signal(data_out_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in      (#{align_signal(axis_in,q_mark=false)})
);
"
end

#_axis_to_lite_rd(dummy: 8, lite: "lite", axis_in: "axis_in", rd_rel_axis: "rd_rel_axis") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/tdl/axi_stream/axis_to_lite_rd_auto.rb', line 9

def _axis_to_lite_rd(
    dummy:8,
    lite:"lite",
    axis_in:"axis_in",
    rd_rel_axis:"rd_rel_axis"
)

    Tdl.add_to_all_file_paths('axis_to_lite_rd','../../axi/AXI_stream/axis_to_lite_rd.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_to_lite_rd','../../axi/AXI_stream/axis_to_lite_rd.sv'])
    return_stream = self
    
    lite = AxiLite.same_name_socket(:mirror,mix=true,lite,nil,belong_to_module) unless lite.is_a? String
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    rd_rel_axis = AxiStream.same_name_socket(:to_down,mix=true,rd_rel_axis,nil,belong_to_module) unless rd_rel_axis.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axis_to_lite_rd_draw(
        dummy:dummy,
        lite:lite,
        axis_in:axis_in,
        rd_rel_axis:rd_rel_axis)
    return return_stream
end

#_axis_to_lite_wr(dummy: 8, lite: "lite", axis_in: "axis_in") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/tdl/axi_stream/axis_to_lite_wr_auto.rb', line 9

def _axis_to_lite_wr(
    dummy:8,
    lite:"lite",
    axis_in:"axis_in"
)

    Tdl.add_to_all_file_paths('axis_to_lite_wr','../../axi/AXI_stream/axis_to_lite_wr.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_to_lite_wr','../../axi/AXI_stream/axis_to_lite_wr.sv'])
    return_stream = self
    
    lite = AxiLite.same_name_socket(:mirror,mix=true,lite,nil,belong_to_module) unless lite.is_a? String
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axis_to_lite_wr_draw(
        dummy:dummy,
        lite:lite,
        axis_in:axis_in)
    return return_stream
end

#_axis_uncompress(asize: 8, lsize: 8, axis_zip: "axis_zip", axis_unzip: "axis_unzip") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/tdl/axi_stream/axis_uncompress_auto.rb', line 9

def _axis_uncompress(
    asize:8,
    lsize:8,
    axis_zip:"axis_zip",
    axis_unzip:"axis_unzip"
)

    Tdl.add_to_all_file_paths('axis_uncompress','../../axi/AXI_stream/axis_uncompress.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_uncompress','../../axi/AXI_stream/axis_uncompress.sv'])
    return_stream = self
    
    axis_zip = AxiStream.same_name_socket(:from_up,mix=true,axis_zip,nil,belong_to_module) unless axis_zip.is_a? String
    axis_unzip = AxiStream.same_name_socket(:to_down,mix=true,axis_unzip,nil,belong_to_module) unless axis_unzip.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _axis_uncompress_draw(
        asize:asize,
        lsize:lsize,
        axis_zip:axis_zip,
        axis_unzip:axis_unzip)
    return return_stream
end

#_axis_uncompress_draw(asize: 8, lsize: 8, axis_zip: "axis_zip", axis_unzip: "axis_unzip") ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/tdl/axi_stream/axis_uncompress_auto.rb', line 37

def _axis_uncompress_draw(
    asize:8,
    lsize:8,
    axis_zip:"axis_zip",
    axis_unzip:"axis_unzip"
)

    large_name_len(
        asize,
        lsize,
        axis_zip,
        axis_unzip
    )
    instance_name = "axis_uncompress_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_uncompress.sv
axis_uncompress#(
.ASIZE    (#{align_signal(asize)}),
.LSIZE    (#{align_signal(lsize)})
) #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_zip   (#{align_signal(axis_zip,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_unzip (#{align_signal(axis_unzip,q_mark=false)})
);
"
end

#_check_stream_crc(axis_in: "axis_in") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/tdl/axi_stream/check_stream_crc_auto.rb', line 9

def _check_stream_crc(
    axis_in:"axis_in"
)

    Tdl.add_to_all_file_paths('check_stream_crc','../../axi/AXI_stream/check_stream_crc.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['check_stream_crc','../../axi/AXI_stream/check_stream_crc.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:mirror,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _check_stream_crc_draw(
        axis_in:axis_in)
    return return_stream
end

#_check_stream_crc_draw(axis_in: "axis_in") ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/tdl/axi_stream/check_stream_crc_auto.rb', line 30

def _check_stream_crc_draw(
    axis_in:"axis_in"
)

    large_name_len(
        axis_in
    )
    instance_name = "check_stream_crc_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/check_stream_crc.sv
check_stream_crc #{instance_name}(
/*  axi_stream_inf.mirror*/ .axis_in (#{align_signal(axis_in,q_mark=false)})
);
"
end

#_data_c_to_axis_full(data_in_inf: "data_in_inf", axis_out: "axis_out") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/tdl/axi_stream/data_c_to_axis_full_auto.rb', line 9

def _data_c_to_axis_full(
    data_in_inf:"data_in_inf",
    axis_out:"axis_out"
)

    Tdl.add_to_all_file_paths('data_c_to_axis_full','../../axi/AXI_stream/data_c_to_axis_full.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['data_c_to_axis_full','../../axi/AXI_stream/data_c_to_axis_full.sv'])
    return_stream = self
    
    data_in_inf = DataInf_C.same_name_socket(:from_up,mix=true,data_in_inf,nil,belong_to_module) unless data_in_inf.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _data_c_to_axis_full_draw(
        data_in_inf:data_in_inf,
        axis_out:axis_out)
    return return_stream
end

#_data_to_axis_inf(mark_curr_data: "mark_curr_data", last_flag: "last_flag", data_slaver: "data_slaver", axis_master: "axis_master") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/tdl/axi_stream/data_to_axis_inf_auto.rb', line 9

def _data_to_axis_inf(
    mark_curr_data:"mark_curr_data",
    last_flag:"last_flag",
    data_slaver:"data_slaver",
    axis_master:"axis_master"
)

    Tdl.add_to_all_file_paths('data_to_axis_inf','../../axi/AXI_stream/data_to_axis_inf.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['data_to_axis_inf','../../axi/AXI_stream/data_to_axis_inf.sv'])
    return_stream = self
    
    data_slaver = DataInf_C.same_name_socket(:from_up,mix=true,data_slaver,nil,belong_to_module) unless data_slaver.is_a? String
    axis_master = AxiStream.same_name_socket(:to_down,mix=true,axis_master,nil,belong_to_module) unless axis_master.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _data_to_axis_inf_draw(
        mark_curr_data:mark_curr_data,
        last_flag:last_flag,
        data_slaver:data_slaver,
        axis_master:axis_master)
    return return_stream
end

#_data_to_axis_inf_a1(last_flag: "last_flag", data_slaver: "data_slaver", axis_master: "axis_master") ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/tdl/axi_stream/bak/data_to_axis_inf_A1.rb', line 9

def _data_to_axis_inf_a1(last_flag:"last_flag",data_slaver:"data_slaver",axis_master:"axis_master")



    $_draw = lambda { _data_to_axis_inf_a1_draw(last_flag:last_flag,data_slaver:data_slaver,axis_master:axis_master) }
    @correlation_proc += $_draw.call
    return self
end

#_data_to_axis_inf_a1_draw(last_flag: "last_flag", data_slaver: "data_slaver", axis_master: "axis_master") ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/tdl/axi_stream/bak/data_to_axis_inf_A1.rb', line 18

def _data_to_axis_inf_a1_draw(last_flag:"last_flag",data_slaver:"data_slaver",axis_master:"axis_master")
    large_name_len(last_flag,data_slaver,axis_master)
"
data_to_axis_inf_A1 data_to_axis_inf_a1_#{signal}_inst(
/*  input                */ .last_flag   (#{align_signal(last_flag,q_mark=false)}),
/*  data_inf_c.slaver    */ .data_slaver (#{align_signal(data_slaver,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_master (#{align_signal(axis_master,q_mark=false)})
);
"
end

#_data_to_axis_inf_draw(mark_curr_data: "mark_curr_data", last_flag: "last_flag", data_slaver: "data_slaver", axis_master: "axis_master") ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/tdl/axi_stream/data_to_axis_inf_auto.rb', line 37

def _data_to_axis_inf_draw(
    mark_curr_data:"mark_curr_data",
    last_flag:"last_flag",
    data_slaver:"data_slaver",
    axis_master:"axis_master"
)

    large_name_len(
        mark_curr_data,
        last_flag,
        data_slaver,
        axis_master
    )
    instance_name = "data_to_axis_inf_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/data_to_axis_inf.sv
data_to_axis_inf #{instance_name}(
/*  input                */ .mark_curr_data (#{align_signal(mark_curr_data,q_mark=false)}),
/*  input                */ .last_flag      (#{align_signal(last_flag,q_mark=false)}),
/*  data_inf_c.slaver    */ .data_slaver    (#{align_signal(data_slaver,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_master    (#{align_signal(axis_master,q_mark=false)})
);
"
end

#_dynamic_port_cfg(udp_port: "udp_port", port_index: "port_index", valid: "valid", tap_ex_udp_ctrl_inf: "tap_ex_udp_ctrl_inf", tap_local_udp_ctrl_inf: "tap_local_udp_ctrl_inf", tap_broadcast_udp_inf: "tap_broadcast_udp_inf", send_inf: "send_inf") ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/tdl/axi_stream/bak/dynamic_port_cfg_auto.rb', line 9

def _dynamic_port_cfg(udp_port:"udp_port",port_index:"port_index",valid:"valid",tap_ex_udp_ctrl_inf:"tap_ex_udp_ctrl_inf",tap_local_udp_ctrl_inf:"tap_local_udp_ctrl_inf",tap_broadcast_udp_inf:"tap_broadcast_udp_inf",send_inf:"send_inf")
    return_stream = self
    
    
    

    $_draw = lambda { _dynamic_port_cfg_draw(udp_port:udp_port,port_index:port_index,valid:valid,tap_ex_udp_ctrl_inf:tap_ex_udp_ctrl_inf,tap_local_udp_ctrl_inf:tap_local_udp_ctrl_inf,tap_broadcast_udp_inf:tap_broadcast_udp_inf,send_inf:send_inf) }
    @correlation_proc += $_draw.call
    return return_stream
end

#_dynamic_port_cfg_draw(udp_port: "udp_port", port_index: "port_index", valid: "valid", tap_ex_udp_ctrl_inf: "tap_ex_udp_ctrl_inf", tap_local_udp_ctrl_inf: "tap_local_udp_ctrl_inf", tap_broadcast_udp_inf: "tap_broadcast_udp_inf", send_inf: "send_inf") ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/tdl/axi_stream/bak/dynamic_port_cfg_auto.rb', line 20

def _dynamic_port_cfg_draw(udp_port:"udp_port",port_index:"port_index",valid:"valid",tap_ex_udp_ctrl_inf:"tap_ex_udp_ctrl_inf",tap_local_udp_ctrl_inf:"tap_local_udp_ctrl_inf",tap_broadcast_udp_inf:"tap_broadcast_udp_inf",send_inf:"send_inf")
    large_name_len(udp_port,port_index,valid,tap_ex_udp_ctrl_inf,tap_local_udp_ctrl_inf,tap_broadcast_udp_inf,send_inf)
"
dynamic_port_cfg dynamic_port_cfg_#{signal}_inst(
/*  output [15:0]        */ .udp_port               (#{align_signal(udp_port,q_mark=false)}),
/*  output [7:0]         */ .port_index             (#{align_signal(port_index,q_mark=false)}),
/*  output               */ .valid                  (#{align_signal(valid,q_mark=false)}),
/*  axi_stream_inf.mirror*/ .tap_ex_udp_ctrl_inf    (#{align_signal(tap_ex_udp_ctrl_inf,q_mark=false)}),
/*  axi_stream_inf.mirror*/ .tap_local_udp_ctrl_inf (#{align_signal(tap_local_udp_ctrl_inf,q_mark=false)}),
/*  axi_stream_inf.mirror*/ .tap_broadcast_udp_inf  (#{align_signal(tap_broadcast_udp_inf,q_mark=false)}),
/*  axi_stream_inf.master*/ .send_inf               (#{align_signal(send_inf,q_mark=false)})
);
"
end

#_dynnamic_addr_cfg(server_ip: "server_ip", server_mac: "server_mac", tap_local_udp_ctrl_inf: "tap_local_udp_ctrl_inf", tap_broadcast_udp_inf: "tap_broadcast_udp_inf", send_inf: "send_inf") ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/tdl/axi_stream/bak/dynnamic_addr_cfg_auto.rb', line 9

def _dynnamic_addr_cfg(server_ip:"server_ip",server_mac:"server_mac",tap_local_udp_ctrl_inf:"tap_local_udp_ctrl_inf",tap_broadcast_udp_inf:"tap_broadcast_udp_inf",send_inf:"send_inf")
    return_stream = self
    
    
    

    $_draw = lambda { _dynnamic_addr_cfg_draw(server_ip:server_ip,server_mac:server_mac,tap_local_udp_ctrl_inf:tap_local_udp_ctrl_inf,tap_broadcast_udp_inf:tap_broadcast_udp_inf,send_inf:send_inf) }
    @correlation_proc += $_draw.call
    return return_stream
end

#_dynnamic_addr_cfg_draw(server_ip: "server_ip", server_mac: "server_mac", tap_local_udp_ctrl_inf: "tap_local_udp_ctrl_inf", tap_broadcast_udp_inf: "tap_broadcast_udp_inf", send_inf: "send_inf") ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/tdl/axi_stream/bak/dynnamic_addr_cfg_auto.rb', line 20

def _dynnamic_addr_cfg_draw(server_ip:"server_ip",server_mac:"server_mac",tap_local_udp_ctrl_inf:"tap_local_udp_ctrl_inf",tap_broadcast_udp_inf:"tap_broadcast_udp_inf",send_inf:"send_inf")
    large_name_len(server_ip,server_mac,tap_local_udp_ctrl_inf,tap_broadcast_udp_inf,send_inf)
"
dynnamic_addr_cfg dynnamic_addr_cfg_#{signal}_inst(
/*  output [31:0]        */ .server_ip              (#{align_signal(server_ip,q_mark=false)}),
/*  output [47:0]        */ .server_mac             (#{align_signal(server_mac,q_mark=false)}),
/*  axi_stream_inf.mirror*/ .tap_local_udp_ctrl_inf (#{align_signal(tap_local_udp_ctrl_inf,q_mark=false)}),
/*  axi_stream_inf.mirror*/ .tap_broadcast_udp_inf  (#{align_signal(tap_broadcast_udp_inf,q_mark=false)}),
/*  axi_stream_inf.master*/ .send_inf               (#{align_signal(send_inf,q_mark=false)})
);
"
end

#_stream_crc(crc: "crc", axis_in: "axis_in") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/tdl/axi_stream/stream_crc_auto.rb', line 9

def _stream_crc(
    crc:"crc",
    axis_in:"axis_in"
)

    Tdl.add_to_all_file_paths('stream_crc','../../axi/AXI_stream/stream_crc.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['stream_crc','../../axi/AXI_stream/stream_crc.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:mirror,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    
    
    


    belong_to_module.AxiStream_draw << _stream_crc_draw(
        crc:crc,
        axis_in:axis_in)
    return return_stream
end

#_stream_crc_draw(crc: "crc", axis_in: "axis_in") ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/tdl/axi_stream/stream_crc_auto.rb', line 32

def _stream_crc_draw(
    crc:"crc",
    axis_in:"axis_in"
)

    large_name_len(
        crc,
        axis_in
    )
    instance_name = "stream_crc_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/stream_crc.sv
stream_crc #{instance_name}(
/*  output [31:0]        */ .crc     (#{align_signal(crc,q_mark=false)}),
/*  axi_stream_inf.mirror*/ .axis_in (#{align_signal(axis_in,q_mark=false)})
);
"
end

#_udp_server_bfm(tx_udp_inf: "tx_udp_inf", rx_udp_inf: "rx_udp_inf") ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/tdl/axi_stream/bak/udp_server_bfm_auto.rb', line 9

def _udp_server_bfm(tx_udp_inf:"tx_udp_inf",rx_udp_inf:"rx_udp_inf")
    return_stream = self
    
    
    

    $_draw = lambda { _udp_server_bfm_draw(tx_udp_inf:tx_udp_inf,rx_udp_inf:rx_udp_inf) }
    @correlation_proc += $_draw.call
    return return_stream
end

#_udp_server_bfm_draw(tx_udp_inf: "tx_udp_inf", rx_udp_inf: "rx_udp_inf") ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/tdl/axi_stream/bak/udp_server_bfm_auto.rb', line 20

def _udp_server_bfm_draw(tx_udp_inf:"tx_udp_inf",rx_udp_inf:"rx_udp_inf")
    large_name_len(tx_udp_inf,rx_udp_inf)
"
udp_server_bfm udp_server_bfm_#{signal}_inst(
/*  axi_stream_inf.master*/ .tx_udp_inf (#{align_signal(tx_udp_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .rx_udp_inf (#{align_signal(rx_udp_inf,q_mark=false)})
);
"
end

#_udp_server_ctrl_bfm(tx_udp_inf: "tx_udp_inf", rx_udp_inf: "rx_udp_inf") ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/tdl/axi_stream/bak/udp_server_ctrl_bfm_auto.rb', line 9

def _udp_server_ctrl_bfm(tx_udp_inf:"tx_udp_inf",rx_udp_inf:"rx_udp_inf")
    return_stream = self
    
    
    

    $_draw = lambda { _udp_server_ctrl_bfm_draw(tx_udp_inf:tx_udp_inf,rx_udp_inf:rx_udp_inf) }
    @correlation_proc += $_draw.call
    return return_stream
end

#_udp_server_ctrl_bfm_draw(tx_udp_inf: "tx_udp_inf", rx_udp_inf: "rx_udp_inf") ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/tdl/axi_stream/bak/udp_server_ctrl_bfm_auto.rb', line 20

def _udp_server_ctrl_bfm_draw(tx_udp_inf:"tx_udp_inf",rx_udp_inf:"rx_udp_inf")
    large_name_len(tx_udp_inf,rx_udp_inf)
"
udp_server_ctrl_bfm udp_server_ctrl_bfm_#{signal}_inst(
/*  axi_stream_inf.master*/ .tx_udp_inf (#{align_signal(tx_udp_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .rx_udp_inf (#{align_signal(rx_udp_inf,q_mark=false)})
);
"
end

#_wide_axis_to_axi4_wr(addr: "addr", max_length: "max_length", axis_in: "axis_in", axi_wr: "axi_wr") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/tdl/axi4/wide_axis_to_axi4_wr.rb', line 9

def _wide_axis_to_axi4_wr(
    addr:"addr",
    max_length:"max_length",
    axis_in:"axis_in",
    axi_wr:"axi_wr"
)

    # Tdl.add_to_all_file_paths('wide_axis_to_axi4_wr','../../axi/AXI4/wide_axis_to_axi4_wr.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['wide_axis_to_axi4_wr','../../axi/AXI4/wide_axis_to_axi4_wr.sv'])
    return_stream = self

    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axi_wr = Axi4.same_name_socket(:mirror,mix=true,axi_wr,nil,belong_to_module) unless axi_wr.is_a? String





    belong_to_module.AxiStream_draw << _wide_axis_to_axi4_wr_draw(
        addr:addr,
        max_length:max_length,
        axis_in:axis_in,
        axi_wr:axi_wr)
    return return_stream
end

#aclk(n = 0) ⇒ Object

<tdl_key><hdl_key><default_freqM>



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/tdl/rebuild_ele/axi_stream.rb', line 9

def aclk(n=0)
    if @clock.is_a? Clock
        @clock
    else
        if dimension.empty?
            NqString.new(signal.concat ".aclk")
        else
            NqString.new(signal(n).concat ".aclk")
        end
    end
end

#all_bits_slice(start: 8*4, length: 32) ⇒ Object

截取流数据段



26
27
28
# File 'lib/tdl/exlib/axis_eth_ex.rb', line 26

def all_bits_slice(start: 8*4,length:32)
    return AxiTdl::EthernetStreamDefAtom.new(belong_to_module: @belong_to_module, stream: self, start: start, length: length)
end

#aresetn(n = 0) ⇒ Object



541
542
543
544
545
546
547
548
549
550
551
# File 'lib/tdl/elements/axi_stream.rb', line 541

def aresetn(n=0)
    if @reset.is_a? Reset
        @reset
    else
        if dimension.empty?
            NqString.new(signal.concat ".aresetn")
        else
            NqString.new(signal(n).concat ".aresetn")
        end
    end
end

#array_chain_vld_rdy_inst(pre_str) ⇒ Object



46
47
48
# File 'lib/tdl/rebuild_ele/axi_stream.rb', line 46

def array_chain_vld_rdy_inst(pre_str)
    "(#{pre_str}.axis_tvalid && #{pre_str}.axis_tready )".to_nq
end

#array_chain_vld_rdy_last_inst(pre_str) ⇒ Object



54
55
56
# File 'lib/tdl/rebuild_ele/axi_stream.rb', line 54

def array_chain_vld_rdy_last_inst(pre_str)
    "(#{pre_str}.axis_tvalid && #{pre_str}.axis_tready && #{pre_str}.axis_tlast)".to_nq
end

#axi_stream_cache(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axi_stream_cache_auto.rb', line 9

def axi_stream_cache(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_cache','../../axi/AXI_stream/stream_cache/axi_stream_cache.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_cache','../../axi/AXI_stream/stream_cache/axi_stream_cache.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_cache(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_cache_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_cache_35bit(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axi_stream_cache_35bit_auto.rb', line 9

def axi_stream_cache_35bit(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_cache_35bit','../../axi/AXI_stream/stream_cache/axi_stream_cache_35bit.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_cache_35bit','../../axi/AXI_stream/stream_cache/axi_stream_cache_35bit.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_cache_35bit(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_cache_35bit_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_cache_35bit_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axi_stream_cache_35bit_auto.rb', line 50

def axi_stream_cache_35bit_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_cache_35bit_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/stream_cache/axi_stream_cache_35bit.sv
axi_stream_cache_35bit #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_cache_72_95bit_with_keep(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axi_stream_cache_72_95bit_with_keep_auto.rb', line 9

def axi_stream_cache_72_95bit_with_keep(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_cache_72_95bit_with_keep','../../axi/AXI_stream/stream_cache/axi_stream_cache_72_95bit_with_keep.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_cache_72_95bit_with_keep','../../axi/AXI_stream/stream_cache/axi_stream_cache_72_95bit_with_keep.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_cache_72_95bit_with_keep(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_cache_72_95bit_with_keep_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_cache_72_95bit_with_keep_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axi_stream_cache_72_95bit_with_keep_auto.rb', line 50

def axi_stream_cache_72_95bit_with_keep_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_cache_72_95bit_with_keep_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/stream_cache/axi_stream_cache_72_95bit_with_keep.sv
axi_stream_cache_72_95bit_with_keep #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_cache_b1(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axi_stream_cache_B1_auto.rb', line 9

def axi_stream_cache_b1(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_cache_b1','../../axi/AXI_stream/stream_cache/axi_stream_cache_B1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_cache_b1','../../axi/AXI_stream/stream_cache/axi_stream_cache_B1.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_cache_b1(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_cache_b1_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_cache_b1_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axi_stream_cache_B1_auto.rb', line 50

def axi_stream_cache_b1_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_cache_B1_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/stream_cache/axi_stream_cache_B1.sv
axi_stream_cache_B1 #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_cache_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axi_stream_cache_auto.rb', line 50

def axi_stream_cache_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_cache_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/stream_cache/axi_stream_cache.sv
axi_stream_cache #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_cache_mirror(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axi_stream_cache_mirror_auto.rb', line 9

def axi_stream_cache_mirror(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_cache_mirror','../../axi/AXI_stream/stream_cache/axi_stream_cache_mirror.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_cache_mirror','../../axi/AXI_stream/stream_cache/axi_stream_cache_mirror.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:mirror,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:mirror,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_cache_mirror(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_cache_mirror_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_cache_mirror_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axi_stream_cache_mirror_auto.rb', line 50

def axi_stream_cache_mirror_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_cache_mirror_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/stream_cache/axi_stream_cache_mirror.sv
axi_stream_cache_mirror #{instance_name}(
/*  axi_stream_inf.mirror    */ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.out_mirror*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_cache_verb(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axi_stream_cache_verb_auto.rb', line 9

def axi_stream_cache_verb(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_cache_verb','../../axi/AXI_stream/stream_cache/axi_stream_cache_verb.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_cache_verb','../../axi/AXI_stream/stream_cache/axi_stream_cache_verb.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_cache_verb(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_cache_verb_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_cache_verb_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axi_stream_cache_verb_auto.rb', line 50

def axi_stream_cache_verb_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_cache_verb_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/stream_cache/axi_stream_cache_verb.sv
axi_stream_cache_verb #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_interconnect_m2s_a1(num: 8, s00: "s00", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/tdl/axi_stream/axi_stream_interconnect_M2S_A1.rb', line 9

def axi_stream_interconnect_m2s_a1(
    num:nil,
    s00:"s00",
    m00:"m00",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_interconnect_m2s_a1','../../axi/AXI_stream/axi_stream_interconnect_M2S_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_interconnect_m2s_a1','../../axi/AXI_stream/axi_stream_interconnect_M2S_A1.sv'])
    return_stream = self

    s00 = AxiStream.same_name_socket(:from_up,mix=false,s00,nil,belong_to_module) unless s00.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=true,m00,nil,belong_to_module) unless m00.is_a? String

    if up_stream.nil? && s00.eql?("s00")
        up_stream = self.copy(name:"s00")
        return_stream = up_stream
    end

    s00 = up_stream if up_stream
    m00 = self unless self==belong_to_module.AxiStream_NC

    num = dimension_num(s00)  unless num

    belong_to_module.AxiStream_draw << axi_stream_interconnect_m2s_a1_draw(
        num:num,
        s00:s00,
        m00:m00,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_interconnect_m2s_bind_tuser(num: 8, s00: "s00", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axi_stream_interconnect_M2S_bind_tuser_auto.rb', line 9

def axi_stream_interconnect_m2s_bind_tuser(
    num:8,
    s00:"s00",
    m00:"m00",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_interconnect_m2s_bind_tuser','../../axi/AXI_stream/axi_stream_interconnect_M2S_bind_tuser.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_interconnect_m2s_bind_tuser','../../axi/AXI_stream/axi_stream_interconnect_M2S_bind_tuser.sv'])
    return_stream = self
    
    s00 = AxiStream.same_name_socket(:from_up,mix=false,s00,nil,belong_to_module) unless s00.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=true,m00,nil,belong_to_module) unless m00.is_a? String
    
    if up_stream.nil? && s00.eql?("s00") && (!(m00.eql?("m00")) || !down_stream.nil?)
        # up_stream = self.copy(name:"s00")
        # return_stream = up_stream
        m00 = down_stream if down_stream
        return down_stream.axi_stream_interconnect_m2s_bind_tuser(s00:self)
    end

    s00 = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        m00 = self
    else
        if down_stream
            m00 = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_interconnect_m2s_bind_tuser_draw(
        num:num,
        s00:s00,
        m00:m00,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_long_cache(depth: 8192, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axi_stream_long_cache_auto.rb', line 9

def axi_stream_long_cache(
    depth:8192,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_long_cache','../../axi/AXI_stream/stream_cache/axi_stream_long_cache.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_long_cache','../../axi/AXI_stream/stream_cache/axi_stream_long_cache.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_long_cache(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_long_cache_draw(
        depth:depth,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_long_fifo(depth: 2, byte_depth: 8192*2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/tdl/axi_stream/axi_stream_long_fifo_auto.rb', line 9

def axi_stream_long_fifo(
    depth:2,
    byte_depth:8192*2,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_long_fifo','../../axi/AXI_stream/packet_fifo/axi_stream_long_fifo.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_long_fifo','../../axi/AXI_stream/packet_fifo/axi_stream_long_fifo.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_long_fifo(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_long_fifo_draw(
        depth:depth,
        byte_depth:byte_depth,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_long_fifo_draw(depth: 2, byte_depth: 8192*2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/tdl/axi_stream/axi_stream_long_fifo_auto.rb', line 54

def axi_stream_long_fifo_draw(
    depth:2,
    byte_depth:8192*2,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        depth,
        byte_depth,
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_long_fifo_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/packet_fifo/axi_stream_long_fifo.sv
axi_stream_long_fifo#(
.DEPTH         (#{align_signal(depth)}),
.BYTE_DEPTH    (#{align_signal(byte_depth)})
) #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_long_fifo_verb(depth: 2, byte_depth: 8192*2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/tdl/axi_stream/axi_stream_long_fifo_verb_auto.rb', line 9

def axi_stream_long_fifo_verb(
    depth:2,
    byte_depth:8192*2,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_long_fifo_verb','../../axi/AXI_stream/packet_fifo/axi_stream_long_fifo_verb.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_long_fifo_verb','../../axi/AXI_stream/packet_fifo/axi_stream_long_fifo_verb.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_long_fifo_verb(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_long_fifo_verb_draw(
        depth:depth,
        byte_depth:byte_depth,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_packet_fifo(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axi_stream_packet_fifo_auto.rb', line 9

def axi_stream_packet_fifo(
    depth:2   ,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_packet_fifo','../../axi/AXI_stream/packet_fifo/axi_stream_packet_fifo.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_packet_fifo','../../axi/AXI_stream/packet_fifo/axi_stream_packet_fifo.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_packet_fifo(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_packet_fifo_draw(
        depth:depth,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_packet_fifo_draw(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/tdl/axi_stream/axi_stream_packet_fifo_auto.rb', line 52

def axi_stream_packet_fifo_draw(
    depth:2   ,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        depth,
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_packet_fifo_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/packet_fifo/axi_stream_packet_fifo.sv
axi_stream_packet_fifo#(
.DEPTH    (#{align_signal(depth)})
) #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_packet_fifo_with_info(depth: 2, esize: 8, info_in: "info_in", info_out: "info_out", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/tdl/axi_stream/axi_stream_packet_fifo_with_info_auto.rb', line 9

def axi_stream_packet_fifo_with_info(
    depth:2,
    esize:8,
    info_in:"info_in",
    info_out:"info_out",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_packet_fifo_with_info','../../axi/AXI_stream/packet_fifo/axi_stream_packet_fifo_with_info.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_packet_fifo_with_info','../../axi/AXI_stream/packet_fifo/axi_stream_packet_fifo_with_info.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_packet_fifo_with_info(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_packet_fifo_with_info_draw(
        depth:depth,
        esize:esize,
        info_in:info_in,
        info_out:info_out,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_packet_fifo_with_info_draw(depth: 2, esize: 8, info_in: "info_in", info_out: "info_out", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/tdl/axi_stream/axi_stream_packet_fifo_with_info_auto.rb', line 58

def axi_stream_packet_fifo_with_info_draw(
    depth:2,
    esize:8,
    info_in:"info_in",
    info_out:"info_out",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        depth,
        esize,
        info_in,
        info_out,
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_packet_fifo_with_info_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/packet_fifo/axi_stream_packet_fifo_with_info.sv
axi_stream_packet_fifo_with_info#(
.DEPTH    (#{align_signal(depth)}),
.ESIZE    (#{align_signal(esize)})
) #{instance_name}(
/*  input  [ESIZE-1:0]   */ .info_in  (#{align_signal(info_in,q_mark=false)}),
/*  output [ESIZE-1:0]   */ .info_out (#{align_signal(info_out,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_partition(valve: "valve", partition_len: "partition_len", req_new_len: "req_new_len", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/tdl/axi_stream/axi_stream_partition_auto.rb', line 9

def axi_stream_partition(
    valve:"valve",
    partition_len:"partition_len",
    req_new_len:"req_new_len",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_partition','../../axi/AXI_stream/axi_stream_partition.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_partition','../../axi/AXI_stream/axi_stream_partition.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_partition(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_partition_draw(
        valve:valve,
        partition_len:partition_len,
        req_new_len:req_new_len,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_partition_a1(valve: "valve", partition_len: "partition_len", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/tdl/axi_stream/axi_stream_partition_A1_auto.rb', line 9

def axi_stream_partition_a1(
    valve:"valve",
    partition_len:"partition_len",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_partition_a1','../../axi/AXI_stream/axi_stream_partition_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_partition_a1','../../axi/AXI_stream/axi_stream_partition_A1.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_partition_a1(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_partition_a1_draw(
        valve:valve,
        partition_len:partition_len,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_stream_partition_a1_draw(valve: "valve", partition_len: "partition_len", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/tdl/axi_stream/axi_stream_partition_A1_auto.rb', line 54

def axi_stream_partition_a1_draw(
    valve:"valve",
    partition_len:"partition_len",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        valve,
        partition_len,
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_partition_A1_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axi_stream_partition_A1.sv
axi_stream_partition_A1 #{instance_name}(
/*  input                */ .valve         (#{align_signal(valve,q_mark=false)}),
/*  input  [31:0]        */ .partition_len (#{align_signal(partition_len,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in       (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out      (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_partition_draw(valve: "valve", partition_len: "partition_len", req_new_len: "req_new_len", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/tdl/axi_stream/axi_stream_partition_auto.rb', line 56

def axi_stream_partition_draw(
    valve:"valve",
    partition_len:"partition_len",
    req_new_len:"req_new_len",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        valve,
        partition_len,
        req_new_len,
        axis_in,
        axis_out
    )
    instance_name = "axi_stream_partition_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axi_stream_partition.sv
axi_stream_partition #{instance_name}(
/*  input                */ .valve         (#{align_signal(valve,q_mark=false)}),
/*  input  [31:0]        */ .partition_len (#{align_signal(partition_len,q_mark=false)}),
/*  output               */ .req_new_len   (#{align_signal(req_new_len,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in       (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out      (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axi_stream_s2m(addr, *down_streams) ⇒ Object



7
8
9
10
11
# File 'lib/tdl/axi_stream/bak/axi_stream_S2M.rb', line 7

def axi_stream_s2m(addr,*down_streams)
    $_draw = lambda { s2m_sub_inst(down_streams.length) + s2m_sub_direct(*down_streams)+ axi_stream_s2m_draw(addr,down_streams.length) }
    @correlation_proc += $_draw.call
    return self
end

#axi_stream_s2m_draw(addr, num = 0) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/tdl/axi_stream/bak/axi_stream_S2M.rb', line 32

def axi_stream_s2m_draw(addr,num=0)
"
axi_stream_interconnect_S2M  #(
.NUM        (#{num})
)axi_stream_interconnect_S2M_#{signal}_inst(
/*  input [NSIZE-1:0]     */ addr   (#{align_signal(addr)}),
/*  axi_stream_inf.slaver */ s00    (#{signal}),
/*  axi_stream_inf.master */ m00    (sub_#{(signal)})//[NUM-1:0],
);
"
end

#axi_stream_wide_fifo(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axi_stream_wide_fifo_auto.rb', line 9

def axi_stream_wide_fifo(
    depth:2,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_stream_wide_fifo','../../axi/AXI_stream/packet_fifo/axi_stream_wide_fifo.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_stream_wide_fifo','../../axi/AXI_stream/packet_fifo/axi_stream_wide_fifo.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axi_stream_wide_fifo(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_stream_wide_fifo_draw(
        depth:depth,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_streams_combin(mode: "BOTH", cut_or_combin_body: "ON", dsize: 8, new_body_len: "new_body_len", trigger_signal: "trigger_signal", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/tdl/axi_stream/axi_streams_combin_auto.rb', line 9

def axi_streams_combin(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    dsize:8,
    new_body_len:"new_body_len",
    trigger_signal:"trigger_signal",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_streams_combin','../../axi/AXI_stream/axi_streams_combin.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_streams_combin','../../axi/AXI_stream/axi_streams_combin.sv'])
    return_stream = self
    
    head_inf = AxiStream.same_name_socket(:from_up,mix=true,head_inf,nil,belong_to_module) unless head_inf.is_a? String
    body_inf = AxiStream.same_name_socket(:from_up,mix=true,body_inf,nil,belong_to_module) unless body_inf.is_a? String
    end_inf = AxiStream.same_name_socket(:from_up,mix=true,end_inf,nil,belong_to_module) unless end_inf.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=true,m00,nil,belong_to_module) unless m00.is_a? String
    
    if up_stream.nil? && body_inf.eql?("body_inf") && (!(m00.eql?("m00")) || !down_stream.nil?)
        # up_stream = self.copy(name:"body_inf")
        # return_stream = up_stream
        m00 = down_stream if down_stream
        return down_stream.axi_streams_combin(body_inf:self)
    end

    body_inf = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        m00 = self
    else
        if down_stream
            m00 = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_streams_combin_draw(
        mode:mode,
        cut_or_combin_body:cut_or_combin_body,
        dsize:dsize,
        new_body_len:new_body_len,
        trigger_signal:trigger_signal,
        head_inf:head_inf,
        body_inf:body_inf,
        end_inf:end_inf,
        m00:m00,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_streams_combin_a1(mode: "BOTH", cut_or_combin_body: "ON", new_body_len: "new_body_len", trigger_signal: "trigger_signal", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/tdl/axi_stream/axi_streams_combin_A1_auto.rb', line 9

def axi_streams_combin_a1(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    new_body_len:"new_body_len",
    trigger_signal:"trigger_signal",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_streams_combin_a1','../../axi/AXI_stream/axi_streams_combin_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_streams_combin_a1','../../axi/AXI_stream/axi_streams_combin_A1.sv'])
    return_stream = self
    
    head_inf = AxiStream.same_name_socket(:from_up,mix=true,head_inf,nil,belong_to_module) unless head_inf.is_a? String
    body_inf = AxiStream.same_name_socket(:from_up,mix=true,body_inf,nil,belong_to_module) unless body_inf.is_a? String
    end_inf = AxiStream.same_name_socket(:from_up,mix=true,end_inf,nil,belong_to_module) unless end_inf.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=true,m00,nil,belong_to_module) unless m00.is_a? String
    
    if up_stream.nil? && body_inf.eql?("body_inf") && (!(m00.eql?("m00")) || !down_stream.nil?)
        # up_stream = self.copy(name:"body_inf")
        # return_stream = up_stream
        m00 = down_stream if down_stream
        return down_stream.axi_streams_combin_a1(body_inf:self)
    end

    body_inf = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        m00 = self
    else
        if down_stream
            m00 = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_streams_combin_a1_draw(
        mode:mode,
        cut_or_combin_body:cut_or_combin_body,
        new_body_len:new_body_len,
        trigger_signal:trigger_signal,
        head_inf:head_inf,
        body_inf:body_inf,
        end_inf:end_inf,
        m00:m00,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_streams_combin_draw(mode: "BOTH", cut_or_combin_body: "ON", dsize: 8, new_body_len: "new_body_len", trigger_signal: "trigger_signal", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/tdl/axi_stream/axi_streams_combin_auto.rb', line 66

def axi_streams_combin_draw(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    dsize:8,
    new_body_len:"new_body_len",
    trigger_signal:"trigger_signal",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        mode,
        cut_or_combin_body,
        dsize,
        new_body_len,
        trigger_signal,
        head_inf,
        body_inf,
        end_inf,
        m00
    )
    instance_name = "axi_streams_combin_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axi_streams_combin.sv
axi_streams_combin#(
.MODE                  (#{align_signal(mode)}),
.CUT_OR_COMBIN_BODY    (#{align_signal(cut_or_combin_body)}),
.DSIZE                 (#{align_signal(dsize)})
) #{instance_name}(
/*  input  [15:0]        */ .new_body_len   (#{align_signal(new_body_len,q_mark=false)}),
/*  input                */ .trigger_signal (#{align_signal(trigger_signal,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .head_inf       (#{align_signal(head_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .body_inf       (#{align_signal(body_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .end_inf        (#{align_signal(end_inf,q_mark=false)}),
/*  axi_stream_inf.master*/ .m00            (#{align_signal(m00,q_mark=false)})
);
"
end

#axi_streams_scaler(mode: "BOTH", cut_or_combin_body: "ON", dsize: 8, new_body_len: "new_body_len", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/tdl/axi_stream/bak/axi_streams_scaler.rb', line 9

def axi_streams_scaler(mode:"BOTH",cut_or_combin_body:"ON",dsize:8,new_body_len:"new_body_len",head_inf:"head_inf",body_inf:"body_inf",end_inf:"end_inf",m00:"m00",up_stream:nil,down_stream:nil)
    return_stream = self

    if up_stream==nil && body_inf=="body_inf"
        up_stream = self.copy(name:"body_inf")
        return_stream = up_stream
    end

    body_inf = up_stream if up_stream
    m00 = self

    $_draw = lambda { axi_streams_scaler_draw(mode:mode,cut_or_combin_body:cut_or_combin_body,dsize:dsize,new_body_len:new_body_len,head_inf:head_inf,body_inf:body_inf,end_inf:end_inf,m00:m00,up_stream:up_stream,down_stream:down_stream) }
    @correlation_proc += $_draw.call
    return return_stream
end

#axi_streams_scaler_a1(mode: "BOTH", cut_or_combin_body: "ON", new_body_len: "new_body_len", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/tdl/axi_stream/axi_streams_scaler_A1_auto.rb', line 9

def axi_streams_scaler_a1(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    new_body_len:"new_body_len",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axi_streams_scaler_a1','../../axi/AXI_stream/axi_streams_scaler_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axi_streams_scaler_a1','../../axi/AXI_stream/axi_streams_scaler_A1.sv'])
    return_stream = self
    
    head_inf = AxiStream.same_name_socket(:from_up,mix=true,head_inf,nil,belong_to_module) unless head_inf.is_a? String
    body_inf = AxiStream.same_name_socket(:from_up,mix=true,body_inf,nil,belong_to_module) unless body_inf.is_a? String
    end_inf = AxiStream.same_name_socket(:from_up,mix=true,end_inf,nil,belong_to_module) unless end_inf.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=true,m00,nil,belong_to_module) unless m00.is_a? String
    
    if up_stream.nil? && body_inf.eql?("body_inf") && (!(m00.eql?("m00")) || !down_stream.nil?)
        # up_stream = self.copy(name:"body_inf")
        # return_stream = up_stream
        m00 = down_stream if down_stream
        return down_stream.axi_streams_scaler_a1(body_inf:self)
    end

    body_inf = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        m00 = self
    else
        if down_stream
            m00 = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axi_streams_scaler_a1_draw(
        mode:mode,
        cut_or_combin_body:cut_or_combin_body,
        new_body_len:new_body_len,
        head_inf:head_inf,
        body_inf:body_inf,
        end_inf:end_inf,
        m00:m00,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axi_streams_scaler_draw(mode: "BOTH", cut_or_combin_body: "ON", dsize: 8, new_body_len: "new_body_len", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/tdl/axi_stream/bak/axi_streams_scaler.rb', line 25

def axi_streams_scaler_draw(mode:"BOTH",cut_or_combin_body:"ON",dsize:8,new_body_len:"new_body_len",head_inf:"head_inf",body_inf:"body_inf",end_inf:"end_inf",m00:"m00",up_stream:nil,down_stream:nil)
    large_name_len(mode,cut_or_combin_body,dsize,new_body_len,head_inf,body_inf,end_inf,m00)
"
axi_streams_scaler#(
.MODE                  (#{align_signal(mode)}),
.CUT_OR_COMBIN_BODY    (#{align_signal(cut_or_combin_body)}),
.DSIZE                 (#{align_signal(dsize,q_mark=false)})
) axi_streams_scaler_#{signal}_inst(
/*  input  [15:0]        */ .new_body_len (#{align_signal(new_body_len,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .head_inf     (#{align_signal(head_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .body_inf     (#{align_signal(body_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .end_inf      (#{align_signal(end_inf,q_mark=false)}),
/*  axi_stream_inf.master*/ .m00          (#{align_signal(m00,q_mark=false)})
);
"
end

#axis_append(mode: "BOTH", dsize: 8, head_field_len: 16*8, head_field_name: "HEAD Filed", end_field_len: 16*8, end_field_name: "END Filed", head_value: "head_value", end_value: "end_value", origin_in: "origin_in", append_out: "append_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/tdl/axi_stream/axis_append_auto.rb', line 9

def axis_append(
    mode:"BOTH",
    dsize:8,
    head_field_len:16*8,
    head_field_name:"HEAD Filed",
    end_field_len:16*8,
    end_field_name:"END Filed",
    head_value:"head_value",
    end_value:"end_value",
    origin_in:"origin_in",
    append_out:"append_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_append','../../axi/AXI_stream/axis_append.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_append','../../axi/AXI_stream/axis_append.sv'])
    return_stream = self
    
    origin_in = AxiStream.same_name_socket(:from_up,mix=true,origin_in,nil,belong_to_module) unless origin_in.is_a? String
    append_out = AxiStream.same_name_socket(:to_down,mix=true,append_out,nil,belong_to_module) unless append_out.is_a? String
    
    if up_stream.nil? && origin_in.eql?("origin_in") && (!(append_out.eql?("append_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"origin_in")
        # return_stream = up_stream
        append_out = down_stream if down_stream
        return down_stream.axis_append(origin_in:self)
    end

    origin_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        append_out = self
    else
        if down_stream
            append_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_append_draw(
        mode:mode,
        dsize:dsize,
        head_field_len:head_field_len,
        head_field_name:head_field_name,
        end_field_len:end_field_len,
        end_field_name:end_field_name,
        head_value:head_value,
        end_value:end_value,
        origin_in:origin_in,
        append_out:append_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_append_a1(mode: "BOTH", dsize: 8, head_field_len: 16*8, head_field_name: "HEAD Filed", end_field_len: 16*8, end_field_name: "END Filed", enable: "enable", head_value: "head_value", end_value: "end_value", origin_in: "origin_in", append_out: "append_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/tdl/axi_stream/bak/axis_append_A1.rb', line 9

def axis_append_a1(mode:"BOTH",dsize:8,head_field_len:16*8,head_field_name:"HEAD Filed",end_field_len:16*8,end_field_name:"END Filed",enable:"enable",head_value:"head_value",end_value:"end_value",origin_in:"origin_in",append_out:"append_out",up_stream:nil,down_stream:nil)
    origin_in = up_stream if up_stream
    append_out = self

    $_draw = lambda { axis_append_a1_draw(mode:mode,dsize:dsize,head_field_len:head_field_len,head_field_name:head_field_name,end_field_len:end_field_len,end_field_name:end_field_name,enable:enable,head_value:head_value,end_value:end_value,origin_in:origin_in,append_out:append_out,up_stream:up_stream,down_stream:down_stream) }
    @correlation_proc += $_draw.call
    return self
end

#axis_append_a1_draw(mode: "BOTH", dsize: 8, head_field_len: 16*8, head_field_name: "HEAD Filed", end_field_len: 16*8, end_field_name: "END Filed", enable: "enable", head_value: "head_value", end_value: "end_value", origin_in: "origin_in", append_out: "append_out", up_stream: nil, down_stream: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/tdl/axi_stream/bak/axis_append_A1.rb', line 18

def axis_append_a1_draw(mode:"BOTH",dsize:8,head_field_len:16*8,head_field_name:"HEAD Filed",end_field_len:16*8,end_field_name:"END Filed",enable:"enable",head_value:"head_value",end_value:"end_value",origin_in:"origin_in",append_out:"append_out",up_stream:nil,down_stream:nil)
    large_name_len(mode,dsize,head_field_len,head_field_name,end_field_len,end_field_name,enable,head_value,end_value,origin_in,append_out)
"
axis_append_A1#(
.MODE               (#{align_signal(mode)}),
.DSIZE              (#{align_signal(dsize)}),
.HEAD_FIELD_LEN     (#{align_signal(head_field_len)}),
.HEAD_FIELD_NAME    (#{align_signal(head_field_name)}),
.END_FIELD_LEN      (#{align_signal(end_field_len)}),
.END_FIELD_NAME     (#{align_signal(end_field_name)})
) axis_append_a1_#{signal}_inst(
/*  input                            */ .enable     (#{align_signal(enable,q_mark=false)}),
/*  input  [HEAD_FIELD_LEN*DSIZE-1:0]*/ .head_value (#{align_signal(head_value,q_mark=false)}),
/*  input  [END_FIELD_LEN*DSIZE-1:0] */ .end_value  (#{align_signal(end_value,q_mark=false)}),
/*  axi_stream_inf.slaver            */ .origin_in  (#{align_signal(origin_in,q_mark=false)}),
/*  axi_stream_inf.master            */ .append_out (#{align_signal(append_out,q_mark=false)})
);
"
end

#axis_append_draw(mode: "BOTH", dsize: 8, head_field_len: 16*8, head_field_name: "HEAD Filed", end_field_len: 16*8, end_field_name: "END Filed", head_value: "head_value", end_value: "end_value", origin_in: "origin_in", append_out: "append_out", up_stream: nil, down_stream: nil) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/tdl/axi_stream/axis_append_auto.rb', line 66

def axis_append_draw(
    mode:"BOTH",
    dsize:8,
    head_field_len:16*8,
    head_field_name:"HEAD Filed",
    end_field_len:16*8,
    end_field_name:"END Filed",
    head_value:"head_value",
    end_value:"end_value",
    origin_in:"origin_in",
    append_out:"append_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        mode,
        dsize,
        head_field_len,
        head_field_name,
        end_field_len,
        end_field_name,
        head_value,
        end_value,
        origin_in,
        append_out
    )
    instance_name = "axis_append_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_append.sv
axis_append#(
.MODE               (#{align_signal(mode)}),
.DSIZE              (#{align_signal(dsize)}),
.HEAD_FIELD_LEN     (#{align_signal(head_field_len)}),
.HEAD_FIELD_NAME    (#{align_signal(head_field_name)}),
.END_FIELD_LEN      (#{align_signal(end_field_len)}),
.END_FIELD_NAME     (#{align_signal(end_field_name)})
) #{instance_name}(
/*  input  [HEAD_FIELD_LEN*DSIZE-1:0]*/ .head_value (#{align_signal(head_value,q_mark=false)}),
/*  input  [END_FIELD_LEN*DSIZE-1:0] */ .end_value  (#{align_signal(end_value,q_mark=false)}),
/*  axi_stream_inf.slaver            */ .origin_in  (#{align_signal(origin_in,q_mark=false)}),
/*  axi_stream_inf.master            */ .append_out (#{align_signal(append_out,q_mark=false)})
);
"
end

#axis_combin_with_fifo(mode: "BOTH", cut_or_combin_body: "ON", new_body_len: "new_body_len", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/tdl/axi_stream/axis_combin_with_fifo_auto.rb', line 9

def axis_combin_with_fifo(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    new_body_len:"new_body_len",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_combin_with_fifo','../../axi/AXI_stream/axis_combin_with_fifo.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_combin_with_fifo','../../axi/AXI_stream/axis_combin_with_fifo.sv'])
    return_stream = self
    
    head_inf = AxiStream.same_name_socket(:from_up,mix=true,head_inf,nil,belong_to_module) unless head_inf.is_a? String
    body_inf = AxiStream.same_name_socket(:from_up,mix=true,body_inf,nil,belong_to_module) unless body_inf.is_a? String
    end_inf = AxiStream.same_name_socket(:from_up,mix=true,end_inf,nil,belong_to_module) unless end_inf.is_a? String
    m00 = AxiStream.same_name_socket(:to_down,mix=true,m00,nil,belong_to_module) unless m00.is_a? String
    
    if up_stream.nil? && body_inf.eql?("body_inf") && (!(m00.eql?("m00")) || !down_stream.nil?)
        # up_stream = self.copy(name:"body_inf")
        # return_stream = up_stream
        m00 = down_stream if down_stream
        return down_stream.axis_combin_with_fifo(body_inf:self)
    end

    body_inf = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        m00 = self
    else
        if down_stream
            m00 = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_combin_with_fifo_draw(
        mode:mode,
        cut_or_combin_body:cut_or_combin_body,
        new_body_len:new_body_len,
        head_inf:head_inf,
        body_inf:body_inf,
        end_inf:end_inf,
        m00:m00,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_combin_with_fifo_draw(mode: "BOTH", cut_or_combin_body: "ON", new_body_len: "new_body_len", head_inf: "head_inf", body_inf: "body_inf", end_inf: "end_inf", m00: "m00", up_stream: nil, down_stream: nil) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/tdl/axi_stream/axis_combin_with_fifo_auto.rb', line 62

def axis_combin_with_fifo_draw(
    mode:"BOTH",
    cut_or_combin_body:"ON",
    new_body_len:"new_body_len",
    head_inf:"head_inf",
    body_inf:"body_inf",
    end_inf:"end_inf",
    m00:"m00",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        mode,
        cut_or_combin_body,
        new_body_len,
        head_inf,
        body_inf,
        end_inf,
        m00
    )
    instance_name = "axis_combin_with_fifo_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_combin_with_fifo.sv
axis_combin_with_fifo#(
.MODE                  (#{align_signal(mode)}),
.CUT_OR_COMBIN_BODY    (#{align_signal(cut_or_combin_body)})
) #{instance_name}(
/*  input  [15:0]        */ .new_body_len (#{align_signal(new_body_len,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .head_inf     (#{align_signal(head_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .body_inf     (#{align_signal(body_inf,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .end_inf      (#{align_signal(end_inf,q_mark=false)}),
/*  axi_stream_inf.master*/ .m00          (#{align_signal(m00,q_mark=false)})
);
"
end

#axis_connect_pipe(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_connect_pipe_auto.rb', line 9

def axis_connect_pipe(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_connect_pipe','../../axi/AXI_stream/axis_connect_pipe.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_connect_pipe','../../axi/AXI_stream/axis_connect_pipe.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_connect_pipe(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_connect_pipe_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_connect_pipe_a1(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_connect_pipe_A1.sv_auto.rb', line 9

def axis_connect_pipe_a1(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_connect_pipe_a1','../../axi/AXI_stream/axis_connect_pipe_A1.sv.bak')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_connect_pipe_a1','../../axi/AXI_stream/axis_connect_pipe_A1.sv.bak'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_connect_pipe_a1(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_connect_pipe_a1_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_connect_pipe_a1_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axis_connect_pipe_A1.sv_auto.rb', line 50

def axis_connect_pipe_a1_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axis_connect_pipe_A1_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_connect_pipe_A1.sv.bak
axis_connect_pipe_A1 #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_connect_pipe_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axis_connect_pipe_auto.rb', line 50

def axis_connect_pipe_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axis_connect_pipe_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_connect_pipe.sv
axis_connect_pipe #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_connect_pipe_with_info(ifsize: 32, info_in: "info_in", info_out: "info_out", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/tdl/axi_stream/axis_connect_pipe_with_info_auto.rb', line 9

def axis_connect_pipe_with_info(
    ifsize:32,
    info_in:"info_in",
    info_out:"info_out",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_connect_pipe_with_info','../../axi/AXI_stream/axis_connect_pipe_with_info.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_connect_pipe_with_info','../../axi/AXI_stream/axis_connect_pipe_with_info.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_connect_pipe_with_info(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_connect_pipe_with_info_draw(
        ifsize:ifsize,
        info_in:info_in,
        info_out:info_out,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_connect_pipe_with_info_draw(ifsize: 32, info_in: "info_in", info_out: "info_out", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/tdl/axi_stream/axis_connect_pipe_with_info_auto.rb', line 56

def axis_connect_pipe_with_info_draw(
    ifsize:32,
    info_in:"info_in",
    info_out:"info_out",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        ifsize,
        info_in,
        info_out,
        axis_in,
        axis_out
    )
    instance_name = "axis_connect_pipe_with_info_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_connect_pipe_with_info.sv
axis_connect_pipe_with_info#(
.IFSIZE    (#{align_signal(ifsize)})
) #{instance_name}(
/*  input  [IFSIZE-1:0]  */ .info_in  (#{align_signal(info_in,q_mark=false)}),
/*  output [IFSIZE-1:0]  */ .info_out (#{align_signal(info_out,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_direct(slaver: "slaver", master: "master", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_direct_auto.rb', line 9

def axis_direct(
    slaver:"slaver",
    master:"master",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_direct','../../axi/AXI_stream/axis_direct.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_direct','../../axi/AXI_stream/axis_direct.sv'])
    return_stream = self
    
    slaver = AxiStream.same_name_socket(:from_up,mix=true,slaver,nil,belong_to_module) unless slaver.is_a? String
    master = AxiStream.same_name_socket(:to_down,mix=true,master,nil,belong_to_module) unless master.is_a? String
    
    if up_stream.nil? && slaver.eql?("slaver") && (!(master.eql?("master")) || !down_stream.nil?)
        # up_stream = self.copy(name:"slaver")
        # return_stream = up_stream
        master = down_stream if down_stream
        return down_stream.axis_direct(slaver:self)
    end

    slaver = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        master = self
    else
        if down_stream
            master = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_direct_draw(
        slaver:slaver,
        master:master,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_direct_draw(slaver: "slaver", master: "master", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axis_direct_auto.rb', line 50

def axis_direct_draw(
    slaver:"slaver",
    master:"master",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        slaver,
        master
    )
    instance_name = "axis_direct_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_direct.sv
axis_direct #{instance_name}(
/*  axi_stream_inf.slaver*/ .slaver (#{align_signal(slaver,q_mark=false)}),
/*  axi_stream_inf.master*/ .master (#{align_signal(master,q_mark=false)})
);
"
end

#axis_filter(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_filter_auto.rb', line 9

def axis_filter(
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_filter','../../axi/AXI_stream/axis_filter.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_filter','../../axi/AXI_stream/axis_filter.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_filter(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_filter_draw(
        button:button,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_filter_draw(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/tdl/axi_stream/axis_filter_auto.rb', line 52

def axis_filter_draw(
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        button,
        axis_in,
        axis_out
    )
    instance_name = "axis_filter_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_filter.sv
axis_filter #{instance_name}(
/*  input                */ .button   (#{align_signal(button,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_head_cut(len: 1, slaver: "slaver", master: "master", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_head_cut_auto.rb', line 9

def axis_head_cut(
    len:1,
    slaver:"slaver",
    master:"master",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_head_cut','../../axi/AXI_stream/axis_head_cut.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_head_cut','../../axi/AXI_stream/axis_head_cut.sv'])
    return_stream = self
    
    slaver = AxiStream.same_name_socket(:from_up,mix=true,slaver,nil,belong_to_module) unless slaver.is_a? String
    master = AxiStream.same_name_socket(:to_down,mix=true,master,nil,belong_to_module) unless master.is_a? String
    
    if up_stream.nil? && slaver.eql?("slaver") && (!(master.eql?("master")) || !down_stream.nil?)
        # up_stream = self.copy(name:"slaver")
        # return_stream = up_stream
        master = down_stream if down_stream
        return down_stream.axis_head_cut(slaver:self)
    end

    slaver = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        master = self
    else
        if down_stream
            master = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_head_cut_draw(
        len:len,
        slaver:slaver,
        master:master,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_length_fill(length: "length", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_length_fill_auto.rb', line 9

def axis_length_fill(
    length:"length",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_length_fill','../../axi/AXI_stream/axis_length_fill.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_length_fill','../../axi/AXI_stream/axis_length_fill.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_length_fill(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_length_fill_draw(
        length:length,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_length_fill_draw(length: "length", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/tdl/axi_stream/axis_length_fill_auto.rb', line 52

def axis_length_fill_draw(
    length:"length",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        length,
        axis_in,
        axis_out
    )
    instance_name = "axis_length_fill_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_length_fill.sv
axis_length_fill #{instance_name}(
/*  input  [15:0]        */ .length   (#{align_signal(length,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_length_split(length: "length", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_length_split_auto.rb', line 9

def axis_length_split(
    length:"length",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_length_split','../../axi/AXI_stream/axis_length_split.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_length_split','../../axi/AXI_stream/axis_length_split.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_length_split(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_length_split_draw(
        length:length,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_length_split_draw(length: "length", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/tdl/axi_stream/axis_length_split_auto.rb', line 52

def axis_length_split_draw(
    length:"length",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        length,
        axis_in,
        axis_out
    )
    instance_name = "axis_length_split_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_length_split.sv
axis_length_split #{instance_name}(
/*  input  [31:0]        */ .length   (#{align_signal(length,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_length_split_with_addr(addr_step: 1024, origin_addr: "origin_addr", length: "length", band_addr: "band_addr", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/tdl/axi_stream/axis_length_split_with_addr_auto.rb', line 9

def axis_length_split_with_addr(
    addr_step:1024      ,
    origin_addr:"origin_addr",
    length:"length",
    band_addr:"band_addr",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_length_split_with_addr','../../axi/AXI_stream/axis_length_split_with_addr.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_length_split_with_addr','../../axi/AXI_stream/axis_length_split_with_addr.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_length_split_with_addr(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_length_split_with_addr_draw(
        addr_step:addr_step,
        origin_addr:origin_addr,
        length:length,
        band_addr:band_addr,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_length_split_with_addr_draw(addr_step: 1024, origin_addr: "origin_addr", length: "length", band_addr: "band_addr", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/tdl/axi_stream/axis_length_split_with_addr_auto.rb', line 58

def axis_length_split_with_addr_draw(
    addr_step:1024      ,
    origin_addr:"origin_addr",
    length:"length",
    band_addr:"band_addr",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        addr_step,
        origin_addr,
        length,
        band_addr,
        axis_in,
        axis_out
    )
    instance_name = "axis_length_split_with_addr_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_length_split_with_addr.sv
axis_length_split_with_addr#(
.ADDR_STEP    (#{align_signal(addr_step)})
) #{instance_name}(
/*  input  [31:0]        */ .origin_addr (#{align_signal(origin_addr,q_mark=false)}),
/*  input  [31:0]        */ .length      (#{align_signal(length,q_mark=false)}),
/*  output [31:0]        */ .band_addr   (#{align_signal(band_addr,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in     (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out    (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_length_split_with_user(length: "length", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_length_split_writh_user_auto.rb', line 9

def axis_length_split_with_user(
    length:"length",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_length_split_with_user','../../axi/AXI_stream/axis_length_split_writh_user.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_length_split_with_user','../../axi/AXI_stream/axis_length_split_writh_user.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_length_split_with_user(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_length_split_with_user_draw(
        length:length,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_master_empty(master: "master", down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/tdl/axi_stream/axis_master_empty_auto.rb', line 9

def axis_master_empty(
    master:"master",
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_master_empty','../../axi/AXI_stream/axis_master_empty.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_master_empty','../../axi/AXI_stream/axis_master_empty.sv'])
    return_stream = self
    
    master = AxiStream.same_name_socket(:to_down,mix=true,master,nil,belong_to_module) unless master.is_a? String
    
    
    unless self.eql? belong_to_module.AxiStream_NC
        master = self
    else
        if down_stream
            master = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_master_empty_draw(
        master:master,
        down_stream:down_stream)
    return return_stream
end

#axis_master_empty_draw(master: "master", down_stream: nil) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/tdl/axi_stream/axis_master_empty_auto.rb', line 38

def axis_master_empty_draw(
    master:"master",
    down_stream:nil
)

    large_name_len(
        master
    )
    instance_name = "axis_master_empty_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_master_empty.sv
axis_master_empty #{instance_name}(
/*  axi_stream_inf.master*/ .master (#{align_signal(master,q_mark=false)})
);
"
end

#axis_mirror_to_master(depth: 4, mirror: "mirror", master: "master", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_mirror_to_master_auto.rb', line 9

def axis_mirror_to_master(
    depth:4,
    mirror:"mirror",
    master:"master",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_mirror_to_master','../../axi/AXI_stream/axis_mirror_to_master.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_mirror_to_master','../../axi/AXI_stream/axis_mirror_to_master.sv'])
    return_stream = self
    
    mirror = AxiStream.same_name_socket(:mirror,mix=true,mirror,nil,belong_to_module) unless mirror.is_a? String
    master = AxiStream.same_name_socket(:to_down,mix=true,master,nil,belong_to_module) unless master.is_a? String
    
    if up_stream.nil? && mirror.eql?("mirror") && (!(master.eql?("master")) || !down_stream.nil?)
        # up_stream = self.copy(name:"mirror")
        # return_stream = up_stream
        master = down_stream if down_stream
        return down_stream.axis_mirror_to_master(mirror:self)
    end

    mirror = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        master = self
    else
        if down_stream
            master = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_mirror_to_master_draw(
        depth:depth,
        mirror:mirror,
        master:master,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_mirrors(h: 0, l: 0, num: 8, mode: "CDS_MODE", condition_data: "condition_data", axis_in: "axis_in", axis_mirror: "axis_mirror", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/tdl/axi_stream/axis_mirrors_auto.rb', line 9

def axis_mirrors(
    h:0,
    l:0,
    num:8,
    mode:"CDS_MODE",
    condition_data:"condition_data",
    axis_in:"axis_in",
    axis_mirror:"axis_mirror",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_mirrors','../../axi/AXI_stream/axis_mirrors.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_mirrors','../../axi/AXI_stream/axis_mirrors.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_mirror = AxiStream.same_name_socket(:to_down,mix=false,axis_mirror,nil,belong_to_module) unless axis_mirror.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_mirror.eql?("axis_mirror")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_mirror = down_stream if down_stream
        return down_stream.axis_mirrors(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_mirror = self
    else
        if down_stream
            axis_mirror = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_mirrors_draw(
        h:h,
        l:l,
        num:num,
        mode:mode,
        condition_data:condition_data,
        axis_in:axis_in,
        axis_mirror:axis_mirror,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_mirrors_draw(h: 0, l: 0, num: 8, mode: "CDS_MODE", condition_data: "condition_data", axis_in: "axis_in", axis_mirror: "axis_mirror", up_stream: nil, down_stream: nil) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/tdl/axi_stream/axis_mirrors_auto.rb', line 60

def axis_mirrors_draw(
    h:0,
    l:0,
    num:8,
    mode:"CDS_MODE",
    condition_data:"condition_data",
    axis_in:"axis_in",
    axis_mirror:"axis_mirror",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        h,
        l,
        num,
        mode,
        condition_data,
        axis_in,
        axis_mirror
    )
    instance_name = "axis_mirrors_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_mirrors.sv
axis_mirrors#(
.H       (#{align_signal(h)}),
.L       (#{align_signal(l)}),
.NUM     (#{align_signal(num)}),
.MODE    (#{align_signal(mode)})
) #{instance_name}(
/*  input  [H:L]         */ .condition_data (#{align_signal(condition_data,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in        (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_mirror    (#{align_signal(axis_mirror,q_mark=false)})
);
"
end

#axis_pkt_fifo_filter_keep(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_auto.rb', line 9

def axis_pkt_fifo_filter_keep(
    depth:2   ,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_pkt_fifo_filter_keep','../../axi/AXI_stream/packet_fifo/axis_pkt_fifo_filter_keep.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_pkt_fifo_filter_keep','../../axi/AXI_stream/packet_fifo/axis_pkt_fifo_filter_keep.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_pkt_fifo_filter_keep(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_pkt_fifo_filter_keep_draw(
        depth:depth,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_pkt_fifo_filter_keep_a1(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_A1_auto.rb', line 9

def axis_pkt_fifo_filter_keep_a1(
    depth:2   ,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_pkt_fifo_filter_keep_a1','../../axi/AXI_stream/packet_fifo/axis_pkt_fifo_filter_keep_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_pkt_fifo_filter_keep_a1','../../axi/AXI_stream/packet_fifo/axis_pkt_fifo_filter_keep_A1.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_pkt_fifo_filter_keep_a1(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_pkt_fifo_filter_keep_a1_draw(
        depth:depth,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_pkt_fifo_filter_keep_draw(depth: 2, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/tdl/axi_stream/axis_pkt_fifo_filter_keep_auto.rb', line 52

def axis_pkt_fifo_filter_keep_draw(
    depth:2   ,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        depth,
        axis_in,
        axis_out
    )
    instance_name = "axis_pkt_fifo_filter_keep_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/packet_fifo/axis_pkt_fifo_filter_keep.sv
axis_pkt_fifo_filter_keep#(
.DEPTH    (#{align_signal(depth)})
) #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_ram_buffer(length: 4096, wr_en: "wr_en", gen_en: "gen_en", gen_ready: "gen_ready", axis_wr_inf: "axis_wr_inf", axis_data_inf: "axis_data_inf", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/tdl/axi_stream/axis_ram_buffer_auto.rb', line 9

def axis_ram_buffer(
    length:4096,
    wr_en:"wr_en",
    gen_en:"gen_en",
    gen_ready:"gen_ready",
    axis_wr_inf:"axis_wr_inf",
    axis_data_inf:"axis_data_inf",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_ram_buffer','../../axi/AXI_stream/axis_ram_buffer.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_ram_buffer','../../axi/AXI_stream/axis_ram_buffer.sv'])
    return_stream = self
    
    axis_wr_inf = AxiStream.same_name_socket(:from_up,mix=true,axis_wr_inf,nil,belong_to_module) unless axis_wr_inf.is_a? String
    axis_data_inf = AxiStream.same_name_socket(:to_down,mix=true,axis_data_inf,nil,belong_to_module) unless axis_data_inf.is_a? String
    
    if up_stream.nil? && axis_wr_inf.eql?("axis_wr_inf") && (!(axis_data_inf.eql?("axis_data_inf")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_wr_inf")
        # return_stream = up_stream
        axis_data_inf = down_stream if down_stream
        return down_stream.axis_ram_buffer(axis_wr_inf:self)
    end

    axis_wr_inf = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_data_inf = self
    else
        if down_stream
            axis_data_inf = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_ram_buffer_draw(
        length:length,
        wr_en:wr_en,
        gen_en:gen_en,
        gen_ready:gen_ready,
        axis_wr_inf:axis_wr_inf,
        axis_data_inf:axis_data_inf,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_ram_buffer_draw(length: 4096, wr_en: "wr_en", gen_en: "gen_en", gen_ready: "gen_ready", axis_wr_inf: "axis_wr_inf", axis_data_inf: "axis_data_inf", up_stream: nil, down_stream: nil) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/tdl/axi_stream/axis_ram_buffer_auto.rb', line 58

def axis_ram_buffer_draw(
    length:4096,
    wr_en:"wr_en",
    gen_en:"gen_en",
    gen_ready:"gen_ready",
    axis_wr_inf:"axis_wr_inf",
    axis_data_inf:"axis_data_inf",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        length,
        wr_en,
        gen_en,
        gen_ready,
        axis_wr_inf,
        axis_data_inf
    )
    instance_name = "axis_ram_buffer_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_ram_buffer.sv
axis_ram_buffer#(
.LENGTH    (#{align_signal(length)})
) #{instance_name}(
/*  input                */ .wr_en         (#{align_signal(wr_en,q_mark=false)}),
/*  input                */ .gen_en        (#{align_signal(gen_en,q_mark=false)}),
/*  output               */ .gen_ready     (#{align_signal(gen_ready,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_wr_inf   (#{align_signal(axis_wr_inf,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_data_inf (#{align_signal(axis_data_inf,q_mark=false)})
);
"
end

#axis_slaver_pipe(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_slaver_pipe_auto.rb', line 9

def axis_slaver_pipe(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_slaver_pipe','../../axi/AXI_stream/axis_slaver_pipe.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_slaver_pipe','../../axi/AXI_stream/axis_slaver_pipe.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_slaver_pipe(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_slaver_pipe_draw(
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_slaver_pipe_a1(depth: 1, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_slaver_pipe_A1_auto.rb', line 9

def axis_slaver_pipe_a1(
    depth:1,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_slaver_pipe_a1','../../axi/AXI_stream/axis_slaver_pipe_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_slaver_pipe_a1','../../axi/AXI_stream/axis_slaver_pipe_A1.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_slaver_pipe_a1(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_slaver_pipe_a1_draw(
        depth:depth,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_slaver_pipe_a1_draw(depth: 1, axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/tdl/axi_stream/axis_slaver_pipe_A1_auto.rb', line 52

def axis_slaver_pipe_a1_draw(
    depth:1,
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        depth,
        axis_in,
        axis_out
    )
    instance_name = "axis_slaver_pipe_A1_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_slaver_pipe_A1.sv
axis_slaver_pipe_A1#(
.DEPTH    (#{align_signal(depth)})
) #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_slaver_pipe_draw(axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axis_slaver_pipe_auto.rb', line 50

def axis_slaver_pipe_draw(
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        axis_in,
        axis_out
    )
    instance_name = "axis_slaver_pipe_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_slaver_pipe.sv
axis_slaver_pipe #{instance_name}(
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_tdata(h = nil, l = nil) ⇒ Object

Raises:



567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
# File 'lib/tdl/elements/axi_stream.rb', line 567

def axis_tdata(h=nil,l=nil)
    raise TdlError.new("\nARRAY Don't have 'axis_tdata'") 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(".axis_tdata").concat(sqr))
end

#axis_valve(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/tdl/axi_stream/axis_valve_auto.rb', line 9

def axis_valve(
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_valve','../../axi/AXI_stream/axis_valve.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_valve','../../axi/AXI_stream/axis_valve.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_valve(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_valve_draw(
        button:button,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_valve_draw(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/tdl/axi_stream/axis_valve_auto.rb', line 52

def axis_valve_draw(
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        button,
        axis_in,
        axis_out
    )
    instance_name = "axis_valve_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_valve.sv
axis_valve #{instance_name}(
/*  input                */ .button   (#{align_signal(button,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_valve_with_pipe(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/tdl/axi_stream/axis_valve_with_pipe_auto.rb', line 9

def axis_valve_with_pipe(
    mode:"BOTH",
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_valve_with_pipe','../../axi/AXI_stream/axis_valve_with_pipe.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_valve_with_pipe','../../axi/AXI_stream/axis_valve_with_pipe.sv'])
    return_stream = self
    
    axis_in = AxiStream.same_name_socket(:from_up,mix=true,axis_in,nil,belong_to_module) unless axis_in.is_a? String
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    if up_stream.nil? && axis_in.eql?("axis_in") && (!(axis_out.eql?("axis_out")) || !down_stream.nil?)
        # up_stream = self.copy(name:"axis_in")
        # return_stream = up_stream
        axis_out = down_stream if down_stream
        return down_stream.axis_valve_with_pipe(axis_in:self)
    end

    axis_in = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_valve_with_pipe_draw(
        mode:mode,
        button:button,
        axis_in:axis_in,
        axis_out:axis_out,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_valve_with_pipe_draw(button: "button", axis_in: "axis_in", axis_out: "axis_out", up_stream: nil, down_stream: nil) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/tdl/axi_stream/axis_valve_with_pipe_auto.rb', line 54

def axis_valve_with_pipe_draw(
    mode:"BOTH",
    button:"button",
    axis_in:"axis_in",
    axis_out:"axis_out",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        mode,
        button,
        axis_in,
        axis_out
    )
    instance_name = "axis_valve_with_pipe_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/axis_valve_with_pipe.sv
axis_valve_with_pipe#(
.MODE    (#{align_signal(mode)})
) #{instance_name}(
/*  input                */ .button   (#{align_signal(button,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .axis_in  (#{align_signal(axis_in,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#axis_width_combin(slim_axis: "slim_axis", wide_axis: "wide_axis", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_width_combin_auto.rb', line 9

def axis_width_combin(
    slim_axis:"slim_axis",
    wide_axis:"wide_axis",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_width_combin','../../axi/AXI_stream/data_width/axis_width_combin.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_width_combin','../../axi/AXI_stream/data_width/axis_width_combin.sv'])
    return_stream = self
    
    slim_axis = AxiStream.same_name_socket(:from_up,mix=true,slim_axis,nil,belong_to_module) unless slim_axis.is_a? String
    wide_axis = AxiStream.same_name_socket(:to_down,mix=true,wide_axis,nil,belong_to_module) unless wide_axis.is_a? String
    
    if up_stream.nil? && slim_axis.eql?("slim_axis") && (!(wide_axis.eql?("wide_axis")) || !down_stream.nil?)
        # up_stream = self.copy(name:"slim_axis")
        # return_stream = up_stream
        wide_axis = down_stream if down_stream
        return down_stream.axis_width_combin(slim_axis:self)
    end

    slim_axis = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        wide_axis = self
    else
        if down_stream
            wide_axis = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_width_combin_draw(
        slim_axis:slim_axis,
        wide_axis:wide_axis,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_width_combin_a1(slim_axis: "slim_axis", wide_axis: "wide_axis", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_width_combin_A1_auto.rb', line 9

def axis_width_combin_a1(
    slim_axis:"slim_axis",
    wide_axis:"wide_axis",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_width_combin_a1','../../axi/AXI_stream/data_width/axis_width_combin_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_width_combin_a1','../../axi/AXI_stream/data_width/axis_width_combin_A1.sv'])
    return_stream = self
    
    slim_axis = AxiStream.same_name_socket(:from_up,mix=true,slim_axis,nil,belong_to_module) unless slim_axis.is_a? String
    wide_axis = AxiStream.same_name_socket(:to_down,mix=true,wide_axis,nil,belong_to_module) unless wide_axis.is_a? String
    
    if up_stream.nil? && slim_axis.eql?("slim_axis") && (!(wide_axis.eql?("wide_axis")) || !down_stream.nil?)
        # up_stream = self.copy(name:"slim_axis")
        # return_stream = up_stream
        wide_axis = down_stream if down_stream
        return down_stream.axis_width_combin_a1(slim_axis:self)
    end

    slim_axis = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        wide_axis = self
    else
        if down_stream
            wide_axis = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_width_combin_a1_draw(
        slim_axis:slim_axis,
        wide_axis:wide_axis,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_width_combin_draw(slim_axis: "slim_axis", wide_axis: "wide_axis", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axis_width_combin_auto.rb', line 50

def axis_width_combin_draw(
    slim_axis:"slim_axis",
    wide_axis:"wide_axis",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        slim_axis,
        wide_axis
    )
    instance_name = "axis_width_combin_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/data_width/axis_width_combin.sv
axis_width_combin #{instance_name}(
/*  axi_stream_inf.slaver*/ .slim_axis (#{align_signal(slim_axis,q_mark=false)}),
/*  axi_stream_inf.master*/ .wide_axis (#{align_signal(wide_axis,q_mark=false)})
);
"
end

#axis_width_convert(in_axis: "in_axis", out_axis: "out_axis", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_width_convert_auto.rb', line 9

def axis_width_convert(
    in_axis:"in_axis",
    out_axis:"out_axis",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_width_convert','../../axi/AXI_stream/data_width/axis_width_convert.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_width_convert','../../axi/AXI_stream/data_width/axis_width_convert.sv'])
    return_stream = self
    
    in_axis = AxiStream.same_name_socket(:from_up,mix=true,in_axis,nil,belong_to_module) unless in_axis.is_a? String
    out_axis = AxiStream.same_name_socket(:to_down,mix=true,out_axis,nil,belong_to_module) unless out_axis.is_a? String
    
    if up_stream.nil? && in_axis.eql?("in_axis") && (!(out_axis.eql?("out_axis")) || !down_stream.nil?)
        # up_stream = self.copy(name:"in_axis")
        # return_stream = up_stream
        out_axis = down_stream if down_stream
        return down_stream.axis_width_convert(in_axis:self)
    end

    in_axis = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        out_axis = self
    else
        if down_stream
            out_axis = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_width_convert_draw(
        in_axis:in_axis,
        out_axis:out_axis,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_width_convert_draw(in_axis: "in_axis", out_axis: "out_axis", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axis_width_convert_auto.rb', line 50

def axis_width_convert_draw(
    in_axis:"in_axis",
    out_axis:"out_axis",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        in_axis,
        out_axis
    )
    instance_name = "axis_width_convert_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/data_width/axis_width_convert.sv
axis_width_convert #{instance_name}(
/*  axi_stream_inf.slaver*/ .in_axis  (#{align_signal(in_axis,q_mark=false)}),
/*  axi_stream_inf.master*/ .out_axis (#{align_signal(out_axis,q_mark=false)})
);
"
end

#axis_width_destruct(wide_axis: "wide_axis", slim_axis: "slim_axis", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_width_destruct_auto.rb', line 9

def axis_width_destruct(
    wide_axis:"wide_axis",
    slim_axis:"slim_axis",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_width_destruct','../../axi/AXI_stream/data_width/axis_width_destruct.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_width_destruct','../../axi/AXI_stream/data_width/axis_width_destruct.sv'])
    return_stream = self
    
    wide_axis = AxiStream.same_name_socket(:from_up,mix=true,wide_axis,nil,belong_to_module) unless wide_axis.is_a? String
    slim_axis = AxiStream.same_name_socket(:to_down,mix=true,slim_axis,nil,belong_to_module) unless slim_axis.is_a? String
    
    if up_stream.nil? && wide_axis.eql?("wide_axis") && (!(slim_axis.eql?("slim_axis")) || !down_stream.nil?)
        # up_stream = self.copy(name:"wide_axis")
        # return_stream = up_stream
        slim_axis = down_stream if down_stream
        return down_stream.axis_width_destruct(wide_axis:self)
    end

    wide_axis = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        slim_axis = self
    else
        if down_stream
            slim_axis = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_width_destruct_draw(
        wide_axis:wide_axis,
        slim_axis:slim_axis,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_width_destruct_a1(wide_axis: "wide_axis", slim_axis: "slim_axis", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/axis_width_destruct_A1.sv_auto.rb', line 9

def axis_width_destruct_a1(
    wide_axis:"wide_axis",
    slim_axis:"slim_axis",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('axis_width_destruct_a1','../../axi/AXI_stream/data_width/axis_width_destruct_A1.sv.new')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['axis_width_destruct_a1','../../axi/AXI_stream/data_width/axis_width_destruct_A1.sv.new'])
    return_stream = self
    
    wide_axis = AxiStream.same_name_socket(:from_up,mix=true,wide_axis,nil,belong_to_module) unless wide_axis.is_a? String
    slim_axis = AxiStream.same_name_socket(:to_down,mix=true,slim_axis,nil,belong_to_module) unless slim_axis.is_a? String
    
    if up_stream.nil? && wide_axis.eql?("wide_axis") && (!(slim_axis.eql?("slim_axis")) || !down_stream.nil?)
        # up_stream = self.copy(name:"wide_axis")
        # return_stream = up_stream
        slim_axis = down_stream if down_stream
        return down_stream.axis_width_destruct_a1(wide_axis:self)
    end

    wide_axis = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        slim_axis = self
    else
        if down_stream
            slim_axis = down_stream
        end
    end


    belong_to_module.AxiStream_draw << axis_width_destruct_a1_draw(
        wide_axis:wide_axis,
        slim_axis:slim_axis,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#axis_width_destruct_draw(wide_axis: "wide_axis", slim_axis: "slim_axis", up_stream: nil, down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/tdl/axi_stream/axis_width_destruct_auto.rb', line 50

def axis_width_destruct_draw(
    wide_axis:"wide_axis",
    slim_axis:"slim_axis",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        wide_axis,
        slim_axis
    )
    instance_name = "axis_width_destruct_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/data_width/axis_width_destruct.sv
axis_width_destruct #{instance_name}(
/*  axi_stream_inf.slaver*/ .wide_axis (#{align_signal(wide_axis,q_mark=false)}),
/*  axi_stream_inf.master*/ .slim_axis (#{align_signal(slim_axis,q_mark=false)})
);
"
end

#branch(name: nil, clock: @clock, reset: @reset, dsize: @dsize, freqM: nil) ⇒ Object



119
120
121
122
123
# File 'lib/tdl/elements/axi_stream.rb', line 119

def branch(name:@name,clock:@clock,reset:@reset,dsize:@dsize,freqM:nil)
    a =  copy(name:name,clock:clock,reset:reset,dsize:dsize,freqM:freqM)
    self << a
    return a
end

#clock_reset_taps(def_clock_name, def_reset_name) ⇒ Object



669
670
671
672
# File 'lib/tdl/elements/axi_stream.rb', line 669

def clock_reset_taps(def_clock_name,def_reset_name)

    super(def_clock_name,def_reset_name,self.aclk,self.aresetn)
end

#collect_vector(axis_vector) ⇒ Object



151
152
153
154
155
156
157
# File 'lib/tdl/axi_stream/axi_stream_interconnect.rb', line 151

def collect_vector(axis_vector)
    num = dimension_num(axis_vector)
    if num.eql?(1)
        return self.axis_direct(up_stream:axis_vector)
    end
    belong_to_module.ExOther_inst << collect_vector_draw(num,axis_vector)
end

#direct(slaver: "slaver", master: "master", up_stream: nil, down_stream: nil) ⇒ Object

alias_method :direct,:axis_direct @@pre_inst << lambda

alias_method :direct,:axis_direct
return ""



506
507
508
# File 'lib/tdl/elements/axi_stream.rb', line 506

def direct(slaver:"slaver",master:"master",up_stream:nil,down_stream:nil)
    axis_direct(slaver:slaver,master:master,up_stream:up_stream,down_stream:down_stream)
end

#from_video_stream(video_slaver: nil, mode: "LINE") ⇒ Object



46
47
48
49
# File 'lib/tdl/VideoInf/video_stream_2_axi_stream.rb', line 46

def from_video_stream(video_slaver:nil,mode:"LINE")
    video_inf.to_axi_stream(axi_master:self,mode:mode)
    return video_slaver
end

#gen_big_field_table(master_mode: "OFF", dsize: 8, field_len: 16*8, field_name: "Big Filed", enable: "enable", value: "value", cm_tb: "cm_tb", down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/tdl/axi_stream/gen_big_field_table_auto.rb', line 9

def gen_big_field_table(
    master_mode:"OFF",
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    enable:"enable",
    value:"value",
    cm_tb:"cm_tb",
    down_stream:nil
)

    Tdl.add_to_all_file_paths('gen_big_field_table','../../axi/AXI_stream/gen_big_field_table.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['gen_big_field_table','../../axi/AXI_stream/gen_big_field_table.sv'])
    return_stream = self
    
    cm_tb = AxiStream.same_name_socket(:to_down,mix=true,cm_tb,nil,belong_to_module) unless cm_tb.is_a? String
    
    
    unless self.eql? belong_to_module.AxiStream_NC
        cm_tb = self
    else
        if down_stream
            cm_tb = down_stream
        end
    end


    belong_to_module.AxiStream_draw << gen_big_field_table_draw(
        master_mode:master_mode,
        dsize:dsize,
        field_len:field_len,
        field_name:field_name,
        enable:enable,
        value:value,
        cm_tb:cm_tb,
        down_stream:down_stream)
    return return_stream
end

#gen_big_field_table_draw(master_mode: "OFF", dsize: 8, field_len: 16*8, field_name: "Big Filed", enable: "enable", value: "value", cm_tb: "cm_tb", down_stream: nil) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/tdl/axi_stream/gen_big_field_table_auto.rb', line 50

def gen_big_field_table_draw(
    master_mode:"OFF",
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    enable:"enable",
    value:"value",
    cm_tb:"cm_tb",
    down_stream:nil
)

    large_name_len(
        master_mode,
        dsize,
        field_len,
        field_name,
        enable,
        value,
        cm_tb
    )
    instance_name = "gen_big_field_table_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/gen_big_field_table.sv
gen_big_field_table#(
.MASTER_MODE    (#{align_signal(master_mode)}),
.DSIZE          (#{align_signal(dsize)}),
.FIELD_LEN      (#{align_signal(field_len)}),
.FIELD_NAME     (#{align_signal(field_name)})
) #{instance_name}(
/*  input                       */ .enable (#{align_signal(enable,q_mark=false)}),
/*  input  [DSIZE*FIELD_LEN-1:0]*/ .value  (#{align_signal(value,q_mark=false)}),
/*  axi_stream_inf.master       */ .cm_tb  (#{align_signal(cm_tb,q_mark=false)})
);
"
end

#gen_origin_axis(mode: "RANGE", enable: "enable", ready: "ready", length: "length", axis_out: "axis_out", down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/tdl/axi_stream/gen_origin_axis_auto.rb', line 9

def gen_origin_axis(
    mode:"RANGE",
    enable:"enable",
    ready:"ready",
    length:"length",
    axis_out:"axis_out",
    down_stream:nil
)

    Tdl.add_to_all_file_paths('gen_origin_axis','../../axi/AXI_stream/gen_origin_axis.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['gen_origin_axis','../../axi/AXI_stream/gen_origin_axis.sv'])
    return_stream = self
    
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << gen_origin_axis_draw(
        mode:mode,
        enable:enable,
        ready:ready,
        length:length,
        axis_out:axis_out,
        down_stream:down_stream)
    return return_stream
end

#gen_origin_axis_a1(mode: "RANGE", enable: "enable", ready: "ready", length: "length", start: "start", axis_out: "axis_out", down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/tdl/axi_stream/gen_origin_axis_A1_auto.rb', line 9

def gen_origin_axis_a1(
    mode:"RANGE",
    enable:"enable",
    ready:"ready",
    length:"length",
    start:"start",
    axis_out:"axis_out",
    down_stream:nil
)

    Tdl.add_to_all_file_paths('gen_origin_axis_a1','../../axi/AXI_stream/gen_origin_axis_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['gen_origin_axis_a1','../../axi/AXI_stream/gen_origin_axis_A1.sv'])
    return_stream = self
    
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << gen_origin_axis_a1_draw(
        mode:mode,
        enable:enable,
        ready:ready,
        length:length,
        start:start,
        axis_out:axis_out,
        down_stream:down_stream)
    return return_stream
end

#gen_origin_axis_draw(mode: "RANGE", enable: "enable", ready: "ready", length: "length", axis_out: "axis_out", down_stream: nil) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/tdl/axi_stream/gen_origin_axis_auto.rb', line 46

def gen_origin_axis_draw(
    mode:"RANGE",
    enable:"enable",
    ready:"ready",
    length:"length",
    axis_out:"axis_out",
    down_stream:nil
)

    large_name_len(
        mode,
        enable,
        ready,
        length,
        axis_out
    )
    instance_name = "gen_origin_axis_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/gen_origin_axis.sv
gen_origin_axis#(
.MODE    (#{align_signal(mode)})
) #{instance_name}(
/*  input                */ .enable   (#{align_signal(enable,q_mark=false)}),
/*  output               */ .ready    (#{align_signal(ready,q_mark=false)}),
/*  input  [31:0]        */ .length   (#{align_signal(length,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#gen_origin_drawObject



132
133
134
# File 'lib/tdl/elements/axi_stream.rb', line 132

def gen_origin_draw
""
end

#gen_simple_axis(mode: "RANGE", trigger: "trigger", gen_en: "gen_en", length: "length", led: "led", axis_out: "axis_out", down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/tdl/axi_stream/gen_simple_axis_auto.rb', line 9

def gen_simple_axis(
    mode:"RANGE",
    trigger:"trigger",
    gen_en:"gen_en",
    length:"length",
    led:"led",
    axis_out:"axis_out",
    down_stream:nil
)

    Tdl.add_to_all_file_paths('gen_simple_axis','../../axi/AXI_stream/gen_simple_axis.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['gen_simple_axis','../../axi/AXI_stream/gen_simple_axis.sv'])
    return_stream = self
    
    axis_out = AxiStream.same_name_socket(:to_down,mix=true,axis_out,nil,belong_to_module) unless axis_out.is_a? String
    
    
    unless self.eql? belong_to_module.AxiStream_NC
        axis_out = self
    else
        if down_stream
            axis_out = down_stream
        end
    end


    belong_to_module.AxiStream_draw << gen_simple_axis_draw(
        mode:mode,
        trigger:trigger,
        gen_en:gen_en,
        length:length,
        led:led,
        axis_out:axis_out,
        down_stream:down_stream)
    return return_stream
end

#gen_simple_axis_draw(mode: "RANGE", trigger: "trigger", gen_en: "gen_en", length: "length", led: "led", axis_out: "axis_out", down_stream: nil) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/tdl/axi_stream/gen_simple_axis_auto.rb', line 48

def gen_simple_axis_draw(
    mode:"RANGE",
    trigger:"trigger",
    gen_en:"gen_en",
    length:"length",
    led:"led",
    axis_out:"axis_out",
    down_stream:nil
)

    large_name_len(
        mode,
        trigger,
        gen_en,
        length,
        led,
        axis_out
    )
    instance_name = "gen_simple_axis_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/gen_simple_axis.sv
gen_simple_axis#(
.MODE    (#{align_signal(mode)})
) #{instance_name}(
/*  input                */ .trigger  (#{align_signal(trigger,q_mark=false)}),
/*  input                */ .gen_en   (#{align_signal(gen_en,q_mark=false)}),
/*  input  [15:0]        */ .length   (#{align_signal(length,q_mark=false)}),
/*  output               */ .led      (#{align_signal(led,q_mark=false)}),
/*  axi_stream_inf.master*/ .axis_out (#{align_signal(axis_out,q_mark=false)})
);
"
end

#inherited(name: nil, clock: nil, reset: nil, dsize: nil, freqM: nil, dimension: []) ⇒ Object Also known as: copy



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/tdl/elements/axi_stream.rb', line 103

def inherited(name:@name.to_s,clock: nil,reset: nil,dsize: nil,freqM: nil,dimension:[])
    a = nil 
    ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do 
        append_name = name_copy(name)
        _freqM = use_which_freq_when_copy(clock,freqM)
        a = belong_to_module.Def.axi_stream(
            name:append_name,
            clock: clock || self.aclk,
            reset: reset || self.aresetn,
            dsize: dsize || self.DSIZE,
            freqM: _freqM,
            dimension: dimension)
    end
    a
end

#instObject

def signal(index=nil)

square_str = super(index)
if @port
    String.new(@name.to_s).concat  square_str
else
    unless @nc
        String.new("axis_#{@name}_id#{@id}#{square_str}")
    else
        String.new("nc_axis_#{@name}_id#{@id}#{square_str}")
    end
end

end



68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/tdl/elements/axi_stream.rb', line 68

def inst
    return "" if @ghost
    if @reset.is_a? SignalElm
        if @reset.active.casecmp("LOW") == 0
            "axi_stream_inf #(.DSIZE(#{dsize}),.FreqM(#{intf_def_freqM}))  #{signal}#{array_inst} (.aclk(#{compact_signal(@clock)}),.aresetn(#{@reset.signal}),.aclken(1'b1));"
        else
            "axi_stream_inf #(.DSIZE(#{dsize}),.FreqM(#{intf_def_freqM}))  #{signal}#{array_inst} (.aclk(#{compact_signal(@clock)}),.aresetn(!#{@reset.signal}),.aclken(1'b1));"
        end
    else
        "axi_stream_inf #(.DSIZE(#{dsize}),.FreqM(#{intf_def_freqM}))  #{signal}#{array_inst} (.aclk(#{compact_signal(@clock)}),.aresetn(#{compact_signal(@reset)}),.aclken(1'b1));"
    end
end

#inst_portObject



85
86
87
88
89
90
91
92
# File 'lib/tdl/elements/axi_stream.rb', line 85

def inst_port

    # if @port
    #     ("axi_stream_inf." + @port.to_s + " " + " "*sub_len + @name.to_s + array_inst)
    # end

    return ["axi_stream_inf." + @port.to_s,@name.to_s,array_inst]
end

#last(latency: 0) ⇒ Object

—– Design Ref ————————-



196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
# File 'lib/tdl/elements/axi_stream.rb', line 196

def last(latency:0)
    lat = %Q{
//----->> #{signal} LAST DELAY <<------------------
logic       #{signal}_last_Q;

latency #(
.LAT    (#{latency}),
.DSIZE  (1)
)#{signal}_last_lat(
#{signal}.aclk,
#{signal}.aresetn,
(#{signal}.axis_tvalid && #{signal}.axis_tready && #{signal}.axis_tlast),
#{signal}_last_Q
);
//-----<< #{signal} LAST DELAY >>------------------
}

    if latency > 0
        # GlobalParam.CurrTdlModule.BindEleClassVars.AxiStream.pre_inst << lambda { lat }
        belong_to_module.AxiStream_draw << lat
        return "#{signal}_last_Q"
    else
        return "(#{signal}.axis_tvalid && #{signal}.axis_tready && #{signal}.axis_tlast)"
    end
end

#mirror_seq(start, lr) ⇒ Object

lr must larger than zero, START : START+lr-1



321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
# File 'lib/tdl/elements/axi_stream.rb', line 321

def mirror_seq(start,lr) #lr must larger than zero, START : START+lr-1
    RedefOpertor.with_old_operators do
        @__mirror_seq_start_ ||= 1024
        @__mirror_seq_end_ ||= 0
        @__mirror_seq_start_ = start if @__mirror_seq_start_ > start
        @__mirror_seq_end_ = (start+lr) if (@__mirror_seq_end_ < (start+lr))

        unless @_sub_mirror_seq_value
            @_sub_mirror_seq_value = belong_to_module.Def.logic(name:"#{signal(square:false)}_seq_value",dsize: -@dsize*(@__mirror_seq_end_-@__mirror_seq_start_),msb_high:false,port: :origin)
        end

        @_sub_mirror_seq_value.dsize = -@dsize*(@__mirror_seq_end_-@__mirror_seq_start_)

        if @__mirror_seq_start_ > 0
            # @_sub_mirror_seq_value.send(:define_singleton_method,:inst) do
            @_sub_mirror_seq_value.instance_variable_set("@__mirror_seq_start_",@__mirror_seq_start_*@dsize)
            @_sub_mirror_seq_value.instance_variable_set("@__signal_name_",signal(square:false)+"_seq_value")
            @_sub_mirror_seq_value.define_singleton_method(:inst) do
                # puts @__mirror_seq_start_,@dsize
                "logic [#{@__mirror_seq_start_}:#{(@dsize.abs-1)+@__mirror_seq_start_}] #{@__signal_name_};\n"
            end
        end

        unless @_sub_mirror_seq_out_vld
            @_sub_mirror_seq_out_vld = belong_to_module.Def.logic(name:"#{signal(square:false)}_seq_vld",dsize:1,port: :origin)
        end

        unless @_mirror_seq_call_
            @_mirror_seq_call_ = lambda {

                if @__mirror_seq_start_ == 0
                    enable = "1'b1"
                else
                    enable = "(#{signal}.axis_tcnt >= #{@__mirror_seq_start_})"
                end

                @_mirror_p_cm_tb_m = copy(name:"cm_tb_m")

                AxiStream.parse_big_field_table_a2(
                    dsize:  @dsize,
                    field_len:@__mirror_seq_end_ - @__mirror_seq_start_ ,
                    try_parse:"ON",
                    enable:enable,
                    value:@_sub_mirror_seq_value.signal(square:false),
                    out_valid:@_sub_mirror_seq_out_vld,
                    cm_tb_s:self,
                    cm_tb_m:@_mirror_p_cm_tb_m,
                    cm_mirror:self)
            }
            # Tdl.module_stack << @_mirror_seq_call_
            belong_to_module.AxiStream_pre_inst_stack << @_mirror_seq_call_
        end

    end

    return "#{@_sub_mirror_seq_value[start*@dsize,(start+lr)*@dsize-1]}"
end

#mirror_to(axis) ⇒ Object



401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
# File 'lib/tdl/elements/axi_stream.rb', line 401

def mirror_to(axis)
    a = "\n//--->> #{signal} MIRROR <<-----------------------\n"
    a +="assign #{axis.signal}.axis_tvalid  = #{signal}.axis_tvalid;\n"
    a +="assign #{axis.signal}.axis_tdata   = #{signal}.axis_tdata ;\n"
    a +="assign #{axis.signal}.axis_tlast   = #{signal}.axis_tlast ;\n"
    a +="assign #{axis.signal}.axis_tready  = #{signal}.axis_tready;\n"

    a +="assign #{axis.signal}.axis_tuser   = #{signal}.axis_tuser;\n"
    a +="assign #{axis.signal}.axis_tkeep   = #{signal}.axis_tkeep;\n"
    a += "//---<< #{signal} MIRROR >>-----------------------\n"

    # GlobalParam.CurrTdlModule.BindEleClassVars.AxiStream.draw_stack << lambda{ a }
    belong_to_module.AxiStream_draw << a
    ""
end

#parse_big_field_table(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/tdl/axi_stream/parse_big_field_table_auto.rb', line 9

def parse_big_field_table(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('parse_big_field_table','../../axi/AXI_stream/parse_big_field_table.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['parse_big_field_table','../../axi/AXI_stream/parse_big_field_table.sv'])
    return_stream = self
    
    cm_tb_s = AxiStream.same_name_socket(:from_up,mix=true,cm_tb_s,nil,belong_to_module) unless cm_tb_s.is_a? String
    cm_tb_m = AxiStream.same_name_socket(:to_down,mix=true,cm_tb_m,nil,belong_to_module) unless cm_tb_m.is_a? String
    cm_mirror = AxiStream.same_name_socket(:mirror,mix=true,cm_mirror,nil,belong_to_module) unless cm_mirror.is_a? String
    
    if up_stream.nil? && cm_tb_s.eql?("cm_tb_s") && (!(cm_tb_m.eql?("cm_tb_m")) || !down_stream.nil?)
        # up_stream = self.copy(name:"cm_tb_s")
        # return_stream = up_stream
        cm_tb_m = down_stream if down_stream
        return down_stream.parse_big_field_table(cm_tb_s:self)
    end

    cm_tb_s = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        cm_tb_m = self
    else
        if down_stream
            cm_tb_m = down_stream
        end
    end


    belong_to_module.AxiStream_draw << parse_big_field_table_draw(
        dsize:dsize,
        field_len:field_len,
        field_name:field_name,
        try_parse:try_parse,
        enable:enable,
        value:value,
        out_valid:out_valid,
        cm_tb_s:cm_tb_s,
        cm_tb_m:cm_tb_m,
        cm_mirror:cm_mirror,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#parse_big_field_table_a1(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/tdl/axi_stream/parse_big_field_table_A1_auto.rb', line 9

def parse_big_field_table_a1(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('parse_big_field_table_a1','../../axi/AXI_stream/parse_big_field_table_A1.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['parse_big_field_table_a1','../../axi/AXI_stream/parse_big_field_table_A1.sv'])
    return_stream = self
    
    cm_tb_s = AxiStream.same_name_socket(:from_up,mix=true,cm_tb_s,nil,belong_to_module) unless cm_tb_s.is_a? String
    cm_tb_m = AxiStream.same_name_socket(:to_down,mix=true,cm_tb_m,nil,belong_to_module) unless cm_tb_m.is_a? String
    cm_mirror = AxiStream.same_name_socket(:mirror,mix=true,cm_mirror,nil,belong_to_module) unless cm_mirror.is_a? String
    
    if up_stream.nil? && cm_tb_s.eql?("cm_tb_s") && (!(cm_tb_m.eql?("cm_tb_m")) || !down_stream.nil?)
        # up_stream = self.copy(name:"cm_tb_s")
        # return_stream = up_stream
        cm_tb_m = down_stream if down_stream
        return down_stream.parse_big_field_table_a1(cm_tb_s:self)
    end

    cm_tb_s = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        cm_tb_m = self
    else
        if down_stream
            cm_tb_m = down_stream
        end
    end


    belong_to_module.AxiStream_draw << parse_big_field_table_a1_draw(
        dsize:dsize,
        field_len:field_len,
        field_name:field_name,
        try_parse:try_parse,
        enable:enable,
        value:value,
        out_valid:out_valid,
        cm_tb_s:cm_tb_s,
        cm_tb_m:cm_tb_m,
        cm_mirror:cm_mirror,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#parse_big_field_table_a1_draw(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/tdl/axi_stream/parse_big_field_table_A1_auto.rb', line 67

def parse_big_field_table_a1_draw(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        dsize,
        field_len,
        field_name,
        try_parse,
        enable,
        value,
        out_valid,
        cm_tb_s,
        cm_tb_m,
        cm_mirror
    )
    instance_name = "parse_big_field_table_A1_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/parse_big_field_table_A1.sv
parse_big_field_table_A1#(
.DSIZE         (#{align_signal(dsize)}),
.FIELD_LEN     (#{align_signal(field_len)}),
.FIELD_NAME    (#{align_signal(field_name)}),
.TRY_PARSE     (#{align_signal(try_parse)})
) #{instance_name}(
/*  input                */ .enable    (#{align_signal(enable,q_mark=false)}),
/*  output [DSIZE-1:0]   */ .value     (#{align_signal(value,q_mark=false)}),
/*  output               */ .out_valid (#{align_signal(out_valid,q_mark=false)}),
/*  axi_stream_inf.slaver*/ .cm_tb_s   (#{align_signal(cm_tb_s,q_mark=false)}),
/*  axi_stream_inf.master*/ .cm_tb_m   (#{align_signal(cm_tb_m,q_mark=false)}),
/*  axi_stream_inf.mirror*/ .cm_mirror (#{align_signal(cm_mirror,q_mark=false)})
);
"
end

#parse_big_field_table_a2(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/tdl/axi_stream/parse_big_field_table_A2_auto.rb', line 9

def parse_big_field_table_a2(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil
)

    Tdl.add_to_all_file_paths('parse_big_field_table_a2','../../axi/AXI_stream/parse_big_field_table_A2.sv')
    # GlobalParam.CurrTdlModule.add_to_all_file_paths(['parse_big_field_table_a2','../../axi/AXI_stream/parse_big_field_table_A2.sv'])
    return_stream = self
    
    cm_tb_s = AxiStream.same_name_socket(:from_up,mix=true,cm_tb_s,nil,belong_to_module) unless cm_tb_s.is_a? String
    cm_tb_m = AxiStream.same_name_socket(:to_down,mix=true,cm_tb_m,nil,belong_to_module) unless cm_tb_m.is_a? String
    cm_mirror = AxiStream.same_name_socket(:mirror,mix=true,cm_mirror,nil,belong_to_module) unless cm_mirror.is_a? String
    
    if up_stream.nil? && cm_tb_s.eql?("cm_tb_s") && (!(cm_tb_m.eql?("cm_tb_m")) || !down_stream.nil?)
        # up_stream = self.copy(name:"cm_tb_s")
        # return_stream = up_stream
        cm_tb_m = down_stream if down_stream
        return down_stream.parse_big_field_table_a2(cm_tb_s:self)
    end

    cm_tb_s = up_stream if up_stream
    unless self.eql? belong_to_module.AxiStream_NC
        cm_tb_m = self
    else
        if down_stream
            cm_tb_m = down_stream
        end
    end


    belong_to_module.AxiStream_draw << parse_big_field_table_a2_draw(
        dsize:dsize,
        field_len:field_len,
        field_name:field_name,
        try_parse:try_parse,
        enable:enable,
        value:value,
        out_valid:out_valid,
        cm_tb_s:cm_tb_s,
        cm_tb_m:cm_tb_m,
        cm_mirror:cm_mirror,
        up_stream:up_stream,
        down_stream:down_stream)
    return return_stream
end

#parse_big_field_table_a2_draw(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/tdl/axi_stream/parse_big_field_table_A2_auto.rb', line 67

def parse_big_field_table_a2_draw(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        dsize,
        field_len,
        field_name,
        try_parse,
        enable,
        value,
        out_valid,
        cm_tb_s,
        cm_tb_m,
        cm_mirror
    )
    instance_name = "parse_big_field_table_A2_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/parse_big_field_table_A2.sv
parse_big_field_table_A2#(
.DSIZE         (#{align_signal(dsize)}),
.FIELD_LEN     (#{align_signal(field_len)}),
.FIELD_NAME    (#{align_signal(field_name)}),
.TRY_PARSE     (#{align_signal(try_parse)})
) #{instance_name}(
/*  input                       */ .enable    (#{align_signal(enable,q_mark=false)}),
/*  output [0:DSIZE*FIELD_LEN-1]*/ .value     (#{align_signal(value,q_mark=false)}),
/*  output                      */ .out_valid (#{align_signal(out_valid,q_mark=false)}),
/*  axi_stream_inf.slaver       */ .cm_tb_s   (#{align_signal(cm_tb_s,q_mark=false)}),
/*  axi_stream_inf.master       */ .cm_tb_m   (#{align_signal(cm_tb_m,q_mark=false)}),
/*  axi_stream_inf.mirror       */ .cm_mirror (#{align_signal(cm_mirror,q_mark=false)})
);
"
end

#parse_big_field_table_draw(dsize: 8, field_len: 16*8, field_name: "Big Filed", try_parse: "OFF", enable: "enable", value: "value", out_valid: "out_valid", cm_tb_s: "cm_tb_s", cm_tb_m: "cm_tb_m", cm_mirror: "cm_mirror", up_stream: nil, down_stream: nil) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/tdl/axi_stream/parse_big_field_table_auto.rb', line 67

def parse_big_field_table_draw(
    dsize:8,
    field_len:16*8,
    field_name:"Big Filed",
    try_parse:"OFF",
    enable:"enable",
    value:"value",
    out_valid:"out_valid",
    cm_tb_s:"cm_tb_s",
    cm_tb_m:"cm_tb_m",
    cm_mirror:"cm_mirror",
    up_stream:nil,
    down_stream:nil
)

    large_name_len(
        dsize,
        field_len,
        field_name,
        try_parse,
        enable,
        value,
        out_valid,
        cm_tb_s,
        cm_tb_m,
        cm_mirror
    )
    instance_name = "parse_big_field_table_#{signal}_inst"
"
// FilePath:::../../axi/AXI_stream/parse_big_field_table.sv
parse_big_field_table#(
.DSIZE         (#{align_signal(dsize)}),
.FIELD_LEN     (#{align_signal(field_len)}),
.FIELD_NAME    (#{align_signal(field_name)}),
.TRY_PARSE     (#{align_signal(try_parse)})
) #{instance_name}(
/*  input                       */ .enable    (#{align_signal(enable,q_mark=false)}),
/*  output [DSIZE*FIELD_LEN-1:0]*/ .value     (#{align_signal(value,q_mark=false)}),
/*  output                      */ .out_valid (#{align_signal(out_valid,q_mark=false)}),
/*  axi_stream_inf.slaver       */ .cm_tb_s   (#{align_signal(cm_tb_s,q_mark=false)}),
/*  axi_stream_inf.master       */ .cm_tb_m   (#{align_signal(cm_tb_m,q_mark=false)}),
/*  axi_stream_inf.mirror       */ .cm_mirror (#{align_signal(cm_mirror,q_mark=false)})
);
"
end

#port_lengthObject



81
82
83
# File 'lib/tdl/elements/axi_stream.rb', line 81

def port_length
    ("axi_stream_inf." + @port.to_s + " ").length
end

#s2m_sub_direct(*down_streams) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/tdl/axi_stream/bak/axi_stream_S2M.rb', line 20

def s2m_sub_direct(*down_streams)
    str = ""
    for i in 0...(down_streams.length)
        str +=
"\naxis_direct  axis_direct_#{signal}_inst#{i} (
/*  axi_stream_inf.slaver*/ .slaver (sub_#{(signal)}[#{i}]),
/*  axi_stream_inf.master*/ .master (#{down_streams[i].signal})
);\n"
    end
    return str
end

#s2m_sub_inst(num = 0) ⇒ Object



13
14
15
16
17
18
# File 'lib/tdl/axi_stream/bak/axi_stream_S2M.rb', line 13

def s2m_sub_inst(num=0)
    return '' if num == 0
"
axi_stream_inf #(.DSIZE(#{signal}.DSIZE))  sub_#{(signal)}[#{num}-1:0](.aclk(#{signal}.aclk),.aresetn(#{signal}.aresetn),.aclken(1'b1));\n
"
end

#seq(start, lr) ⇒ Object

lr must larger than zero, START : START+lr-1



227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
# File 'lib/tdl/elements/axi_stream.rb', line 227

def seq(start,lr)  #lr must larger than zero, START : START+lr-1
    RedefOpertor.with_old_operators do
        @__seq_start_ ||= 1024
        @__seq_end_ ||= 0
        @__seq_start_ = start if @__seq_start_ > start
        @__seq_end_ = (start+lr) if (@__seq_end_ < (start+lr))

        unless @_sub_sel_value
            ## dsize < 0 [0:X-1]
            if @dsize.is_a? Numeric
                @_sub_sel_value = belong_to_module.Def.logic(name:"#{signal(square:false)}_seq_value",dsize: -@dsize*(@__seq_end_-@__seq_start_),msb_high:false,port: :origin)
                @_full_sub_sel_value = belong_to_module.Def.logic(name:"#{signal(square:false)}_full_seq_value",dsize: -@dsize*(@__seq_end_-0),msb_high:false,port: :origin)
            else
                @_sub_sel_value = belong_to_module.Def.logic(name:"#{signal(square:false)}_seq_value",dsize: "#{@dsize}*#{(@__seq_end_-@__seq_start_)}",msb_high:false,port: :origin)
                @_full_sub_sel_value = belong_to_module.Def.logic(name:"#{signal(square:false)}_full_seq_value",dsize: "#{@dsize}*#{(@__seq_end_-0)}",msb_high:false,port: :origin)
                @_sub_sel_value.force_nege_index(true)
                @_full_sub_sel_value.force_nege_index(true)
            end
        else
            if @dsize.is_a? Numeric
                @_sub_sel_value.dsize = -@dsize*(@__seq_end_-@__seq_start_)
                @_full_sub_sel_value.dsize = -@dsize*(@__seq_end_-0)
            else
                @_sub_sel_value.dsize = "#{@dsize}*#{(@__seq_end_-@__seq_start_)}"
                @_full_sub_sel_value.dsize = "#{@dsize}*#{(@__seq_end_-0)}"
            end
        end

        belong_to_module.AxiStream_pre_inst_stack << Proc.new do
            if @dsize.is_a? Numeric
                belong_to_module.Assign do
                    @_full_sub_sel_value[@__seq_start_*@dsize,@__seq_end_*@dsize-1] <= @_sub_sel_value
                end
            else
                belong_to_module.Assign do
                    "#{@_full_sub_sel_value.signal(square:false)}[#{@__seq_start_}*#{self.DSIZE}:#{@__seq_end_}*#{self.DSIZE}-1]".to_nq <= @_sub_sel_value
                end
            end
            ""
        end

        @_sub_sel_out_vld ||= belong_to_module.Def.logic(name:"#{signal(square:false)}_seq_vld",dsize:1,port: :origin)

        # unless seq_vld()
            self.define_singleton_method(:seq_vld) do
                @_sub_sel_out_vld
            end
        # end

        unless @_seq_call_
            @_p_cm_tb_m = copy(name:"cm_tb_m_#{@name}")

            self.define_singleton_method(:seq_tail_stream) do
                @_called_seq_tail_stream = true
                @_p_cm_tb_m
            end

            self.define_singleton_method(:seq_vld_rdy_last) do
                @_p_cm_tb_m.vld_rdy_last
            end
            @_vcs_self_cpt_ = self.vcs_comptable(origin: 'slaver',to: 'mirror')
            @_seq_call_ = lambda {

                if @__seq_start_ == 0
                    enable = "1'b1"
                else
                    enable = "(#{signal}.axis_tcnt >= #{@__seq_start_})"
                end

                AxiStream.parse_big_field_table_a2(
                    dsize:  @dsize,
                    field_len:@__seq_end_ - @__seq_start_ ,
                    try_parse:"OFF",
                    enable:enable,
                    value:@_sub_sel_value.signal(square:false),
                    out_valid:@_sub_sel_out_vld,
                    cm_tb_s:self,
                    cm_tb_m:@_p_cm_tb_m,
                    cm_mirror: @_vcs_self_cpt_,
                    belong_to_module:belong_to_module
                )
                AxiStream.slaver_empty(@_p_cm_tb_m) unless @_called_seq_tail_stream
            }
            belong_to_module.AxiStream_pre_inst_stack << @_seq_call_
        end

    end
    if @dsize.is_a? Numeric
        return @_full_sub_sel_value[start*@dsize,(start+lr)*@dsize-1]
    else
        return "#{@_full_sub_sel_value.signal(square:false)}[#{start}*#{self.DSIZE}:#{(start+lr)}*#{self.DSIZE}-1]".to_nq
    end
end

#simple_verify_by_coe(file) ⇒ Object



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# File 'lib/tdl/exlib/axis_verify.rb', line 218

def simple_verify_by_coe(file)
    unless File.file?(file)
        if file.is_a?(String)
            wfile = File.join(AxiTdl::TDL_PATH,"./auto_script/tmp/","#{self.name}_#{@belong_to_module._auto_name_incr_index_}.coe")
            File.open(wfile,'w') do |f|
                f.puts file
            end
            file = wfile
        end
    end 

    require_hdl 'axis_sim_verify_by_coe.sv'

    @belong_to_module.instance_exec(self,File.open(file).readlines.size,file) do |_self,_ram_depth,_file|

        Instance(:axis_sim_verify_by_coe, "axis_sim_verify_by_coe_inst_#{_self.name}") do |h|#(
            h.param.RAM_DEPTH           _ram_depth
            h.param.VERIFY_KEEP         "OFF"
            h.param.VERIFY_USER         "OFF"
            h.input.load_trigger        1.b0
            h.input[32].total_length    _ram_depth
            h.input[4096].mem_file      File.expand_path(_file)
            h.port.axis.mirror.mirror_inf   _self
        end
    end
end

#slaverbfm(info: true, rate: 100, repeat: 100) ⇒ Object



263
264
265
266
267
268
269
270
271
272
273
# File 'lib/tdl/bfm/axi_stream/axi_stream_bfm.rb', line 263

def slaverbfm(info:true,rate:100,repeat:100)

    if info
        info_str = 1
    else
        info_str = 0
    end
    belong_to_module.AxiStream_draw << slaverbfm_draw(info:info_str,repeat:repeat,rate:rate)

    return self
end

#slaverbfm_draw(info: 0, repeat: 0, rate: 100) ⇒ Object

def self.MasterBFM()

end



279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
# File 'lib/tdl/bfm/axi_stream/axi_stream_bfm.rb', line 279

def slaverbfm_draw(info:0,repeat:0,rate:100)
"
AxiStreamSlaverBfm_c #(.DSIZE(#{@dsize}),.FreqM(#{intf_def_freqM})) SlaverBfm#{name} = new(#{name});

initial begin:#{name}_SLAVER_BLOCK
wait(#{name}.aresetn);
@(posedge #{name}.aclk);
#{
    if repeat > 0
        "repeat(#{repeat})"
    else
        "forever"
    end
}
begin
    SlaverBfm#{name}.get_data(#{rate},#{info});
end
end
"
end

#slice_to_logic(range) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/tdl/bfm/axi_stream/axis_slice_to_logic.rb', line 4

def slice_to_logic(range)
    @_slice_id_ ||= 0
    smin = range.min
    smax = range.max
    if range.to_a.first.eql? smin
        cc  = :increase
    else
        cc  = :decrease
    end
    slice_logic = nil
    RedefOpertor.with_normal_operators do
        slice_logic = belong_to_module.Def().logic(name:"#{name}_slice_#{@_slice_id_}",dsize:@dsize*(smax+1-smin))
        slice_logic.clock   = @clock
        slice_logic.reset   = @reset
        belong_to_module.AxiStream_draw << slice_to_logic_draw(cc,slice_logic,range.to_a)
    end
    @_slice_id_ += 1
    return slice_logic
end

#to_eth(esize = 8) ⇒ Object

转到 网络流



21
22
23
# File 'lib/tdl/exlib/axis_eth_ex.rb', line 21

def to_eth(esize=8) # SIZE:8 ,64, 32
    @__ethernet_type__ = esize
end

#to_master_bfmObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/tdl/bfm/axi_stream/axi_stream_bfm.rb', line 3

def to_master_bfm
    define_singleton_method(:import_axibfm_pkg) do
        unless @__AXI_BFM_IMPORT__
            import_str = "import AxiBfmPkg::*;\n"
            belong_to_module.ex_up_code = import_str.concat belong_to_module.ex_up_code.to_s
            @__AXI_BFM_IMPORT__ = true
        end
    end

    define_singleton_method(:masterbfm) do |info:true,wait:nil,wait_every_raising:nil,wdata_name:"wdata_queue",&block|
        import_axibfm_pkg
        @wdata_name = wdata_name
        @_init_tap_cnt_ ||= 1
        @_master_draw_exec_str_ ||= []
        @_init_master_draw_exec_str_ ||= []
        # define_singleton_method(:wdata_queue) do
        #     "wdata_queue"
        # end
        
        block.call self

        if info
            info_str = "ON"
        else
            info_str = "OFF"
        end
        belong_to_module.ExOther_draw << masterbfm_draw(info:info_str)

        return self
    end

    define_singleton_method("masterbfm_draw") do |info:"OFF"|
        init_str = @_init_master_draw_exec_str_.join("")
        master_str = @_master_draw_exec_str_.join("")
"
AxiStreamMasterBfm_c #(.DSIZE(#{dsize}),.MSG(\"#{info}\"),.FreqM(#{freqM})) MasterBfm#{name};

initial begin:#{name}_MASTER_BLOCK
logic [#{dsize}-1:0]     #{@wdata_name}     [$];
MasterBfm#{name} = new(#{name});
#{init_str}
wait(#{name}.aresetn);
#{master_str}
end
"
    end

    define_singleton_method(:exec) do |str=nil,&block|
        if block_given?
            ystr = block.call(self)
            str = str.to_s + ystr
        end
        @_master_draw_exec_str_ << init_tap_draw("#{str.to_s};\n")
    end

    define_singleton_method(:init_exec) do |str|
        @_master_draw_exec_str_ ||= []
        @_master_draw_exec_str_ << init_tap_draw("#{str.to_s};\n")
    end

    # def stream_exec(delay:"#(10us)",str:"")
    #     @_master_draw_exec_str_ << "#(100ns) wdata_queue = #{str.to_s};\n"
    # end

    define_singleton_method(:repeat) do |num=nil,&block|
        if num
            @_master_draw_exec_str_ << init_tap_draw("repeat(#{num}) begin\n")
        else
            @_master_draw_exec_str_ << init_tap_draw("forever begin\n")
        end
        @_init_tap_cnt_ += 1
        block.call self
        @_init_tap_cnt_ -= 1
        @_master_draw_exec_str_ << init_tap_draw("end\n")
    end

    define_singleton_method("bif") do |cond,&block|
        @_master_draw_exec_str_ << init_tap_draw("if(#{cond}) begin\n")
    
        @_init_tap_cnt_ += 1
        block.call self
        @_init_tap_cnt_ -= 1
        @_master_draw_exec_str_ << init_tap_draw("end\n")
    end

    define_singleton_method("belsif") do |cond,&block|
        @_master_draw_exec_str_ << init_tap_draw("else if(#{cond}) begin\n")
    
        @_init_tap_cnt_ += 1
        block.call self
        @_init_tap_cnt_ -= 1
        @_master_draw_exec_str_ << init_tap_draw("end\n")
    end

    define_singleton_method("belse") do |&block|
        @_master_draw_exec_str_ << init_tap_draw("else begin\n")
    
        @_init_tap_cnt_ += 1
        block.call self
        @_init_tap_cnt_ -= 1
        @_master_draw_exec_str_ << init_tap_draw("end\n")
    end

    define_singleton_method(:wait) do |s,edge=nil|
        if edge.nil?
            @_master_draw_exec_str_ << init_tap_draw("wait(#{s});\n")
        elsif edge.to_s.eql? "raising"
            @_master_draw_exec_str_ << init_tap_draw("@(posedge #{align_signal(s)});\n")
        elsif edge.to_s.eql? "falling"
            @_master_draw_exec_str_ << init_tap_draw("@(negedge #{align_signal(s)});\n")
        end
    end

    define_singleton_method("gen_axi_stream") do |len:0,rate:100|
        @_master_draw_exec_str_ << init_tap_draw("MasterBfm#{name}.gen_axi_stream(#{len},#{rate},#{@wdata_name});\n")
    end

    define_singleton_method(:init_tap_draw) do |str|
        "#{"    "*@_init_tap_cnt_}#{str.to_s}"
    end

    return self
end

#to_simple_sim_master_coe(enable: 1.b1, length: [10,200], gap_len: [0,10], data: [ (0...100) ], vld_perc: [50, 100], loop_coe: true) ⇒ Object



131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/tdl/exlib/axis_verify.rb', line 131

def to_simple_sim_master_coe(enable: 1.b1, length: [10,200], gap_len: [0,10], data: [ (0...100) ] , vld_perc: [50, 100], loop_coe: true)
    # raise TdlError.new "file cant be empty"  unless file
    file = File.join(AxiTdl::TDL_PATH,"./auto_script/tmp/","coe_#{self.name}_#{@belong_to_module._auto_name_incr_index_}.coe")
    _sps = nil
    ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
        require_sdl 'axis_sim_master_model.rb'
        File.open(file,'w') do |f|
            _sps = AxiTdl::AxisVerify::SimpleStreams.new(length: length, gap_len: gap_len, data: data , vld_perc: vld_perc)
            f.print _sps.coe
        end
    end

    self.define_singleton_method(:verification) do 
        _sps 
    end

    @belong_to_module.instance_exec(self,file,loop_coe,enable) do |_self,file,loop_coe,_enable| 

        Instance(:axis_sim_master_model,"sim_model_inst_#{_self.name}") do |h| 
            h.param.LOOP                (loop_coe ? "TRUE" : "FALSE")
            h.param.RAM_DEPTH           File.open(File.expand_path(file)).readlines.size
            h.input.enable              _enable
            h.input.load_trigger        1.b0
            h.input[32].total_length    h.param.RAM_DEPTH
            h.input[512*8].mem_file     File.expand_path(file) # {axis_tvalid, axis_tuser, axis_tkeep, axis_tlast, axis_tdata}
            h.port.axis.master.out_inf  _self
        end
    end

end

#to_simple_sim_slaver(rdy_percetage = 50, loop_rdy = true) ⇒ Object



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/tdl/exlib/axis_verify.rb', line 162

def to_simple_sim_slaver(rdy_percetage=50,loop_rdy=true)
    unless rdy_percetage.is_a?(Array)
        @belong_to_module.instance_exec(self) do |_self|

            always_ff(posedge: _self.aclk) do 
                IF ~_self.aresetn do 
                    _self.axis_tready   <= 1.b0 
                end
                ELSE do 
                    _self.axis_tready   <= rdy_percetage.precent_true
                end
            end
        end
    else  
        @belong_to_module.instance_exec(self,rdy_percetage,loop_rdy) do |_self,rdy_percetage,loop_rdy|

            __xx = logic[32] - "#{_self.name}_rdy_percetage_index"
            __rr = logic[rdy_percetage.size, 32] - "#{_self.name}_rdy_percetage"
            Initial do 
                __xx <= 0
                rdy_percetage.each_index do |index|
                    __rr[index] <= rdy_percetage[index]
                end
            end 

            Always(posedge: _self.aclk) do 
                IF _self.vld_rdy_last do 
                    IF __xx >= (rdy_percetage.size - 1 ) do 
                        if loop_rdy  
                            __xx <= 0
                        else 
                            __xx <= __xx 
                            __rr[__xx] = 0
                        end
                    end
                    ELSE do 
                        __xx <= __xx + 1.b1 
                    end
                end
                ELSE do 
                    __xx <= __xx 
                end
            end 

            always_ff(posedge: _self.aclk) do 
                IF ~_self.aresetn do 
                    _self.axis_tready   <= 1.b0 
                end
                ELSE do 
                    _self.axis_tready   <= "($urandom_range(0,99) <= #{__rr[__xx]})".to_nq
                end
            end
        end
    end
end

#vcs_comptable(origin: 'master', to: 'slaver') ⇒ Object



633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
# File 'lib/tdl/elements/axi_stream.rb', line 633

def vcs_comptable(origin: 'master',to: 'slaver')

    if belong_to_module.respond_to? "#{@name}_#{origin}_to_#{to}"
        return belong_to_module.send("#{@name}_#{origin}_to_#{to}").name.to_nq
    end
    ''' 返回字符串'''
    # idm = belong_to_module.instance_variable_get("@_include_define_macro_")
    # unless idm
    #     unless belong_to_module.ex_up_code
    #         belong_to_module.ex_up_code = '`include "define_macro.sv"'+"\n"
    #     else 
    #         belong_to_module.ex_up_code += "`include \"define_macro.sv\"\n"
    #     end 
    #     belong_to_module.instance_variable_set("@_include_define_macro_",true)
    # end

    # str  = "\n`VCS_AXIS_CPT(#{@name},#{origin},#{to})\n"
    # belong_to_module.AxiStream_draw << str
    # @_vcs_cpt_ =  "`#{@name}_vcs_cpt".to_nq
    # return @_vcs_cpt_
    belong_to_module.instance_exec(self,origin,to) do |origin_inf,origin_modport,to_modport|
        Instance(:vcs_axis_comptable,"vcs_axis_comptable_#{origin_inf.name}_#{origin_modport}_#{to_modport}_inst") do |h|
            h[:ORIGIN]  = origin_modport
            h[:TO]      = to_modport
            h[:origin]  = origin_inf
            h[:to]      = origin_inf.copy(name: "#{origin_inf.name}_#{origin_modport}_to_#{to_modport}")
        end
    end

    return belong_to_module.send("#{@name}_#{origin}_to_#{to}").name.to_nq
end

#vld_rdyObject

super(port_array,rep,“axi_stream_inf”,up_stream_rep) do |h|

    h[:type]   = AxiStream
    yield h
end

end



42
43
44
# File 'lib/tdl/rebuild_ele/axi_stream.rb', line 42

def vld_rdy
    axis_tvalid.concat(" && ").concat(axis_tready)
end

#vld_rdy_lastObject



563
564
565
# File 'lib/tdl/elements/axi_stream.rb', line 563

def vld_rdy_last
    axis_tvalid.concat(" && ").concat(axis_tready).concat(" && ").concat(axis_tlast)
end

#x_all_bits_slice(name: "slice_#{@belong_to_module._auto_name_incr_index_()}", start: 8*4, length: 32) ⇒ Object

Raises:



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/tdl/exlib/axis_eth_ex.rb', line 30

def x_all_bits_slice(name: "slice_#{@belong_to_module._auto_name_incr_index_()}", start: 8*4,length:32)
    raise TdlError.new("#{name} is not ethernet stream, before used it must be call to_eth") unless @__ethernet_type__
    # @belong_to_module.logic[length]     - name
    @belong_to_module.instance_exec(self,name,start,length,@__ethernet_type__) do |_targget_axis, _name, _start, _length, _ethernet_type|
        logic[_length]     - _name
        _end = _start + _length -1

        ## 如果选的区域在一个Clock里面
        if _start / _ethernet_type == (_end) / _ethernet_type
            _target_cnt = _start/_ethernet_type

            always_ff(posedge: _targget_axis.aclk, negedge: _targget_axis.aresetn) do 
                IF ~_targget_axis.aresetn do 
                    signal(_name)   <= 0.A 
                end
                ELSE do 
                    IF _targget_axis.vld_rdy do 
                        IF (_targget_axis.axis_tcnt[15,0] == "16'd#{_target_cnt}".to_nq) do
                            signal(_name) <= _targget_axis.axis_tdata[rubyOP{_ethernet_type - _start%_ethernet_type - 1}, rubyOP{_ethernet_type - _end%_ethernet_type - 1}, ]
                        end 
                        ELSE do 
                            signal(_name) <= signal(_name)
                        end
                    end
                    ELSE do 
                        signal(_name)   <= signal(_name)
                    end
                end
            end
        end

        ## 如果夸Clock
        if _start / _ethernet_type != (_end) / _ethernet_type
            _slice_range = ( (_start / _ethernet_type)..(_end) / _ethernet_type ).to_a

            always_ff(posedge: _targget_axis.aclk, negedge: _targget_axis.aresetn) do 
                IF ~_targget_axis.aresetn do 
                    signal(_name)   <= 0.A 
                end
                ELSE do 
                    IF _targget_axis.vld_rdy do 
                        _slice_range.each do |e|
                            IF (_targget_axis.axis_tcnt[15,0] == "16'd#{e}".to_nq) do
                                ##第一个
                                if ClassHDL::AssignDefOpertor.with_rollback_opertors(:old,&(proc { e == _slice_range.first}) )  
                                    signal(_name)[rubyOP{_length-1}, rubyOP{_length - (_ethernet_type - _start%_ethernet_type)}] <= _targget_axis.axis_tdata[rubyOP{_ethernet_type - _start%_ethernet_type-1}, 0]
                                ## 最后一个
                                elsif ClassHDL::AssignDefOpertor.with_rollback_opertors(:old,&(proc { e == _slice_range.last}) )  
                                    signal(_name)[rubyOP{_end%_ethernet_type},0] <= _targget_axis.axis_tdata[rubyOP{_ethernet_type-1}, rubyOP{_ethernet_type-_end%_ethernet_type-1}]
                                else 
                                    signal(_name)[rubyOP{(_end - e*_ethernet_type)}, rubyOP{(_end - e*_ethernet_type - _ethernet_type+1)}] <= _targget_axis.axis_tdata
                                end
                            end
                        end
                    end
                    ELSE do 
                        signal(_name)   <= signal(_name)
                    end
                end
            end

        end
    end
    @belong_to_module.signal(name)
end

#|(down_stream) ⇒ Object

pipe

Raises:



439
440
441
442
443
444
# File 'lib/tdl/elements/axi_stream.rb', line 439

def |(down_stream) # pipe
    raise TdlError.new("#{down_stream} is not a AxiStream") unless down_stream.is_a? AxiStream
    raise TdlError.new("PIPE '|' axi stream dsize dont eql !!! \n") if down_stream.dsize != @dsize
    AxiStream.axis_connect_pipe(dsize:@dsize,up_stream:self,down_stream:down_stream)
    return down_stream
end