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