// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: fc_jtpor.if.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
// ========== Copyright Header End ============================================
#ifndef INC_FC_JTPOR_IF_VRH
#define INC_FC_JTPOR_IF_VRH
#include <vera_defines.vrh>
#include "fc_top_defines.vri"
//#include "dbg_dq_pins_defines.vri"
//#include "pkg.port.vri"
//#include "tcu_top_defines.vri"
#define INPUT_EDGE PSAMPLE
#define OUTPUT_EDGE_N NHOLD
// #include <tcu_top_defines.vri>
// interface rst_iol2clk {
// input clk_iol2clk CLOCK verilog_node "`RST.iol2clk";
// input rst_ncu_unpark_thread INPUT_EDGE INPUT_SKEW verilog_node "`RST.rst_ncu_unpark_thread";
// input clk_l2clk CLOCK verilog_node "`RST.l2clk";
// input ccu_rst_sync_stable INPUT_EDGE INPUT_SKEW verilog_node "`RST.ccu_rst_sync_stable";
// input tcu_rst_asicflush_stop_ack INPUT_EDGE INPUT_SKEW verilog_node "`RST.tcu_rst_asicflush_stop_ack";
// input rst_tcu_asicflush_stop_req INPUT_EDGE INPUT_SKEW verilog_node "`RST.rst_tcu_asicflush_stop_req";
// input rst_tcu_flush_stop_req INPUT_EDGE INPUT_SKEW verilog_node "`RST.rst_tcu_flush_stop_req";
// input tcu_rst_efu_done INPUT_EDGE INPUT_SKEW verilog_node "`RST.tcu_rst_efu_done";
// input tcu_bisx_done INPUT_EDGE INPUT_SKEW verilog_node "`RST.tcu_bisx_done";
// input tcu_rst_flush_init_ack INPUT_EDGE INPUT_SKEW verilog_node "`RST.tcu_rst_flush_init_ack";
// input tcu_rst_flush_stop_ack INPUT_EDGE INPUT_SKEW verilog_node "`RST.tcu_rst_flush_stop_ack";
// tcu_rst_asicflush_stop_ack;
// rst_tcu_asicflush_stop_req;
// rst_tcu_flush_stop_req;
// tcu_rst_flush_init_ack;
// rst_ncu_unpark_thread;
// tcu_rst_flush_stop_ack;
// bind RST_port rst_bind {
// clk_l2clk rst_l2clk.clk_l2clk;
// ccu_rst_sync_stable rst_l2clk.ccu_rst_sync_stable;
// tcu_rst_asicflush_stop_ack rst_l2clk.tcu_rst_asicflush_stop_ack;
// rst_tcu_asicflush_stop_req rst_l2clk.rst_tcu_asicflush_stop_req;
// rst_tcu_flush_stop_req rst_l2clk.rst_tcu_flush_stop_req;
// tcu_rst_efu_done rst_l2clk.tcu_rst_efu_done;
// tcu_bisx_done rst_l2clk.tcu_bisx_done;
// tcu_rst_flush_init_ack rst_l2clk.tcu_rst_flush_init_ack;
// rst_ncu_unpark_thread rst_iol2clk.rst_ncu_unpark_thread;
// tcu_rst_flush_stop_ack rst_l2clk.tcu_rst_flush_stop_ack;
input TCK CLOCK verilog_node "`TOP.tck" ;
bind BSCAN_port bscann_bind {
interface ccu_pll_sys_clk_p_ifn {
input pll_sys_clk_p PSAMPLE #-1 verilog_node "`CCU.pll_sys_clk_p";
bind CCU_clk_portn ccu_clk_bindn {
sys_clk ccu_pll_sys_clk_p_ifn.pll_sys_clk_p;
input [6:0] sbc_efa_word_addr INPUT_EDGE INPUT_SKEW verilog_node "`EFU.sbc_efa_word_addr";
efusen_sbc_efa_word_addr;
bind EFUSE_port efusen_bind {
efusen_sbc_efa_word_addr efusen.sbc_efa_word_addr;
input clk CLOCK verilog_node "`CPU.PLL_CMP_CLK_P"; // review: need to use an always running IO2X clk
input TRIGOUT PSAMPLE #-1 verilog_node "`CPU.TRIGOUT";
output [165:0] DBG_DQ_out NHOLD verilog_node "`CPU.DBG_DQ";
bind PKGn_port pkgn_bind {
TRIGOUTn pkgn_if.TRIGOUT;
DBG_DQ_outn pkgn_if.DBG_DQ_out;
// input clk CLOCK verilog_node "`CPU.PLL_CMP_CLK_P";
// output POR_L OUTPUT_EDGE_N verilog_node "`CPU.PWRON_RST_L";
// output PB_XIR_L OUTPUT_EDGE_N verilog_node "`CPU.BUTTON_XIR_L";
// output PB_RST_L OUTPUT_EDGE_N verilog_node "`CPU.PB_RST_L";
// output TRST_L OUTPUT_EDGE_N verilog_node "`CPU.TRST_L";
// bind SC_port sc_bind {
// input TCK CLOCK verilog_node "`TCU.gclk";
input mbist_l2tag_read_l2t0 INPUT_EDGE INPUT_SKEW verilog_node "`CPU.l2t0.mbist.mbist_l2tag_read";
bind MBIST_port mbistn_bind {
mbistn_l2tag_read_l2t0 mbistn.mbist_l2tag_read_l2t0;