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
@@ -12,8 +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_sim.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_sim.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 ]
|
15
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_sim.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_sim.rtl_top.sub_md1_inst.cnt} {Sim:tb_exp_test_unit_sim.rtl_top.sub_md1_inst.axis_out} {Sim:tb_exp_test_unit_sim.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
|
+
|
16
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_sim.rtl_top.sub_md1_inst.inter_tf} }
|
107
|
+
## ============== sub_md1_inner.inter_tf =========================
|
108
|
+
|
109
|
+
|
110
|
+
## -------------- exp_test_unit_sim_default -------------------------
|
111
|
+
set _wave_session_group_exp_test_unit_sim_default exp_test_unit_sim_default
|
112
|
+
# set _wave_session_group_exp_test_unit_sim_default [gui_sg_generate_new_name -seed exp_test_unit_sim_default]
|
113
|
+
if {[gui_sg_is_group -name "$_wave_session_group_exp_test_unit_sim_default"]} {
|
114
|
+
set _wave_session_group_exp_test_unit_sim_default [gui_sg_generate_new_name]
|
115
|
+
}
|
116
|
+
set Group2_exp_test_unit_sim_default "$_wave_session_group_exp_test_unit_sim_default"
|
117
|
+
|
118
|
+
## 添加信号到 group
|
119
|
+
gui_sg_addsignal -group "$_wave_session_group_exp_test_unit_sim_default" { }
|
120
|
+
## ============== exp_test_unit_sim_default =========================
|
121
|
+
|
122
|
+
|
123
|
+
## -------------- exp_test_unit_sim_default.axis_data_inf -------------------------
|
124
|
+
## set _wave_session_group_exp_test_unit_sim_default_axis_data_inf Group1
|
125
|
+
## set _wave_session_group_exp_test_unit_sim_default_axis_data_inf [gui_sg_generate_new_name -seed axis_data_inf -parent $_wave_session_group_exp_test_unit_sim_default ]
|
126
|
+
|
127
|
+
set _wave_session_group_exp_test_unit_sim_default_axis_data_inf $_wave_session_group_exp_test_unit_sim_default|
|
128
|
+
append _wave_session_group_exp_test_unit_sim_default_axis_data_inf axis_data_inf
|
129
|
+
set exp_test_unit_sim_default|axis_data_inf "$_wave_session_group_exp_test_unit_sim_default_axis_data_inf"
|
130
|
+
|
131
|
+
# set Group2_exp_test_unit_sim_default_axis_data_inf "$_wave_session_group_exp_test_unit_sim_default_axis_data_inf"
|
132
|
+
|
133
|
+
## 添加信号到 group
|
134
|
+
gui_sg_addsignal -group "$_wave_session_group_exp_test_unit_sim_default_axis_data_inf" { {Sim:tb_exp_test_unit_sim.rtl_top.axis_data_inf} }
|
135
|
+
## ============== exp_test_unit_sim_default.axis_data_inf =========================
|
136
|
+
|
17
137
|
|
18
138
|
## 创建波形窗口
|
19
139
|
if {![info exists useOldWindow]} {
|
@@ -42,9 +162,33 @@ gui_wv_zoom_timerange -id ${Wave.3} 0 1000000000
|
|
42
162
|
## gui_list_add_group -id ${Wave.3} -after ${Group2} [list ${Group2|tx_inf}]
|
43
163
|
## gui_list_expand -id ${Wave.3} tb_Mammo_TCP_sim.rtl_top.fpga_version_verb.ctrl_tap_inf
|
44
164
|
## === [add_signal_wave] === ##
|
45
|
-
|
46
|
-
|
47
|
-
|
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_sim_default -------------------------
|
187
|
+
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${Group2_exp_test_unit_sim_default}]
|
188
|
+
## ============== Group2_exp_test_unit_sim_default =========================
|
189
|
+
## -------------- exp_test_unit_sim_default|axis_data_inf -------------------------
|
190
|
+
gui_list_add_group -id ${Wave.3} -after {New Group} [list ${exp_test_unit_sim_default|axis_data_inf}]
|
191
|
+
## ============== exp_test_unit_sim_default|axis_data_inf =========================
|
48
192
|
|
49
193
|
gui_seek_criteria -id ${Wave.3} {Any Edge}
|
50
194
|
|
@@ -61,9 +205,12 @@ gui_list_set_filter -id ${Wave.3} -list { {Buffer 1} {Input 1} {Others 1} {Linka
|
|
61
205
|
gui_list_set_filter -id ${Wave.3} -text {*}
|
62
206
|
##gui_list_set_insertion_bar -id ${Wave.3} -group ${Group2} -position in
|
63
207
|
## === [add_bar] === ##
|
64
|
-
|
65
|
-
|
66
|
-
|
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_sim_default} -position in
|
67
214
|
|
68
215
|
gui_marker_move -id ${Wave.3} {C1} 560248001
|
69
216
|
gui_view_scroll -id ${Wave.3} -vertical -set 35
|
@@ -31,10 +31,11 @@ TopModule.exp_test_unit(__dir__) do
|
|
31
31
|
# add_to_dve_wave(TdlTestPoint.sub_md1.tp_inter_tf)
|
32
32
|
|
33
33
|
test_unit_init do
|
34
|
-
sub_md1.enable
|
35
|
-
|
36
|
-
|
37
|
-
|
34
|
+
sub_md0.cnt <= sub_md1.enable + 1
|
35
|
+
# sub_md1.enable <= 1.b1
|
36
|
+
# initial_exec("#(1us)")
|
37
|
+
# sub_md1.enable <= 1.b0
|
38
|
+
# initial_exec("#(500us)")
|
38
39
|
end
|
39
40
|
|
40
41
|
end
|
@@ -1,35 +1,9 @@
|
|
1
|
-
/**********************************************
|
2
|
-
_______________________________________
|
3
|
-
___________ Cook Darwin __________
|
4
|
-
_______________________________________
|
5
|
-
descript:
|
6
|
-
author : Cook.Darwin
|
7
|
-
Version: VERA.0.0
|
8
|
-
created: 2021-05-04 20:03:48 +0800
|
9
|
-
madified:
|
10
|
-
***********************************************/
|
11
|
-
`timescale 1ns/1ps
|
12
|
-
|
13
|
-
module exp_test_unit (
|
14
|
-
input clock,
|
15
|
-
input rst_n
|
16
|
-
);
|
17
|
-
|
18
|
-
//==========================================================================
|
19
|
-
//-------- define ----------------------------------------------------------
|
20
|
-
logic enable;
|
21
|
-
axi_stream_inf #(.DSIZE(8),.FreqM(100),.USIZE(1)) axis_data_inf (.aclk(clock),.aresetn(rst_n),.aclken(1'b1)) ;
|
22
|
-
//==========================================================================
|
23
|
-
//-------- instance --------------------------------------------------------
|
24
|
-
sub_md1 sub_md1_inst(
|
25
|
-
/* axi_stream_inf.master */.axis_out (axis_data_inf ),
|
26
|
-
/* output */.enable (enable )
|
27
|
-
);
|
28
|
-
sub_md0 sub_md0_inst(
|
29
|
-
/* axi_stream_inf.slaver */.axis_in (axis_data_inf ),
|
30
|
-
/* input */.enable (enable )
|
31
|
-
);
|
32
|
-
//==========================================================================
|
33
|
-
//-------- expression ------------------------------------------------------
|
34
1
|
|
2
|
+
`timescale 1ns/1ps
|
3
|
+
module exp_test_unit();
|
4
|
+
initial begin
|
5
|
+
#(1us);
|
6
|
+
$warning("Check TopModule.sim,please!!!");
|
7
|
+
$stop;
|
8
|
+
end
|
35
9
|
endmodule
|
@@ -1,9 +1,35 @@
|
|
1
|
-
|
1
|
+
/**********************************************
|
2
|
+
_______________________________________
|
3
|
+
___________ Cook Darwin __________
|
4
|
+
_______________________________________
|
5
|
+
descript:
|
6
|
+
author : Cook.Darwin
|
7
|
+
Version: VERA.0.0
|
8
|
+
created: 2021-09-24 23:32:18 +0800
|
9
|
+
madified:
|
10
|
+
***********************************************/
|
2
11
|
`timescale 1ns/1ps
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
12
|
+
|
13
|
+
module exp_test_unit_sim (
|
14
|
+
input clock,
|
15
|
+
input rst_n
|
16
|
+
);
|
17
|
+
|
18
|
+
//==========================================================================
|
19
|
+
//-------- define ----------------------------------------------------------
|
20
|
+
logic enable;
|
21
|
+
axi_stream_inf #(.DSIZE(8),.FreqM(100),.USIZE(1)) axis_data_inf (.aclk(clock),.aresetn(rst_n),.aclken(1'b1)) ;
|
22
|
+
//==========================================================================
|
23
|
+
//-------- instance --------------------------------------------------------
|
24
|
+
sub_md1 sub_md1_inst(
|
25
|
+
/* axi_stream_inf.master */.axis_out (axis_data_inf ),
|
26
|
+
/* output */.enable (enable )
|
27
|
+
);
|
28
|
+
sub_md0 sub_md0_inst(
|
29
|
+
/* axi_stream_inf.slaver */.axis_in (axis_data_inf ),
|
30
|
+
/* input */.enable (enable )
|
31
|
+
);
|
32
|
+
//==========================================================================
|
33
|
+
//-------- expression ------------------------------------------------------
|
34
|
+
|
9
35
|
endmodule
|
@@ -5,7 +5,7 @@ _______________________________________
|
|
5
5
|
descript:
|
6
6
|
author : Cook.Darwin
|
7
7
|
Version: VERA.0.0
|
8
|
-
created: 2021-
|
8
|
+
created: 2021-09-24 23:32:18 +0800
|
9
9
|
madified:
|
10
10
|
***********************************************/
|
11
11
|
`timescale 1ns/1ps
|
@@ -27,12 +27,9 @@ module tu0 (
|
|
27
27
|
initial begin
|
28
28
|
to_down_pass = 1'b0;
|
29
29
|
wait(from_up_pass);
|
30
|
-
$root.
|
30
|
+
$root.tb_exp_test_unit_sim.test_unit_region = "tu0";
|
31
31
|
$display("--------------- Current test_unit <%0s> --------------------", "tu0");
|
32
|
-
$root.
|
33
|
-
#(1us);
|
34
|
-
$root.tb_exp_test_unit.rtl_top.sub_md1_inst.enable = 1'b0;
|
35
|
-
#(500us);
|
32
|
+
$root.tb_exp_test_unit_sim.rtl_top.sub_md0_inst.cnt = ($root.tb_exp_test_unit_sim.rtl_top.sub_md1_inst.enable+1);
|
36
33
|
to_down_pass = 1'b1;
|
37
34
|
end
|
38
35
|
|
@@ -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
|
-
|
166
|
-
|
167
|
-
|
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
|
-
|
209
|
-
|
210
|
-
|
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
|
@@ -1,9 +1,40 @@
|
|
1
|
-
|
1
|
+
/**********************************************
|
2
|
+
_______________________________________
|
3
|
+
___________ Cook Darwin __________
|
4
|
+
_______________________________________
|
5
|
+
descript:
|
6
|
+
author : Cook.Darwin
|
7
|
+
Version: VERA.0.0
|
8
|
+
created: 2021-09-24 23:32:18 +0800
|
9
|
+
madified:
|
10
|
+
***********************************************/
|
2
11
|
`timescale 1ns/1ps
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
12
|
+
|
13
|
+
module test_tttop (
|
14
|
+
input global_sys_clk
|
15
|
+
);
|
16
|
+
|
17
|
+
//==========================================================================
|
18
|
+
//-------- define ----------------------------------------------------------
|
19
|
+
logic clock_100M;
|
20
|
+
logic rstn_100M;
|
21
|
+
axi_stream_inf #(.DSIZE(16),.FreqM(100),.USIZE(1)) x_origin_inf (.aclk(clock_100M),.aresetn(rstn_100M),.aclken(1'b1)) ;
|
22
|
+
//==========================================================================
|
23
|
+
//-------- instance --------------------------------------------------------
|
24
|
+
simple_clock simple_clock_inst(
|
25
|
+
/* input clock */.sys_clk (global_sys_clk ),
|
26
|
+
/* output clock */.clock (clock_100M ),
|
27
|
+
/* output reset */.rst_n (rstn_100M )
|
28
|
+
);
|
29
|
+
a_test_md a_test_md_inst(
|
30
|
+
/* input clock */.clock (clock_100M ),
|
31
|
+
/* input reset */.rst (~rstn_100M ),
|
32
|
+
/* axi_stream_inf.master */.origin_inf (x_origin_inf )
|
33
|
+
);
|
34
|
+
//==========================================================================
|
35
|
+
//-------- expression ------------------------------------------------------
|
36
|
+
assign x_origin_inf.axis_tvalid = 1'b0;
|
37
|
+
assign x_origin_inf.axis_tdata = '0;
|
38
|
+
assign x_origin_inf.axis_tlast = 1'b0;
|
39
|
+
|
9
40
|
endmodule
|
@@ -1,40 +1,9 @@
|
|
1
|
-
/**********************************************
|
2
|
-
_______________________________________
|
3
|
-
___________ Cook Darwin __________
|
4
|
-
_______________________________________
|
5
|
-
descript:
|
6
|
-
author : Cook.Darwin
|
7
|
-
Version: VERA.0.0
|
8
|
-
created: 2021-05-30 12:21:54 +0800
|
9
|
-
madified:
|
10
|
-
***********************************************/
|
11
|
-
`timescale 1ns/1ps
|
12
|
-
|
13
|
-
module test_tttop_sim (
|
14
|
-
input global_sys_clk
|
15
|
-
);
|
16
|
-
|
17
|
-
//==========================================================================
|
18
|
-
//-------- define ----------------------------------------------------------
|
19
|
-
logic clock_100M;
|
20
|
-
logic rstn_100M;
|
21
|
-
axi_stream_inf #(.DSIZE(16),.FreqM(100),.USIZE(1)) x_origin_inf (.aclk(clock_100M),.aresetn(rstn_100M),.aclken(1'b1)) ;
|
22
|
-
//==========================================================================
|
23
|
-
//-------- instance --------------------------------------------------------
|
24
|
-
simple_clock simple_clock_inst(
|
25
|
-
/* input clock */.sys_clk (global_sys_clk ),
|
26
|
-
/* output clock */.clock (clock_100M ),
|
27
|
-
/* output reset */.rst_n (rstn_100M )
|
28
|
-
);
|
29
|
-
a_test_md a_test_md_inst(
|
30
|
-
/* input clock */.clock (clock_100M ),
|
31
|
-
/* input reset */.rst (~rstn_100M ),
|
32
|
-
/* axi_stream_inf.master */.origin_inf (x_origin_inf )
|
33
|
-
);
|
34
|
-
//==========================================================================
|
35
|
-
//-------- expression ------------------------------------------------------
|
36
|
-
assign x_origin_inf.axis_tvalid = 1'b0;
|
37
|
-
assign x_origin_inf.axis_tdata = '0;
|
38
|
-
assign x_origin_inf.axis_tlast = 1'b0;
|
39
1
|
|
2
|
+
`timescale 1ns/1ps
|
3
|
+
module test_tttop_sim();
|
4
|
+
initial begin
|
5
|
+
#(1us);
|
6
|
+
$warning("Check TopModule.sim,please!!!");
|
7
|
+
$stop;
|
8
|
+
end
|
40
9
|
endmodule
|
@@ -27,7 +27,7 @@ class AxiStream
|
|
27
27
|
return AxiTdl::EthernetStreamDefAtom.new(belong_to_module: @belong_to_module, stream: self, start: start, length: length)
|
28
28
|
end
|
29
29
|
|
30
|
-
def x_all_bits_slice(name: "slice_#{
|
30
|
+
def x_all_bits_slice(name: "slice_#{@belong_to_module._auto_name_incr_index_()}", start: 8*4,length:32)
|
31
31
|
raise TdlError.new("#{name} is not ethernet stream, before used it must be call to_eth") unless @__ethernet_type__
|
32
32
|
# @belong_to_module.logic[length] - name
|
33
33
|
@belong_to_module.instance_exec(self,name,start,length,@__ethernet_type__) do |_targget_axis, _name, _start, _length, _ethernet_type|
|
@@ -130,7 +130,7 @@ class AxiStream
|
|
130
130
|
|
131
131
|
def to_simple_sim_master_coe(enable: 1.b1, length: [10,200], gap_len: [0,10], data: [ (0...100) ] , vld_perc: [50, 100], loop_coe: true)
|
132
132
|
# raise TdlError.new "file cant be empty" unless file
|
133
|
-
file = File.join(AxiTdl::TDL_PATH,"./auto_script/tmp/","coe_#{self.name}_#{
|
133
|
+
file = File.join(AxiTdl::TDL_PATH,"./auto_script/tmp/","coe_#{self.name}_#{@belong_to_module._auto_name_incr_index_}.coe")
|
134
134
|
_sps = nil
|
135
135
|
ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
|
136
136
|
require_sdl 'axis_sim_master_model.rb'
|
@@ -218,7 +218,7 @@ class AxiStream
|
|
218
218
|
def simple_verify_by_coe(file)
|
219
219
|
unless File.file?(file)
|
220
220
|
if file.is_a?(String)
|
221
|
-
wfile = File.join(AxiTdl::TDL_PATH,"./auto_script/tmp/","#{self.name}_#{
|
221
|
+
wfile = File.join(AxiTdl::TDL_PATH,"./auto_script/tmp/","#{self.name}_#{@belong_to_module._auto_name_incr_index_}.coe")
|
222
222
|
File.open(wfile,'w') do |f|
|
223
223
|
f.puts file
|
224
224
|
end
|
@@ -59,7 +59,7 @@ class Logic
|
|
59
59
|
raise TdlError.new(" posedge negedge both nil") unless (posedge || negedge )
|
60
60
|
# raise TdlError.new "file cant be empty" unless file
|
61
61
|
|
62
|
-
file = File.join(AxiTdl::TDL_PATH,"./auto_script/tmp/","#{self.name}_#{
|
62
|
+
file = File.join(AxiTdl::TDL_PATH,"./auto_script/tmp/","#{self.name}_#{@belong_to_module._auto_name_incr_index_}.coe")
|
63
63
|
_len = 1000
|
64
64
|
ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
|
65
65
|
require_hdl 'logic_sim_model.sv'
|
data/lib/tdl/rebuild_ele/axi4.rb
CHANGED
@@ -125,9 +125,13 @@ class Axi4 < TdlSpace::TdlBaseInterface
|
|
125
125
|
return new_obj
|
126
126
|
end
|
127
127
|
|
128
|
-
def branch(name
|
128
|
+
def branch(name: nil,clock:@clock,reset:@reset,mode:@mode,dsize:@dsize,idsize:@idsize,asize:@asize,lsize:@lsize,addr_step:@addr_step,dimension:[],freqM:nil)
|
129
129
|
# puts "freqM :: ",freqM
|
130
|
-
|
130
|
+
xx_name = name
|
131
|
+
ClassHDL::AssignDefOpertor.with_rollback_opertors(:old) do
|
132
|
+
xx_name = name || "#{belong_to_module.module_name}_axi4_branch#{belong_to_module._auto_name_incr_index_()}"
|
133
|
+
end
|
134
|
+
a = inherited(name:xx_name,clock:clock,reset:reset,mode:mode,dsize:dsize,idsize:idsize,asize:asize,lsize:lsize,addr_step:addr_step,dimension:dimension,freqM:freqM)
|
131
135
|
self << a
|
132
136
|
return a
|
133
137
|
end
|