HierarchyFilesModulesSignalsTasksFunctionsHelp

/******************************************************************************/ 
/*                                                                            */ 
/* Copyright (c) 1999 Sun Microsystems, Inc. All rights reserved.             */ 
/*                                                                            */ 
/* The contents of this file are subject to the current version of the Sun    */ 
/* Community Source License, microSPARCII ("the License"). You may not use    */ 
/* this file except in compliance with the License.  You may obtain a copy    */ 
/* of the License by searching for "Sun Community Source License" on the      */ 
/* World Wide Web at http://www.sun.com. See the License for the rights,      */ 
/* obligations, and limitations governing use of the contents of this file.   */ 
/*                                                                            */ 
/* Sun Microsystems, Inc. has intellectual property rights relating to the    */ 
/* technology embodied in these files. In particular, and without limitation, */ 
/* these intellectual property rights may include one or more U.S. patents,   */ 
/* foreign patents, or pending applications.                                  */ 
/*                                                                            */ 
/* Sun, Sun Microsystems, the Sun logo, all Sun-based trademarks and logos,   */ 
/* Solaris, Java and all Java-based trademarks and logos are trademarks or    */ 
/* registered trademarks of Sun Microsystems, Inc. in the United States and   */ 
/* other countries. microSPARC is a trademark or registered trademark of      */ 
/* SPARC International, Inc. All SPARC trademarks are used under license and  */ 
/* are trademarks or registered trademarks of SPARC International, Inc. in    */ 
/* the United States and other countries. Products bearing SPARC trademarks   */ 
/* are based upon an architecture developed by Sun Microsystems, Inc.         */ 
/*                                                                            */ 
/******************************************************************************/ 
// @(#)rl_cc.v	1.105 9/15/93
// Interconnect module for cache controllers - this is a layout block.

