source: XOpenSparcT1/trunk/T1-common/srams/bw_r_l2d.v @ 6

Revision 6, 11.4 KB checked in by pntsvt00, 13 years ago (diff)

versione iniziale opensparc

Line 
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T1 Processor File: bw_r_l2d.v
4// Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
5// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6//
7// The above named program is free software; you can redistribute it and/or
8// modify it under the terms of the GNU General Public
9// License version 2 as published by the Free Software Foundation.
10//
11// The above named program is distributed in the hope that it will be
12// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14// General Public License for more details.
15//
16// You should have received a copy of the GNU General Public
17// License along with this work; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19//
20// ========== Copyright Header End ============================================
21module bw_r_l2d (/*AUTOARG*/
22   // Outputs
23   wr_en_buf, word_en_buf, way_sel_buf, so, set_buf, 
24   scdata_scbuf_decc_top_buf, scdata_scbuf_decc_bot_buf, 
25   scbuf_scdata_fbdecc_top_buf, scbuf_scdata_fbdecc_bot_buf, 
26   l2d_fuse_data_out, decc_out, decc_in_buf, col_offset_buf, 
27   fuse_l2d_rid_buf, fuse_l2d_data_in_buf, arst_l_buf, se_buf, 
28   sehold_buf, fuse_l2d_rden_buf, fuse_l2d_wren_buf, fuse_clk1_buf, 
29   fuse_clk2_buf, mem_write_disable_buf, 
30   // Inputs
31   wr_en, word_en, way_sel, si, set, sehold, se, 
32   scdata_scbuf_decc_top, scdata_scbuf_decc_bot, 
33   scbuf_scdata_fbdecc_top, scbuf_scdata_fbdecc_bot, rclk, 
34   mem_write_disable, fuse_read_data_in, fuse_l2d_wren, fuse_l2d_rid, 
35   fuse_l2d_rden, fuse_l2d_data_in, efc_scdata_fuse_clk2, 
36   efc_scdata_fuse_clk1, decc_read_in, decc_in, col_offset, arst_l
37   );
38
39   /*AUTOINPUT*/
40   // Beginning of automatic inputs (from unused autoinst inputs)
41   input                arst_l;                 // To bot_rep of bw_r_l2d_rep_bot.v
42   input                col_offset;             // To bot_rep of bw_r_l2d_rep_bot.v
43   input [155:0]        decc_in;                // To bot_rep of bw_r_l2d_rep_bot.v
44   input [155:0]        decc_read_in;           // To mem_0 of bw_r_l2d_32k.v
45   input                efc_scdata_fuse_clk1;   // To bot_rep of bw_r_l2d_rep_bot.v
46   input                efc_scdata_fuse_clk2;   // To bot_rep of bw_r_l2d_rep_bot.v
47   input                fuse_l2d_data_in;       // To bot_rep of bw_r_l2d_rep_bot.v
48   input                fuse_l2d_rden;          // To bot_rep of bw_r_l2d_rep_bot.v
49   input [2:0]          fuse_l2d_rid;           // To bot_rep of bw_r_l2d_rep_bot.v
50   input [5:0]          fuse_l2d_wren;          // To bot_rep of bw_r_l2d_rep_bot.v
51   input                fuse_read_data_in;      // To bot_rep of bw_r_l2d_rep_bot.v
52   input                mem_write_disable;      // To bot_rep of bw_r_l2d_rep_bot.v
53   input                rclk;                   // To mem_0 of bw_r_l2d_32k.v, ...
54   input [155:0]        scbuf_scdata_fbdecc_bot;// To top_rep of bw_r_l2d_rep_top.v
55   input [155:0]        scbuf_scdata_fbdecc_top;// To top_rep of bw_r_l2d_rep_top.v
56   input [155:0]        scdata_scbuf_decc_bot;  // To bot_rep of bw_r_l2d_rep_bot.v
57   input [155:0]        scdata_scbuf_decc_top;  // To bot_rep of bw_r_l2d_rep_bot.v
58   input                se;                     // To bot_rep of bw_r_l2d_rep_bot.v
59   input                sehold;                 // To bot_rep of bw_r_l2d_rep_bot.v
60   input [9:0]          set;                    // To bot_rep of bw_r_l2d_rep_bot.v
61   input                si;                     // To bot_rep of bw_r_l2d_rep_bot.v
62   input [11:0]         way_sel;                // To bot_rep of bw_r_l2d_rep_bot.v
63   input [3:0]          word_en;                // To bot_rep of bw_r_l2d_rep_bot.v
64   input                wr_en;                  // To bot_rep of bw_r_l2d_rep_bot.v
65   // End of automatics
66
67   output [2:0]         fuse_l2d_rid_buf;       // From bot_rep of bw_r_l2d_rep_bot.v
68   output               fuse_l2d_data_in_buf;   // From bot_rep of bw_r_l2d_rep_bot.v
69   output               arst_l_buf;             // From bot_rep of bw_r_l2d_rep_bot.v
70   output               se_buf;                 // From bot_rep of bw_r_l2d_rep_bot.v
71   output               sehold_buf;             // From bot_rep of bw_r_l2d_rep_bot.v
72   output               fuse_l2d_rden_buf;      // From bot_rep of bw_r_l2d_rep_bot.v
73   output [5:0]         fuse_l2d_wren_buf;      // From bot_rep of bw_r_l2d_rep_bot.v
74   output               fuse_clk1_buf;
75   output               fuse_clk2_buf;
76   output               mem_write_disable_buf;
77   
78   /*AUTOOUTPUT*/
79   // Beginning of automatic outputs (from unused autoinst outputs)
80   output               col_offset_buf;         // From top_rep of bw_r_l2d_rep_top.v
81   output [155:0]       decc_in_buf;            // From top_rep of bw_r_l2d_rep_top.v
82   output [155:0]       decc_out;               // From mem_1 of bw_r_l2d_32k.v
83   output               l2d_fuse_data_out;      // From mem_0 of bw_r_l2d_32k.v
84   output [155:0]       scbuf_scdata_fbdecc_bot_buf;// From bot_rep of bw_r_l2d_rep_bot.v
85   output [155:0]       scbuf_scdata_fbdecc_top_buf;// From bot_rep of bw_r_l2d_rep_bot.v
86   output [155:0]       scdata_scbuf_decc_bot_buf;// From top_rep of bw_r_l2d_rep_top.v
87   output [155:0]       scdata_scbuf_decc_top_buf;// From top_rep of bw_r_l2d_rep_top.v
88   output [9:0]         set_buf;                // From top_rep of bw_r_l2d_rep_top.v
89   output               so;                     // From mem_0 of bw_r_l2d_32k.v
90   output [11:0]        way_sel_buf;            // From top_rep of bw_r_l2d_rep_top.v
91   output [3:0]         word_en_buf;            // From top_rep of bw_r_l2d_rep_top.v
92   output               wr_en_buf;              // From top_rep of bw_r_l2d_rep_top.v
93   // End of automatics
94
95   wire [155:0]         decc_out_0;
96   wire                 l2d_fuse_data_out_0;
97   
98   /*AUTOWIRE*/
99   // Beginning of automatic wires (for undeclared instantiated-module outputs)
100   wire                 col_offset_l;           // From bot_rep of bw_r_l2d_rep_bot.v
101   wire [155:0]         decc_in_l;              // From bot_rep of bw_r_l2d_rep_bot.v
102   wire [155:0]         fbdb_l;                 // From top_rep of bw_r_l2d_rep_top.v
103   wire [155:0]         fbdt_l;                 // From top_rep of bw_r_l2d_rep_top.v
104   wire                 fuse_read_data_in_buf;  // From bot_rep of bw_r_l2d_rep_bot.v
105   wire [155:0]         sbdb_l;                 // From bot_rep of bw_r_l2d_rep_bot.v
106   wire [155:0]         sbdt_l;                 // From bot_rep of bw_r_l2d_rep_bot.v
107   wire [9:0]           set_l;                  // From bot_rep of bw_r_l2d_rep_bot.v
108   wire                 si_buf;                 // From bot_rep of bw_r_l2d_rep_bot.v
109   wire [11:0]          way_sel_l;              // From bot_rep of bw_r_l2d_rep_bot.v
110   wire [3:0]           word_en_l;              // From bot_rep of bw_r_l2d_rep_bot.v
111   wire                 wr_en_l;                // From bot_rep of bw_r_l2d_rep_bot.v
112   // End of automatics
113
114
115
116   bw_r_l2d_rep_bot  bot_rep (/*AUTOINST*/
117                              // Outputs
118                              .fuse_l2d_rden_buf(fuse_l2d_rden_buf),
119                              .fuse_l2d_wren_buf(fuse_l2d_wren_buf[5:0]),
120                              .si_buf   (si_buf),
121                              .arst_l_buf(arst_l_buf),
122                              .se_buf   (se_buf),
123                              .sehold_buf(sehold_buf),
124                              .fuse_l2d_rid_buf(fuse_l2d_rid_buf[2:0]),
125                              .fuse_read_data_in_buf(fuse_read_data_in_buf),
126                              .fuse_l2d_data_in_buf(fuse_l2d_data_in_buf),
127                              .word_en_l(word_en_l[3:0]),
128                              .col_offset_l(col_offset_l),
129                              .set_l    (set_l[9:0]),
130                              .wr_en_l  (wr_en_l),
131                              .way_sel_l(way_sel_l[11:0]),
132                              .decc_in_l(decc_in_l[155:0]),
133                              .scbuf_scdata_fbdecc_top_buf(scbuf_scdata_fbdecc_top_buf[155:0]),
134                              .scbuf_scdata_fbdecc_bot_buf(scbuf_scdata_fbdecc_bot_buf[155:0]),
135                              .sbdt_l   (sbdt_l[155:0]),
136                              .sbdb_l   (sbdb_l[155:0]),
137                              .fuse_clk1_buf(fuse_clk1_buf),
138                              .fuse_clk2_buf(fuse_clk2_buf),
139                              .mem_write_disable_buf(mem_write_disable_buf),
140                              // Inputs
141                              .fuse_l2d_rden(fuse_l2d_rden),
142                              .fuse_l2d_wren(fuse_l2d_wren[5:0]),
143                              .si       (si),
144                              .arst_l   (arst_l),
145                              .se       (se),
146                              .sehold   (sehold),
147                              .fuse_l2d_rid(fuse_l2d_rid[2:0]),
148                              .fuse_read_data_in(fuse_read_data_in),
149                              .fuse_l2d_data_in(fuse_l2d_data_in),
150                              .word_en  (word_en[3:0]),
151                              .col_offset(col_offset),
152                              .set      (set[9:0]),
153                              .wr_en    (wr_en),
154                              .way_sel  (way_sel[11:0]),
155                              .decc_in  (decc_in[155:0]),
156                              .fbdt_l   (fbdt_l[155:0]),
157                              .fbdb_l   (fbdb_l[155:0]),
158                              .scdata_scbuf_decc_top(scdata_scbuf_decc_top[155:0]),
159                              .scdata_scbuf_decc_bot(scdata_scbuf_decc_bot[155:0]),
160                              .efc_scdata_fuse_clk1(efc_scdata_fuse_clk1),
161                              .efc_scdata_fuse_clk2(efc_scdata_fuse_clk2),
162                              .mem_write_disable(mem_write_disable));
163   
164
165   bw_r_l2d_rep_top  top_rep (/*AUTOINST*/
166                              // Outputs
167                              .word_en_buf(word_en_buf[3:0]),
168                              .col_offset_buf(col_offset_buf),
169                              .set_buf  (set_buf[9:0]),
170                              .wr_en_buf(wr_en_buf),
171                              .way_sel_buf(way_sel_buf[11:0]),
172                              .decc_in_buf(decc_in_buf[155:0]),
173                              .fbdt_l   (fbdt_l[155:0]),
174                              .fbdb_l   (fbdb_l[155:0]),
175                              .scdata_scbuf_decc_top_buf(scdata_scbuf_decc_top_buf[155:0]),
176                              .scdata_scbuf_decc_bot_buf(scdata_scbuf_decc_bot_buf[155:0]),
177                              // Inputs
178                              .word_en_l(word_en_l[3:0]),
179                              .col_offset_l(col_offset_l),
180                              .set_l    (set_l[9:0]),
181                              .wr_en_l  (wr_en_l),
182                              .way_sel_l(way_sel_l[11:0]),
183                              .decc_in_l(decc_in_l[155:0]),
184                              .scbuf_scdata_fbdecc_top(scbuf_scdata_fbdecc_top[155:0]),
185                              .scbuf_scdata_fbdecc_bot(scbuf_scdata_fbdecc_bot[155:0]),
186                              .sbdt_l   (sbdt_l[155:0]),
187                              .sbdb_l   (sbdb_l[155:0]));
188   
189
190                             
191   /*
192    bw_r_l2d_32k        AUTO_TEMPLATE(
193    .way_sel_l(way_sel_l[@"(+ 9 (* @ 2))":@"(+ 8 (* @ 2))"]),
194    .fuse_l2d_wren(fuse_l2d_wren_buf[@"(+ 4 @)"]),
195    .fuse_l2d_rden(fuse_l2d_rden_buf),
196    .si(si_buf),
197    .se(se_buf),
198    .arst_l(arst_l_buf),
199    .sehold(sehold_buf),
200    .mem_write_disable(mem_write_disable_buf),
201    .fuse_l2d_rid(fuse_l2d_rid_buf[2:0]),
202    .fuse_clk1(fuse_clk1_buf),
203    .fuse_clk2(fuse_clk2_buf),
204    .fuse_l2d_data_in(fuse_l2d_data_in_buf),
205    .fuse_read_data_in(fuse_read_data_in_buf));
206    */
207
208   
209   bw_r_l2d_32k mem_0(
210                      //Inputs
211                      .si               (scan_out_0),
212                      .fuse_read_data_in(l2d_fuse_data_out_0),
213                      //Outputs
214                      .decc_out(decc_out_0[155:0]),
215                      /*AUTOINST*/
216                      // Outputs
217                      .so               (so),
218                      .l2d_fuse_data_out(l2d_fuse_data_out),
219                      // Inputs
220                      .decc_in_l        (decc_in_l[155:0]),
221                      .decc_read_in     (decc_read_in[155:0]),
222                      .word_en_l        (word_en_l[3:0]),
223                      .way_sel_l        (way_sel_l[9:8]),        // Templated
224                      .set_l            (set_l[9:0]),
225                      .col_offset_l     (col_offset_l),
226                      .wr_en_l          (wr_en_l),
227                      .rclk             (rclk),
228                      .arst_l           (arst_l_buf),            // Templated
229                      .mem_write_disable(mem_write_disable_buf), // Templated
230                      .sehold           (sehold_buf),            // Templated
231                      .se               (se_buf),                // Templated
232                      .fuse_l2d_wren    (fuse_l2d_wren_buf[4]),  // Templated
233                      .fuse_l2d_rden    (fuse_l2d_rden_buf),     // Templated
234                      .fuse_l2d_rid     (fuse_l2d_rid_buf[2:0]), // Templated
235                      .fuse_clk1        (fuse_clk1_buf),         // Templated
236                      .fuse_clk2        (fuse_clk2_buf),         // Templated
237                      .fuse_l2d_data_in (fuse_l2d_data_in_buf));         // Templated
238   
239   bw_r_l2d_32k  mem_1(
240                       //Inputs
241                       .decc_read_in(decc_out_0),
242                       //Outputs
243                       .l2d_fuse_data_out(l2d_fuse_data_out_0),
244                       .so              (scan_out_0),
245                       /*AUTOINST*/
246                       // Outputs
247                       .decc_out        (decc_out[155:0]),
248                       // Inputs
249                       .decc_in_l       (decc_in_l[155:0]),
250                       .word_en_l       (word_en_l[3:0]),
251                       .way_sel_l       (way_sel_l[11:10]),      // Templated
252                       .set_l           (set_l[9:0]),
253                       .col_offset_l    (col_offset_l),
254                       .wr_en_l         (wr_en_l),
255                       .rclk            (rclk),
256                       .arst_l          (arst_l_buf),            // Templated
257                       .mem_write_disable(mem_write_disable_buf), // Templated
258                       .sehold          (sehold_buf),            // Templated
259                       .se              (se_buf),                // Templated
260                       .si              (si_buf),                // Templated
261                       .fuse_l2d_wren   (fuse_l2d_wren_buf[5]),  // Templated
262                       .fuse_l2d_rden   (fuse_l2d_rden_buf),     // Templated
263                       .fuse_l2d_rid    (fuse_l2d_rid_buf[2:0]), // Templated
264                       .fuse_clk1       (fuse_clk1_buf),         // Templated
265                       .fuse_clk2       (fuse_clk2_buf),         // Templated
266                       .fuse_l2d_data_in(fuse_l2d_data_in_buf),  // Templated
267                       .fuse_read_data_in(fuse_read_data_in_buf)); // Templated
268
269endmodule // bw_r_l2d
Note: See TracBrowser for help on using the repository browser.