axi_tdl 0.0.10 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +44 -0
  3. data/.github/workflows/ruby.yml +35 -0
  4. data/.gitignore +3 -1
  5. data/.travis.yml +9 -0
  6. data/Gemfile +4 -0
  7. data/README.EN.md +7 -2
  8. data/README.md +6 -2
  9. data/Rakefile +2 -6
  10. data/axi_tdl.gemspec +3 -4
  11. data/lib/axi/AXI4/axi4_direct_B1.sv +23 -23
  12. data/lib/axi/AXI4/axi4_dpram_cache.sv +33 -33
  13. data/lib/axi/AXI4/axis_to_axi4_wr.rb +1 -0
  14. data/lib/axi/AXI4/axis_to_axi4_wr.sv +20 -20
  15. data/lib/axi/AXI4/packet_partition/axi4_partition_rd_verb.sv +32 -32
  16. data/lib/axi/AXI4/packet_partition/data_inf_partition.rb +2 -0
  17. data/lib/axi/AXI4/packet_partition/data_inf_partition.sv +71 -71
  18. data/lib/axi/AXI4/wide_axis_to_axi4_wr.rb +2 -1
  19. data/lib/axi/AXI4/wide_axis_to_axi4_wr.sv +23 -23
  20. data/lib/axi/AXI_stream/axi_stream_split_channel.rb +7 -1
  21. data/lib/axi/AXI_stream/axis_head_cut_verb.sv +6 -2
  22. data/lib/axi/AXI_stream/axis_insert_copy.rb +18 -4
  23. data/lib/axi/AXI_stream/axis_sim_master_model.rb +28 -0
  24. data/lib/axi/AXI_stream/axis_sim_slaver_model.rb +26 -0
  25. data/lib/axi/AXI_stream/axis_sim_verify_by_coe.sv +101 -0
  26. data/lib/axi/AXI_stream/axis_split_channel_verb.rb +2 -0
  27. data/lib/axi/common/common_ram_sim_wrapper.sv +9 -9
  28. data/lib/axi/common/common_ram_wrapper.sv +12 -12
  29. data/lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.sv +26 -26
  30. data/lib/axi/data_interface/data_inf_c/data_c_sim_master_model.sv +69 -0
  31. data/lib/axi/data_interface/data_inf_c/data_c_sim_slaver_model.sv +58 -0
  32. data/lib/axi/data_interface/data_inf_c/logic_sim_model.sv +64 -0
  33. data/lib/axi/techbench/tb_axi_stream_split_channel.rb +69 -0
  34. data/lib/axi/techbench/tb_axi_stream_split_channel.sv +149 -0
  35. data/lib/axi/techbench/tb_axis_split_channel_verb.rb +69 -0
  36. data/lib/axi/techbench/tb_axis_split_channel_verb.sv +125 -0
  37. data/lib/axi_tdl.rb +1 -0
  38. data/lib/axi_tdl/version.rb +1 -1
  39. data/lib/tdl/auto_script/autogensdl.rb +16 -5
  40. data/lib/tdl/axi4/axi4_interconnect_verb.rb +4 -2
  41. data/lib/tdl/basefunc.rb +1 -0
  42. data/lib/tdl/class_hdl/hdl_always_comb.rb +4 -3
  43. data/lib/tdl/class_hdl/hdl_always_ff.rb +49 -8
  44. data/lib/tdl/class_hdl/hdl_assign.rb +5 -3
  45. data/lib/tdl/class_hdl/hdl_block_ifelse.rb +11 -9
  46. data/lib/tdl/class_hdl/hdl_foreach.rb +2 -2
  47. data/lib/tdl/class_hdl/hdl_function.rb +4 -2
  48. data/lib/tdl/class_hdl/hdl_generate.rb +5 -4
  49. data/lib/tdl/class_hdl/hdl_initial.rb +11 -10
  50. data/lib/tdl/class_hdl/hdl_module_def.rb +18 -1
  51. data/lib/tdl/class_hdl/hdl_redefine_opertor.rb +35 -14
  52. data/lib/tdl/class_hdl/hdl_struct.rb +1 -1
  53. data/lib/tdl/class_hdl/hdl_verify.rb +1 -1
  54. data/lib/tdl/elements/originclass.rb +6 -1
  55. data/lib/tdl/elements/parameter.rb +1 -1
  56. data/lib/tdl/examples/10_random/exp_random.sv +3 -3
  57. data/lib/tdl/examples/11_test_unit/dve.tcl +155 -2
  58. data/lib/tdl/examples/11_test_unit/exp_test_unit.rb +9 -8
  59. data/lib/tdl/examples/11_test_unit/exp_test_unit.sv +1 -1
  60. data/lib/tdl/examples/11_test_unit/modules/sub_md0.rb +6 -3
  61. data/lib/tdl/examples/11_test_unit/modules/sub_md0.sv +5 -5
  62. data/lib/tdl/examples/11_test_unit/modules/sub_md1.rb +9 -4
  63. data/lib/tdl/examples/11_test_unit/modules/sub_md1.sv +5 -5
  64. data/lib/tdl/examples/11_test_unit/tb_exp_test_unit.sv +1 -3
  65. data/lib/tdl/examples/11_test_unit/tu0.sv +9 -9
  66. data/lib/tdl/examples/11_test_unit/tu1.sv +1 -1
  67. data/lib/tdl/examples/1_define_module/exmple_md.sv +12 -12
  68. data/lib/tdl/examples/2_hdl_class/tmp/always_comb_test.sv +60 -60
  69. data/lib/tdl/examples/2_hdl_class/tmp/always_ff_test.sv +2 -2
  70. data/lib/tdl/examples/2_hdl_class/tmp/case_test.sv +17 -17
  71. data/lib/tdl/examples/2_hdl_class/tmp/head_pkg_module.sv +9 -9
  72. data/lib/tdl/examples/2_hdl_class/tmp/simple_assign_test.sv +1 -1
  73. data/lib/tdl/examples/2_hdl_class/tmp/state_case_test.sv +10 -10
  74. data/lib/tdl/examples/2_hdl_class/tmp/test_foreach.sv +3 -3
  75. data/lib/tdl/examples/2_hdl_class/tmp/test_function.sv +7 -7
  76. data/lib/tdl/examples/2_hdl_class/tmp/test_initial_assert.sv +3 -3
  77. data/lib/tdl/examples/2_hdl_class/tmp/test_module.sv +2 -2
  78. data/lib/tdl/examples/2_hdl_class/tmp/test_module_var.sv +1 -1
  79. data/lib/tdl/examples/2_hdl_class/tmp/test_package.sv +4 -5
  80. data/lib/tdl/examples/2_hdl_class/tmp/test_package2.sv +4 -4
  81. data/lib/tdl/examples/2_hdl_class/tmp/test_struct_function.sv +2 -2
  82. data/lib/tdl/examples/2_hdl_class/tmp/test_vcs_string.sv +1 -1
  83. data/lib/tdl/examples/2_hdl_class/tmp/text_generate.sv +7 -7
  84. data/lib/tdl/examples/4_generate/test_generate.sv +11 -11
  85. data/lib/tdl/examples/5_logic_combin/test_logic_combin.sv +3 -3
  86. data/lib/tdl/examples/7_module_with_package/body_package.sv +3 -4
  87. data/lib/tdl/examples/7_module_with_package/example_pkg.sv +4 -4
  88. data/lib/tdl/examples/7_module_with_package/head_package.sv +3 -4
  89. data/lib/tdl/examples/8_top_module/tb_test_top.sv +1 -2
  90. data/lib/tdl/examples/9_itegration/clock_manage/itgt_module_clock_manage.rb +13 -0
  91. data/lib/tdl/examples/9_itegration/clock_manage/test_clock_bb.sv +34 -0
  92. data/lib/tdl/examples/9_itegration/tb_test_top.sv +2 -2
  93. data/lib/tdl/examples/9_itegration/tb_test_tttop.sv +1 -1
  94. data/lib/tdl/examples/9_itegration/tb_test_tttop_sim.sv +38 -0
  95. data/lib/tdl/examples/9_itegration/test_top.sv +4 -4
  96. data/lib/tdl/examples/9_itegration/test_tttop.sv +4 -4
  97. data/lib/tdl/examples/9_itegration/test_tttop_sim.sv +9 -0
  98. data/lib/tdl/examples/9_itegration/top.rb +1 -0
  99. data/lib/tdl/exlib/axis_eth_ex.rb +95 -0
  100. data/lib/tdl/exlib/axis_verify.rb +264 -0
  101. data/lib/tdl/exlib/clock_reset_verify.rb +29 -0
  102. data/lib/tdl/exlib/dve_tcl.rb +30 -11
  103. data/lib/tdl/exlib/itegration.rb +15 -3
  104. data/lib/tdl/exlib/itegration_verb.rb +166 -129
  105. data/lib/tdl/exlib/logic_verify.rb +88 -0
  106. data/lib/tdl/exlib/test_point.rb +96 -94
  107. data/lib/tdl/exlib/test_point.rb.bak +293 -0
  108. data/lib/tdl/rebuild_ele/ele_base.rb +1 -1
  109. data/lib/tdl/sdlmodule/sdlmodlule_path_db.rb +34 -0
  110. data/lib/tdl/sdlmodule/sdlmodule.rb +18 -14
  111. data/lib/tdl/sdlmodule/sdlmodule_draw.rb +81 -16
  112. data/lib/tdl/sdlmodule/test_unit_module.rb +278 -33
  113. data/lib/tdl/sdlmodule/test_unit_module.rb.bak +143 -0
  114. data/lib/tdl/sdlmodule/top_module.rb +62 -58
  115. data/lib/tdl/sdlmodule/top_module.rb.bak +547 -0
  116. data/lib/tdl/tdl.rb +18 -3
  117. metadata +35 -134
  118. data/Gemfile.lock +0 -28
  119. data/lib/axi/AXI_stream/axi_stream_split_channel.sv +0 -149
  120. data/lib/axi/AXI_stream/axis_head_cut_verc.sv +0 -242
  121. data/lib/axi/AXI_stream/axis_insert_copy.sv +0 -66
  122. data/lib/axi/AXI_stream/axis_pipe_sync_seam.sv +0 -48
  123. data/lib/axi/AXI_stream/axis_rom_contect_sim.sv +0 -113
  124. data/lib/axi/AXI_stream/axis_split_channel_verb.sv +0 -62
