axi_tdl 0.1.8 → 0.1.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/lib/axi/AXI4/axi4_direct_verc.sv +6 -0
  3. data/lib/axi/AXI4/axi4_dpram_cache.rb +2 -2
  4. data/lib/axi/AXI4/axi4_dpram_cache.sv +3 -3
  5. data/lib/axi/AXI4/axi4_ram_cache.rb +23 -0
  6. data/lib/axi/AXI4/axi4_ram_cache.sv +39 -0
  7. data/lib/axi/AXI4/axi4_rd_auxiliary_gen_A2.sv +112 -0
  8. data/lib/axi/AXI4/axis_to_axi4_wr.sv +5 -5
  9. data/lib/axi/AXI4/long_axis_to_axi4_wr.rb +113 -0
  10. data/lib/axi/AXI4/long_axis_to_axi4_wr.sv +125 -0
  11. data/lib/axi/AXI4/odata_pool_axi4_A3.sv +12 -4
  12. data/lib/axi/AXI4/vcs_axi4_comptable.sv +35 -9
  13. data/lib/axi/AXI4/wide_axis_to_axi4_wr.rb +1 -1
  14. data/lib/axi/AXI4/wide_axis_to_axi4_wr.sv +5 -5
  15. data/lib/axi/AXI4/width_convert/odd_width_convert.sv +1 -1
  16. data/lib/axi/AXI_stream/axi_stream_split_channel.rb +5 -2
  17. data/lib/axi/AXI_stream/axi_stream_split_channel.sv +26 -23
  18. data/lib/axi/AXI_stream/axis_head_cut_verc.sv +4 -4
  19. data/lib/axi/common/common_ram_wrapper.sv +1 -1
  20. data/lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.sv +11 -11
  21. data/lib/axi_tdl/version.rb +1 -1
  22. data/lib/tdl/Logic/logic_edge.rb +14 -6
  23. data/lib/tdl/Logic/logic_latency.rb +7 -7
  24. data/lib/tdl/auto_script/import_hdl.rb +1 -0
  25. data/lib/tdl/auto_script/import_sdl.rb +43 -1
  26. data/lib/tdl/axi4/axi4_interconnect_verb.rb +9 -14
  27. data/lib/tdl/class_hdl/hdl_data.rb +1 -1
  28. data/lib/tdl/class_hdl/hdl_generate.rb +1 -1
  29. data/lib/tdl/examples/11_test_unit/dve.tcl +153 -6
  30. data/lib/tdl/examples/11_test_unit/exp_test_unit.rb +5 -4
  31. data/lib/tdl/examples/11_test_unit/exp_test_unit.sv +7 -33
  32. data/lib/tdl/examples/11_test_unit/exp_test_unit_sim.sv +33 -7
  33. data/lib/tdl/examples/11_test_unit/tu0.sv +3 -6
  34. data/lib/tdl/examples/2_hdl_class/tmp/test_vcs_string.sv +1 -1
  35. data/lib/tdl/examples/9_itegration/dve.tcl +6 -153
  36. data/lib/tdl/examples/9_itegration/test_tttop.sv +38 -7
  37. data/lib/tdl/examples/9_itegration/test_tttop_sim.sv +7 -38
  38. data/lib/tdl/exlib/axis_eth_ex.rb +1 -1
  39. data/lib/tdl/exlib/axis_verify.rb +2 -2
  40. data/lib/tdl/exlib/logic_verify.rb +1 -1
  41. data/lib/tdl/rebuild_ele/axi4.rb +6 -2
  42. data/lib/tdl/rebuild_ele/axi_stream.rb +3 -3
  43. data/lib/tdl/rebuild_ele/data_inf_c.rb +2 -2
  44. data/lib/tdl/sdlmodule/sdlmodule.rb +17 -1
  45. data/lib/tdl/sdlmodule/sdlmodule_vcs_comptable.rb +3 -3
  46. data/lib/tdl/sdlmodule/test_unit_module.rb +3 -1
  47. metadata +7 -2
@@ -62,7 +62,7 @@ class AxiStream < TdlSpace::TdlBaseInterface
62
62
  def inherited(name: nil ,clock: nil,reset: nil,dsize: nil,freqM: nil,dimension:[])
63
63
  a = nil
64
64
  unless name
65
- name = "#{inst_name}_inherited#{globle_random_name_flag()}"
65
+ name = "#{inst_name}_inherited#{belong_to_module._auto_name_incr_index_()}"
66
66
  end
