Repository navigation
Expand file tree
/
Copy pathstreaming_tc.cfg
More file actions
81 lines (72 loc) · 4.38 KB
/
Copy pathstreaming_tc.cfg
File metadata and controls
81 lines (72 loc) · 4.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
[connectivity]
nk=edge_range_reader:1:edge_range_reader_1
nk=edge_meta_fanout:1:edge_meta_fanout_1
nk=src_block_reader:1:src_block_reader_1
nk=dst_block_reader:1:dst_block_reader_1
nk=decode_search_packer:1:decode_search_packer_1
nk=cmd_merger:1:cmd_merger_1
# number_b stream removed: cmd_merger uses edge-done marker (AXI last) instead
nk=router_tc:1:router_tc_1
nk=post_router:1:post_router_1
nk=tuple_list_k:16
nk=sum_reduce_16:1:sum_reduce_16_1
# --- Stream connections with explicit FIFO depths ---
# Without explicit depth, Vitis uses direct connect (depth ~2-4),
# which causes deadlock in hw_emu/hw due to multi-output fan-out
# in edge_meta_fanout (writes 4 streams in one cycle; if ANY FIFO
# fills, ALL stall — creating a circular dependency with cmd_merger).
# edge_range_reader → edge_meta_fanout
stream_connect=edge_range_reader_1.range_out:edge_meta_fanout_1.range_in:512
# edge_meta_fanout fan-out (CRITICAL: all 4 must be deep enough
# to decouple the slowest consumer — cmd_merger — from the others)
stream_connect=edge_meta_fanout_1.src_req_out:src_block_reader_1.src_req_in:512
stream_connect=edge_meta_fanout_1.dst_req_out:dst_block_reader_1.dst_req_in:512
stream_connect=edge_meta_fanout_1.search_par_out:decode_search_packer_1.search_par_in:512
stream_connect=edge_meta_fanout_1.merge_meta_out:cmd_merger_1.merge_meta_in:512
# src_block_reader → cmd_merger (burst: 1+nA packets per edge)
stream_connect=src_block_reader_1.src_pkt_out:cmd_merger_1.src_pkt_in:1024
# dst_block_reader → decode_search_packer
stream_connect=dst_block_reader_1.block_count_out:decode_search_packer_1.block_count_in:512
stream_connect=dst_block_reader_1.block_out:decode_search_packer_1.block_in:512
# decode_search_packer → cmd_merger (direct connection)
# System is deadlock-free: merge_meta_out always fills first (slowest
# consumer = cmd_merger), so edge_meta_fanout stalls only on merge_meta.
# Other fan-out FIFOs always have data for their consumers.
# Depth 512 matches the fan-out FIFOs — sufficient for hw performance.
stream_connect=decode_search_packer_1.search_pkt_out:cmd_merger_1.search_pkt_in:1024
# cmd_merger → router_tc → post_router
stream_connect=cmd_merger_1.tc_out:router_tc_1.tc_stream_in:512
stream_connect=router_tc_1.router_out:post_router_1.in:512
# post_router → 16× tuple_list_k (fan-out: writes all 16 in one cycle)
stream_connect=post_router_1.out_1:tuple_list_k_1.in_stream:512
stream_connect=tuple_list_k_1.out_stream:sum_reduce_16_1.in_1:512
stream_connect=post_router_1.out_2:tuple_list_k_2.in_stream:512
stream_connect=tuple_list_k_2.out_stream:sum_reduce_16_1.in_2:512
stream_connect=post_router_1.out_3:tuple_list_k_3.in_stream:512
stream_connect=tuple_list_k_3.out_stream:sum_reduce_16_1.in_3:512
stream_connect=post_router_1.out_4:tuple_list_k_4.in_stream:512
stream_connect=tuple_list_k_4.out_stream:sum_reduce_16_1.in_4:512
stream_connect=post_router_1.out_5:tuple_list_k_5.in_stream:512
stream_connect=tuple_list_k_5.out_stream:sum_reduce_16_1.in_5:512
stream_connect=post_router_1.out_6:tuple_list_k_6.in_stream:512
stream_connect=tuple_list_k_6.out_stream:sum_reduce_16_1.in_6:512
stream_connect=post_router_1.out_7:tuple_list_k_7.in_stream:512
stream_connect=tuple_list_k_7.out_stream:sum_reduce_16_1.in_7:512
stream_connect=post_router_1.out_8:tuple_list_k_8.in_stream:512
stream_connect=tuple_list_k_8.out_stream:sum_reduce_16_1.in_8:512
stream_connect=post_router_1.out_9:tuple_list_k_9.in_stream:512
stream_connect=tuple_list_k_9.out_stream:sum_reduce_16_1.in_9:512
stream_connect=post_router_1.out_10:tuple_list_k_10.in_stream:512
stream_connect=tuple_list_k_10.out_stream:sum_reduce_16_1.in_10:512
stream_connect=post_router_1.out_11:tuple_list_k_11.in_stream:512
stream_connect=tuple_list_k_11.out_stream:sum_reduce_16_1.in_11:512
stream_connect=post_router_1.out_12:tuple_list_k_12.in_stream:512
stream_connect=tuple_list_k_12.out_stream:sum_reduce_16_1.in_12:512
stream_connect=post_router_1.out_13:tuple_list_k_13.in_stream:512
stream_connect=tuple_list_k_13.out_stream:sum_reduce_16_1.in_13:512
stream_connect=post_router_1.out_14:tuple_list_k_14.in_stream:512
stream_connect=tuple_list_k_14.out_stream:sum_reduce_16_1.in_14:512
stream_connect=post_router_1.out_15:tuple_list_k_15.in_stream:512
stream_connect=tuple_list_k_15.out_stream:sum_reduce_16_1.in_15:512
stream_connect=post_router_1.out_16:tuple_list_k_16.in_stream:512
stream_connect=tuple_list_k_16.out_stream:sum_reduce_16_1.in_16:512