@@ -39,13 +39,14 @@ module ClassHDL
39
39
 
40
40
  class OpertorChain
41
41
  attr_accessor :slaver,:tree,:instance_add_brackets
42
-
43
- def initialize(arg=nil)
42
+ attr_reader :belong_to_module
43
+ def initialize(arg, belong_to_module)
44
44
  @tree = [] #[[inst0,symb0],[inst1,symb1],[other_chain,symb2],[other_chain,symb3]]
45
45
  # self <symb0> inst0 <symb1> inst1 <symb2> ( other_chain ) <symb3> ( other_chain )
46
46
  if arg
47
47
  @tree << arg
48
48
  end
49
+ @belong_to_module = belong_to_module
49
50
  end
50
51
 
51
52
  ClassHDL::OP_SYMBOLS.each do |os|
@@ -61,14 +62,14 @@ module ClassHDL
61
62
  new_op = nil
62
63
  AssignDefOpertor.with_rollback_opertors(:old) do
63
64
  if tree.size == 2 && tree.last[1].to_s == "<="
64
- new_op = OpertorChain.new
65
+ new_op = OpertorChain.new(nil,belong_to_module)
65
66
  new_op.tree = new_op.tree + self.tree
66
67
  new_op.tree.push [b,os]
67
68
  elsif tree.size >= 2 && (!['*',"/","~"].include?(tree.last[1].to_s))
