OpenCores
URL https://opencores.org/ocsvn/sparc64soc/sparc64soc/trunk

Subversion Repositories sparc64soc

[/] [sparc64soc/] [trunk/] [T1-common/] [srams/] [bw_r_l2d.v] - Rev 6

Go to most recent revision | Compare with Previous | Blame | View Log

// ========== 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
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.