Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / model / verilog / mem / fbdimm / design / fbdimm_sb_fsr.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: fbdimm_sb_fsr.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 fbdimm_sb_fsr(reset,
36 ps_in,
37 ps_in_bar,
38 ps0_out,
39 ps0_out_bar,
40 ps1_out,
41 ps1_out_bar,
42 ps2_out,
43 ps2_out_bar,
44 ps3_out,
45 ps4_out,
46 ps5_out,
47 ps6_out,
48 ps7_out,
49 ps8_out,
50 ps9_out,
51 ps10_out,
52 ps11_out,
53 link_clk,
54 sb_decode_clk,
55 dtm_tr_complete,
56 nop_frame_detected,
57 dtm_enabled_out,
58 frm_begin,
59 frm_begin_nb,
60 frm_boundary_nb,
61 init_seq_started,
62 ref_clk);
63
64input reset;
65input [9:0] ps_in,ps_in_bar;
66output [9:0] ps0_out,ps0_out_bar;
67output [9:0] ps1_out,ps1_out_bar;
68output [9:0] ps2_out,ps2_out_bar;
69output [9:0] ps3_out;
70output [9:0] ps4_out;
71output [9:0] ps5_out;
72output [9:0] ps6_out;
73output [9:0] ps7_out;
74output [9:0] ps8_out;
75output [9:0] ps9_out;
76output [9:0] ps10_out;
77output [9:0] ps11_out;
78output init_seq_started;
79output frm_boundary_nb;
80output frm_begin_nb;
81output nop_frame_detected;
82output dtm_tr_complete;
83output frm_begin;
84input link_clk;
85output ref_clk;
86output sb_decode_clk;
87output dtm_enabled_out;
88
89reg [3:0] fsr_count;
90reg [9:0] ps0_out_reg,ps0_out_bar_reg;
91reg [9:0] ps1_out_reg,ps1_out_bar_reg;
92reg [9:0] ps2_out_reg,ps2_out_bar_reg;
93reg [9:0] ps3_out_reg;
94reg [9:0] ps4_out_reg;
95reg [9:0] ps5_out_reg;
96reg [9:0] ps6_out_reg;
97reg [9:0] ps7_out_reg;
98reg [9:0] ps8_out_reg;
99reg [9:0] ps9_out_reg;
100reg [9:0] ps10_out_reg;
101reg [9:0] ps11_out_reg;
102wire [9:0] ps_fsr_in,ps_fsr_in_bar;
103wire [9:0] ps_fsr_dtm_in,ps_fsr_dtm_in_bar;
104
105assign ps0_out=ps0_out_reg;
106assign ps0_out_bar=ps0_out_bar_reg;
107assign ps1_out_bar=ps1_out_bar_reg;
108assign ps2_out_bar=ps2_out_bar_reg;
109assign ps1_out=ps1_out_reg;
110assign ps2_out=ps2_out_reg;
111assign ps3_out=ps3_out_reg;
112assign ps4_out=ps4_out_reg;
113assign ps5_out=ps5_out_reg;
114assign ps6_out=ps6_out_reg;
115assign ps7_out=ps7_out_reg;
116assign ps8_out=ps8_out_reg;
117assign ps9_out=ps9_out_reg;
118assign ps10_out=ps10_out_reg;
119assign ps11_out=ps11_out_reg;
120
121reg [11:0] reg0_dtm,reg1_dtm,reg2_dtm;
122
123`ifdef AXIS_FBDIMM_NO_FSR
124wire [11:0] reg0,reg0_b;
125wire [11:0] reg1,reg1_b;
126wire [11:0] reg2,reg2_b;
127wire [11:0] reg3,reg3_b;
128wire [11:0] reg4,reg4_b;
129wire [11:0] reg5,reg5_b;
130wire [11:0] reg6,reg6_b;
131wire [11:0] reg7,reg7_b;
132wire [11:0] reg8,reg8_b;
133wire [11:0] reg9,reg9_b;
134`else
135reg [11:0] reg0,reg0_b;
136reg [11:0] reg1,reg1_b;
137reg [11:0] reg2,reg2_b;
138reg [11:0] reg3,reg3_b;
139reg [11:0] reg4,reg4_b;
140reg [11:0] reg5,reg5_b;
141reg [11:0] reg6,reg6_b;
142reg [11:0] reg7,reg7_b;
143reg [11:0] reg8,reg8_b;
144reg [11:0] reg9,reg9_b;
145`endif
146
147reg header_detected;
148reg header_detected_dtm;
149reg dtm_seq_host_started;
150reg calibrate_detected;
151reg [3:0] prev_counter,fsr_counter,prev_counter_dtm,lock_counter,lock_counter_dtm;
152reg [3:0] prev_counter2,fsr_counter2,lock_counter2;
153reg [3:0] prev_counter2_dtm,lock_counter2_dtm;
154reg sequence_start;
155reg sequence_start_dtm;
156reg bypass_init;
157wire frm_boundary;
158wire frm_boundary_dtm;
159wire frm_begin_dtm;
160wire frm_begin_nb;
161
162assign ref_clk = !sequence_start ? link_clk : frm_boundary;
163assign init_seq_started=sequence_start | calibrate_detected;
164`ifdef DTM_ENABLED
165assign frm_boundary_nb = ( fsr_counter == lock_counter );
166`else
167assign frm_boundary_nb = ref_clk;
168`endif
169
170`ifdef AXIS_FBDIMM_NO_FSR
171assign sb_decode_clk = link_clk;
172`else
173assign sb_decode_clk =
174 (lock_counter == 4'h1 ) ? ( fsr_counter == 4'hc ) | ( fsr_counter == 4'hb ) | ( fsr_counter == 4'h8 ) | ( fsr_counter == 4'h7 ) | ( fsr_counter == 4'h4 ) | ( fsr_counter == 4'h3 ) :
175 (lock_counter == 4'h2 ) ? ( fsr_counter == 4'h1 ) | ( fsr_counter == 4'hc ) | ( fsr_counter == 4'h9 ) | ( fsr_counter == 4'h8 ) | ( fsr_counter == 4'h5 ) | ( fsr_counter == 4'h4 ) :
176 (lock_counter == 4'h3 ) ? ( fsr_counter == 4'h2 ) | ( fsr_counter == 4'h1 ) | ( fsr_counter == 4'ha ) | ( fsr_counter == 4'h9 ) | ( fsr_counter == 4'h6 ) | ( fsr_counter == 4'h5 ) :
177 (lock_counter == 4'h4 ) ? ( fsr_counter == 4'h3 ) | ( fsr_counter == 4'h2 ) | ( fsr_counter == 4'hb ) | ( fsr_counter == 4'ha ) | ( fsr_counter == 4'h7 ) | ( fsr_counter == 4'h6 ) :
178 (lock_counter == 4'h5 ) ? ( fsr_counter == 4'h4 ) | ( fsr_counter == 4'h3 ) | ( fsr_counter == 4'hc ) | ( fsr_counter == 4'hb ) | ( fsr_counter == 4'h8 ) | ( fsr_counter == 4'h7 ) :
179 (lock_counter == 4'h6 ) ? ( fsr_counter == 4'h5 ) | ( fsr_counter == 4'h4 ) | ( fsr_counter == 4'h1 ) | ( fsr_counter == 4'hc ) | ( fsr_counter == 4'h9 ) | ( fsr_counter == 4'h8 ) :
180 (lock_counter == 4'h7 ) ? ( fsr_counter == 4'h6 ) | ( fsr_counter == 4'h5 ) | ( fsr_counter == 4'h2 ) | ( fsr_counter == 4'h1 ) | ( fsr_counter == 4'ha ) | ( fsr_counter == 4'h9 ) :
181 (lock_counter == 4'h8 ) ? ( fsr_counter == 4'h7 ) | ( fsr_counter == 4'h6 ) | ( fsr_counter == 4'h3 ) | ( fsr_counter == 4'h2 ) | ( fsr_counter == 4'hb ) | ( fsr_counter == 4'ha ) :
182 (lock_counter == 4'h9 ) ? ( fsr_counter == 4'h8 ) | ( fsr_counter == 4'h7 ) | ( fsr_counter == 4'h4 ) | ( fsr_counter == 4'h3 ) | ( fsr_counter == 4'hc ) | ( fsr_counter == 4'hb ) :
183 (lock_counter == 4'ha ) ? ( fsr_counter == 4'h9 ) | ( fsr_counter == 4'h8 ) | ( fsr_counter == 4'h5 ) | ( fsr_counter == 4'h4 ) | ( fsr_counter == 4'h1 ) | ( fsr_counter == 4'hc ) :
184 (lock_counter == 4'hb ) ? ( fsr_counter == 4'ha ) | ( fsr_counter == 4'h9 ) | ( fsr_counter == 4'h6 ) | ( fsr_counter == 4'h5 ) | ( fsr_counter == 4'h2 ) | ( fsr_counter == 4'h1 ) :
185 (lock_counter == 4'hc ) ? ( fsr_counter == 4'hb ) | ( fsr_counter == 4'ha ) | ( fsr_counter == 4'h7 ) | ( fsr_counter == 4'h6 ) | ( fsr_counter == 4'h3 ) | ( fsr_counter == 4'h2 ) :
186 1'h0;
187
188`endif
189
190
191reg dtm_enabled;
192assign dtm_enabled_out = dtm_enabled;
193
194initial begin
195 dtm_enabled=0;
196end
197
198`ifdef AXIS_FBDIMM_HW
199`else
200
201`ifdef FBDIMM_BUG_107438
202always@(posedge link_clk)
203 dtm_enabled <= tb_top.start_mcu_dtm_training;
204 //dtm_enabled <= tb_top.cpu.mcu0.ccu_serdes_dtm; // & ~(tb_top.cpu.mcu0.drif.drif_init);
205`endif
206
207// DTM training module
208dtm_training dtm_ts0_tr(.link_clk (link_clk),
209 .ps (ps_in),
210 .ps_bar (ps_in_bar),
211 .dtm_ps (ps_fsr_dtm_in),
212 .rst (dtm_rst),
213 .dtm_ps_bar (ps_fsr_dtm_in_bar),
214 .dtm_enabled (dtm_enabled),
215 .tr_complete (dtm_tr_complete));
216
217`endif
218
219assign ps_fsr_in = ( dtm_enabled & !dtm_tr_complete) ? ps_fsr_dtm_in : ps_in;
220assign ps_fsr_in_bar = ( dtm_enabled & !dtm_tr_complete) ? ps_fsr_dtm_in_bar : ps_in_bar;
221//assign ps_fsr_in = ps_in;
222//assign ps_fsr_in_bar = ps_in_bar;
223
224
225reg [4:0] nop_cnt;
226reg nop_frm_detected_reg;
227
228always@(posedge header_detected_dtm ) if ( sequence_start)
229 dtm_seq_host_started <= 1;
230else
231 dtm_seq_host_started <= 0;
232
233always@(posedge link_clk) if ( dtm_seq_host_started )
234begin
235 if ( ps_in == 10'h0)
236 nop_cnt <= nop_cnt + 1;
237 else
238 nop_cnt <= 0;
239
240 if ( nop_cnt == 10'd11 )
241 nop_frm_detected_reg<=1;
242
243end
244else begin
245 nop_cnt<=0;
246 nop_frm_detected_reg<=0;
247end
248
249assign nop_frame_detected = nop_frm_detected_reg;
250
251
252
253`ifdef AXIS_FBDIMM_NO_FSR
254always@(posedge link_clk)
255begin
256 if ( fsr_counter == 4'h1 )
257 fsr_counter = 4'h3;
258 else
259 fsr_counter = fsr_counter - 1;
260
261 if ( fsr_counter2 == 4'h1 )
262 fsr_counter2 = 4'h2;
263 else
264 fsr_counter2 = fsr_counter2 - 1;
265
266end
267
268`else
269always@(posedge link_clk)
270begin
271 if ( fsr_counter == 4'h1 )
272 fsr_counter = 4'hc;
273 else
274 fsr_counter = fsr_counter - 1;
275
276 if ( fsr_counter2 == 4'h1 )
277 fsr_counter2 = 4'h6;
278 else
279 fsr_counter2 = fsr_counter2 - 1;
280
281end
282`endif
283
284initial begin
285
286dtm_seq_host_started=0;
287
288if ( $test$plusargs("bypass_init")) begin
289 sequence_start = 1;
290`ifdef STINGRAY
291 lock_counter=4'h7;
292`else
293 lock_counter=4'h1;
294`endif
295
296 bypass_init = 1;
297end else begin
298 sequence_start = 0;
299 sequence_start_dtm = 0;
300// lock_counter=4'h1;
301 bypass_init = 0;
302end
303
304end
305
306//always@(posedge link_clk )
307`ifdef AXIS_FBDIMM_NO_FSR
308always@(negedge ref_clk )
309 if ( reg0 == reg0_b )
310 sequence_start <= 0;
311 else if (header_detected)
312 sequence_start <= 1;
313
314
315`else
316always@(negedge link_clk )
317 if ( ps_fsr_in == ps_fsr_in_bar )
318 sequence_start <= 0;
319 else if (header_detected)
320 sequence_start <= 1;
321
322always@(negedge link_clk )
323 if ( ps_fsr_in == ps_fsr_in_bar )
324 sequence_start_dtm <= 0;
325 else if (header_detected_dtm)
326 sequence_start_dtm <= 1;
327
328`endif
329
330
331assign frm_boundary_dtm = ( fsr_counter == lock_counter_dtm );
332assign frm_begin_nb = frm_begin;
333
334assign frm_boundary = (dtm_enabled & dtm_tr_complete ) ? frm_boundary_dtm : ( fsr_counter == lock_counter );
335
336//assign frm_boundary = ( fsr_counter == lock_counter );
337
338`ifdef DTM_ENABLED
339assign frm_begin = ( lock_counter2_dtm == 4'h6 ) ? ( fsr_counter2 == 4'h1) : ( fsr_counter2 == lock_counter2_dtm+1 );
340`else
341assign frm_begin = ( fsr_counter2 == lock_counter2 );
342`endif
343
344
345always@(negedge link_clk) if ( ~bypass_init )
346begin
347 if (header_detected ) begin
348 lock_counter2 <= prev_counter2;
349 lock_counter <= prev_counter;
350 end
351 else begin
352 prev_counter <= fsr_counter;
353 prev_counter2 <= fsr_counter2;
354 end
355
356 if ( header_detected_dtm ) begin
357 lock_counter2_dtm <= prev_counter2_dtm;
358 lock_counter_dtm <= prev_counter_dtm;
359 end
360 else begin
361 prev_counter2_dtm <= fsr_counter2;
362 prev_counter_dtm <= fsr_counter;
363 end
364
365
366`ifdef STINGRAY
367 if ( (reg0 == 12'hfff) &&
368 (reg1 == 12'hfff) &&
369 (reg2 == 12'hfff) && !calibrate_detected)
370 begin
371 // header_detected <= 1;
372 lock_counter2 <= prev_counter2;
373 lock_counter <= prev_counter;
374 calibrate_detected <= 1;
375 end
376`endif
377
378end
379
380initial calibrate_detected=0;
381wire sb_2of3_ok;
382
383voting_logic test_sb_lane (.a ( reg0 == 12'hbfe ),
384 .b ( reg1 == 12'hbfe ),
385 .c ( reg2 == 12'hbfe ),
386 .out ( sb_2of3_ok ));
387voting_logic test_sb_lane_dtm (.a ( reg0_dtm == 12'hbfe ),
388 .b ( reg1_dtm == 12'hbfe ),
389 .c ( reg2_dtm == 12'hbfe ),
390 .out ( sb_2of3_ok_dtm ));
391
392
393//always@(posedge link_clk)
394always@(negedge link_clk) if ( ~sequence_start_dtm )
395begin
396 if ( sb_2of3_ok_dtm )
397 header_detected_dtm <= 1;
398 else
399 header_detected_dtm <= 0;
400end
401
402always@(posedge link_clk) if ( ~bypass_init & ~sequence_start)
403begin
404 if ( sb_2of3_ok )
405 header_detected <= 1;
406 else
407 header_detected <= 0;
408
409
410
411end
412
413initial begin
414lock_counter = 4'h0;
415lock_counter_dtm = 4'h0;
416fsr_counter=4'h7;
417fsr_counter2=4'hc;
418header_detected=1'b0;
419sequence_start=1'b0;
420sequence_start_dtm=1'b0;
421reg0_dtm=0;
422reg1_dtm=0;
423reg2_dtm=0;
424end
425
426`ifdef AXIS_FBDIMM_NO_FSR
427 //`include "fbdimm_fsr_xmr.vh"
428`else
429always@(negedge link_clk)
430begin
431
432reg0_dtm <= { ps_in[0], reg0_dtm[11:1]};
433reg1_dtm <= { ps_in[1], reg1_dtm[11:1]};
434reg2_dtm <= { ps_in[2], reg2_dtm[11:1]};
435
436reg0[11:0] <= { ps_fsr_in[0], reg0[11:1]};
437reg1[11:0] <= { ps_fsr_in[1], reg1[11:1]};
438reg2[11:0] <= { ps_fsr_in[2], reg2[11:1]};
439reg3[11:0] <= { ps_fsr_in[3], reg3[11:1]};
440reg4[11:0] <= { ps_fsr_in[4], reg4[11:1]};
441reg5[11:0] <= { ps_fsr_in[5], reg5[11:1]};
442reg6[11:0] <= { ps_fsr_in[6], reg6[11:1]};
443reg7[11:0] <= { ps_fsr_in[7], reg7[11:1]};
444reg8[11:0] <= { ps_fsr_in[8], reg8[11:1]};
445reg9[11:0] <= { ps_fsr_in[9], reg9[11:1]};
446
447reg0_b[11:0] <= { ps_fsr_in_bar[0], reg0_b[11:1]};
448reg1_b[11:0] <= { ps_fsr_in_bar[1], reg1_b[11:1]};
449reg2_b[11:0] <= { ps_fsr_in_bar[2], reg2_b[11:1]};
450reg3_b[11:0] <= { ps_fsr_in_bar[3], reg3_b[11:1]};
451reg4_b[11:0] <= { ps_fsr_in_bar[4], reg4_b[11:1]};
452reg5_b[11:0] <= { ps_fsr_in_bar[5], reg5_b[11:1]};
453reg6_b[11:0] <= { ps_fsr_in_bar[6], reg6_b[11:1]};
454reg7_b[11:0] <= { ps_fsr_in_bar[7], reg7_b[11:1]};
455reg8_b[11:0] <= { ps_fsr_in_bar[8], reg8_b[11:1]};
456reg9_b[11:0] <= { ps_fsr_in_bar[9], reg9_b[11:1]};
457
458
459 if ( ref_clk) begin
460 ps0_out_bar_reg <= {reg9_b[1],reg8_b[1],reg7_b[1],reg6_b[1],reg5_b[1],reg4_b[1],reg3_b[1],reg2_b[1],reg1_b[1],reg0_b[1]};
461 ps1_out_bar_reg <= {reg9_b[2],reg8_b[2],reg7_b[2],reg6_b[2],reg5_b[2],reg4_b[2],reg3_b[2],reg2_b[2],reg1_b[2],reg0_b[2]};
462 ps2_out_bar_reg <= {reg9_b[3],reg8_b[3],reg7_b[3],reg6_b[3],reg5_b[3],reg4_b[3],reg3_b[3],reg2_b[3],reg1_b[3],reg0_b[3]};
463
464 ps0_out_reg <= {reg9[1] ,reg8[1],reg7[1],reg6[1],reg5[1],reg4[1],reg3[1],reg2[1],reg1[1],reg0[1]};
465 ps1_out_reg <= {reg9[2] ,reg8[2],reg7[2],reg6[2],reg5[2],reg4[2],reg3[2],reg2[2],reg1[2],reg0[2]};
466 ps2_out_reg <= {reg9[3] ,reg8[3],reg7[3],reg6[3],reg5[3],reg4[3],reg3[3],reg2[3],reg1[3],reg0[3]};
467 ps3_out_reg <= {reg9[4] ,reg8[4],reg7[4],reg6[4],reg5[4],reg4[4],reg3[4],reg2[4],reg1[4],reg0[4]};
468 ps4_out_reg <= {reg9[5] ,reg8[5],reg7[5],reg6[5],reg5[5],reg4[5],reg3[5],reg2[5],reg1[5],reg0[5]};
469 ps5_out_reg <= {reg9[6] ,reg8[6],reg7[6],reg6[6],reg5[6],reg4[6],reg3[6],reg2[6],reg1[6],reg0[6]};
470 ps6_out_reg <= {reg9[7] ,reg8[7],reg7[7],reg6[7],reg5[7],reg4[7],reg3[7],reg2[7],reg1[7],reg0[7]};
471 ps7_out_reg <= {reg9[8] ,reg8[8],reg7[8],reg6[8],reg5[8],reg4[8],reg3[8],reg2[8],reg1[8],reg0[8]};
472 ps8_out_reg <= {reg9[9] ,reg8[9],reg7[9],reg6[9],reg5[9],reg4[9],reg3[9],reg2[9],reg1[9],reg0[9]};
473 ps9_out_reg <= {reg9[10] ,reg8[10],reg7[10],reg6[10],reg5[10],reg4[10],reg3[10],reg2[10],reg1[10],reg0[10]};
474 ps10_out_reg <= {reg9[11] ,reg8[11],reg7[11],reg6[11],reg5[11],reg4[11],reg3[11],reg2[11],reg1[11],reg0[11]};
475 ps11_out_reg <= ps_fsr_in;
476 end
477
478
479end
480
481`endif
482
483`ifdef AXIS_FBDIMM_NO_FSR
484always@(negedge ref_clk)
485begin
486 ps0_out_reg <= {reg9[0],reg8[0],reg7[0],reg6[0],reg5[0],reg4[0],reg3[0],reg2[0],reg1[0],reg0[0]};
487 ps0_out_bar_reg <= {reg9_b[0],reg8_b[0],reg7_b[0],reg6_b[0],reg5_b[0],reg4_b[0],reg3_b[0],reg2_b[0],reg1_b[0],reg0_b[0]};
488 ps1_out_reg <= {reg9[1],reg8[1],reg7[1],reg6[1],reg5[1],reg4[1],reg3[1],reg2[1],reg1[1],reg0[1]};
489 ps2_out_reg <= {reg9[2],reg8[2],reg7[2],reg6[2],reg5[2],reg4[2],reg3[2],reg2[2],reg1[2],reg0[2]};
490 ps3_out_reg <= {reg9[3],reg8[3],reg7[3],reg6[3],reg5[3],reg4[3],reg3[3],reg2[3],reg1[3],reg0[3]};
491 ps4_out_reg <= {reg9[4],reg8[4],reg7[4],reg6[4],reg5[4],reg4[4],reg3[4],reg2[4],reg1[4],reg0[4]};
492 ps5_out_reg <= {reg9[5],reg8[5],reg7[5],reg6[5],reg5[5],reg4[5],reg3[5],reg2[5],reg1[5],reg0[5]};
493 ps6_out_reg <= {reg9[6],reg8[6],reg7[6],reg6[6],reg5[6],reg4[6],reg3[6],reg2[6],reg1[6],reg0[6]};
494 ps7_out_reg <= {reg9[7],reg8[7],reg7[7],reg6[7],reg5[7],reg4[7],reg3[7],reg2[7],reg1[7],reg0[7]};
495 ps8_out_reg <= {reg9[8],reg8[8],reg7[8],reg6[8],reg5[8],reg4[8],reg3[8],reg2[8],reg1[8],reg0[8]};
496 ps9_out_reg <= {reg9[9],reg8[9],reg7[9],reg6[9],reg5[9],reg4[9],reg3[9],reg2[9],reg1[9],reg0[9]};
497 ps10_out_reg <= {reg9[10],reg8[10],reg7[10],reg6[10],reg5[10],reg4[10],reg3[10],reg2[10],reg1[10],reg0[10]};
498 ps11_out_reg <= {reg9[11],reg8[11],reg7[11],reg6[11],reg5[11],reg4[11],reg3[11],reg2[11],reg1[11],reg0[11]};
499
500end
501`endif
502
503endmodule
504