68
69
  new_op = brackets
69
70
  new_op.tree.push [b,os]
70
71
  else
71
- new_op = OpertorChain.new
72
+ new_op = OpertorChain.new(nil,belong_to_module)
72
73
  new_op.tree = new_op.tree + self.tree
73
74
  new_op.tree.push [b,os]
74
75
  end
@@ -107,12 +108,12 @@ module ClassHDL
107
108
 
108
109
  def brackets
109
110
  self.slaver = true
110
- new_op = OpertorChain.new(["(#{self.instance})".to_nq])
111
+ new_op = OpertorChain.new(["(#{self.instance})".to_nq], belong_to_module)
111
112
  end
112
113
 
113
114
  def clog2
114
115
  self.slaver = true
115
- new_op = OpertorChain.new(["$clog2(#{self.instance})".to_nq])
116
+ new_op = OpertorChain.new(["$clog2(#{self.instance})".to_nq],belong_to_module)
116
117
  end
117
118
 
118
119
  def self.define_op_flag(ruby_op,hdl_op)
@@ -126,7 +127,7 @@ module ClassHDL
126
127
  # 计算生成新的OpertorChain 是 self 也需要抛弃
127
128
  self.slaver = true
128
129
  # return self
129
- new_op = OpertorChain.new
130
+ new_op = OpertorChain.new(nil, belong_to_module)
130
131
  new_op.tree = new_op.tree + self.tree
