Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / spc / tlu / rtl / tlu_cep_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: tlu_cep_dp.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 tlu_cep_dp (
36 l2clk,
37 scan_in,
38 tcu_pce_ov,
39 spc_aclk,
40 spc_bclk,
41 tcu_scan_en,
42 lsu_rngf_cdbus,
43 asi_stg1_en,
44 scan_out,
45 cep_wr_data);
46wire pce_ov;
47wire clk;
48wire stop;
49wire siclk;
50wire soclk;
51wire se;
52wire bit63_;
53wire asi_lat_scanin;
54wire asi_lat_scanout;
55
56
57
58input l2clk;
59input scan_in;
60input tcu_pce_ov;
61input spc_aclk;
62input spc_bclk;
63input tcu_scan_en;
64
65input [63:0] lsu_rngf_cdbus;
66
67input asi_stg1_en;
68
69
70
71output scan_out;
72
73output [63:0] cep_wr_data;
74
75
76////////////////////////////////////////////////////////////////////////////////
77
78assign pce_ov = tcu_pce_ov;
79assign clk = l2clk;
80assign stop = 1'b0;
81assign siclk = spc_aclk;
82assign soclk = spc_bclk;
83assign se = tcu_scan_en;
84
85
86tlu_cep_dp_inv_macro__left_63__width_1 bit63_inv (
87 .din (lsu_rngf_cdbus [63 ] ),
88 .dout (bit63_ )
89);
90
91tlu_cep_dp_msff_macro__width_64 asi_lat (
92 .scan_in(asi_lat_scanin),
93 .scan_out(asi_lat_scanout),
94 .en (asi_stg1_en ),
95 .din ({bit63_ ,
96 lsu_rngf_cdbus [62:0]}),
97 .dout (cep_wr_data [63:0] ),
98 .clk(clk),
99 .se(se),
100 .siclk(siclk),
101 .soclk(soclk),
102 .pce_ov(pce_ov),
103 .stop(stop)
104);
105
106
107
108// fixscan start:
109assign asi_lat_scanin = scan_in ;
110assign scan_out = asi_lat_scanout ;
111// fixscan end:
112endmodule
113
114
115
116//
117// invert macro
118//
119//
120
121
122
123
124
125module tlu_cep_dp_inv_macro__left_63__width_1 (
126 din,
127 dout);
128 input [0:0] din;
129 output [0:0] dout;
130
131
132
133
134
135
136inv #(1) d0_0 (
137.in(din[0:0]),
138.out(dout[0:0])
139);
140
141
142
143
144
145
146
147
148
149endmodule
150
151
152
153
154
155
156
157
158
159// any PARAMS parms go into naming of macro
160
161module tlu_cep_dp_msff_macro__width_64 (
162 din,
163 clk,
164 en,
165 se,
166 scan_in,
167 siclk,
168 soclk,
169 pce_ov,
170 stop,
171 dout,
172 scan_out);
173wire l1clk;
174wire siclk_out;
175wire soclk_out;
176wire [62:0] so;
177
178 input [63:0] din;
179
180
181 input clk;
182 input en;
183 input se;
184 input scan_in;
185 input siclk;
186 input soclk;
187 input pce_ov;
188 input stop;
189
190
191
192 output [63:0] dout;
193
194
195 output scan_out;
196
197
198
199
200cl_dp1_l1hdr_8x c0_0 (
201.l2clk(clk),
202.pce(en),
203.aclk(siclk),
204.bclk(soclk),
205.l1clk(l1clk),
206 .se(se),
207 .pce_ov(pce_ov),
208 .stop(stop),
209 .siclk_out(siclk_out),
210 .soclk_out(soclk_out)
211);
212dff #(64) d0_0 (
213.l1clk(l1clk),
214.siclk(siclk_out),
215.soclk(soclk_out),
216.d(din[63:0]),
217.si({scan_in,so[62:0]}),
218.so({so[62:0],scan_out}),
219.q(dout[63:0])
220);
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241endmodule
242
243
244
245
246
247
248
249