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.
- 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
|