axi_tdl 0.0.19 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +7 -0
  3. data/lib/axi/AXI4/axi4_direct_A1.sv +1 -1
  4. data/lib/axi/AXI4/axi4_direct_verc.sv +54 -54
  5. data/lib/axi/AXI4/axi4_dpram_cache.rb +1 -0
  6. data/lib/axi/AXI4/axi4_dpram_cache.sv +10 -10
  7. data/lib/axi/AXI4/axi4_rd_burst_track.sv +2 -1
  8. data/lib/axi/AXI4/axi4_wr_burst_track.sv +2 -1
  9. data/lib/axi/AXI4/axis_to_axi4_wr.sv +9 -9
  10. data/lib/axi/AXI4/odata_pool_axi4_A3.sv +7 -0
  11. data/lib/axi/AXI4/packet_partition/axi4_partition_rd_verb.sv +5 -5
  12. data/lib/axi/AXI4/packet_partition/data_inf_partition.sv +2 -2
  13. data/lib/axi/AXI4/wide_axis_to_axi4_wr.sv +9 -9
  14. data/lib/axi/AXI_stream/axi_stream_split_channel.sv +154 -0
  15. data/lib/axi/AXI_stream/axis_head_cut_verc.sv +242 -0
  16. data/lib/axi/AXI_stream/axis_insert_copy.sv +79 -0
  17. data/lib/axi/AXI_stream/axis_pipe_sync_seam.sv +48 -0
  18. data/lib/axi/AXI_stream/axis_rom_contect_sim.sv +113 -0
  19. data/lib/axi/AXI_stream/axis_sim_master_model.rb +2 -0
  20. data/lib/axi/AXI_stream/axis_sim_master_model.sv +46 -0
  21. data/lib/axi/AXI_stream/axis_split_channel_verb.sv +62 -0
  22. data/lib/axi/AXI_stream/data_width/axis_width_convert_verb.sv +50 -0
  23. data/lib/axi/common/common_ram_sim_wrapper.sv +1 -1
  24. data/lib/axi/common/common_ram_wrapper.sv +1 -1
  25. data/lib/axi/common/test_write_mem.sv +1 -1
  26. data/lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.sv +13 -13
  27. data/lib/axi/data_interface/data_inf_c/data_c_sim_master_model.sv +14 -11
  28. data/lib/axi/platform_ip/fifo_36kb_long.sv +1 -1
  29. data/lib/axi/platform_ip/long_fifo_verb.sv +1 -1
  30. data/lib/axi/platform_ip/wide_fifo.sv +1 -1
  31. data/lib/axi/platform_ip/xilinx_fifo_verb.sv +1 -1
  32. data/lib/axi/platform_ip/xilinx_fifo_verc.sv +2 -1
  33. data/lib/axi/techbench/tb_axi_stream_split_channel.rb +2 -1
  34. data/lib/axi/techbench/tb_axi_stream_split_channel.sv +46 -45
  35. data/lib/axi_tdl.rb +31 -1
  36. data/lib/axi_tdl/version.rb +1 -1
  37. data/lib/public_atom_module/CheckPClock.sv +53 -0
  38. data/lib/public_atom_module/LICENSE.md +674 -0
  39. data/lib/public_atom_module/altera_xilinx_always_block_sw.rb +57 -0
  40. data/lib/public_atom_module/bits_decode.sv +71 -0
  41. data/lib/public_atom_module/bits_decode_verb.sv +71 -0
  42. data/lib/public_atom_module/bits_decode_verb_sdl.rb +24 -0
  43. data/lib/public_atom_module/broaden.v +43 -0
  44. data/lib/public_atom_module/broaden_and_cross_clk.v +47 -0
  45. data/lib/public_atom_module/ceiling.v +39 -0
  46. data/lib/public_atom_module/ceiling_A1.v +42 -0
  47. data/lib/public_atom_module/clock_rst.sv +64 -0
  48. data/lib/public_atom_module/cross_clk_sync.v +37 -0
  49. data/lib/public_atom_module/edge_generator.v +50 -0
  50. data/lib/public_atom_module/flooring.v +36 -0
  51. data/lib/public_atom_module/latch_data.v +30 -0
  52. data/lib/public_atom_module/latency.v +48 -0
  53. data/lib/public_atom_module/latency_dynamic.v +83 -0
  54. data/lib/public_atom_module/latency_long.v +84 -0
  55. data/lib/public_atom_module/latency_verb.v +52 -0
  56. data/lib/public_atom_module/once_event.sv +65 -0
  57. data/lib/public_atom_module/pipe_reg.v +93 -0
  58. data/lib/public_atom_module/pipe_reg_2write_ports.v +84 -0
  59. data/lib/public_atom_module/sim/clock_rst_verb.sv +54 -0
  60. data/lib/public_atom_module/sim/clock_rst_verc.sv +69 -0
  61. data/lib/public_atom_module/sim/latency_long_tb.sv +49 -0
  62. data/lib/public_atom_module/sim/latency_long_tb.sv.bak +49 -0
  63. data/lib/public_atom_module/sim_system_pkg.sv +4 -0
  64. data/lib/public_atom_module/synth_system_pkg.sv +4 -0
  65. data/lib/tdl/Logic/logic_edge.rb +1 -1
  66. data/lib/tdl/auto_script/import_hdl.rb +39 -4
  67. data/lib/tdl/axi4/axi4_interconnect_verb.rb +47 -10
  68. data/lib/tdl/class_hdl/hdl_always_comb.rb +4 -1
  69. data/lib/tdl/class_hdl/hdl_always_ff.rb +2 -2
  70. data/lib/tdl/class_hdl/hdl_assign.rb +7 -1
  71. data/lib/tdl/class_hdl/hdl_block_ifelse.rb +7 -7
  72. data/lib/tdl/class_hdl/hdl_foreach.rb +2 -2
  73. data/lib/tdl/class_hdl/hdl_function.rb +4 -4
  74. data/lib/tdl/class_hdl/hdl_generate.rb +4 -1
  75. data/lib/tdl/class_hdl/hdl_initial.rb +25 -3
  76. data/lib/tdl/class_hdl/hdl_module_def.rb +9 -6
  77. data/lib/tdl/class_hdl/hdl_package.rb +45 -0
  78. data/lib/tdl/class_hdl/hdl_redefine_opertor.rb +99 -27
  79. data/lib/tdl/class_hdl/hdl_struct.rb +2 -2
  80. data/lib/tdl/elements/Reset.rb +5 -9
  81. data/lib/tdl/elements/clock.rb +5 -9
  82. data/lib/tdl/elements/data_inf.rb +0 -17
  83. data/lib/tdl/elements/logic.rb +9 -31
  84. data/lib/tdl/elements/mail_box.rb +6 -1
  85. data/lib/tdl/elements/originclass.rb +17 -47
  86. data/lib/tdl/elements/parameter.rb +5 -6
  87. data/lib/tdl/examples/11_test_unit/dve.tcl +6 -153
  88. data/lib/tdl/examples/11_test_unit/exp_test_unit.sv +2 -2
  89. data/lib/tdl/examples/11_test_unit/exp_test_unit_sim.sv +9 -0
  90. data/lib/tdl/examples/11_test_unit/modules/sub_md0.sv +2 -2
  91. data/lib/tdl/examples/11_test_unit/modules/sub_md1.sv +2 -2
  92. data/lib/tdl/examples/11_test_unit/tb_exp_test_unit.sv +1 -1
  93. data/lib/tdl/examples/11_test_unit/tb_exp_test_unit_sim.sv +41 -0
  94. data/lib/tdl/examples/11_test_unit/tu0.sv +2 -1
  95. data/lib/tdl/examples/1_define_module/exmple_md.sv +1 -1
  96. data/lib/tdl/examples/2_hdl_class/tmp/always_comb_test.sv +3 -3
  97. data/lib/tdl/examples/2_hdl_class/tmp/always_ff_test.sv +3 -3
  98. data/lib/tdl/examples/2_hdl_class/tmp/case_test.sv +3 -3
  99. data/lib/tdl/examples/2_hdl_class/tmp/module_instance_test.sv +1 -1
  100. data/lib/tdl/examples/2_hdl_class/tmp/simple_assign_test.sv +3 -3
  101. data/lib/tdl/examples/2_hdl_class/tmp/state_case_test.sv +3 -3
  102. data/lib/tdl/examples/2_hdl_class/tmp/test_inst_sugar.sv +1 -1
  103. data/lib/tdl/examples/2_hdl_class/tmp/test_module.sv +3 -3
  104. data/lib/tdl/examples/2_hdl_class/tmp/test_module_port.sv +2 -2
  105. data/lib/tdl/examples/2_hdl_class/tmp/test_module_var.sv +7 -7
  106. data/lib/tdl/examples/2_hdl_class/tmp/test_package.sv +4 -3
  107. data/lib/tdl/examples/2_hdl_class/tmp/test_vcs_string.sv +1 -1
  108. data/lib/tdl/examples/3_hdl_sdl_instance/main_md.sv +2 -2
  109. data/lib/tdl/examples/3_hdl_sdl_instance/sdl_md.sv +1 -1
  110. data/lib/tdl/examples/6_module_with_interface/example_interface.sv +8 -8
  111. data/lib/tdl/examples/6_module_with_interface/inf_collect.sv +9 -9
  112. data/lib/tdl/examples/7_module_with_package/body_package.sv +4 -3
  113. data/lib/tdl/examples/7_module_with_package/example_pkg.sv +1 -1
  114. data/lib/tdl/examples/7_module_with_package/head_package.sv +4 -3
  115. data/lib/tdl/examples/8_top_module/dve.tcl +155 -2
  116. data/lib/tdl/examples/8_top_module/tb_test_top.sv +1 -1
  117. data/lib/tdl/examples/8_top_module/tb_test_top_sim.sv +29 -0
  118. data/lib/tdl/examples/8_top_module/test_top.sv +7 -26
  119. data/lib/tdl/examples/8_top_module/test_top_sim.sv +28 -0
  120. data/lib/tdl/examples/9_itegration/clock_manage/itgt_module_clock_manage.rb +13 -0
  121. data/lib/tdl/examples/9_itegration/clock_manage/test_clock_bb.sv +35 -0
  122. data/lib/tdl/examples/9_itegration/dve.tcl +155 -2
  123. data/lib/tdl/examples/9_itegration/tb_test_top.sv +2 -2
  124. data/lib/tdl/examples/9_itegration/tb_test_tttop.sv +1 -1
  125. data/lib/tdl/examples/9_itegration/tb_test_tttop_sim.sv +38 -0
  126. data/lib/tdl/examples/9_itegration/test_top.sv +4 -4
  127. data/lib/tdl/examples/9_itegration/test_tttop.sv +7 -38
  128. data/lib/tdl/examples/9_itegration/test_tttop_sim.sv +40 -0
  129. data/lib/tdl/examples/9_itegration/top.rb +1 -0
  130. data/lib/tdl/exlib/axis_verify.rb +4 -3
  131. data/lib/tdl/exlib/constraints_verb.rb +1 -0
  132. data/lib/tdl/exlib/itegration_verb.rb +212 -169
  133. data/lib/tdl/rebuild_ele/ele_base.rb +15 -10
  134. data/lib/tdl/sdlmodule/sdlmodule.rb +117 -51
  135. data/lib/tdl/sdlmodule/sdlmodule_arraychain.rb +1 -1
  136. data/lib/tdl/sdlmodule/sdlmodule_draw.rb +3 -3
  137. data/lib/tdl/sdlmodule/sdlmodule_instance.rb +3 -0
  138. data/lib/tdl/sdlmodule/sdlmodule_port_define.rb +6 -6
  139. data/lib/tdl/sdlmodule/sdlmodule_varible.rb +6 -6
  140. data/lib/tdl/sdlmodule/test_unit_module.rb +12 -0
  141. data/lib/tdl/sdlmodule/top_module.rb +13 -10
  142. data/lib/tdl/tdl.rb +1 -11
  143. data/lib/tdl/tdlerror/tdlerror.rb +1 -1
  144. metadata +46 -5
  145. data/CODE_OF_CONDUCT.md +0 -74
  146. 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.new(self,[a])
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.new("#{@name}.#{e.to_s}".to_nq)
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
@@ -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
- # if @port
19
- # GlobalParam.CurrTdlModule.BindEleClassVars.Reset.ports << self if @id != 0
20
- # else
21
- # GlobalParam.CurrTdlModule.BindEleClassVars.Reset.inst_stack << method(:inst).to_proc
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
@@ -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
- # if @port
17
- # GlobalParam.CurrTdlModule.BindEleClassVars.Clock.ports << self if @id != 0
18
- # else
19
- # GlobalParam.CurrTdlModule.BindEleClassVars.Clock.inst_stack << method(:inst).to_proc
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')
@@ -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
- # if @port && (@port != :origin)
41
- # GlobalParam.CurrTdlModule.BindEleClassVars.Logic.ports << self if @id != 0
42
- # else
43
- # # @@inst_stack << method(:inst).to_proc
44
- # GlobalParam.CurrTdlModule.BindEleClassVars.Logic.inst_stack << lambda{ inst() }
45
- # end
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
- # RedefOpertor.with_normal_operators do
102
- # TdlSpace::ArrayChain.new(self,a,b)
103
- # end
104
- # end
82
+
105
83
  ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
106
- TdlSpace::ArrayChain.new(self,a,b)
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
- # def [](a,b=false)
31
- # if a.is_a? ClassHDL::OpertorChain
32
- # a.slaver = true
33
- # end
34
-
35
- # if b.is_a? ClassHDL::OpertorChain
36
- # b.slaver = true
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
- # ArrayChain.new(@obj.to_s,lchain=@chain + [ArrayChainSignalMethod.new(method)])
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.new(@_array_chain_hash_[name.to_s],[])
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.new(self,a,b)
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
- # if @port
18
- # GlobalParam.CurrTdlModule.BindEleClassVars.Parameter.ports << self
19
- # else
20
- # GlobalParam.CurrTdlModule.BindEleClassVars.Parameter.inst_stack << method(:inst)
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
- ## -------------- 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 =========================
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
- 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
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