axi_tdl 0.1.8 → 0.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/axi/AXI4/axi4_direct_verc.sv +6 -0
- data/lib/axi/AXI4/axi4_dpram_cache.rb +2 -2
- data/lib/axi/AXI4/axi4_dpram_cache.sv +3 -3
- data/lib/axi/AXI4/axi4_ram_cache.rb +23 -0
- data/lib/axi/AXI4/axi4_ram_cache.sv +39 -0
- data/lib/axi/AXI4/axi4_rd_auxiliary_gen_A2.sv +112 -0
- data/lib/axi/AXI4/axis_to_axi4_wr.sv +5 -5
- data/lib/axi/AXI4/long_axis_to_axi4_wr.rb +113 -0
- data/lib/axi/AXI4/long_axis_to_axi4_wr.sv +125 -0
- data/lib/axi/AXI4/odata_pool_axi4_A3.sv +12 -4
- data/lib/axi/AXI4/vcs_axi4_comptable.sv +35 -9
- data/lib/axi/AXI4/wide_axis_to_axi4_wr.rb +1 -1
- data/lib/axi/AXI4/wide_axis_to_axi4_wr.sv +5 -5
- data/lib/axi/AXI4/width_convert/odd_width_convert.sv +1 -1
- data/lib/axi/AXI_stream/axi_stream_split_channel.rb +5 -2
- data/lib/axi/AXI_stream/axi_stream_split_channel.sv +26 -23
- data/lib/axi/AXI_stream/axis_head_cut_verc.sv +4 -4
- 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_tdl/version.rb +1 -1
- data/lib/tdl/Logic/logic_edge.rb +14 -6
- data/lib/tdl/Logic/logic_latency.rb +7 -7
- data/lib/tdl/auto_script/import_hdl.rb +1 -0
- data/lib/tdl/auto_script/import_sdl.rb +43 -1
- data/lib/tdl/axi4/axi4_interconnect_verb.rb +9 -14
- data/lib/tdl/class_hdl/hdl_data.rb +1 -1
- data/lib/tdl/class_hdl/hdl_generate.rb +1 -1
- data/lib/tdl/examples/11_test_unit/dve.tcl +153 -6
- data/lib/tdl/examples/11_test_unit/exp_test_unit.rb +5 -4
- data/lib/tdl/examples/11_test_unit/exp_test_unit.sv +7 -33
- data/lib/tdl/examples/11_test_unit/exp_test_unit_sim.sv +33 -7
- data/lib/tdl/examples/11_test_unit/tu0.sv +3 -6
- data/lib/tdl/examples/2_hdl_class/tmp/test_vcs_string.sv +1 -1
- data/lib/tdl/examples/9_itegration/dve.tcl +6 -153
- data/lib/tdl/examples/9_itegration/test_tttop.sv +38 -7
- data/lib/tdl/examples/9_itegration/test_tttop_sim.sv +7 -38
- data/lib/tdl/exlib/axis_eth_ex.rb +1 -1
- data/lib/tdl/exlib/axis_verify.rb +2 -2
- data/lib/tdl/exlib/logic_verify.rb +1 -1
- data/lib/tdl/rebuild_ele/axi4.rb +6 -2
- data/lib/tdl/rebuild_ele/axi_stream.rb +3 -3
- data/lib/tdl/rebuild_ele/data_inf_c.rb +2 -2
- data/lib/tdl/sdlmodule/sdlmodule.rb +17 -1
- data/lib/tdl/sdlmodule/sdlmodule_vcs_comptable.rb +3 -3
- data/lib/tdl/sdlmodule/test_unit_module.rb +3 -1
- 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#{
|
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_#{
|
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#{
|
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#{
|
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#{
|
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
|
-
|
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_#{
|
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}_#{
|
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}_#{
|
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.
|
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-
|
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
|