[Up: ssparc_core cc]
module rl_cc (
    little_endian,
    hold_fetch_f_l,
    sel_last_gen,
    sel_recirc,
    ld_op_d,
    st_op_d,
    ic_force_ifill_g,
    mm_cache_stat,
    fp_dout_e,
    iu_store_data,
    select_IU_DOUT,
    select_FP_DOUT,
    sel_ldstb_1,
    dcc_idle,
    mm_icdaten,
    it_val_f,
    it_cntx_out,
    it_dout_f,
    ic_ibus,
    misc_out,
    ic_sup_only_f,
    dt_cntx_in,
    it_cntx_in,
    cxr,
    i_dva_req,
    sgnd_ld_e,
    mm_dct_daten,
    standby_req,
    ic_standby_f,
    dc_standby_w,
    dt_val_w,
    dva_w_2,
    invalid_wb_entry,
    dt_dout_w,
    nforce_dva_f, 
    ic_hld,
    dc_hld,
    enbl_fetch,
    dc_dva_e,
    dt_acc_in,
    dt_acc_out,
    it_acc_out,
    dwait_w,
    dwait_w_for_flush,
    iu_dva_e,
    iu_asi_e,
    mm_dcache_enbl,
    mm_dstat_avail,
    enbl_dtag_match_w,
    dc_miss_or_part,
    dc_miss_and_part,
    dc_miss_sustain ,
    mm_dcdaten_in,
    mm_wbstb,
    mm_wbsel1,
    it_din,
    dt_din,
    mm_icache_enbl,
    it_hit_f,
    it_hit_f_mmu,			// MMU's copy buffered in ic_cntl
    mm_istat_avail,
    iwait_f,
    enbl_itag_match_f,
    ic_miss_or_part,
    ic_miss_and_part,
    ic_miss_sustain,
    imiss_in_progress,
    i_nfillp,
    wb0_hold_lo,
    wb1_hold_lo,
    wb2_hold_lo,
    wb3_hold_lo,
    wb_1_sel,
    wb_2_sel,
    wb_3_sel,
    wb_valid,
    it_index3,
    it_index2,
    it_index1,
    it_flush,
    it_flush_user,
    it_flush_user_cntx,
    dt_index3,
    dt_index2,
    dt_index1,
    dt_flush,
    dt_flush_user,
    dt_flush_user_cntx,
    dt_cntx_out,
    ic_power_down,
    dc_power_down,
    dt_at,
    it_acc_in,
    mm_fs_lvl,
    it_lvl_in,
    it_lvl_out,
    ic_lvl_f,
    dc_shold,
    it_val_in,
    ic_wle,
    it_be,
    it_be_vb,
    dt_be,
    dt_be_vb,
    ic_be,
    iu_bytemarks,
    flush_op_e,
    iu_iva_g,
    icache_adr,
    dc_wle,
    dc_be,
    dc_dtv_din,
    dp_perr,
    dp_perr_buf,
    ic_perr_f,
    start_itag_inv,
    ic_idle,
    misc_in,
    iu_pipe_hold_dc_l,
    iu_pipe_hold_dc,
    iu_pipe_hold_ic,
    fast_hld_terms,
    iu_in_trap,
    IU_in_trap4dc,
    mm_dabort,
    mm_dcstben,
    mm_icstben,
    mm_iabort,
    dc_wrtbuf,
    dc_tagasi_bus,
    icstben_asi,
    dt_hit,
    ld_op_e,
    size_e,
    st_op_e,

    dc_do,
    ld_iu,
    ld_fpu,
    fpu_mem_e,
    cache_fill,
    dc_di,

    ss_scan_mode,
    ss_dccntl_scan_in,
    ss_iccntl_scan_out,
    ss_clock_dc_cntl,
    ss_clock_ic_cntl,
    ss_reset
) ;
    input little_endian;   // from iu to support little endian (if = 1)
    output hold_fetch_f_l ;
    input sel_last_gen ;
    input sel_recirc ;
    output ic_force_ifill_g ;
    input mm_cache_stat ;
    input [63:0] fp_dout_e;
    input [31:0] iu_store_data;
    input select_IU_DOUT;
    input select_FP_DOUT;
    input sel_ldstb_1;
    output dcc_idle ;
    input mm_icdaten ;
    input it_val_f ;
    input [7:0] it_cntx_out ;
    input [`it_msb:0] it_dout_f ;
    input [63:0] ic_ibus ;
    output ic_sup_only_f ;
    input [7:0] cxr ;
    output [7:0] dt_cntx_in ;
    output [7:0] it_cntx_in ;
    output i_dva_req ;
    input ss_dccntl_scan_in ;
    output ss_iccntl_scan_out ;
    input sgnd_ld_e ;
    input standby_req ;
    output ic_standby_f ;
    output dc_standby_w ;
    output dva_w_2 ;
    output [1:0] ic_hld ;
    output [1:0] dc_hld ;
    input enbl_fetch ;
    output [`dc_msb:3] dc_dva_e ;
    output [31:`log2_icachesize] it_din ;
    output [31:`log2_dcachesize] dt_din ;
    output imiss_in_progress ;
    output [4:3] i_nfillp ;
    input mm_icache_enbl ;
    input it_hit_f ;
    output it_hit_f_mmu ;
    input mm_istat_avail ;
    output iwait_f ;
    output enbl_itag_match_f ;
    output ic_miss_or_part ;
    output ic_miss_and_part ;
    output ic_miss_sustain ;

    output wb0_hold_lo;
    output wb1_hold_lo;
    output wb2_hold_lo;
    output wb3_hold_lo;
    output wb_1_sel;
    output wb_2_sel;
    output wb_3_sel;

    input [63:0] dc_do ;
    output [31:0] ld_iu ;
    output [63:0] ld_fpu ;
    input fpu_mem_e ;
    input [1:0] size_e ;
    input [5:0] iu_asi_e ;
    output dwait_w;
    output dwait_w_for_flush;

    input dt_val_w;
    input [7:0] dt_cntx_out;
    output ic_power_down;
    output dc_power_down;
    input dt_hit ;
    input [31:0] iu_dva_e ;
    input ld_op_d ;
    input st_op_d ;
    input ld_op_e ;
    input st_op_e ;
    input [63:0] cache_fill ;
    output [63:0] dc_di ;
    output it_acc_in ;
    input [1:0] mm_fs_lvl ;
    output [1:0] it_lvl_in ;
    input [1:0] it_lvl_out ;
    output [1:0] ic_lvl_f ;
    output [4:0] dt_acc_in ;
    input [4:0] dt_acc_out ;
    input it_acc_out ;

    output it_index3 ;
    output it_index2 ;
    output it_index1 ;
    output it_flush ;
    output it_flush_user ;
    output it_flush_user_cntx ;

    output dt_index3 ; 
    output dt_index2 ;  
    output dt_index1 ;   
    output dt_flush ; 
    output dt_flush_user ;  
    output dt_flush_user_cntx ;

    output [4:0] dt_at ;
    input icstben_asi ;
    output [31:0] dc_wrtbuf ;
    output [31:0] dc_tagasi_bus ;
    input mm_dct_daten ;
    input iu_pipe_hold_dc ;
    input [1:0] iu_pipe_hold_dc_l ;
    input iu_pipe_hold_ic ;
    input fast_hld_terms ;
    input iu_in_trap ;
    input IU_in_trap4dc ;
    input mm_dabort ;
    input mm_dcstben ;
    input ss_scan_mode ;
    input ss_clock_dc_cntl ;
    input ss_clock_ic_cntl ;
    input ss_reset ;
    input mm_icstben ;
    input mm_iabort ;
    input mm_dcdaten_in ;
    input mm_wbstb ;
    input mm_wbsel1 ;

    input [31:0] misc_in ;
    output [31:0] misc_out ;
    input [1:0] dp_perr ;
    input [1:0] dp_perr_buf ;
    output [1:0] ic_perr_f ;
    output start_itag_inv ;
    output ic_idle ;
    output dc_shold ;
    output it_val_in ;
    output ic_wle ;
    output [1:0] ic_be ;
    input [3:0] iu_bytemarks ;
    input flush_op_e ;
    input [13:3] iu_iva_g ;
    input [31:14] icache_adr ;
    output [7:0] dc_be ;
    output invalid_wb_entry ;
    output dc_wle ;
    output dc_dtv_din ;
    output it_be ;
    output it_be_vb ;
    output dt_be ;
    output dt_be_vb ;
    output [1:0] wb_valid ;
    input [`dt_msb:0] dt_dout_w;  

    input mm_dcache_enbl ;
    input mm_dstat_avail ;
    output enbl_dtag_match_w ;
    output dc_miss_or_part ;
    output dc_miss_and_part ;
    output dc_miss_sustain ;
    input nforce_dva_f;

    wire ic_miss ;
    wire flush_ic_e;
    wire ss_dccntl_scan_out;

    rl_dc_cntl dc_cntl(
	.little_endian		(little_endian),
	.dp_perr		(dp_perr_buf[1:0]),
        .fp_dout_e          	(fp_dout_e[63:0]),
        .iu_store_data          (iu_store_data[31:0]),
        .select_IU_DOUT         (select_IU_DOUT),
        .select_FP_DOUT         (select_FP_DOUT), 
        .sel_ldstb_1            (sel_ldstb_1), 
	.dcc_miss_idle		(dcc_idle),
	.dcc_nc_bypass		(dcc_nc_bypass),
	.dt_cntx_in		(dt_cntx_in[7:0]),
  	.cxr			(cxr[7:0]),
	.i_dva_req		(i_dva_req),
	.sgnd_ld_e		(sgnd_ld_e),
	.standby_req		(standby_req),
	.dc_standby_w		(dc_standby_w),
	.mm_dct_daten		(mm_dct_daten),
	.dt_val_w		(dt_val_w),
	.dc_hld			(dc_hld[1:0]),
	.invalid_wb_entry	(invalid_wb_entry),
	.dt_dout_w		(dt_dout_w[`dt_msb:0]),
	.flush_op_e		(flush_op_e),
	.nforce_dva_f		(nforce_dva_f),
	.dva_w_2		(dva_w_2), 
	.dwait_w		(dwait_w),
	.dwait_w_for_flush	(dwait_w_for_flush),
	.dc_dva_e		(dc_dva_e),
	.iu_asi_e		(iu_asi_e),
        .mm_dcdaten_in          (mm_dcdaten_in), 
        .mm_wbstb               (mm_wbstb), 
        .mm_wbsel1              (mm_wbsel1), 
        .mm_dcache_enbl         (mm_dcache_enbl), 
        .mm_dstat_avail         (mm_dstat_avail), 
        .enbl_dtag_match_w      (enbl_dtag_match_w), 
        .dc_miss_or_part	(dc_miss_or_part), 
        .dc_miss_and_part	(dc_miss_and_part), 
        .ic_miss		(ic_miss), 
        .dc_miss_sustain        (dc_miss_sustain), 
	.dt_acc_in		(dt_acc_in[4:0]),
	.dt_acc_out		(dt_acc_out[4:0]),
	.wb0_hold_lo		(wb0_hold_lo),
        .wb1_hold_lo		(wb1_hold_lo),
        .wb2_hold_lo		(wb2_hold_lo),
        .wb3_hold_lo		(wb3_hold_lo),
        .wb_1_sel		(wb_1_sel),
        .wb_2_sel		(wb_2_sel),
        .wb_3_sel		(wb_3_sel),
	.wb_valid		(wb_valid),
        .it_index3_w            (it_index3),
        .it_index2_w            (it_index2),
        .it_index1_w            (it_index1),
        .it_flush_w             (it_flush),
        .it_flush_user_w        (it_flush_user),
        .it_flush_user_cntx_w   (it_flush_user_cntx),
	.ic_asi_load_cache_w	(ic_asi_load_cache_w),
	.ic_asi_store_tag_e	(ic_asi_store_tag_e),
	.ic_asi_store_cache_e	(ic_asi_store_cache_e),
	.flush_ic_e		(flush_ic_e),