67
67
  ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
68
68
  append_name = name_copy(name)
@@ -88,7 +88,7 @@ class AxiStream < TdlSpace::TdlBaseInterface
88
88
 
89
89
  ## =======================
90
90
  def self.leave_empty(curr_type: :master,dsize:8,clock:"",reset:"",belong_to_module:nil)
91
- nc = belong_to_module.axi_stream_inf(dsize:dsize,clock:clock,reset:reset) - "empty_axis_#{globle_random_name_flag()}"
91
+ nc = belong_to_module.axi_stream_inf(dsize:dsize,clock:clock,reset:reset) - "empty_axis_#{belong_to_module._auto_name_incr_index_()}"
92
92
  # puts belong_to_module.module_name
93
93
  if curr_type.to_sym == :slaver
94
94
  # self.axis_master_empty(master:nc)
@@ -109,7 +109,7 @@ class AxiStream < TdlSpace::TdlBaseInterface
109
109
 
110
110
  def branch(name: nil,clock:@clock,reset:@reset,dsize:@dsize,freqM:nil)
111
111
  unless name
112
- name = "#{inst_name}_branch#{globle_random_name_flag()}"
112
+ name = "#{inst_name}_branch#{belong_to_module._auto_name_incr_index_()}"
113
113
  end
114
114
  a = inherited(name: name,clock: clock,reset: reset,dsize: dsize,freqM: freqM)
115
115
  self << a
@@ -41,7 +41,7 @@ class DataInf_C < TdlSpace::TdlBaseInterface
41
41
  def inherited(name: nil,clock: nil,reset: nil,dsize: nil,freqM: nil,dimension:[])
42
42
  a = nil
43
43
  unless name
44
- name = "#{inst_name}_inherited#{globle_random_name_flag()}"
44
+ name = "#{inst_name}_inherited#{belong_to_module._auto_name_incr_index_()}"
45
45
  end
46
46
  ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
47
47
  append_name = name_copy(name)
@@ -71,7 +71,7 @@ class DataInf_C < TdlSpace::TdlBaseInterface
71
71
 
72
72
  def branch(name: nil,clock:@clock,reset:@reset,dsize:@dsize,freqM:nil)
73
73
  unless name
74
- name = "#{inst_name}_branch#{globle_random_name_flag()}"
74
+ name = "#{inst_name}_branch#{belong_to_module._auto_name_incr_index_()}"
75
75
  end
76
76
  a = inherited(name: name,clock: clock,reset: reset,dsize: dsize,freqM: freqM)
77
77
  self << a
@@ -411,7 +411,11 @@ class SdlModule
411
411
  ref_modules.each do |e|
412
412
  _indexs << index
413
413
  _names << e.module_name
414
- _paths << File.expand_path(e.real_sv_path)
414
+ begin
415
+ _paths << File.expand_path(e.real_sv_path)
416
+ rescue
417
+ _paths << " ___ dont have a path !!!!! ____"
418
+ end
415
419
  index += 1
416
420
  if e.module_name.size > max_size
417
421
  max_size = e.module_name.size
@@ -539,3 +543,15 @@ class SdlModule
539
543
  end
540
544
  end
541
545
  end
546
+
547
+ ## 定义自动变量递增
548
+ class SdlModule
549
+
550
+ def _auto_name_incr_index_(flag='R')
551
+ @__auto_name_incr_index__ ||= 0
552
+ index = @__auto_name_incr_index__
553
+ @__auto_name_incr_index__ += 1
554
+ return "#{flag}#{"%04d" % index}"
555
+ end
556
+
557
+ end
@@ -81,7 +81,7 @@ module VCSCompatable
81
81
  # end
82
82
 
83
83
  def self.common_instance(sdlmodule,inst_name,inst_modport,cn_modport)
84
- vcs_cpt_inf = cn_modport.inherited(name: "#{cn_modport.name}_vcs_cp_#{globle_random_name_flag()}")
84
+ vcs_cpt_inf = cn_modport.inherited(name: "#{cn_modport.name}_vcs_cp_#{sdlmodule._auto_name_incr_index_()}")
85
85
  if vcs_cpt_inf.is_a? Axi4
86
86
  # vcs_cpt_inf.origin_freqM = cn_modport.FreqM
87
87
  vcs_cpt_inf.addr_step = cn_modport.ADDR_STEP
@@ -90,7 +90,7 @@ module VCSCompatable
90
90
 
