Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / common / vera / ccxDevices / ccxDevices.binds.vrh
// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T2 Processor File: ccxDevices.binds.vrh
// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
//
// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
//
// This 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 program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// For the avoidance of doubt, and except that if any non-GPL license
// choice is available it will apply instead, Sun elects to use only
// the General Public License version 2 (GPLv2) at this time for any
// software where a choice of GPL license versions is made
// available with the language indicating that GPLv2 or any later version
// may be used, or where a choice of which version of the GPL is applied is
// otherwise unspecified.
//
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// have any questions.
//
// ========== Copyright Header End ============================================
#ifndef INC_CCXDEVICE_BINDS_VRH
#define INC_CCXDEVICE_BINDS_VRH
#include <vera_defines.vrh>
// generic CCX port
port ccxPort {
clk;
req;
datao;
atmo;
gnt;
stall;
rdy;
atmi;
datai;
}
// // when PCX
// clk;
// req; // req from spc to pcx [8:0]. vera sources.
// datao; // data from spc to pcx [129:0]. vera sources.
// atmo; // atomic from spc to pcx [8:0]. vera sources.
// gnt; // grant from pcx to spc [8:0]. vera sinks.
//
// stall; // NA for spc. stall from mem device to pcx. vera sources.
// rdy; // NA for spc. data_rdy from pcx to mem device. vera sinks.
// atmi; // NA for spc. atomic from pcx mem device. vera sinks.
// datai; // data from pcx to mem device [129:0]. vera sinks.
//
//
// // when CPX
// clk;
// req; // req from mem device to cpx [7:0]. vera sources.
// datao; // data from mem device to cpx [145:0]. vera sources.
// atmo; // atomic from mem device to cpx. vera sources.
// gnt; // grant from cpx to mem device. [7:0] vera sinks.
//
// stall; // stall from spc to cpx. vera sources.
// rdy; // N/A. unused.
// atmi; // N/A. unused.
// datai; // data from cpx to spc [145:0]. vera sinks.
// NCU bind
bind ccxPort pcxBindDEV_NCU {
clk ccxNCU_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxNCU_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxNCU_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi void;
datai ccxNCU_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_NCU {
clk ccxNCU_if.clk;
req ccxNCU_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxNCU_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo void; // ccxNCU_if.cpx_atmo; // fake really
gnt ccxNCU_if.cpx_gnt; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
// spc binds
bind ccxPort pcxBindDEV_SPC0 {
clk ccxSPC0_if.clk;
req ccxSPC0_if.pcx_req;
datao ccxSPC0_if.pcx_datao;
atmo ccxSPC0_if.pcx_atm;
gnt ccxSPC0_if.pcx_grant;
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort cpxBindDEV_SPC0 {
clk ccxSPC0_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall void;
rdy void;
atmi void;
datai ccxSPC0_if.cpx_datai;
}
bind ccxPort pcxBindDEV_SPC1 {
clk ccxSPC1_if.clk;
req ccxSPC1_if.pcx_req;
datao ccxSPC1_if.pcx_datao;
atmo ccxSPC1_if.pcx_atm;
gnt ccxSPC1_if.pcx_grant;
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort cpxBindDEV_SPC1 {
clk ccxSPC1_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall void;
rdy void;
atmi void;
datai ccxSPC1_if.cpx_datai;
}
bind ccxPort pcxBindDEV_SPC2 {
clk ccxSPC2_if.clk;
req ccxSPC2_if.pcx_req;
datao ccxSPC2_if.pcx_datao;
atmo ccxSPC2_if.pcx_atm;
gnt ccxSPC2_if.pcx_grant;
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort cpxBindDEV_SPC2 {
clk ccxSPC2_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall void;
rdy void;
atmi void;
datai ccxSPC2_if.cpx_datai;
}
bind ccxPort pcxBindDEV_SPC3 {
clk ccxSPC3_if.clk;
req ccxSPC3_if.pcx_req;
datao ccxSPC3_if.pcx_datao;
atmo ccxSPC3_if.pcx_atm;
gnt ccxSPC3_if.pcx_grant;
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort cpxBindDEV_SPC3 {
clk ccxSPC3_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall void;
rdy void;
atmi void;
datai ccxSPC3_if.cpx_datai;
}
bind ccxPort pcxBindDEV_SPC4 {
clk ccxSPC4_if.clk;
req ccxSPC4_if.pcx_req;
datao ccxSPC4_if.pcx_datao;
atmo ccxSPC4_if.pcx_atm;
gnt ccxSPC4_if.pcx_grant;
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort cpxBindDEV_SPC4 {
clk ccxSPC4_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall void;
rdy void;
atmi void;
datai ccxSPC4_if.cpx_datai;
}
bind ccxPort pcxBindDEV_SPC5 {
clk ccxSPC5_if.clk;
req ccxSPC5_if.pcx_req;
datao ccxSPC5_if.pcx_datao;
atmo ccxSPC5_if.pcx_atm;
gnt ccxSPC5_if.pcx_grant;
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort cpxBindDEV_SPC5 {
clk ccxSPC5_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall void;
rdy void;
atmi void;
datai ccxSPC5_if.cpx_datai;
}
bind ccxPort pcxBindDEV_SPC6 {
clk ccxSPC6_if.clk;
req ccxSPC6_if.pcx_req;
datao ccxSPC6_if.pcx_datao;
atmo ccxSPC6_if.pcx_atm;
gnt ccxSPC6_if.pcx_grant;
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort cpxBindDEV_SPC6 {
clk ccxSPC6_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall void;
rdy void;
atmi void;
datai ccxSPC6_if.cpx_datai;
}
bind ccxPort pcxBindDEV_SPC7 {
clk ccxSPC7_if.clk;
req ccxSPC7_if.pcx_req;
datao ccxSPC7_if.pcx_datao;
atmo ccxSPC7_if.pcx_atm;
gnt ccxSPC7_if.pcx_grant;
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort cpxBindDEV_SPC7 {
clk ccxSPC7_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall void;
rdy void;
atmi void;
datai ccxSPC7_if.cpx_datai;
}
#ifndef RTL_NO_BNK01
// cache banks
bind ccxPort pcxBindDEV_MEM0 {
clk ccxL20_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxL20_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxL20_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi ccxL20_if.pcx_atmi;
datai ccxL20_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_MEM0 {
clk ccxL20_if.clk;
req ccxL20_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxL20_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo ccxL20_if.cpx_atmo;
gnt ccxL20_if.cpx_grant; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort pcxBindDEV_MEM1 {
clk ccxL21_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxL21_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxL21_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi ccxL21_if.pcx_atmi;
datai ccxL21_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_MEM1 {
clk ccxL21_if.clk;
req ccxL21_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxL21_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo ccxL21_if.cpx_atmo;
gnt ccxL21_if.cpx_grant; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
#endif
#ifndef RTL_NO_BNK23
bind ccxPort pcxBindDEV_MEM2 {
clk ccxL22_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxL22_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxL22_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi ccxL22_if.pcx_atmi;
datai ccxL22_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_MEM2 {
clk ccxL22_if.clk;
req ccxL22_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxL22_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo ccxL22_if.cpx_atmo;
gnt ccxL22_if.cpx_grant; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort pcxBindDEV_MEM3 {
clk ccxL23_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxL23_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxL23_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi ccxL23_if.pcx_atmi;
datai ccxL23_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_MEM3 {
clk ccxL23_if.clk;
req ccxL23_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxL23_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo ccxL23_if.cpx_atmo;
gnt ccxL23_if.cpx_grant; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
#endif
#ifndef RTL_NO_BNK45
bind ccxPort pcxBindDEV_MEM4 {
clk ccxL24_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxL24_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxL24_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi ccxL24_if.pcx_atmi;
datai ccxL24_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_MEM4 {
clk ccxL24_if.clk;
req ccxL24_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxL24_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo ccxL24_if.cpx_atmo;
gnt ccxL24_if.cpx_grant; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort pcxBindDEV_MEM5 {
clk ccxL25_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxL25_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxL25_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi ccxL25_if.pcx_atmi;
datai ccxL25_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_MEM5 {
clk ccxL25_if.clk;
req ccxL25_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxL25_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo ccxL25_if.cpx_atmo;
gnt ccxL25_if.cpx_grant; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
#endif
#ifndef RTL_NO_BNK67
bind ccxPort pcxBindDEV_MEM6 {
clk ccxL26_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxL26_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxL26_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi ccxL26_if.pcx_atmi;
datai ccxL26_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_MEM6 {
clk ccxL26_if.clk;
req ccxL26_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxL26_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo ccxL26_if.cpx_atmo;
gnt ccxL26_if.cpx_grant; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
bind ccxPort pcxBindDEV_MEM7 {
clk ccxL27_if.clk;
req void;
datao void;
atmo void;
gnt void;
stall ccxL27_if.pcx_stall; // stall from mem device to pcx. vera sources.
rdy ccxL27_if.pcx_rdy; // data_rdy from pcx to mem device. vera sinks.
atmi ccxL27_if.pcx_atmi;
datai ccxL27_if.pcx_datai; // data from pcx to mem device [129:0]. vera sinks.
}
bind ccxPort cpxBindDEV_MEM7 {
clk ccxL27_if.clk;
req ccxL27_if.cpx_req; // req from mem device to cpx [7:0]. vera sources.
datao ccxL27_if.cpx_datao; // data from mem device to cpx [145:0]. vera sources.
atmo ccxL27_if.cpx_atmo;
gnt ccxL27_if.cpx_grant; // grant from cpx to mem device. [7:0] vera sinks.
stall void;
rdy void;
atmi void;
datai void;
}
#endif
// eof
#endif