| // ========== Copyright Header Begin ========================================== |
| // |
| // OpenSPARC T1 Processor File: bw_r_l2d.v |
| // Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. |
| // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES. |
| // |
| // The above named program is free software; you can redistribute it and/or |
| // modify it under the terms of the GNU General Public |
| // License version 2 as published by the Free Software Foundation. |
| // |
| // The above named program is distributed in the hope that it will be |
| // useful, but WITHOUT ANY WARRANTY; without even the implied warranty of |
| // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| // General Public License for more details. |
| // |
| // You should have received a copy of the GNU General Public |
| // License along with this work; if not, write to the Free Software |
| // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. |
| // |
| // ========== Copyright Header End ============================================ |
| module bw_r_l2d (/*AUTOARG*/ |
| // Outputs |
| wr_en_buf, word_en_buf, way_sel_buf, so, set_buf, |
| scdata_scbuf_decc_top_buf, scdata_scbuf_decc_bot_buf, |
| scbuf_scdata_fbdecc_top_buf, scbuf_scdata_fbdecc_bot_buf, |
| l2d_fuse_data_out, decc_out, decc_in_buf, col_offset_buf, |
| fuse_l2d_rid_buf, fuse_l2d_data_in_buf, arst_l_buf, se_buf, |
| sehold_buf, fuse_l2d_rden_buf, fuse_l2d_wren_buf, fuse_clk1_buf, |
| fuse_clk2_buf, mem_write_disable_buf, |
| // Inputs |
| wr_en, word_en, way_sel, si, set, sehold, se, |
| scdata_scbuf_decc_top, scdata_scbuf_decc_bot, |
| scbuf_scdata_fbdecc_top, scbuf_scdata_fbdecc_bot, rclk, |
| mem_write_disable, fuse_read_data_in, fuse_l2d_wren, fuse_l2d_rid, |
| fuse_l2d_rden, fuse_l2d_data_in, efc_scdata_fuse_clk2, |
| efc_scdata_fuse_clk1, decc_read_in, decc_in, col_offset, arst_l |
| ); |
| |
| /*AUTOINPUT*/ |
| // Beginning of automatic inputs (from unused autoinst inputs) |
| input arst_l; // To bot_rep of bw_r_l2d_rep_bot.v |
| input col_offset; // To bot_rep of bw_r_l2d_rep_bot.v |
| input [155:0] decc_in; // To bot_rep of bw_r_l2d_rep_bot.v |
| input [155:0] decc_read_in; // To mem_0 of bw_r_l2d_32k.v |
| input efc_scdata_fuse_clk1; // To bot_rep of bw_r_l2d_rep_bot.v |
| input efc_scdata_fuse_clk2; // To bot_rep of bw_r_l2d_rep_bot.v |
| input fuse_l2d_data_in; // To bot_rep of bw_r_l2d_rep_bot.v |
| input fuse_l2d_rden; // To bot_rep of bw_r_l2d_rep_bot.v |
| input [2:0] fuse_l2d_rid; // To bot_rep of bw_r_l2d_rep_bot.v |
| input [5:0] fuse_l2d_wren; // To bot_rep of bw_r_l2d_rep_bot.v |
| input fuse_read_data_in; // To bot_rep of bw_r_l2d_rep_bot.v |
| input mem_write_disable; // To bot_rep of bw_r_l2d_rep_bot.v |
| input rclk; // To mem_0 of bw_r_l2d_32k.v, ... |
| input [155:0] scbuf_scdata_fbdecc_bot;// To top_rep of bw_r_l2d_rep_top.v |
| input [155:0] scbuf_scdata_fbdecc_top;// To top_rep of bw_r_l2d_rep_top.v |
| input [155:0] scdata_scbuf_decc_bot; // To bot_rep of bw_r_l2d_rep_bot.v |
| input [155:0] scdata_scbuf_decc_top; // To bot_rep of bw_r_l2d_rep_bot.v |
| input se; // To bot_rep of bw_r_l2d_rep_bot.v |
| input sehold; // To bot_rep of bw_r_l2d_rep_bot.v |
| input [9:0] set; // To bot_rep of bw_r_l2d_rep_bot.v |
| input si; // To bot_rep of bw_r_l2d_rep_bot.v |
| input [11:0] way_sel; // To bot_rep of bw_r_l2d_rep_bot.v |
| input [3:0] word_en; // To bot_rep of bw_r_l2d_rep_bot.v |
| input wr_en; // To bot_rep of bw_r_l2d_rep_bot.v |
| // End of automatics |
| |
| output [2:0] fuse_l2d_rid_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| output fuse_l2d_data_in_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| output arst_l_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| output se_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| output sehold_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| output fuse_l2d_rden_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| output [5:0] fuse_l2d_wren_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| output fuse_clk1_buf; |
| output fuse_clk2_buf; |
| output mem_write_disable_buf; |
| |
| /*AUTOOUTPUT*/ |
| // Beginning of automatic outputs (from unused autoinst outputs) |
| output col_offset_buf; // From top_rep of bw_r_l2d_rep_top.v |
| output [155:0] decc_in_buf; // From top_rep of bw_r_l2d_rep_top.v |
| output [155:0] decc_out; // From mem_1 of bw_r_l2d_32k.v |
| output l2d_fuse_data_out; // From mem_0 of bw_r_l2d_32k.v |
| output [155:0] scbuf_scdata_fbdecc_bot_buf;// From bot_rep of bw_r_l2d_rep_bot.v |
| output [155:0] scbuf_scdata_fbdecc_top_buf;// From bot_rep of bw_r_l2d_rep_bot.v |
| output [155:0] scdata_scbuf_decc_bot_buf;// From top_rep of bw_r_l2d_rep_top.v |
| output [155:0] scdata_scbuf_decc_top_buf;// From top_rep of bw_r_l2d_rep_top.v |
| output [9:0] set_buf; // From top_rep of bw_r_l2d_rep_top.v |
| output so; // From mem_0 of bw_r_l2d_32k.v |
| output [11:0] way_sel_buf; // From top_rep of bw_r_l2d_rep_top.v |
| output [3:0] word_en_buf; // From top_rep of bw_r_l2d_rep_top.v |
| output wr_en_buf; // From top_rep of bw_r_l2d_rep_top.v |
| // End of automatics |
| |
| wire [155:0] decc_out_0; |
| wire l2d_fuse_data_out_0; |
| |
| /*AUTOWIRE*/ |
| // Beginning of automatic wires (for undeclared instantiated-module outputs) |
| wire col_offset_l; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire [155:0] decc_in_l; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire [155:0] fbdb_l; // From top_rep of bw_r_l2d_rep_top.v |
| wire [155:0] fbdt_l; // From top_rep of bw_r_l2d_rep_top.v |
| wire fuse_read_data_in_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire [155:0] sbdb_l; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire [155:0] sbdt_l; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire [9:0] set_l; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire si_buf; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire [11:0] way_sel_l; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire [3:0] word_en_l; // From bot_rep of bw_r_l2d_rep_bot.v |
| wire wr_en_l; // From bot_rep of bw_r_l2d_rep_bot.v |
| // End of automatics |
| |
| |
| |
| bw_r_l2d_rep_bot bot_rep (/*AUTOINST*/ |
| // Outputs |
| .fuse_l2d_rden_buf(fuse_l2d_rden_buf), |
| .fuse_l2d_wren_buf(fuse_l2d_wren_buf[5:0]), |
| .si_buf (si_buf), |
| .arst_l_buf(arst_l_buf), |
| .se_buf (se_buf), |
| .sehold_buf(sehold_buf), |
| .fuse_l2d_rid_buf(fuse_l2d_rid_buf[2:0]), |
| .fuse_read_data_in_buf(fuse_read_data_in_buf), |
| .fuse_l2d_data_in_buf(fuse_l2d_data_in_buf), |
| .word_en_l(word_en_l[3:0]), |
| .col_offset_l(col_offset_l), |
| .set_l (set_l[9:0]), |
| .wr_en_l (wr_en_l), |
| .way_sel_l(way_sel_l[11:0]), |
| .decc_in_l(decc_in_l[155:0]), |
| .scbuf_scdata_fbdecc_top_buf(scbuf_scdata_fbdecc_top_buf[155:0]), |
| .scbuf_scdata_fbdecc_bot_buf(scbuf_scdata_fbdecc_bot_buf[155:0]), |
| .sbdt_l (sbdt_l[155:0]), |
| .sbdb_l (sbdb_l[155:0]), |
| .fuse_clk1_buf(fuse_clk1_buf), |
| .fuse_clk2_buf(fuse_clk2_buf), |
| .mem_write_disable_buf(mem_write_disable_buf), |
| // Inputs |
| .fuse_l2d_rden(fuse_l2d_rden), |
| .fuse_l2d_wren(fuse_l2d_wren[5:0]), |
| .si (si), |
| .arst_l (arst_l), |
| .se (se), |
| .sehold (sehold), |
| .fuse_l2d_rid(fuse_l2d_rid[2:0]), |
| .fuse_read_data_in(fuse_read_data_in), |
| .fuse_l2d_data_in(fuse_l2d_data_in), |
| .word_en (word_en[3:0]), |
| .col_offset(col_offset), |
| .set (set[9:0]), |
| .wr_en (wr_en), |
| .way_sel (way_sel[11:0]), |
| .decc_in (decc_in[155:0]), |
| .fbdt_l (fbdt_l[155:0]), |
| .fbdb_l (fbdb_l[155:0]), |
| .scdata_scbuf_decc_top(scdata_scbuf_decc_top[155:0]), |
| .scdata_scbuf_decc_bot(scdata_scbuf_decc_bot[155:0]), |
| .efc_scdata_fuse_clk1(efc_scdata_fuse_clk1), |
| .efc_scdata_fuse_clk2(efc_scdata_fuse_clk2), |
| .mem_write_disable(mem_write_disable)); |
| |
| |
| bw_r_l2d_rep_top top_rep (/*AUTOINST*/ |
| // Outputs |
| .word_en_buf(word_en_buf[3:0]), |
| .col_offset_buf(col_offset_buf), |
| .set_buf (set_buf[9:0]), |
| .wr_en_buf(wr_en_buf), |
| .way_sel_buf(way_sel_buf[11:0]), |
| .decc_in_buf(decc_in_buf[155:0]), |
| .fbdt_l (fbdt_l[155:0]), |
| .fbdb_l (fbdb_l[155:0]), |
| .scdata_scbuf_decc_top_buf(scdata_scbuf_decc_top_buf[155:0]), |
| .scdata_scbuf_decc_bot_buf(scdata_scbuf_decc_bot_buf[155:0]), |
| // Inputs |
| .word_en_l(word_en_l[3:0]), |
| .col_offset_l(col_offset_l), |
| .set_l (set_l[9:0]), |
| .wr_en_l (wr_en_l), |
| .way_sel_l(way_sel_l[11:0]), |
| .decc_in_l(decc_in_l[155:0]), |
| .scbuf_scdata_fbdecc_top(scbuf_scdata_fbdecc_top[155:0]), |
| .scbuf_scdata_fbdecc_bot(scbuf_scdata_fbdecc_bot[155:0]), |
| .sbdt_l (sbdt_l[155:0]), |
| .sbdb_l (sbdb_l[155:0])); |
| |
| |
| |
| /* |
| bw_r_l2d_32k AUTO_TEMPLATE( |
| .way_sel_l(way_sel_l[@"(+ 9 (* @ 2))":@"(+ 8 (* @ 2))"]), |
| .fuse_l2d_wren(fuse_l2d_wren_buf[@"(+ 4 @)"]), |
| .fuse_l2d_rden(fuse_l2d_rden_buf), |
| .si(si_buf), |
| .se(se_buf), |
| .arst_l(arst_l_buf), |
| .sehold(sehold_buf), |
| .mem_write_disable(mem_write_disable_buf), |
| .fuse_l2d_rid(fuse_l2d_rid_buf[2:0]), |
| .fuse_clk1(fuse_clk1_buf), |
| .fuse_clk2(fuse_clk2_buf), |
| .fuse_l2d_data_in(fuse_l2d_data_in_buf), |
| .fuse_read_data_in(fuse_read_data_in_buf)); |
| */ |
| |
| |
| bw_r_l2d_32k mem_0( |
| //Inputs |
| .si (scan_out_0), |
| .fuse_read_data_in(l2d_fuse_data_out_0), |
| //Outputs |
| .decc_out(decc_out_0[155:0]), |
| /*AUTOINST*/ |
| // Outputs |
| .so (so), |
| .l2d_fuse_data_out(l2d_fuse_data_out), |
| // Inputs |
| .decc_in_l (decc_in_l[155:0]), |
| .decc_read_in (decc_read_in[155:0]), |
| .word_en_l (word_en_l[3:0]), |
| .way_sel_l (way_sel_l[9:8]), // Templated |
| .set_l (set_l[9:0]), |
| .col_offset_l (col_offset_l), |
| .wr_en_l (wr_en_l), |
| .rclk (rclk), |
| .arst_l (arst_l_buf), // Templated |
| .mem_write_disable(mem_write_disable_buf), // Templated |
| .sehold (sehold_buf), // Templated |
| .se (se_buf), // Templated |
| .fuse_l2d_wren (fuse_l2d_wren_buf[4]), // Templated |
| .fuse_l2d_rden (fuse_l2d_rden_buf), // Templated |
| .fuse_l2d_rid (fuse_l2d_rid_buf[2:0]), // Templated |
| .fuse_clk1 (fuse_clk1_buf), // Templated |
| .fuse_clk2 (fuse_clk2_buf), // Templated |
| .fuse_l2d_data_in (fuse_l2d_data_in_buf)); // Templated |
| |
| bw_r_l2d_32k mem_1( |
| //Inputs |
| .decc_read_in(decc_out_0), |
| //Outputs |
| .l2d_fuse_data_out(l2d_fuse_data_out_0), |
| .so (scan_out_0), |
| /*AUTOINST*/ |
| // Outputs |
| .decc_out (decc_out[155:0]), |
| // Inputs |
| .decc_in_l (decc_in_l[155:0]), |
| .word_en_l (word_en_l[3:0]), |
| .way_sel_l (way_sel_l[11:10]), // Templated |
| .set_l (set_l[9:0]), |
| .col_offset_l (col_offset_l), |
| .wr_en_l (wr_en_l), |
| .rclk (rclk), |
| .arst_l (arst_l_buf), // Templated |
| .mem_write_disable(mem_write_disable_buf), // Templated |
| .sehold (sehold_buf), // Templated |
| .se (se_buf), // Templated |
| .si (si_buf), // Templated |
| .fuse_l2d_wren (fuse_l2d_wren_buf[5]), // Templated |
| .fuse_l2d_rden (fuse_l2d_rden_buf), // Templated |
| .fuse_l2d_rid (fuse_l2d_rid_buf[2:0]), // Templated |
| .fuse_clk1 (fuse_clk1_buf), // Templated |
| .fuse_clk2 (fuse_clk2_buf), // Templated |
| .fuse_l2d_data_in(fuse_l2d_data_in_buf), // Templated |
| .fuse_read_data_in(fuse_read_data_in_buf)); // Templated |
| |
| endmodule // bw_r_l2d |