131
132
  new_op.tree.push [b,hdl_op]
132
133
 
@@ -159,10 +160,18 @@ module ClassHDL
159
160
  sb = " = "
160
161
  end
161
162
  else
162
- sb = "#{node[1].to_s}"
163
+ # if(node[1].respond_to?(:belong_to_module) && node[1].belong_to_module && node[1].belong_to_module != belong_to_module)
164
+ # sb = "#{node[1].root_ref.to_s}"
165
+ # else
166
+ sb = "#{node[1].to_s}"
167
+ # end
163
168
  end
164
169
  else
165
- sb = "#{node[1].to_s} "
170
+ # if(node[1].respond_to?(:belong_to_module) && node[1].belong_to_module && node[1].belong_to_module != belong_to_module)
171
+ # sb = "#{node[1].root_ref.to_s}"
172
+ # else
173
+ sb = "#{node[1].to_s}"
174
+ # end
166
175
  end
167
176
 
168
177
  unless node[0].is_a? OpertorChain
@@ -173,7 +182,18 @@ module ClassHDL
173
182
  # "如果是字符串 则原始输出"
174
183
  str += (sb + '"' + node[0].to_s + '"')
175
184
  else
176
- str += (sb + node[0].to_s)
185
+ # str += (sb + node[0].to_s)
186
+ if(node[0].respond_to?(:root_ref) && node[0].respond_to?(:belong_to_module) && node[0].belong_to_module && (node[0].belong_to_module != belong_to_module) && node[0].belong_to_module.top_tb_ref? )
187
+ # sb = "#{node[1].root_ref.to_s}"
188
+ str += (sb + node[0].root_ref)
189
+ ## 反向添加到 TestUnitModule
190
+ if belong_to_module.is_a?(TestUnitModule)
191
+ belong_to_module.add_root_ref_ele(node[0])
192
+ end
193
+ else
194
+ # sb = "#{node[1].to_s}"
195
+ str += (sb + node[0].to_s)
196
+ end
177
197
  end
178
198
  else
179
199
  node[0].slaver = true
@@ -215,8 +235,8 @@ module ClassHDL
215
235
 
216
236
  module AssignDefOpertor
217
237
  @@included_class = []
218
- @@curr_assign_block = HDLAssignBlock.new ##HDLAssignBlock ##HDLAlwaysCombBlock
219
- @@curr_assign_block_stack = [HDLAssignBlock.new ]
238
+ @@curr_assign_block = HDLAssignBlock.new(nil) ##HDLAssignBlock ##HDLAlwaysCombBlock
239
+ @@curr_assign_block_stack = [HDLAssignBlock.new(nil) ]
220
240
  @@curr_opertor_stack = [:old]
221
241
 
222
242
  def self.curr_opertor_stack
@@ -275,7 +295,8 @@ module ClassHDL
275
295
  if b.is_a? OpertorChain
276
296
  b.slaver = true
277
297
  end
278
- new_op = OpertorChain.new
298
+ ## 进行 X < Y 等运算时OpertorChain 需要获取 assign block的 belong_to_module
299
+ new_op = OpertorChain.new(nil,@@curr_assign_block && @@curr_assign_block.belong_to_module)
279
300
  new_op.tree.push([self])
280
301
  new_op.tree.push([b,symb])
281
302
  if @@curr_assign_block
@@ -642,7 +663,7 @@ module TdlSpace
642
663
  end
643
664
 
644
665
  module ClassHDL
645
- class StructVar
666
+ class StructVar < AxiTdl::SdlModuleActiveBaseElm
646
667
  include ClassHDL::AssignDefOpertor
647
668
  end
648
669
  end
@@ -132,7 +132,7 @@ module ClassHDL
132
132
 
133
133
  end
134
134
 
135
- class StructVar
135
+ class StructVar < AxiTdl::SdlModuleActiveBaseElm
136
136
  # include ClassHDL::AssignDefOpertor