91
91
  if inst_modport.modport_type.to_s =~ /master/ || inst_modport.modport_type.to_s == "out_mirror"
92
92
  # puts "+++++++ Match Master ModPort ++++++ #{sdlmodule.module_name}"
93
- sdlmodule.Instance(inst_name,"#{inst_name}_#{inst_modport.name}_#{globle_random_name_flag()}_#{cn_modport.name}_inst") do |h|
93
+ sdlmodule.Instance(inst_name,"#{inst_name}_#{inst_modport.name}_#{sdlmodule._auto_name_incr_index_()}_#{cn_modport.name}_inst") do |h|
94
94
  h[:ORIGIN] = "#{inst_modport.modport_type}"
95
95
  h[:TO] = "#{cn_modport.modport_type}"
96
96
  h[:origin] = vcs_cpt_inf
@@ -98,7 +98,7 @@ module VCSCompatable
98
98
  end
99
99
  elsif inst_modport.modport_type.to_s =~ /slaver/ || inst_modport.modport_type.to_s =~ /mirror/
100
100
  # puts "+++++++ Match Slaver ModPort ++++++"
101
- sdlmodule.Instance(inst_name,"#{inst_name}_#{inst_modport.name}_#{globle_random_name_flag()}_#{cn_modport.name}_inst") do |h|
101
+ sdlmodule.Instance(inst_name,"#{inst_name}_#{inst_modport.name}_#{sdlmodule._auto_name_incr_index_()}_#{cn_modport.name}_inst") do |h|
102
102
  h[:TO] = "#{inst_modport.modport_type}"
103
103
  h[:ORIGIN] = "#{cn_modport.modport_type}"
104
104
  h[:to] = vcs_cpt_inf
@@ -20,7 +20,9 @@ class SdlModule
20
20
  @__track_signals_hash__[flag] ||= Hash.new
21
21
 
22
22
  if @__track_signals_hash__[flag].has_key?(base_ele)
23
- raise TdlError.new(" `#{module_name}.#{base_ele.to_s}` Cant be tracked again!!!")
23
+ # raise TdlError.new(" `#{module_name}.#{base_ele.to_s}` Cant be tracked again!!!")
24
+ puts "WAINNING: `#{module_name}.#{base_ele.to_s}` Cant be tracked again!!!"
25
+ return
24
26
  end
25
27
 
26
28
  @__track_signals_hash__[flag][base_ele] = block
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: axi_tdl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cook.Darwin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-30 00:00:00.000000000 Z
11
+ date: 2021-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -91,9 +91,12 @@ files:
91
91
  - lib/axi/AXI4/axi4_pipe/axi4_rd_pipe_verb.sv
92
92
  - lib/axi/AXI4/axi4_pipe/axi4_wr_pipe.sv
93
93
  - lib/axi/AXI4/axi4_pipe/axi4_wr_pipe_verb.sv
94
+ - lib/axi/AXI4/axi4_ram_cache.rb
95
+ - lib/axi/AXI4/axi4_ram_cache.sv
94
96
  - lib/axi/AXI4/axi4_rd_auxiliary_batch_gen.sv
95
97
  - lib/axi/AXI4/axi4_rd_auxiliary_gen.sv
96
98
  - lib/axi/AXI4/axi4_rd_auxiliary_gen_A1.sv
99
+ - lib/axi/AXI4/axi4_rd_auxiliary_gen_A2.sv
97
100
  - lib/axi/AXI4/axi4_rd_burst_track.sv
98
101
  - lib/axi/AXI4/axi4_wr_aux_bind_data.sv
99
102
  - lib/axi/AXI4/axi4_wr_auxiliary_batch_gen.sv
@@ -120,6 +123,8 @@ files:
120
123
  - lib/axi/AXI4/interconnect/axi4_wr_interconnect_M2S_A1.sv
121
124
  - lib/axi/AXI4/interconnect/axi4_wr_mix_interconnect_M2S.sv
122
125
  - lib/axi/AXI4/long_axi4_to_wide_axi4.sv.bak
126
+ - lib/axi/AXI4/long_axis_to_axi4_wr.rb
127
+ - lib/axi/AXI4/long_axis_to_axi4_wr.sv
123
128
  - lib/axi/AXI4/odata_pool_axi4.sv
124
129
  - lib/axi/AXI4/odata_pool_axi4_A1.sv
125
130
  - lib/axi/AXI4/odata_pool_axi4_A2.sv