//
        .dt_index3_w 		(dt_index3),
        .dt_index2_w 		(dt_index2),
        .dt_index1_w 		(dt_index1),
        .dt_flush_w_l 		(dt_flush),
        .dt_flush_user_w 	(dt_flush_user),
        .dt_flush_user_cntx_w 	(dt_flush_user_cntx),
	.dt_cntx_out		(dt_cntx_out),
	.dc_power_down		(dc_power_down),
	.dt_at 			(dt_at[4:0]),
	.dc_do			(dc_do[63:0]),
	.ld_iu			(ld_iu[31:0]),
	.ld_fpu			(ld_fpu[63:0]),
	.fpu_mem_e		(fpu_mem_e),
	.size_e			(size_e[1:0]),
	.dt_hit_w			(dt_hit),
	.iu_dva_e		(iu_dva_e[31:0]),
	.ld_op_d		(ld_op_d),
	.st_op_d		(st_op_d),
	.ld_op_e		(ld_op_e),
	.st_op_e		(st_op_e),
	.iu_bytemarks		(iu_bytemarks[3:0]),
	.fast_hld_terms		(fast_hld_terms),
	.fast_iu_held_l		(iu_pipe_hold_dc_l[1]),
	.iu_held		(iu_pipe_hold_dc),
	.iu_held_for_dc_be	(iu_pipe_hold_dc),
	.iu_held_l		(iu_pipe_hold_dc_l[0]),
	.iu_in_trap		(IU_in_trap4dc),
	.mm_dabort		(mm_dabort),
	.mm_dcstben		(mm_dcstben),
	.dc_shold		(dc_shold),
	.wrtbuf			(dc_wrtbuf[31:0]),
	.dc_tagasi_bus		(dc_tagasi_bus[31:0]),
	.cached			(mm_cache_stat),
	.misc_in		(misc_in[3:1]),
	.dc_be			(dc_be[7:0]),
	.dc_wle			(dc_wle),
	.dc_dtv_din		(dc_dtv_din),
	.dt_be			(dt_be),
	.dt_be_vb		(dt_be_vb),
	.dc_di 			(dc_di[63:0]),
	.cache_fill 		(cache_fill[63:0]),
	.dt_din			(dt_din[31:`log2_dcachesize]),
	.ss_scan_in		(ss_dccntl_scan_in),
	.ss_scan_out		(ss_dccntl_scan_out), 
	.ss_scan_mode		(ss_scan_mode),
	.ss_clock		(ss_clock_dc_cntl),
	.ss_reset		(ss_reset)
    );

    wire [1:0] ic_be ;
    rl_ic_cntl ic_cntl(
	.hold_fetch_f_l		(hold_fetch_f_l),
	.sel_last_gen		(sel_last_gen),
	.sel_recirc		(sel_recirc),
	.ic_force_ifill_g	(ic_force_ifill_g),
	.mm_cache_stat		(mm_cache_stat),
	.dcc_nc_bypass		(dcc_nc_bypass),
	.dp_perr		(dp_perr[1:0]),
	.ic_perr_f		(ic_perr_f[1:0]),
	.start_itag_inv		(start_itag_inv),
	.ic_idle		(ic_idle),
	.ic_sup_only_f		(ic_sup_only_f),
	.it_acc_out		(it_acc_out),
	.cxr                    (cxr[7:0]),
	.it_cntx_in             (it_cntx_in[7:0]),
	.standby_req		(standby_req),
	.ic_standby_f		(ic_standby_f),
	.dva_w_2		(dva_w_2),
	.iu_in_trap		(iu_in_trap),
	.flush_ic_e		(flush_ic_e),
	.ic_asi_store_tag_e	(ic_asi_store_tag_e),
	.ic_asi_store_cache_e	(ic_asi_store_cache_e),
	.nforce_dva_f		(nforce_dva_f),
	.ic_hld			(ic_hld[1:0]),
	.enbl_fetch		(enbl_fetch),
	.ic_power_down		(ic_power_down),
	.it_acc_in		(it_acc_in),
	.mm_fs_lvl		(mm_fs_lvl[1:0]),
	.it_lvl_in		(it_lvl_in[1:0]),
	.it_lvl_out		(it_lvl_out[1:0]),
	.ic_lvl_f		(ic_lvl_f[1:0]),
	.iu_iva_g		(iu_iva_g[13:3]),
	.icache_adr		(icache_adr[31:14]),
	.iu_held		(iu_pipe_hold_ic),
	.mm_icstben		(mm_icstben),
	.icstben_asi		(icstben_asi),
	.mm_iabort		(mm_iabort),
	.misc_in		(misc_in[31:0]),
	.misc_out		(misc_out[31:0]),
	.ic_ibus		(ic_ibus[63:0]),
	.it_dout_f		(it_dout_f[`it_msb:0]),
	.it_cntx_out		(it_cntx_out[7:0]),
	.it_val_f		(it_val_f),
	.ic_asi_load_cache_w	(ic_asi_load_cache_w),
	.mm_icdaten		(mm_icdaten),
	.ic_wle			(ic_wle),
	.ic_be			(ic_be[1:0]),
	.it_be			(it_be),
	.it_be_vb		(it_be_vb),
	.it_val_in		(it_val_in),
	.it_din			(it_din[31:`log2_icachesize]),

	.mm_icache_enbl		(mm_icache_enbl),
	.it_hit_f		(it_hit_f),
	.it_hit_f_mmu		(it_hit_f_mmu),
	.mm_istat_avail		(mm_istat_avail),
	.iwait_f		(iwait_f),
	.enbl_itag_match_f	(enbl_itag_match_f),
	.ic_miss		(ic_miss),
	.ic_miss_or_part	(ic_miss_or_part),
	.ic_miss_and_part	(ic_miss_and_part),
	.ic_miss_sustain	(ic_miss_sustain),
	.imiss_in_progress	(imiss_in_progress),
	.i_nfillp		(i_nfillp[4:3]),

	.ss_scan_in		(ss_dccntl_scan_out),
	.ss_scan_out		(ss_iccntl_scan_out),
	.ss_scan_mode		(ss_scan_mode),
	.ss_reset		(ss_reset),
	.ss_clock		(ss_clock_ic_cntl)
    );

// Added spare cells 

        spares  rl_cc_spares ();

endmodule

HierarchyFilesModulesSignalsTasksFunctionsHelp

This page: Created:Thu Aug 19 12:00:27 1999
From: ../../../sparc_v8/ssparc/cc/rtl/rl_cc.v

Verilog converted to html by v2html 5.0 (written by Costas Calamvokis).Help