137
137
  attr_accessor :belong_to_module
138
138
  attr_accessor :dimension
@@ -76,7 +76,7 @@ module ClassHDL
76
76
  IF ~intf.rst_n do
77
77
  track_ci <= 0.A
78
78
  end
79
- ELSIF intf.vld_rdy do
79
+ ELSIF intf.vld_rdy do
80
80
  assert(intf.data == "#{mem_args}[#{track_ci}]".to_nq,"TRACK <#{intf.to_s}> Error;","Real<%d>"," != Expect<%d>",intf.data,"#{mem_args}[#{track_ci}]".to_nq)
81
81
  track_ci <= track_ci + 1.b1
82
82
  end
@@ -99,8 +99,13 @@ module TdlSpace
99
99
  end
100
100
  end
101
101
 
102
+ module AxiTdl
103
+ class SdlModuleActiveBaseElm
104
+ end
105
+ end
106
+
102
107
 
103
- class BaseElm
108
+ class BaseElm < AxiTdl::SdlModuleActiveBaseElm
104
109
  # attr_accessor :belong_module
105
110
  attr_accessor :belong_to_module
106
111
  attr_accessor :name
@@ -183,7 +183,7 @@ class Parameter # add +
183
183
  else
184
184
  rel = NqString.new(signal.concat("#{symb}").concat('"').concat(a.to_s)).concat('"')
185
185
  end
186
- new_op = ClassHDL::OpertorChain.new
186
+ new_op = ClassHDL::OpertorChain.new(nil,belong_to_module)
187
187
  new_op.tree.push([rel])
188
188
 
189
189
  return new_op
@@ -28,9 +28,9 @@ module exp_random #(
28
28
  //==========================================================================
29
29
  //-------- expression ------------------------------------------------------
30
30
  initial begin
31
- param_random_b = ($urandom_range(0,99) <= PX);
32
- int_random_b = ($urandom_range(1,100) > 34);
33
- rd_range = $urandom_range(12,1000);
31
+ param_random_b = $urandom_range(0,99) <= PX;
32
+ int_random_b = $urandom_range(1,100) > 34;
33
+ rd_range = $urandom_range(12,1000);
34
34
  end
35
35
 
36
36
  endmodule
@@ -12,6 +12,128 @@ 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
+
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
+
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
+
15
137
 
16
138
  ## 创建波形窗口
17
139
  if {![info exists useOldWindow]} {
@@ -40,7 +162,33 @@ gui_wv_zoom_timerange -id ${Wave.3} 0 1000000000
40
162
  ## gui_list_add_group -id ${Wave.3} -after ${Group2} [list ${Group2|tx_inf}]
41
163
  ## gui_list_expand -id ${Wave.3} tb_Mammo_TCP_sim.rtl_top.fpga_version_verb.ctrl_tap_inf
42
164
  ## === [add_signal_wave] === ##
43
-
165
+ ## -------------- Group2_sub_md0_logic -------------------------
166
+ gui_list_add_group -id ${Wave.3} -after {New Group} [list ${Group2_sub_md0_logic}]
167
+ ## ============== Group2_sub_md0_logic =========================
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 =========================
44
192
 
45
193
  gui_seek_criteria -id ${Wave.3} {Any Edge}
46
194
 
@@ -57,7 +205,12 @@ gui_list_set_filter -id ${Wave.3} -list { {Buffer 1} {Input 1} {Others 1} {Linka
57
205
  gui_list_set_filter -id ${Wave.3} -text {*}
58
206
  ##gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2} -position in
59
207
  ## === [add_bar] === ##
60
-
208
+ gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2_sub_md0_logic} -position in
209
+ gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2_sub_md0_interface} -position in
210
+ gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2_sub_md0_default} -position in
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
61
214
 
62
215
  gui_marker_move -id ${Wave.3} {C1} 560248001
63
216
  gui_view_scroll -id ${Wave.3} -vertical -set 35
@@ -22,17 +22,18 @@ TopModule.exp_test_unit(__dir__) do
22
22
  end
23
23
 
24
24
  ## CREATE TEST POINT
25
- axis_data_inf.create_tp(' top test point',__FILE__,__LINE__) - 'axis_data_inf'
25
+ # axis_data_inf.create_tp(' top test point',__FILE__,__LINE__) - 'axis_data_inf'
26
+ axis_data_inf.tracked_by_dve
26
27
 
