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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
`include "cache/defs.sv"
module test_ring
(
input logic clk,
rst_n
);
logic data_0_valid, data_1_valid, data_2_valid, data_3_valid,
data_0_ready, data_1_ready, data_2_ready, data_3_ready;
ring_req data_0, data_1, data_2, data_3;
cache_ring segment_0
(
.core_tag(),
.core_index(),
.data_rd(),
.send(),
.send_read(),
.send_inval(),
.set_reply(),
.in_data(data_3),
.in_data_ready(data_3_ready),
.in_data_valid(data_3_valid),
.out_data(data_0),
.out_data_ready(data_0_ready),
.out_data_valid(data_0_valid),
.in_hold(),
.in_hold_valid(),
.last_hop(),
.out_stall(),
.*
);
cache_ring segment_1
(
.core_tag(),
.core_index(),
.data_rd(),
.send(),
.send_read(),
.send_inval(),
.set_reply(),
.in_data(data_0),
.in_data_ready(data_0_ready),
.in_data_valid(data_0_valid),
.out_data(data_1),
.out_data_ready(data_1_ready),
.out_data_valid(data_1_valid),
.in_hold(),
.in_hold_valid(),
.last_hop(),
.out_stall(),
.*
);
cache_ring segment_2
(
.core_tag(),
.core_index(),
.data_rd(),
.send(),
.send_read(),
.send_inval(),
.set_reply(),
.in_data(data_1),
.in_data_ready(data_1_ready),
.in_data_valid(data_1_valid),
.out_data(data_2),
.out_data_ready(data_2_ready),
.out_data_valid(data_2_valid),
.in_hold(),
.in_hold_valid(),
.last_hop(),
.out_stall(),
.*
);
cache_ring segment_3
(
.core_tag(),
.core_index(),
.data_rd(),
.send(),
.send_read(),
.send_inval(),
.set_reply(),
.in_data(data_2),
.in_data_ready(data_2_ready),
.in_data_valid(data_2_valid),
.out_data(data_3),
.out_data_ready(data_3_ready),
.out_data_valid(data_3_valid),
.in_hold(),
.in_hold_valid(),
.last_hop(),
.out_stall(),
.*
);
endmodule
|