axi_tdl 0.1.1 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +7 -0
- data/lib/axi/AXI4/axi4_direct_A1.sv +1 -1
- data/lib/axi/AXI4/axi4_direct_verc.sv +54 -54
- data/lib/axi/AXI4/axi4_dpram_cache.sv +2 -2
- data/lib/axi/AXI4/axis_to_axi4_wr.sv +8 -8
- data/lib/axi/AXI4/odata_pool_axi4_A3.sv +7 -0
- data/lib/axi/AXI4/packet_partition/axi4_partition_rd_verb.sv +1 -1
- data/lib/axi/AXI4/packet_partition/data_inf_partition.sv +2 -2
- data/lib/axi/AXI4/wide_axis_to_axi4_wr.sv +8 -8
- data/lib/axi/AXI_stream/axi_stream_split_channel.sv +154 -0
- data/lib/axi/AXI_stream/axis_head_cut_verc.sv +242 -0
- data/lib/axi/AXI_stream/axis_insert_copy.sv +79 -0
- data/lib/axi/AXI_stream/axis_pipe_sync_seam.sv +48 -0
- data/lib/axi/AXI_stream/axis_rom_contect_sim.sv +113 -0
- data/lib/axi/AXI_stream/axis_sim_master_model.rb +2 -0
- data/lib/axi/AXI_stream/axis_sim_master_model.sv +46 -0
- data/lib/axi/AXI_stream/axis_split_channel_verb.sv +62 -0
- data/lib/axi/common/common_ram_sim_wrapper.sv +1 -1
- data/lib/axi/common/common_ram_wrapper.sv +1 -1
- data/lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.sv +11 -11
- data/lib/axi/data_interface/data_inf_c/data_c_sim_master_model.sv +14 -11
- data/lib/axi/platform_ip/fifo_36kb_long.sv +1 -1
- data/lib/axi/techbench/tb_axi_stream_split_channel.rb +1 -1
- data/lib/axi/techbench/tb_axi_stream_split_channel.sv +46 -45
- data/lib/axi_tdl/version.rb +1 -1
- data/lib/public_atom_module/CheckPClock.sv +53 -0
- data/lib/public_atom_module/LICENSE.md +674 -0
- data/lib/public_atom_module/altera_xilinx_always_block_sw.rb +57 -0
- data/lib/public_atom_module/bits_decode.sv +71 -0
- data/lib/public_atom_module/bits_decode_verb.sv +71 -0
- data/lib/public_atom_module/bits_decode_verb_sdl.rb +24 -0
- data/lib/public_atom_module/broaden.v +43 -0
- data/lib/public_atom_module/broaden_and_cross_clk.v +47 -0
- data/lib/public_atom_module/ceiling.v +39 -0
- data/lib/public_atom_module/ceiling_A1.v +42 -0
- data/lib/public_atom_module/clock_rst.sv +64 -0
- data/lib/public_atom_module/cross_clk_sync.v +37 -0
- data/lib/public_atom_module/edge_generator.v +50 -0
- data/lib/public_atom_module/flooring.v +36 -0
- data/lib/public_atom_module/latch_data.v +30 -0
- data/lib/public_atom_module/latency.v +48 -0
- data/lib/public_atom_module/latency_dynamic.v +83 -0
- data/lib/public_atom_module/latency_long.v +84 -0
- data/lib/public_atom_module/latency_verb.v +52 -0
- data/lib/public_atom_module/once_event.sv +65 -0
- data/lib/public_atom_module/pipe_reg.v +93 -0
- data/lib/public_atom_module/pipe_reg_2write_ports.v +84 -0
- data/lib/public_atom_module/sim/clock_rst_verb.sv +54 -0
- data/lib/public_atom_module/sim/latency_long_tb.sv +49 -0
- data/lib/public_atom_module/sim/latency_long_tb.sv.bak +49 -0
- data/lib/tdl/Logic/logic_edge.rb +1 -1
- data/lib/tdl/axi4/axi4_interconnect_verb.rb +46 -9
- data/lib/tdl/class_hdl/hdl_always_comb.rb +4 -1
- data/lib/tdl/class_hdl/hdl_always_ff.rb +2 -2
- data/lib/tdl/class_hdl/hdl_assign.rb +7 -1
- data/lib/tdl/class_hdl/hdl_block_ifelse.rb +7 -7
- data/lib/tdl/class_hdl/hdl_foreach.rb +2 -2
- data/lib/tdl/class_hdl/hdl_function.rb +4 -4
- data/lib/tdl/class_hdl/hdl_generate.rb +4 -1
- data/lib/tdl/class_hdl/hdl_initial.rb +25 -3
- data/lib/tdl/class_hdl/hdl_module_def.rb +9 -6
- data/lib/tdl/class_hdl/hdl_package.rb +45 -0
- data/lib/tdl/class_hdl/hdl_redefine_opertor.rb +99 -27
- data/lib/tdl/class_hdl/hdl_struct.rb +2 -2
- data/lib/tdl/elements/Reset.rb +5 -9
- data/lib/tdl/elements/clock.rb +5 -9
- data/lib/tdl/elements/data_inf.rb +0 -17
- data/lib/tdl/elements/logic.rb +9 -31
- data/lib/tdl/elements/mail_box.rb +6 -1
- data/lib/tdl/elements/originclass.rb +17 -47
- data/lib/tdl/elements/parameter.rb +5 -6
- data/lib/tdl/examples/11_test_unit/dve.tcl +6 -153
- data/lib/tdl/examples/11_test_unit/exp_test_unit.sv +1 -1
- data/lib/tdl/examples/11_test_unit/modules/sub_md0.sv +1 -1
- data/lib/tdl/examples/11_test_unit/tb_exp_test_unit.sv +1 -3
- data/lib/tdl/examples/11_test_unit/tb_exp_test_unit_sim.sv +1 -2
- data/lib/tdl/examples/11_test_unit/tu0.sv +1 -1
- data/lib/tdl/examples/1_define_module/exmple_md.sv +1 -1
- data/lib/tdl/examples/2_hdl_class/tmp/module_instance_test.sv +1 -1
- data/lib/tdl/examples/2_hdl_class/tmp/test_inst_sugar.sv +1 -1
- data/lib/tdl/examples/2_hdl_class/tmp/test_module.sv +3 -3
- data/lib/tdl/examples/2_hdl_class/tmp/test_module_port.sv +1 -1
- data/lib/tdl/examples/2_hdl_class/tmp/test_module_var.sv +1 -1
- data/lib/tdl/examples/2_hdl_class/tmp/test_package.sv +4 -3
- data/lib/tdl/examples/2_hdl_class/tmp/test_vcs_string.sv +1 -1
- data/lib/tdl/examples/3_hdl_sdl_instance/main_md.sv +1 -1
- data/lib/tdl/examples/3_hdl_sdl_instance/sdl_md.sv +1 -1
- data/lib/tdl/examples/6_module_with_interface/inf_collect.sv +1 -1
- data/lib/tdl/examples/7_module_with_package/body_package.sv +4 -3
- data/lib/tdl/examples/7_module_with_package/example_pkg.sv +1 -1
- data/lib/tdl/examples/7_module_with_package/head_package.sv +4 -3
- data/lib/tdl/examples/8_top_module/dve.tcl +2 -155
- data/lib/tdl/examples/8_top_module/tb_test_top.sv +1 -1
- data/lib/tdl/examples/8_top_module/tb_test_top_sim.sv +1 -1
- data/lib/tdl/examples/8_top_module/test_top.sv +1 -1
- data/lib/tdl/examples/9_itegration/dve.tcl +2 -155
- data/lib/tdl/examples/9_itegration/tb_test_tttop.sv +3 -1
- data/lib/tdl/examples/9_itegration/tb_test_tttop_sim.sv +1 -1
- data/lib/tdl/examples/9_itegration/test_tttop.sv +1 -1
- data/lib/tdl/exlib/axis_verify.rb +4 -3
- data/lib/tdl/rebuild_ele/ele_base.rb +8 -8
- data/lib/tdl/sdlmodule/sdlmodule.rb +61 -51
- data/lib/tdl/sdlmodule/sdlmodule_arraychain.rb +1 -1
- data/lib/tdl/sdlmodule/sdlmodule_instance.rb +3 -0
- data/lib/tdl/sdlmodule/sdlmodule_port_define.rb +6 -6
- data/lib/tdl/sdlmodule/sdlmodule_varible.rb +6 -6
- data/lib/tdl/sdlmodule/test_unit_module.rb +5 -0
- data/lib/tdl/tdlerror/tdlerror.rb +1 -1
- metadata +34 -3
- data/lib/axi/AXI_stream/axis_length_split_writh_user.sv +0 -87
@@ -158,7 +158,7 @@ module ClassHDL
|
|
158
158
|
|
159
159
|
def [](a)
|
160
160
|
if dimension
|
161
|
-
return TdlSpace::ArrayChain.
|
161
|
+
return TdlSpace::ArrayChain.create(obj:self,lchain:[a],belong_to_module: belong_to_module)
|
162
162
|
else
|
163
163
|
raise TdlError.new "#{@name} dimenson is nil "
|
164
164
|
end
|
@@ -171,7 +171,7 @@ module ClassHDL
|
|
171
171
|
self.define_singleton_method(e.name) do
|
172
172
|
# RedefOpertor.with_normal_operators do
|
173
173
|
ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
|
174
|
-
TdlSpace::ArrayChain.
|
174
|
+
TdlSpace::ArrayChain.create(obj:"#{@name}.#{e.to_s}".to_nq, belong_to_module: self.belong_to_module)
|
175
175
|
end
|
176
176
|
end
|
177
177
|
end
|
data/lib/tdl/elements/Reset.rb
CHANGED
@@ -5,7 +5,7 @@ class Reset < SignalElm
|
|
5
5
|
attr_reader :name,:active
|
6
6
|
attr_accessor :id,:ghost,:port,:dsize
|
7
7
|
|
8
|
-
def initialize(name:"system_rst",active:"LOW",port:false,dsize:1)
|
8
|
+
def initialize(name:"system_rst",active:"LOW",port:false,dsize:1, belong_to_module: nil)
|
9
9
|
name_legal?(name)
|
10
10
|
# @id = GlobalParam.CurrTdlModule.BindEleClassVars.Reset.id
|
11
11
|
@dsize = dsize
|
@@ -15,14 +15,10 @@ class Reset < SignalElm
|
|
15
15
|
if @active.eql?("low") && @active.eql?("high")
|
16
16
|
raise TdlError.new("RESET ACTIVE PARA #{@active} ERROR")
|
17
17
|
end
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
# end
|
23
|
-
# if @id == 2
|
24
|
-
# raise TdlError.new("____________")
|
25
|
-
# end
|
18
|
+
@belong_to_module = belong_to_module
|
19
|
+
unless @belong_to_module
|
20
|
+
raise TdlError.new("Reset<#{name}> dnot have belong_to_module")
|
21
|
+
end
|
26
22
|
end
|
27
23
|
|
28
24
|
# def signal
|
data/lib/tdl/elements/clock.rb
CHANGED
@@ -5,7 +5,7 @@ class Clock < SignalElm
|
|
5
5
|
attr_reader :name
|
6
6
|
attr_accessor :id,:ghost,:port,:dsize,:freqM,:jitter
|
7
7
|
|
8
|
-
def initialize(name:"system_clock",freqM:100.0,port:false,dsize:1,jitter: 0.01)
|
8
|
+
def initialize(name:"system_clock",freqM:100.0,port:false,dsize:1,jitter: 0.01, belong_to_module: nil)
|
9
9
|
name_legal?(name)
|
10
10
|
# @id = GlobalParam.CurrTdlModule.BindEleClassVars.Clock.id
|
11
11
|
@name = name
|
@@ -13,14 +13,10 @@ class Clock < SignalElm
|
|
13
13
|
@port = port
|
14
14
|
@dsize = dsize
|
15
15
|
@jitter = jitter
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
# end
|
21
|
-
# if @id == 0
|
22
|
-
# raise TdlError.new(" ID ")
|
23
|
-
# end
|
16
|
+
@belong_to_module = belong_to_module
|
17
|
+
unless @belong_to_module
|
18
|
+
raise TdlError.new("Clock<#{name}> dnot have belong_to_module")
|
19
|
+
end
|
24
20
|
end
|
25
21
|
|
26
22
|
# def port_length
|
@@ -567,23 +567,6 @@ end
|
|
567
567
|
|
568
568
|
class DataInf_C ## signals in interface
|
569
569
|
|
570
|
-
# def valid
|
571
|
-
# RedefOpertor.with_normal_operators do
|
572
|
-
# # raise TdlError.new("\nARRAY Don't have 'valid'") unless @dimension.empty?
|
573
|
-
# # NqString.new(signal.concat ".valid")
|
574
|
-
# if @dimension.empty?
|
575
|
-
# NqString.new(signal.concat ".valid")
|
576
|
-
# else
|
577
|
-
# unless @_array_chain_hash_
|
578
|
-
# rel = generate_inf_to_signals('valid',width=1)
|
579
|
-
# @_array_chain_hash_ = {}
|
580
|
-
# @_array_chain_hash_['valid'] = rel
|
581
|
-
# end
|
582
|
-
# TdlSpace::ArrayChain.new(@_array_chain_hash_['valid'],[])
|
583
|
-
# end
|
584
|
-
# end
|
585
|
-
# end
|
586
|
-
|
587
570
|
define_arraychain_tail_method('valid')
|
588
571
|
define_arraychain_tail_method('ready',width=1,rv=true)
|
589
572
|
define_arraychain_tail_method('vld_rdy')
|
data/lib/tdl/elements/logic.rb
CHANGED
@@ -21,7 +21,7 @@ class Logic < SignalElm
|
|
21
21
|
# attr_reader :dsize
|
22
22
|
attr_accessor :name,:dsize,:id,:ghost,:type
|
23
23
|
attr_reader :dimension,:port
|
24
|
-
def initialize(name:"tmp",dsize:1,port: false,default: nil,msb_high: true,dimension: [],type: "logic")
|
24
|
+
def initialize(name:"tmp",dsize:1,port: false,default: nil,msb_high: true,dimension: [],type: "logic",belong_to_module: nil)
|
25
25
|
@name = name
|
26
26
|
# @id = GlobalParam.CurrTdlModule.BindEleClassVars.Logic.id
|
27
27
|
@dsize = dsize
|
@@ -37,31 +37,12 @@ class Logic < SignalElm
|
|
37
37
|
yield
|
38
38
|
end
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
# define_method(:signal) do |h,l|
|
47
|
-
# if h
|
48
|
-
# hh = h
|
49
|
-
# else
|
50
|
-
# hh = dsize-1
|
51
|
-
# end
|
52
|
-
#
|
53
|
-
# if l
|
54
|
-
# ll = l
|
55
|
-
# else
|
56
|
-
# l = 0
|
57
|
-
# end
|
58
|
-
#
|
59
|
-
# if dsize == 1
|
60
|
-
# "#{name}_id#{@id}"
|
61
|
-
# else
|
62
|
-
# "#{name}_id#{@id}[#{hh}:#{ll}]"
|
63
|
-
# end
|
64
|
-
# end
|
40
|
+
@belong_to_module = belong_to_module
|
41
|
+
|
42
|
+
unless @belong_to_module
|
43
|
+
raise TdlError.new("Logic<#{@name}> be not belong_to_module")
|
44
|
+
end
|
45
|
+
|
65
46
|
end
|
66
47
|
|
67
48
|
def copy(name:@name.to_s,dsize:@dsize,port:@port,default:@default,msb_high:@msb_high,dimension:@dimension,type:@type,belong_to_module:@belong_to_module)
|
@@ -98,12 +79,9 @@ class Logic < SignalElm
|
|
98
79
|
b.slaver = true
|
99
80
|
end
|
100
81
|
|
101
|
-
|
102
|
-
# TdlSpace::ArrayChain.new(self,a,b)
|
103
|
-
# end
|
104
|
-
# end
|
82
|
+
|
105
83
|
ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
|
106
|
-
TdlSpace::ArrayChain.
|
84
|
+
TdlSpace::ArrayChain.create(obj: self,lchain: a, end_slice: b, belong_to_module: belong_to_module)
|
107
85
|
end
|
108
86
|
end
|
109
87
|
|
@@ -4,11 +4,16 @@ class MailBox < BaseElm
|
|
4
4
|
# include AlwaysBlock
|
5
5
|
# include RedefOpertor
|
6
6
|
attr_accessor :ghost
|
7
|
-
def initialize(name:'mbox',depth:100)
|
7
|
+
def initialize(name:'mbox',depth:100, belong_to_module: nil )
|
8
8
|
@name = name
|
9
9
|
|
10
10
|
@depth = depth
|
11
11
|
|
12
|
+
@belong_to_module = belong_to_module
|
13
|
+
unless @belong_to_module
|
14
|
+
raise TdlError.new("Clock<#{name}> dnot have belong_to_module")
|
15
|
+
end
|
16
|
+
|
12
17
|
end
|
13
18
|
|
14
19
|
def signal
|
@@ -8,8 +8,9 @@ module TdlSpace
|
|
8
8
|
end
|
9
9
|
|
10
10
|
class ArrayChain
|
11
|
-
attr_reader :obj,:chain,:end_slice
|
12
|
-
def initialize(obj="tmp",lchain=[],end_slice=false)
|
11
|
+
attr_reader :obj,:chain,:end_slice,:belong_to_module
|
12
|
+
def initialize(obj="tmp",lchain=[],end_slice=false,belong_to_module=nil)
|
13
|
+
@belong_to_module=belong_to_module
|
13
14
|
@obj = obj
|
14
15
|
if !end_slice
|
15
16
|
if lchain.is_a? Array
|
@@ -25,48 +26,19 @@ module TdlSpace
|
|
25
26
|
else
|
26
27
|
raise TdlError.new("数组下标类型出错")
|
27
28
|
end
|
29
|
+
|
30
|
+
unless @belong_to_module
|
31
|
+
raise TdlError.new "ArrayChain<#{obj.to_s}> 必须添加 belong_to_module"
|
32
|
+
end
|
28
33
|
end
|
29
34
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
# end
|
38
|
-
|
39
|
-
# if @end_slice
|
40
|
-
# raise TdlError.new("数组下标已经被用片选[#{@end_slice[0]},#{@end_slice[1]}]终结")
|
41
|
-
# end
|
42
|
-
# RedefOpertor.with_normal_operators do
|
43
|
-
# unless b
|
44
|
-
# ArrayChain.new(obj,chain+[a])
|
45
|
-
# else
|
46
|
-
# # ArrayChain.new(&obj,chain,[a,b])
|
47
|
-
# @end_slice = [a,b]
|
48
|
-
# self
|
49
|
-
# end
|
50
|
-
# end
|
51
|
-
# end
|
52
|
-
|
53
|
-
# def to_s
|
54
|
-
# RedefOpertor.with_normal_operators do
|
55
|
-
# str = ""
|
56
|
-
# chain.each do |e|
|
57
|
-
# unless e.is_a? ArrayChainSignalMethod
|
58
|
-
# str += "[#{e.to_s}]"
|
59
|
-
# else
|
60
|
-
# str += ".#{e.name.to_s}"
|
61
|
-
# end
|
62
|
-
# end
|
63
|
-
# if @end_slice
|
64
|
-
# str += "[#{@end_slice[0]}:#{@end_slice[1]}]"
|
65
|
-
# end
|
66
|
-
|
67
|
-
# "#{obj.to_s}#{str}".to_nq
|
68
|
-
# end
|
69
|
-
# end
|
35
|
+
def self.create(obj: "tmp",lchain: [],end_slice: false,belong_to_module: nil)
|
36
|
+
ArrayChain.new(obj, lchain, end_slice, belong_to_module)
|
37
|
+
end
|
38
|
+
|
39
|
+
def root_ref(&block)
|
40
|
+
"#{belong_to_module.root_ref(&block)}.#{to_s}".to_nq
|
41
|
+
end
|
70
42
|
|
71
43
|
def inspect
|
72
44
|
self.to_s
|
@@ -86,9 +58,7 @@ module TdlSpace
|
|
86
58
|
end
|
87
59
|
## 判断 obj是否响应方法
|
88
60
|
if @obj.respond_to?(method) && !method.to_s.eql?("inst_name")
|
89
|
-
|
90
|
-
# ArrayChain.new(@obj.to_s,lchain=@chain.dup.concat([ArrayChainSignalMethod.new(method)]))
|
91
|
-
ArrayChain.new(@obj,lchain=@chain.dup.concat([ArrayChainSignalMethod.new(method)]))
|
61
|
+
ArrayChain.create(obj: @obj,lchain:@chain.dup.concat([ArrayChainSignalMethod.new(method)]) ,belong_to_module: belong_to_module)
|
92
62
|
else
|
93
63
|
|
94
64
|
# raise TdlError.new("ArrayChain 没有末尾方法 #{method} #{arg}")
|
@@ -212,7 +182,7 @@ class BaseElm < AxiTdl::SdlModuleActiveBaseElm
|
|
212
182
|
|
213
183
|
@_array_chain_hash_[name.to_s] = rel
|
214
184
|
end
|
215
|
-
TdlSpace::ArrayChain.
|
185
|
+
TdlSpace::ArrayChain.create(obj: @_array_chain_hash_[name.to_s],lchain:[],belong_to_module: self.belong_to_module)
|
216
186
|
end
|
217
187
|
end
|
218
188
|
end
|
@@ -484,7 +454,7 @@ class InfElm
|
|
484
454
|
|
485
455
|
return signal if @dimension.empty?
|
486
456
|
|
487
|
-
TdlSpace::ArrayChain.
|
457
|
+
TdlSpace::ArrayChain.create(obj: self,lchain: a, end_slice: b, belong_to_module: belong_to_module)
|
488
458
|
end
|
489
459
|
|
490
460
|
def self.same_name_socket(way,mix,inf_array,base_new_inf=nil,belong_to_module=nil)
|
@@ -6,7 +6,7 @@ class Parameter < BaseElm
|
|
6
6
|
include BaseModule
|
7
7
|
attr_accessor :name,:value,:id,:ghost,:type,:vcs_string
|
8
8
|
|
9
|
-
def initialize(name: "P",value:100,local:false,port:false,show:true,type:nil)
|
9
|
+
def initialize(name: "P",value:100,local:false,port:false,show:true,type:nil,belong_to_module: nil)
|
10
10
|
@name = name
|
11
11
|
@local = local
|
12
12
|
# @id = GlobalParam.CurrTdlModule.BindEleClassVars.Parameter.id
|
@@ -14,11 +14,10 @@ class Parameter < BaseElm
|
|
14
14
|
@show = show
|
15
15
|
@value = value
|
16
16
|
@type = type
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
# end
|
17
|
+
@belong_to_module = belong_to_module
|
18
|
+
unless @belong_to_module
|
19
|
+
raise TdlError.new("Parameter<#{name}> dnot have belong_to_module")
|
20
|
+
end
|
22
21
|
end
|
23
22
|
|
24
23
|
def inst
|
@@ -12,128 +12,8 @@ gui_set_time_units 1ps
|
|
12
12
|
## gui_sg_addsignal -group "$_wave_session_group" { {Sim:tb_Mammo_TCP_sim.g1_test_mac_1g_inst.test_fpga_version_inst.ctrl_udp_rd_version} {Sim:tb_Mammo_TCP_sim.rtl_top.fpga_version_verb.to_ctrl_tap_in_inf} {Sim:tb_Mammo_TCP_sim.rtl_top.fpga_version_verb.ctrl_tap_inf} {Sim:tb_Mammo_TCP_sim.g1_test_mac_1g_inst.tcp_udp_proto_workshop_1G_inst.genblk1[0].tcp_data_stack_top_inst.client_port} }
|
13
13
|
## ==== [add_signal] ===== ##
|
14
14
|
|
15
|
-
## -------------- sub_md0_logic -------------------------
|
16
|
-
set _wave_session_group_sub_md0_logic sub_md0_logic
|
17
|
-
# set _wave_session_group_sub_md0_logic [gui_sg_generate_new_name -seed sub_md0_logic]
|
18
|
-
if {[gui_sg_is_group -name "$_wave_session_group_sub_md0_logic"]} {
|
19
|
-
set _wave_session_group_sub_md0_logic [gui_sg_generate_new_name]
|
20
|
-
}
|
21
|
-
set Group2_sub_md0_logic "$_wave_session_group_sub_md0_logic"
|
22
|
-
|
23
|
-
## 添加信号到 group
|
24
|
-
gui_sg_addsignal -group "$_wave_session_group_sub_md0_logic" { {Sim:tb_exp_test_unit.rtl_top.sub_md0_inst.cnt} }
|
25
|
-
## ============== sub_md0_logic =========================
|
26
|
-
|
27
|
-
|
28
|
-
## -------------- sub_md0_interface -------------------------
|
29
|
-
set _wave_session_group_sub_md0_interface sub_md0_interface
|
30
|
-
# set _wave_session_group_sub_md0_interface [gui_sg_generate_new_name -seed sub_md0_interface]
|
31
|
-
if {[gui_sg_is_group -name "$_wave_session_group_sub_md0_interface"]} {
|
32
|
-
set _wave_session_group_sub_md0_interface [gui_sg_generate_new_name]
|
33
|
-
}
|
34
|
-
set Group2_sub_md0_interface "$_wave_session_group_sub_md0_interface"
|
35
|
-
|
36
|
-
## 添加信号到 group
|
37
|
-
gui_sg_addsignal -group "$_wave_session_group_sub_md0_interface" { {Sim:tb_exp_test_unit.rtl_top.sub_md0_inst.axis_in} }
|
38
|
-
## ============== sub_md0_interface =========================
|
39
|
-
|
40
|
-
|
41
|
-
## -------------- sub_md0_default -------------------------
|
42
|
-
set _wave_session_group_sub_md0_default sub_md0_default
|
43
|
-
# set _wave_session_group_sub_md0_default [gui_sg_generate_new_name -seed sub_md0_default]
|
44
|
-
if {[gui_sg_is_group -name "$_wave_session_group_sub_md0_default"]} {
|
45
|
-
set _wave_session_group_sub_md0_default [gui_sg_generate_new_name]
|
46
|
-
}
|
47
|
-
set Group2_sub_md0_default "$_wave_session_group_sub_md0_default"
|
48
|
-
|
49
|
-
## 添加信号到 group
|
50
|
-
gui_sg_addsignal -group "$_wave_session_group_sub_md0_default" { }
|
51
|
-
## ============== sub_md0_default =========================
|
52
|
-
|
53
|
-
|
54
|
-
## -------------- sub_md0_default.inter_tf -------------------------
|
55
|
-
## set _wave_session_group_sub_md0_default_inter_tf Group1
|
56
|
-
## set _wave_session_group_sub_md0_default_inter_tf [gui_sg_generate_new_name -seed inter_tf -parent $_wave_session_group_sub_md0_default ]
|
57
15
|
|
58
|
-
set _wave_session_group_sub_md0_default_inter_tf $_wave_session_group_sub_md0_default|
|
59
|
-
append _wave_session_group_sub_md0_default_inter_tf inter_tf
|
60
|
-
set sub_md0_default|inter_tf "$_wave_session_group_sub_md0_default_inter_tf"
|
61
|
-
|
62
|
-
# set Group2_sub_md0_default_inter_tf "$_wave_session_group_sub_md0_default_inter_tf"
|
63
|
-
|
64
|
-
## 添加信号到 group
|
65
|
-
gui_sg_addsignal -group "$_wave_session_group_sub_md0_default_inter_tf" { {Sim:tb_exp_test_unit.rtl_top.sub_md0_inst.inter_tf} }
|
66
|
-
## ============== sub_md0_default.inter_tf =========================
|
67
|
-
|
68
|
-
|
69
|
-
## -------------- sub_md1_default -------------------------
|
70
|
-
set _wave_session_group_sub_md1_default sub_md1_default
|
71
|
-
# set _wave_session_group_sub_md1_default [gui_sg_generate_new_name -seed sub_md1_default]
|
72
|
-
if {[gui_sg_is_group -name "$_wave_session_group_sub_md1_default"]} {
|
73
|
-
set _wave_session_group_sub_md1_default [gui_sg_generate_new_name]
|
74
|
-
}
|
75
|
-
set Group2_sub_md1_default "$_wave_session_group_sub_md1_default"
|
76
|
-
|
77
|
-
## 添加信号到 group
|
78
|
-
gui_sg_addsignal -group "$_wave_session_group_sub_md1_default" { {Sim:tb_exp_test_unit.rtl_top.sub_md1_inst.cnt} {Sim:tb_exp_test_unit.rtl_top.sub_md1_inst.axis_out} {Sim:tb_exp_test_unit.rtl_top.sub_md1_inst.enable} }
|
79
|
-
## ============== sub_md1_default =========================
|
80
|
-
|
81
|
-
|
82
|
-
## -------------- sub_md1_inner -------------------------
|
83
|
-
set _wave_session_group_sub_md1_inner sub_md1_inner
|
84
|
-
# set _wave_session_group_sub_md1_inner [gui_sg_generate_new_name -seed sub_md1_inner]
|
85
|
-
if {[gui_sg_is_group -name "$_wave_session_group_sub_md1_inner"]} {
|
86
|
-
set _wave_session_group_sub_md1_inner [gui_sg_generate_new_name]
|
87
|
-
}
|
88
|
-
set Group2_sub_md1_inner "$_wave_session_group_sub_md1_inner"
|
89
|
-
|
90
|
-
## 添加信号到 group
|
91
|
-
gui_sg_addsignal -group "$_wave_session_group_sub_md1_inner" { }
|
92
|
-
## ============== sub_md1_inner =========================
|
93
|
-
|
94
16
|
|
95
|
-
## -------------- sub_md1_inner.inter_tf -------------------------
|
96
|
-
## set _wave_session_group_sub_md1_inner_inter_tf Group1
|
97
|
-
## set _wave_session_group_sub_md1_inner_inter_tf [gui_sg_generate_new_name -seed inter_tf -parent $_wave_session_group_sub_md1_inner ]
|
98
|
-
|
99
|
-
set _wave_session_group_sub_md1_inner_inter_tf $_wave_session_group_sub_md1_inner|
|
100
|
-
append _wave_session_group_sub_md1_inner_inter_tf inter_tf
|
101
|
-
set sub_md1_inner|inter_tf "$_wave_session_group_sub_md1_inner_inter_tf"
|
102
|
-
|
103
|
-
# set Group2_sub_md1_inner_inter_tf "$_wave_session_group_sub_md1_inner_inter_tf"
|
104
|
-
|
105
|
-
## 添加信号到 group
|
106
|
-
gui_sg_addsignal -group "$_wave_session_group_sub_md1_inner_inter_tf" { {Sim:tb_exp_test_unit.rtl_top.sub_md1_inst.inter_tf} }
|
107
|
-
## ============== sub_md1_inner.inter_tf =========================
|
108
|
-
|
109
|
-
|
110
|
-
## -------------- exp_test_unit_default -------------------------
|
111
|
-
set _wave_session_group_exp_test_unit_default exp_test_unit_default
|
112
|
-
# set _wave_session_group_exp_test_unit_default [gui_sg_generate_new_name -seed exp_test_unit_default]
|
113
|
-
if {[gui_sg_is_group -name "$_wave_session_group_exp_test_unit_default"]} {
|
114
|
-
set _wave_session_group_exp_test_unit_default [gui_sg_generate_new_name]
|
115
|
-
}
|
116
|
-
set Group2_exp_test_unit_default "$_wave_session_group_exp_test_unit_default"
|
117
|
-
|
118
|
-
## 添加信号到 group
|
119
|
-
gui_sg_addsignal -group "$_wave_session_group_exp_test_unit_default" { }
|
120
|
-
## ============== exp_test_unit_default =========================
|
121
|
-
|
122
|
-
|
123
|
-
## -------------- exp_test_unit_default.axis_data_inf -------------------------
|
124
|
-
## set _wave_session_group_exp_test_unit_default_axis_data_inf Group1
|
125
|
-
## set _wave_session_group_exp_test_unit_default_axis_data_inf [gui_sg_generate_new_name -seed axis_data_inf -parent $_wave_session_group_exp_test_unit_default ]
|
126
|
-
|
127
|
-
set _wave_session_group_exp_test_unit_default_axis_data_inf $_wave_session_group_exp_test_unit_default|
|
128
|
-
append _wave_session_group_exp_test_unit_default_axis_data_inf axis_data_inf
|
129
|
-
set exp_test_unit_default|axis_data_inf "$_wave_session_group_exp_test_unit_default_axis_data_inf"
|
130
|
-
|
131
|
-
# set Group2_exp_test_unit_default_axis_data_inf "$_wave_session_group_exp_test_unit_default_axis_data_inf"
|
132
|
-
|
133
|
-
## 添加信号到 group
|
134
|
-
gui_sg_addsignal -group "$_wave_session_group_exp_test_unit_default_axis_data_inf" { {Sim:tb_exp_test_unit.rtl_top.axis_data_inf} }
|
135
|
-
## ============== exp_test_unit_default.axis_data_inf =========================
|
136
|
-
|
137
17
|
|
138
18
|
## 创建波形窗口
|
139
19
|
if {![info exists useOldWindow]} {
|
@@ -162,33 +42,9 @@ gui_wv_zoom_timerange -id ${Wave.3} 0 1000000000
|
|
162
42
|
## gui_list_add_group -id ${Wave.3} -after ${Group2} [list ${Group2|tx_inf}]
|
163
43
|
## gui_list_expand -id ${Wave.3} tb_Mammo_TCP_sim.rtl_top.fpga_version_verb.ctrl_tap_inf
|
164
44
|
## === [add_signal_wave] === ##
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
## -------------- Group2_sub_md0_interface -------------------------
|
169
|
-
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${Group2_sub_md0_interface}]
|
170
|
-
## ============== Group2_sub_md0_interface =========================
|
171
|
-
## -------------- Group2_sub_md0_default -------------------------
|
172
|
-
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${Group2_sub_md0_default}]
|
173
|
-
## ============== Group2_sub_md0_default =========================
|
174
|
-
## -------------- sub_md0_default|inter_tf -------------------------
|
175
|
-
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${sub_md0_default|inter_tf}]
|
176
|
-
## ============== sub_md0_default|inter_tf =========================
|
177
|
-
## -------------- Group2_sub_md1_default -------------------------
|
178
|
-
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${Group2_sub_md1_default}]
|
179
|
-
## ============== Group2_sub_md1_default =========================
|
180
|
-
## -------------- Group2_sub_md1_inner -------------------------
|
181
|
-
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${Group2_sub_md1_inner}]
|
182
|
-
## ============== Group2_sub_md1_inner =========================
|
183
|
-
## -------------- sub_md1_inner|inter_tf -------------------------
|
184
|
-
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${sub_md1_inner|inter_tf}]
|
185
|
-
## ============== sub_md1_inner|inter_tf =========================
|
186
|
-
## -------------- Group2_exp_test_unit_default -------------------------
|
187
|
-
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${Group2_exp_test_unit_default}]
|
188
|
-
## ============== Group2_exp_test_unit_default =========================
|
189
|
-
## -------------- exp_test_unit_default|axis_data_inf -------------------------
|
190
|
-
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${exp_test_unit_default|axis_data_inf}]
|
191
|
-
## ============== exp_test_unit_default|axis_data_inf =========================
|
45
|
+
|
46
|
+
|
47
|
+
|
192
48
|
|
193
49
|
gui_seek_criteria -id ${Wave.3} {Any Edge}
|
194
50
|
|
@@ -205,12 +61,9 @@ gui_list_set_filter -id ${Wave.3} -list { {Buffer 1} {Input 1} {Others 1} {Linka
|
|
205
61
|
gui_list_set_filter -id ${Wave.3} -text {*}
|
206
62
|
##gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2} -position in
|
207
63
|
## === [add_bar] === ##
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2_sub_md1_default} -position in
|
212
|
-
gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2_sub_md1_inner} -position in
|
213
|
-
gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2_exp_test_unit_default} -position in
|
64
|
+
|
65
|
+
|
66
|
+
|
214
67
|
|
215
68
|
gui_marker_move -id ${Wave.3} {C1} 560248001
|
216
69
|
gui_view_scroll -id ${Wave.3} -vertical -set 35
|