Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / libs / clk / n2_flop_bank_cust_l / n2_flop_bank_cust / rtl / n2_flop_bank_cust.v
CommitLineData
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 ============================================
35module 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);
46wire siclk;
47wire soclk;
48wire se;
49wire pce_ov;
50wire l1clk;
51wire datain_ff_scanin;
52wire datain_ff_scanout;
53
54
55
56////////////////////////////////////////////////////////////////////////
57// Signal declarations
58////////////////////////////////////////////////////////////////////////
59 // Global interface
60input l2clk;
61input scan_in;
62output scan_out;
63input tcu_aclk;
64input tcu_bclk;
65input tcu_scan_en;
66input tcu_pce_ov;
67input local_stop;
68// Local interface
69output [15:0] data_out;
70input [15:0] data_in;
71
72//Internal Scan Chain
73wire [14:0] fdin;
74wire [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
85assign se = tcu_scan_en;
86assign pce_ov = tcu_pce_ov;
87
88cl_u1_buf_32x buf_15_ ( .in(flop_out[15]), .out(data_out[15]));
89cl_u1_buf_32x buf_14_ ( .in(flop_out[14]), .out(data_out[14]));
90cl_u1_buf_32x buf_13_ ( .in(flop_out[13]), .out(data_out[13]));
91cl_u1_buf_32x buf_12_ ( .in(flop_out[12]), .out(data_out[12]));
92cl_u1_buf_32x buf_11_ ( .in(flop_out[11]), .out(data_out[11]));
93cl_u1_buf_32x buf_10_ ( .in(flop_out[10]), .out(data_out[10]));
94cl_u1_buf_32x buf_9_ ( .in(flop_out[9]), .out(data_out[9]));
95cl_u1_buf_32x buf_8_ ( .in(flop_out[8]), .out(data_out[8]));
96cl_u1_buf_32x buf_7_ ( .in(flop_out[7]), .out(data_out[7]));
97cl_u1_buf_32x buf_6_ ( .in(flop_out[6]), .out(data_out[6]));
98cl_u1_buf_32x buf_5_ ( .in(flop_out[5]), .out(data_out[5]));
99cl_u1_buf_32x buf_4_ ( .in(flop_out[4]), .out(data_out[4]));
100cl_u1_buf_32x buf_3_ ( .in(flop_out[3]), .out(data_out[3]));
101cl_u1_buf_32x buf_2_ ( .in(flop_out[2]), .out(data_out[2]));
102cl_u1_buf_32x buf_1_ ( .in(flop_out[1]), .out(data_out[1]));
103cl_u1_buf_32x buf_0_ ( .in(flop_out[0]), .out(data_out[0]));
104
105cl_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
114cl_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
124cl_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
134cl_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
144cl_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
154cl_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
165cl_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
175cl_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
185cl_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
195cl_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
205cl_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
215cl_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
225cl_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
235cl_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
245cl_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
255cl_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
265cl_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
276endmodule