27
28
  TdlTestUnit.tu0(__dir__) do
28
- add_to_dve_wave TdlTestPoint.sub_md1.enable_tp
29
- add_to_dve_wave(TdlTestPoint.sub_md0.tp_axis_in)
30
- add_to_dve_wave(TdlTestPoint.sub_md1.tp_inter_tf)
29
+ # add_to_dve_wave TdlTestPoint.sub_md1.enable_tp
30
+ # add_to_dve_wave(TdlTestPoint.sub_md0.tp_axis_in)
31
+ # add_to_dve_wave(TdlTestPoint.sub_md1.tp_inter_tf)
31
32
 
32
33
  test_unit_init do
33
- TdlTestPoint.sub_md1.enable_tp.root_ref <= 1.b1
34
+ sub_md1.enable <= 1.b1
34
35
  initial_exec("#(1us)")
35
- TdlTestPoint.sub_md1.enable_tp.root_ref <= 1.b0
36
+ sub_md1.enable <= 1.b0
36
37
  initial_exec("#(500us)")
37
38
  end
38
39
 
@@ -40,8 +41,8 @@ TopModule.exp_test_unit(__dir__) do
40
41
 
41
42
  TdlTestUnit.tu1(__dir__) do
42
43
  # puts TdlTestPoint.sub_md0.tp_cnt.path_refs
43
- add_to_dve_wave(TdlTestPoint.sub_md0.tp_cnt)
44
- add_to_dve_wave(TdlTestPoint.sub_md1.tp_cnt)
44
+ # add_to_dve_wave(TdlTestPoint.sub_md0.tp_cnt)
45
+ # add_to_dve_wave(TdlTestPoint.sub_md1.tp_cnt)
45
46
  end
46
47
 
47
48
  add_test_unit('tu0','tu1')
@@ -5,7 +5,7 @@ _______________________________________
5
5
  descript:
6
6
  author : Cook.Darwin
7
7
  Version: VERA.0.0
8
- created: xxxx.xx.xx
8
+ created: 2021-03-20 12:08:01 +0800
9
9
  madified:
10
10
  ***********************************************/
11
11
  `timescale 1ns/1ps
@@ -17,7 +17,10 @@ TdlBuild.sub_md0(__dir__) do
17
17
  end
18
18
 
19
19
  ## CREATE TEST POINT
20
- cnt.create_tp('count test point') - 'tp_cnt'
21
- axis_in.create_tp('test point of axis_in',__FILE__,__LINE__) - 'tp_axis_in'
22
- inter_tf.create_tp('inner test point',__FILE__,__LINE__) - 'tp_inter_tf'
20
+ # cnt.create_tp('count test point') - 'tp_cnt'
21
+ # axis_in.create_tp('test point of axis_in',__FILE__,__LINE__) - 'tp_axis_in'
22
+ # inter_tf.create_tp('inner test point',__FILE__,__LINE__) - 'tp_inter_tf'
23
+ cnt.tracked_by_dve(:logic)
24
+ axis_in.tracked_by_dve(:interface)
25
+ inter_tf.tracked_by_dve
23
26
  end
@@ -5,7 +5,7 @@ _______________________________________
5
5
  descript:
6
6
  author : Cook.Darwin
7
7
  Version: VERA.0.0
8
- created: xxxx.xx.xx
8
+ created: 2021-03-20 12:08:00 +0800
9
9
  madified:
10
10
  ***********************************************/
11
11
  `timescale 1ns/1ps
@@ -26,15 +26,15 @@ data_inf_c #(.DSIZE(8)) inter_tf (.clock(clock),.rst_n(rst_n)) ;
26
26
 
27
27
  //==========================================================================
28
28
  //-------- expression ------------------------------------------------------
29
- assign clock = axis_in.aclk;
30
- assign rst_n = axis_in.aresetn;
29
+ assign clock = axis_in.aclk;
30
+ assign rst_n = axis_in.aresetn;
31
31
 
32
32
  always_ff@(posedge clock,negedge rst_n) begin
33
33
  if(~rst_n)begin
34
- cnt <= '0;
34
+ cnt <= '0;
35
35
  end
36
36
  else begin
37
- cnt <= ( cnt+1'b1);
37
+ cnt <= (cnt+1'b1);
38
38
  end
39
39
  end
40
40