Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: n2_flop_bank_cust.v | |
4 | // Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved | |
5 | // 4150 Network Circle, Santa Clara, California 95054, U.S.A. | |
6 | // | |
7 | // * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
8 | // | |
9 | // This program is free software; you can redistribute it and/or modify | |
10 | // it under the terms of the GNU General Public License as published by | |
11 | // the Free Software Foundation; version 2 of the License. | |
12 | // | |
13 | // This program is distributed in the hope that it will be useful, | |
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | // GNU General Public License for more details. | |
17 | // | |
18 | // You should have received a copy of the GNU General Public License | |
19 | // along with this program; if not, write to the Free Software | |
20 | // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
21 | // | |
22 | // For the avoidance of doubt, and except that if any non-GPL license | |
23 | // choice is available it will apply instead, Sun elects to use only | |
24 | // the General Public License version 2 (GPLv2) at this time for any | |
25 | // software where a choice of GPL license versions is made | |
26 | // available with the language indicating that GPLv2 or any later version | |
27 | // may be used, or where a choice of which version of the GPL is applied is | |
28 | // otherwise unspecified. | |
29 | // | |
30 | // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, | |
31 | // CA 95054 USA or visit www.sun.com if you need additional information or | |
32 | // have any questions. | |
33 | // | |
34 | // ========== Copyright Header End ============================================ | |
35 | module n2_flop_bank_cust ( | |
36 | l2clk, | |
37 | scan_in, | |
38 | scan_out, | |
39 | tcu_aclk, | |
40 | tcu_bclk, | |
41 | tcu_scan_en, | |
42 | tcu_pce_ov, | |
43 | local_stop, | |
44 | data_out, | |
45 | data_in); | |
46 | wire siclk; | |
47 | wire soclk; | |
48 | wire se; | |
49 | wire pce_ov; | |
50 | wire l1clk; | |
51 | wire datain_ff_scanin; | |
52 | wire datain_ff_scanout; | |
53 | ||
54 | ||
55 | ||
56 | //////////////////////////////////////////////////////////////////////// | |
57 | // Signal declarations | |
58 | //////////////////////////////////////////////////////////////////////// | |
59 | // Global interface | |
60 | input l2clk; | |
61 | input scan_in; | |
62 | output scan_out; | |
63 | input tcu_aclk; | |
64 | input tcu_bclk; | |
65 | input tcu_scan_en; | |
66 | input tcu_pce_ov; | |
67 | input local_stop; | |
68 | // Local interface | |
69 | output [15:0] data_out; | |
70 | input [15:0] data_in; | |
71 | ||
72 | //Internal Scan Chain | |
73 | wire [14:0] fdin; | |
74 | wire [15:0] flop_out; | |
75 | ||
76 | ||
77 | // Internal signals | |
78 | //wire [15:0] data; | |
79 | ||
80 | //////////////////////////////////////////////////////////////////////// | |
81 | // Code starts here | |
82 | //////////////////////////////////////////////////////////////////////// | |
83 | ||
84 | // Scan reassigns | |
85 | assign se = tcu_scan_en; | |
86 | assign pce_ov = tcu_pce_ov; | |
87 | ||
88 | cl_u1_buf_32x buf_15_ ( .in(flop_out[15]), .out(data_out[15])); | |
89 | cl_u1_buf_32x buf_14_ ( .in(flop_out[14]), .out(data_out[14])); | |
90 | cl_u1_buf_32x buf_13_ ( .in(flop_out[13]), .out(data_out[13])); | |
91 | cl_u1_buf_32x buf_12_ ( .in(flop_out[12]), .out(data_out[12])); | |
92 | cl_u1_buf_32x buf_11_ ( .in(flop_out[11]), .out(data_out[11])); | |
93 | cl_u1_buf_32x buf_10_ ( .in(flop_out[10]), .out(data_out[10])); | |
94 | cl_u1_buf_32x buf_9_ ( .in(flop_out[9]), .out(data_out[9])); | |
95 | cl_u1_buf_32x buf_8_ ( .in(flop_out[8]), .out(data_out[8])); | |
96 | cl_u1_buf_32x buf_7_ ( .in(flop_out[7]), .out(data_out[7])); | |
97 | cl_u1_buf_32x buf_6_ ( .in(flop_out[6]), .out(data_out[6])); | |
98 | cl_u1_buf_32x buf_5_ ( .in(flop_out[5]), .out(data_out[5])); | |
99 | cl_u1_buf_32x buf_4_ ( .in(flop_out[4]), .out(data_out[4])); | |
100 | cl_u1_buf_32x buf_3_ ( .in(flop_out[3]), .out(data_out[3])); | |
101 | cl_u1_buf_32x buf_2_ ( .in(flop_out[2]), .out(data_out[2])); | |
102 | cl_u1_buf_32x buf_1_ ( .in(flop_out[1]), .out(data_out[1])); | |
103 | cl_u1_buf_32x buf_0_ ( .in(flop_out[0]), .out(data_out[0])); | |
104 | ||
105 | cl_sc1_l1hdr_32x c_0 ( | |
106 | .l2clk(l2clk), | |
107 | .pce(1'b1), | |
108 | .l1clk(l1clk), | |
109 | .se(se), | |
110 | .pce_ov(pce_ov), | |
111 | .stop(local_stop) | |
112 | ); | |
113 | ||
114 | cl_sc1_msff_8x d0_0 ( | |
115 | .l1clk(l1clk), | |
116 | .siclk(tcu_aclk), | |
117 | .soclk(tcu_bclk), | |
118 | .d(data_in[0]), | |
119 | .q(flop_out[0]), | |
120 | .si(scan_in), | |
121 | .so(fdin[0]) | |
122 | ); | |
123 | ||
124 | cl_sc1_msff_8x d0_1 ( | |
125 | .l1clk(l1clk), | |
126 | .siclk(tcu_aclk), | |
127 | .soclk(tcu_bclk), | |
128 | .d(data_in[1]), | |
129 | .q(flop_out[1]), | |
130 | .si(fdin[0]), | |
131 | .so(fdin[1]) | |
132 | ); | |
133 | ||
134 | cl_sc1_msff_8x d0_2 ( | |
135 | .l1clk(l1clk), | |
136 | .siclk(tcu_aclk), | |
137 | .soclk(tcu_bclk), | |
138 | .d(data_in[2]), | |
139 | .q(flop_out[2]), | |
140 | .si(fdin[1]), | |
141 | .so(fdin[2]) | |
142 | ); | |
143 | ||
144 | cl_sc1_msff_8x d0_3 ( | |
145 | .l1clk(l1clk), | |
146 | .siclk(tcu_aclk), | |
147 | .soclk(tcu_bclk), | |
148 | .d(data_in[3]), | |
149 | .q(flop_out[3]), | |
150 | .si(fdin[2]), | |
151 | .so(fdin[3]) | |
152 | ); | |
153 | ||
154 | cl_sc1_msff_8x d0_4 ( | |
155 | .l1clk(l1clk), | |
156 | .siclk(tcu_aclk), | |
157 | .soclk(tcu_bclk), | |
158 | .d(data_in[4]), | |
159 | .q(flop_out[4]), | |
160 | .si(fdin[3]), | |
161 | .so(fdin[4]) | |
162 | ); | |
163 | ||
164 | ||
165 | cl_sc1_msff_8x d0_5 ( | |
166 | .l1clk(l1clk), | |
167 | .siclk(tcu_aclk), | |
168 | .soclk(tcu_bclk), | |
169 | .d(data_in[5]), | |
170 | .q(flop_out[5]), | |
171 | .si(fdin[4]), | |
172 | .so(fdin[5]) | |
173 | ); | |
174 | ||
175 | cl_sc1_msff_8x d0_6 ( | |
176 | .l1clk(l1clk), | |
177 | .siclk(tcu_aclk), | |
178 | .soclk(tcu_bclk), | |
179 | .d(data_in[6]), | |
180 | .q(flop_out[6]), | |
181 | .si(fdin[5]), | |
182 | .so(fdin[6]) | |
183 | ); | |
184 | ||
185 | cl_sc1_msff_8x d0_7 ( | |
186 | .l1clk(l1clk), | |
187 | .siclk(tcu_aclk), | |
188 | .soclk(tcu_bclk), | |
189 | .d(data_in[7]), | |
190 | .q(flop_out[7]), | |
191 | .si(fdin[6]), | |
192 | .so(fdin[7]) | |
193 | ); | |
194 | ||
195 | cl_sc1_msff_8x d0_8 ( | |
196 | .l1clk(l1clk), | |
197 | .siclk(tcu_aclk), | |
198 | .soclk(tcu_bclk), | |
199 | .d(data_in[8]), | |
200 | .q(flop_out[8]), | |
201 | .si(fdin[7]), | |
202 | .so(fdin[8]) | |
203 | ); | |
204 | ||
205 | cl_sc1_msff_8x d0_9 ( | |
206 | .l1clk(l1clk), | |
207 | .siclk(tcu_aclk), | |
208 | .soclk(tcu_bclk), | |
209 | .d(data_in[9]), | |
210 | .q(flop_out[9]), | |
211 | .si(fdin[8]), | |
212 | .so(fdin[9]) | |
213 | ); | |
214 | ||
215 | cl_sc1_msff_8x d0_10 ( | |
216 | .l1clk(l1clk), | |
217 | .siclk(tcu_aclk), | |
218 | .soclk(tcu_bclk), | |
219 | .d(data_in[10]), | |
220 | .q(flop_out[10]), | |
221 | .si(fdin[9]), | |
222 | .so(fdin[10]) | |
223 | ); | |
224 | ||
225 | cl_sc1_msff_8x d0_11 ( | |
226 | .l1clk(l1clk), | |
227 | .siclk(tcu_aclk), | |
228 | .soclk(tcu_bclk), | |
229 | .d(data_in[11]), | |
230 | .q(flop_out[11]), | |
231 | .si(fdin[10]), | |
232 | .so(fdin[11]) | |
233 | ); | |
234 | ||
235 | cl_sc1_msff_8x d0_12 ( | |
236 | .l1clk(l1clk), | |
237 | .siclk(tcu_aclk), | |
238 | .soclk(tcu_bclk), | |
239 | .d(data_in[12]), | |
240 | .q(flop_out[12]), | |
241 | .si(fdin[11]), | |
242 | .so(fdin[12]) | |
243 | ); | |
244 | ||
245 | cl_sc1_msff_8x d0_13 ( | |
246 | .l1clk(l1clk), | |
247 | .siclk(tcu_aclk), | |
248 | .soclk(tcu_bclk), | |
249 | .d(data_in[13]), | |
250 | .q(flop_out[13]), | |
251 | .si(fdin[12]), | |
252 | .so(fdin[13]) | |
253 | ); | |
254 | ||
255 | cl_sc1_msff_8x d0_14 ( | |
256 | .l1clk(l1clk), | |
257 | .siclk(tcu_aclk), | |
258 | .soclk(tcu_bclk), | |
259 | .d(data_in[14]), | |
260 | .q(flop_out[14]), | |
261 | .si(fdin[13]), | |
262 | .so(fdin[14]) | |
263 | ); | |
264 | ||
265 | cl_sc1_msff_8x d0_15 ( | |
266 | .l1clk(l1clk), | |
267 | .siclk(tcu_aclk), | |
268 | .soclk(tcu_bclk), | |
269 | .d(data_in[15]), | |
270 | .q(flop_out[15]), | |
271 | .si(fdin[14]), | |
272 | .so(scan_out) | |
273 | ); | |
274 | ||
275 | ||
276 | endmodule |