// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: ccx_ard_dp.v
// 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 ============================================
wire i_dff_atom_a_scanin;
wire i_dff_atom_a_scanout;
wire i_dff_req_a_scanout;
wire [9:0] fifo_wdata_prebuf;
wire i_dff_fmem17_scanin;
wire i_dff_fmem17_scanout;
wire i_dff_fmem16_scanin;
wire i_dff_fmem16_scanout;
wire [9:0] fifo_rdata17_16;
wire i_dff_fmem15_scanin;
wire i_dff_fmem15_scanout;
wire i_dff_fmem14_scanin;
wire i_dff_fmem14_scanout;
wire i_dff_fmem13_scanin;
wire i_dff_fmem13_scanout;
wire i_dff_fmem12_scanin;
wire i_dff_fmem12_scanout;
wire i_dff_fmem11_scanin;
wire i_dff_fmem11_scanout;
wire i_dff_fmem10_scanin;
wire i_dff_fmem10_scanout;
wire i_dff_fmem9_scanout;
wire i_dff_fmem8_scanout;
wire [9:0] fifo_rdata15_8;
wire i_dff_fmem7_scanout;
wire i_dff_fmem6_scanout;
wire i_dff_fmem5_scanout;
wire i_dff_fmem4_scanout;
wire i_dff_fmem3_scanout;
wire i_dff_fmem2_scanout;
wire i_dff_fmem1_scanout;
wire i_dff_fmem0_scanout;
wire [9:0] fifo_rdata7_0;
wire i_dff_reqreg_scanin;
wire i_dff_reqreg_scanout;
wire [8:0] input_req_qfullbar_a_;
wire [8:0] fq_input_req_a_;
wire fq_input_dira_stall_;
wire fq_input_dird_stall_;
wire [8:0] qual_atomic_d1_;
wire [8:0] set_qual_atomic;
wire [8:0] qual_atomic_d1;
wire [8:0] hold_qual_atomic;
wire i_dff_qual_atomic_d1_scanin;
wire i_dff_qual_atomic_d1_scanout;
//Primary outputs to ccx datapaths
output [8:0] arb_grant_a; //to ccx datapath
//Output to source: sparc or sctag grant flops
output ccx_dest_data_rdy_a; //
//Output to arb control logic
//Primary inputs from sources
//Primary inputs from arbiter control logic
input direction; // priority encoder direction
//input current_req_sel_a;
input [17:0] write_fifo_a; //write pointer for fifo.
input [2:0] fifo_rptr_a; //read pointer for fifo
input [1:0] fifo_read_select; //read pointer for fifo
input stall_q_d1; // stall request from dest, flopped inside ccx
input tcu_pce_ov; // scan signals
// buffer HFN and drive to ctl
assign pce_ov = tcu_pce_ov_out;
assign siclk = ccx_aclk_out;
assign soclk = ccx_bclk_out;
assign se = tcu_scan_en_out;
ccx_ard_dp_buff_macro__dbuff_16x__stack_none__width_4 i_buf_hfn (
.din ({tcu_pce_ov, tcu_scan_en, ccx_aclk, ccx_bclk}),
.dout ({tcu_pce_ov_out, tcu_scan_en_out, ccx_aclk_out, ccx_bclk_out})
assign atom_q[8:0] = { src8_arb_atom_q,
assign req_q[8:0] = { src8_arb_req_q,
ccx_ard_dp_msff_macro__dmsff_16x__stack_10c__width_10 i_dff_atom_a
.scan_in(i_dff_atom_a_scanin),
.scan_out(i_dff_atom_a_scanout),
.din ({direction_, atom_q[8:0]}),
.dout ({dir_a_, atom_int_a[8:0]}),
ccx_ard_dp_msff_macro__dmsff_16x__stack_10c__width_10 i_dff_req_a
.scan_in(i_dff_req_a_scanin),
.scan_out(i_dff_req_a_scanout),
.din ({direction,req_q[8:0]}),
.dout ({dir_a,req_a[8:0]}),
// Do not accept a request for a queue that is full.
ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_inreq_a
.dout (input_req_a_[8:0])
ccx_ard_dp_inv_macro__dinv_24x__stack_10c__width_10 i_inv_inreq_a
.din ({direction,input_req_a_[8:0]}),
.dout ({direction_,input_req_a[8:0]})
assign fifo_wdata_prebuf[9:0] = {dir_a,input_req_a[8:0]};
ccx_ard_dp_buff_macro__dbuff_32x__minbuff_1__stack_none__width_19 i_buf_fifo_wdata (
.din ({atom_int_a[8:0], fifo_wdata_prebuf[9:0]}),
.dout ({atom_a[8:0], fifo_wdata[9:0]})
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem17 (
.scan_in(i_dff_fmem17_scanin),
.scan_out(i_dff_fmem17_scanout),
.dout (fifo_rdata17[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem16 (
.scan_in(i_dff_fmem16_scanin),
.scan_out(i_dff_fmem16_scanout),
.dout (fifo_rdata16[9:0]),
ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aope__ports_2__stack_10c__width_10 i_mux_fmem17_16 (
.din0 (fifo_rdata17[9:0]),
.din1 (fifo_rdata16[9:0]),
.dout (fifo_rdata17_16[9:0])
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem15 (
.scan_in(i_dff_fmem15_scanin),
.scan_out(i_dff_fmem15_scanout),
.dout (fifo_rdata15[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem14 (
.scan_in(i_dff_fmem14_scanin),
.scan_out(i_dff_fmem14_scanout),
.dout (fifo_rdata14[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem13 (
.scan_in(i_dff_fmem13_scanin),
.scan_out(i_dff_fmem13_scanout),
.dout (fifo_rdata13[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem12 (
.scan_in(i_dff_fmem12_scanin),
.scan_out(i_dff_fmem12_scanout),
.dout (fifo_rdata12[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem11 (
.scan_in(i_dff_fmem11_scanin),
.scan_out(i_dff_fmem11_scanout),
.dout (fifo_rdata11[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem10 (
.scan_in(i_dff_fmem10_scanin),
.scan_out(i_dff_fmem10_scanout),
.dout (fifo_rdata10[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem9 (
.scan_in(i_dff_fmem9_scanin),
.scan_out(i_dff_fmem9_scanout),
.dout (fifo_rdata9[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem8 (
.scan_in(i_dff_fmem8_scanin),
.scan_out(i_dff_fmem8_scanout),
.dout (fifo_rdata8[9:0]),
ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10 i_mux_fmem15_8 (
.din0 (fifo_rdata8[9:0]),
.din1 (fifo_rdata9[9:0]),
.din2 (fifo_rdata10[9:0]),
.din3 (fifo_rdata11[9:0]),
.din4 (fifo_rdata12[9:0]),
.din5 (fifo_rdata13[9:0]),
.din6 (fifo_rdata14[9:0]),
.din7 (fifo_rdata15[9:0]),
.dout (fifo_rdata15_8[9:0])
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem7 (
.scan_in(i_dff_fmem7_scanin),
.scan_out(i_dff_fmem7_scanout),
.dout (fifo_rdata7[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem6 (
.scan_in(i_dff_fmem6_scanin),
.scan_out(i_dff_fmem6_scanout),
.dout (fifo_rdata6[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem5 (
.scan_in(i_dff_fmem5_scanin),
.scan_out(i_dff_fmem5_scanout),
.dout (fifo_rdata5[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem4 (
.scan_in(i_dff_fmem4_scanin),
.scan_out(i_dff_fmem4_scanout),
.dout (fifo_rdata4[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem3 (
.scan_in(i_dff_fmem3_scanin),
.scan_out(i_dff_fmem3_scanout),
.dout (fifo_rdata3[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem2 (
.scan_in(i_dff_fmem2_scanin),
.scan_out(i_dff_fmem2_scanout),
.dout (fifo_rdata2[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem1 (
.scan_in(i_dff_fmem1_scanin),
.scan_out(i_dff_fmem1_scanout),
.dout (fifo_rdata1[9:0]),
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_fmem0 (
.scan_in(i_dff_fmem0_scanin),
.scan_out(i_dff_fmem0_scanout),
.dout (fifo_rdata0[9:0]),
ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10 i_mux_fmem7_0 (
.din0 (fifo_rdata0[9:0]),
.din1 (fifo_rdata1[9:0]),
.din2 (fifo_rdata2[9:0]),
.din3 (fifo_rdata3[9:0]),
.din4 (fifo_rdata4[9:0]),
.din5 (fifo_rdata5[9:0]),
.din6 (fifo_rdata6[9:0]),
.din7 (fifo_rdata7[9:0]),
.dout (fifo_rdata7_0[9:0])
ccx_ard_dp_mux_macro__dmux_1x__mux_aodec__ports_4__stack_10c__width_10 i_mux_fifo_req (
.din0 (fifo_rdata7_0[9:0]),
.din1 (fifo_rdata15_8[9:0]),
.din2 (fifo_rdata17_16[9:0]),
.sel ({fifo_read_select[1:0]}),
.dout ({fifo_dir,fifo_req[8:0]})
//End flop memory section
ccx_ard_dp_mux_macro__dmux_1x__mux_aonpe__ports_2__stack_10c__width_10 i_mux_reqmux (
.din0 ({qual_dir,qual_req[8:0]}),
.din1 ({fifo_dir,fifo_req[8:0]}),
.sel0 (current_req_sel_a),
.dout ({fq_dir,fq_req[8:0]})
ccx_ard_dp_msff_macro__stack_10c__width_10 i_dff_reqreg (
.scan_in(i_dff_reqreg_scanin),
.scan_out(i_dff_reqreg_scanout),
.din ({fq_dir,fq_req[8:0]}),
.dout ({fq_dir_a_prebuf,fq_req_a[8:0]}),
ccx_ard_dp_buff_macro__dbuff_8x__stack_10c__width_1 i_buf_fqdir (
// implement this mux using nand-nand. During the first nand, qualify
// req_a with qfull_bar. This removes one AND gate from critical path
//mux_macro i_mux_inmux (width=10, mux=aope, ports=2,stack=10c) (
// .din0 ({dir_a,input_req_a[8:0]}),
// .din1 ({fq_dir_a,fq_req_a[8:0]}),
// .sel0 (input_req_sel_a),
// .dout ({dir,req[8:0]}),
ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_10 i_nand3i_inmux (
.din0 ({dir_a,req_a[8:0]}),
.din1 ({1'b1,qfullbar_a[8:0]}),
.din2 ({10{input_req_sel_a}}),
.dout ({input_dir_a_,input_req_qfullbar_a_[8:0]})
ccx_ard_dp_nand_macro__dnand_4x__ports_2__stack_10c__width_10 i_nand2i_inmux (
.din0 ({fq_dir_a,fq_req_a[8:0]}),
.din1 ({10{input_req_sel_a_}}),
.dout ({fq_input_dir_a_,fq_input_req_a_[8:0]})
ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_10 i_nand2o_inmux (
.din0 ({input_dir_a_,input_req_qfullbar_a_[8:0]}),
.din1 ({fq_input_dir_a_,fq_input_req_a_[8:0]}),
ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_atomreq (
.din1 (input_req_a[8:0]),
ccx_ard_dp_inv_macro__dinv_2x__stack_10c__width_9 i_inv_atomreq (
ccx_ard_dp_mux_macro__dmux_8x__mux_aope__ports_2__stack_10c__width_9 i_mux_atom (
//assign dira = ~stall_a & dir;
//assign dird = ~stall_a & ~dir;
// replicate the input mux with this functionality built in.
ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_dira_inmux
.dout (input_dira_stall_)
ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_fq_dira_inmux (
.din2 (input_req_sel_a_),
.dout (fq_input_dira_stall_)
ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_1 i_nand2o_dira_inmux (
.din0 (input_dira_stall_),
.din1 (fq_input_dira_stall_),
ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_1 i_inv_dir (
ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_dird_inmux
.dout (input_dird_stall_)
ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_fq_dird_inmux (
.din2 (input_req_sel_a_),
.dout (fq_input_dird_stall_)
ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_1 i_nand2o_dird_inmux (
.din0 (input_dird_stall_),
.din1 (fq_input_dird_stall_),
ccx_ard_dp_inv_macro__dinv_12x__stack_10c__width_9 i_ainv_1_w9 (
.dout ({r8_,r7_,r6_,r5_,r4_,r3_,r2_,r1_,r0_})
ccx_ard_dp_and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 i_aand4_1_w2
.dout({ra_or_7654_,ra_or_3210_})
ccx_ard_dp_and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 i_aand3_1_w4
.din0 ({r4_, r4_, r4_, r0_}),
.din1 ({r5_, req[5], r5_, r1_}),
.din2 ({r6_, dira, r3_, r2_}),
.dout({ ra_or_654_, ra_d54x, ra_or_543_, ra_or_210_})
ccx_ard_dp_nor_macro__dnor_8x__ports_2__stack_10c__width_3 i_anor2_1_w3
.din0({req[2],req[2],req[0]}),
.din1({req[3],req[1],req[1]}),
.dout({ra_or_32_,ra_or_21_,ra_or_10_})
ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_5 i_anand2_1_w5
.din0 ({dira, dira, dira, dira, dira }),
.din1 ({req[8], req[7], req[6], req[4], req[3] }),
.dout ({ra_d8_, ra_d7_, ra_d6_, ra_d4_, ra_d3_ })
ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_1 i_anand2_2_w1
ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_5 i_ainv_2_w5 (
.din ({ra_d8_, ra_d7_, ra_d6_, ra_d4_, ra_d3_}),
.dout ({ra_d8, ra_d7, ra_d6, ra_d4, ra_d3})
ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_8 i_anand3_2_w8
.din0 ({ra_or_3210_, ra_or_3210_, ra_or_210_, ra_or_10_, ra_or_10_, r0_, ra_or_10_, r0_}),
.din1 ({ra_or_7654_, ra_or_654_, ra_or_543_, ra_or_32_, ra_or_32_, ra_or_21_, req[2], req[1]}),
.din2 ({ra_d8, ra_d7, ra_d6, ra_d54x, ra_d4, ra_d3, dira, dira}),
//Descending priority encoder.
//assign grant_des[8] = req[8];
//assign grant_des[7] = ~req[8]& req[7];
//assign grant_des[6] = ~req[8]&~req[7]& req[6];
//assign grant_des[5] = ~req[8]&~req[7]&~req[6]& req[5];
//assign grant_des[4] = ~req[8]&~req[7]&~req[6]&~req[5]& req[4];
//assign grant_des[3] = ~req[8]&~req[7]&~req[6]&~req[5]&~req[4]& req[3];
//assign grant_des[2] = ~req[8]&~req[7]&~req[6]&~req[5]&~req[4]&~req[3]& req[2];
//assign grant_des[1] = ~req[8]&~req[7]&~req[6]&~req[5]&~req[4]&~req[3]&~req[2]&req[1];
//assign grant_des[0] = ~req[8]&~req[7]&~req[6]&~req[5]&~req[4]&~req[3]&~req[2]&~req[1]&req[0];
assign reqd[8:0] = {req[0],req[1],req[2],req[3],req[4],req[5],req[6],req[7],req[8]};
assign {rd7_,rd6_,rd5_,rd4_,rd3_,rd2_,rd1_,rd0_} = {r1_,r2_,r3_,r4_,r5_,r6_,r7_,r8_};
ccx_ard_dp_and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 i_dand4_1_w2
.dout({rd_or_7654_,rd_or_3210_})
ccx_ard_dp_and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 i_dand3_1_w4
.din0 ({rd4_, rd4_, rd4_, rd0_}),
.din1 ({rd5_, reqd[5], rd5_, rd1_}),
.din2 ({rd6_, dird, rd3_, rd2_}),
.dout({ rd_or_654_, rd_d54x, rd_or_543_, rd_or_210_})
ccx_ard_dp_nor_macro__dnor_8x__ports_2__stack_10c__width_3 i_dnor2_1_w3
.din0({reqd[2],reqd[2],reqd[0]}),
.din1({reqd[3],reqd[1],reqd[1]}),
.dout({rd_or_32_,rd_or_21_,rd_or_10_})
ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_5 i_dnand2_1_w5
.din0 ({dird, dird, dird, dird, dird }),
.din1 ({reqd[8], reqd[7], reqd[6], reqd[4], reqd[3]}),
.dout ({rd_d8_, rd_d7_, rd_d6_, rd_d4_, rd_d3_ })
ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_1 i_dnand2_2_w1
ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_5 i_dinv_2_w5 (
.din ({rd_d8_, rd_d7_, rd_d6_, rd_d4_, rd_d3_}),
.dout ({rd_d8, rd_d7, rd_d6, rd_d4, rd_d3})
ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_8 i_dnand3_2_w8
.din0 ({rd_or_3210_, rd_or_3210_, rd_or_210_, rd_or_10_, rd_or_10_, rd0_, rd_or_10_, rd0_}),
.din1 ({rd_or_7654_, rd_or_654_, rd_or_543_, rd_or_32_, rd_or_32_, rd_or_21_, reqd[2], reqd[1]}),
.din2 ({rd_d8, rd_d7, rd_d6, rd_d54x, rd_d4, rd_d3, dird, dird}),
assign grant_des_[8:0] = {grant_dsc_[0],grant_dsc_[1],grant_dsc_[2],grant_dsc_[3],grant_dsc_[4],grant_dsc_[5],grant_dsc_[6],grant_dsc_[7],grant_dsc_[8]};
ccx_ard_dp_nand_macro__dnand_32x__ports_2__stack_10c__width_9 i_nand_dirmux
// Buffer grants to be sent back to the sources (sparcs/L2s)
ccx_ard_dp_buff_macro__dbuff_48x__stack_10c__width_9 i_buf_src_grant (
.dout ({arb_src8_grant_a,
// Buffer grants to be sent back to the source queues
ccx_ard_dp_buff_macro__dbuff_32x__stack_10c__width_9 i_buf_queue_grant
// Add MINTIME Buffer to grants to be sent back to the control block arc
ccx_ard_dp_buff_macro__dbuff_16x__minbuff_1__stack_10c__width_9 i_bufmin_grant
ccx_ard_dp_inv_macro__dinv_8x__stack_10c__width_9 i_inv_grant_a_x (
// When an atomic request is granted for the first time, the request needs
// to be preserved so that the second packet gets granted immediately following.
// The indicator is set when an atomic request is granted for first time.
// The indicator is held until the request is granted again.
//assign qual_atomic[8:0] = (atom[8:0] & grant_int_a[8:0] & qual_atomic_d1_[8:0]) | // set
// (grant_a_[8:0] & qual_atomic_d1[8:0]); // hold
ccx_ard_dp_nand_macro__dnand_1x__ports_3__stack_10c__width_9 i_nand_set_qualatom (
.din1 (grant_int_a[8:0]),
.din2 (qual_atomic_d1_[8:0]),
.dout (set_qual_atomic[8:0])
ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_hold_qualatom (
.din1 (qual_atomic_d1[8:0]),
.dout (hold_qual_atomic[8:0])
ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_10 i_nand_qual_atomic (
.din0 ({stall_q_d1,set_qual_atomic[8:0]}),
.din1 ({1'b1,hold_qual_atomic[8:0]}),
.dout ({stall_q_d1_,qual_atomic[8:0]})
ccx_ard_dp_msff_macro__dmsff_8x__stack_10c__stack_10c__width_10 i_dff_qual_atomic_d1 (
.scan_in(i_dff_qual_atomic_d1_scanin),
.scan_out(i_dff_qual_atomic_d1_scanout),
.din ({stall_q_d1_,qual_atomic[8:0]}),
.dout ({stall_a_,qual_atomic_d1[8:0]}),
ccx_ard_dp_inv_macro__dinv_2x__stack_10c__width_9 i_inv_qual_atomic_d1_x (
.din (qual_atomic_d1[8:0]),
.dout (qual_atomic_d1_[8:0])
// Recycle the packet until it is empty.
// Keep any request that was not granted.
// Keep an atomic request after it's first grant.
// This gets fed into the request selection mux.
// one of the terms is the same as the SET term in qual_atomic
//assign qual_req[8:0] = (req[8:0] & grant_a_[8:0]) | (atom[8:0] & grant_int_a[8:0] & qual_atomic_d1_[8:0]) ;
ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_9 i_nand_req_nogrant (
.dout (req_nogrant_[8:0])
ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_9 i_nand_set_qualatom2 (
.din1 (grant_int_a[8:0]),
.din2 (qual_atomic_d1_[8:0]),
ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_9 i_nand_qual_req (
.din0 (req_nogrant_[8:0]),
.din1 (atom_2pass_[8:0]),
//assign req_pkt_empty_a = ~(|(qual_req[8:0]));
//assign ccx_dest_data_rdy_a = |(grant_int_a[8:0]);
ccx_ard_dp_nor_macro__dnor_4x__ports_3__stack_10c__width_6 i_nor_rpe (
.din0 ({qual_req[8], qual_req[5], qual_req[2], grant_int_a[8], grant_int_a[5], grant_int_a[2]}),
.din1 ({qual_req[7], qual_req[4], qual_req[1], grant_int_a[7], grant_int_a[4], grant_int_a[1]}),
.din2 ({qual_req[6], qual_req[3], qual_req[0], grant_int_a[6], grant_int_a[3], grant_int_a[0]}),
.dout ({qreq_8_6_, qreq_5_3_, qreq_2_0_, drdy_8_6, drdy_5_3, drdy_2_0})
ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_2 i_nand_rpe (
.din0 ({qreq_8_6_,drdy_8_6}),
.din1 ({qreq_5_3_,drdy_5_3}),
.din2 ({qreq_2_0_,drdy_2_0}),
.dout ({req_pkt_empty_a_,data_rdy_a})
ccx_ard_dp_inv_macro__dinv_32x__stack_10c__width_1 i_inv_rpe (
ccx_ard_dp_buff_macro__dbuff_32x__stack_none__width_1 buff_drdy (
.dout (ccx_dest_data_rdy_a)
assign current_req_sel_a = req_pkt_empty_a_;
//assign ccx_dest_atom_a = |(grant_int_a[8:0] & atom[8:0] & qual_atomic_d1_[8:0]);
ccx_ard_dp_nand_macro__dnand_1x__ports_3__stack_10c__width_3 i_nand_atom (
.din0 ({atom_2pass_[8], atom_2pass_[5], atom_2pass_[2]}),
.din1 ({atom_2pass_[7], atom_2pass_[4], atom_2pass_[1]}),
.din2 ({atom_2pass_[6], atom_2pass_[3], atom_2pass_[0]}),
.dout ({atom_8_6, atom_5_3, atom_2_0})
ccx_ard_dp_nor_macro__dnor_4x__ports_3__stack_10c__width_1 i_nor_atom (
ccx_ard_dp_inv_macro__dinv_32x__stack_10c__width_1 i_inv_dest_atom (
ccx_ard_dp_buff_macro__dbuff_8x__stack_none__width_1 buff_scanout (
assign i_dff_atom_a_scanin = scan_in ;
assign i_dff_req_a_scanin = i_dff_atom_a_scanout ;
assign i_dff_fmem17_scanin = i_dff_req_a_scanout ;
assign i_dff_fmem16_scanin = i_dff_fmem17_scanout ;
assign i_dff_fmem15_scanin = i_dff_fmem16_scanout ;
assign i_dff_fmem14_scanin = i_dff_fmem15_scanout ;
assign i_dff_fmem13_scanin = i_dff_fmem14_scanout ;
assign i_dff_fmem12_scanin = i_dff_fmem13_scanout ;
assign i_dff_fmem11_scanin = i_dff_fmem12_scanout ;
assign i_dff_fmem10_scanin = i_dff_fmem11_scanout ;
assign i_dff_fmem9_scanin = i_dff_fmem10_scanout ;
assign i_dff_fmem8_scanin = i_dff_fmem9_scanout ;
assign i_dff_fmem7_scanin = i_dff_fmem8_scanout ;
assign i_dff_fmem6_scanin = i_dff_fmem7_scanout ;
assign i_dff_fmem5_scanin = i_dff_fmem6_scanout ;
assign i_dff_fmem4_scanin = i_dff_fmem5_scanout ;
assign i_dff_fmem3_scanin = i_dff_fmem4_scanout ;
assign i_dff_fmem2_scanin = i_dff_fmem3_scanout ;
assign i_dff_fmem1_scanin = i_dff_fmem2_scanout ;
assign i_dff_fmem0_scanin = i_dff_fmem1_scanout ;
assign i_dff_reqreg_scanin = i_dff_fmem0_scanout ;
assign i_dff_qual_atomic_d1_scanin = i_dff_reqreg_scanout ;
assign scan_out_prebuf = i_dff_qual_atomic_d1_scanout;
module ccx_ard_dp_buff_macro__dbuff_16x__stack_none__width_4 (
// any PARAMS parms go into naming of macro
module ccx_ard_dp_msff_macro__dmsff_16x__stack_10c__width_10 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_9 (
module ccx_ard_dp_inv_macro__dinv_24x__stack_10c__width_10 (
module ccx_ard_dp_buff_macro__dbuff_32x__minbuff_1__stack_none__width_19 (
// any PARAMS parms go into naming of macro
module ccx_ard_dp_msff_macro__stack_10c__width_10 (
// general mux macro for pass-gate and and-or muxes with/wout priority encoders
// also for pass-gate with decoder
// any PARAMS parms go into naming of macro
module ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aope__ports_2__stack_10c__width_10 (
// general mux macro for pass-gate and and-or muxes with/wout priority encoders
// also for pass-gate with decoder
// any PARAMS parms go into naming of macro
module ccx_ard_dp_mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10 (
// general mux macro for pass-gate and and-or muxes with/wout priority encoders
// also for pass-gate with decoder
// any PARAMS parms go into naming of macro
module ccx_ard_dp_mux_macro__dmux_1x__mux_aodec__ports_4__stack_10c__width_10 (
// general mux macro for pass-gate and and-or muxes with/wout priority encoders
// also for pass-gate with decoder
// any PARAMS parms go into naming of macro
module ccx_ard_dp_mux_macro__dmux_1x__mux_aonpe__ports_2__stack_10c__width_10 (
cl_dp1_muxbuff2_8x c0_0 (
module ccx_ard_dp_buff_macro__dbuff_8x__stack_10c__width_1 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_10 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_4x__ports_2__stack_10c__width_10 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_10 (
module ccx_ard_dp_inv_macro__dinv_2x__stack_10c__width_9 (
// general mux macro for pass-gate and and-or muxes with/wout priority encoders
// also for pass-gate with decoder
// any PARAMS parms go into naming of macro
module ccx_ard_dp_mux_macro__dmux_8x__mux_aope__ports_2__stack_10c__width_9 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_1 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_12x__ports_2__stack_10c__width_1 (
module ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_1 (
module ccx_ard_dp_inv_macro__dinv_12x__stack_10c__width_9 (
// and macro for ports = 2,3,4
module ccx_ard_dp_and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 (
// and macro for ports = 2,3,4
module ccx_ard_dp_and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 (
// nor macro for ports = 2,3
module ccx_ard_dp_nor_macro__dnor_8x__ports_2__stack_10c__width_3 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_5 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_1 (
module ccx_ard_dp_inv_macro__dinv_4x__stack_10c__width_5 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_8 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_32x__ports_2__stack_10c__width_9 (
module ccx_ard_dp_buff_macro__dbuff_48x__stack_10c__width_9 (
module ccx_ard_dp_buff_macro__dbuff_32x__stack_10c__width_9 (
module ccx_ard_dp_buff_macro__dbuff_16x__minbuff_1__stack_10c__width_9 (
module ccx_ard_dp_inv_macro__dinv_8x__stack_10c__width_9 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_1x__ports_3__stack_10c__width_9 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_1x__ports_2__stack_10c__width_10 (
// any PARAMS parms go into naming of macro
module ccx_ard_dp_msff_macro__dmsff_8x__stack_10c__stack_10c__width_10 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_2x__ports_2__stack_10c__width_9 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_4x__ports_3__stack_10c__width_9 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_8x__ports_2__stack_10c__width_9 (
// nor macro for ports = 2,3
module ccx_ard_dp_nor_macro__dnor_4x__ports_3__stack_10c__width_6 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_8x__ports_3__stack_10c__width_2 (
module ccx_ard_dp_inv_macro__dinv_32x__stack_10c__width_1 (
module ccx_ard_dp_buff_macro__dbuff_32x__stack_none__width_1 (
// nand macro for ports = 2,3,4
module ccx_ard_dp_nand_macro__dnand_1x__ports_3__stack_10c__width_3 (
// nor macro for ports = 2,3
module ccx_ard_dp_nor_macro__dnor_4x__ports_3__stack_10c__width_1 (
module ccx_ard_dp_buff_macro__dbuff_8x__stack_none__width_1 (
module ccx_ard_dp(arb_grant_a, arb_src8_grant_a, arb_src7_grant_a,
arb_src6_grant_a, arb_src5_grant_a, arb_src4_grant_a, arb_src3_grant_a,
arb_src2_grant_a, arb_src1_grant_a, arb_src0_grant_a,
ccx_dest_data_rdy_a, ccx_dest_atom_a, req_pkt_empty_a, grant_a, req_a,
atom_a, src8_arb_atom_q, src7_arb_atom_q, src6_arb_atom_q,
src5_arb_atom_q, src4_arb_atom_q, src3_arb_atom_q, src2_arb_atom_q,
src1_arb_atom_q, src0_arb_atom_q, src8_arb_req_q, src7_arb_req_q,
src6_arb_req_q, src5_arb_req_q, src4_arb_req_q, src3_arb_req_q,
src2_arb_req_q, src1_arb_req_q, src0_arb_req_q, qfullbar_a, direction,
fifo_req_sel_a, input_req_sel_a, input_req_sel_a_, write_fifo_a,
fifo_rptr_a, fifo_read_select, atom_x, stall_q_d1, tcu_scan_en, l2clk,
scan_in, tcu_pce_ov, ccx_aclk, ccx_bclk, scan_out, tcu_pce_ov_out,
tcu_scan_en_out, ccx_aclk_out, ccx_bclk_out);
output [8:0] arb_grant_a;
output ccx_dest_data_rdy_a;
input [17:0] write_fifo_a;
input [1:0] fifo_read_select;
wire i_dff_atom_a_scanin;
wire i_dff_atom_a_scanout;
wire i_dff_req_a_scanout;
wire [9:0] fifo_wdata_prebuf;
wire i_dff_fmem17_scanin;
wire i_dff_fmem17_scanout;
wire i_dff_fmem16_scanin;
wire i_dff_fmem16_scanout;
wire [9:0] fifo_rdata17_16;
wire i_dff_fmem15_scanin;
wire i_dff_fmem15_scanout;
wire i_dff_fmem14_scanin;
wire i_dff_fmem14_scanout;
wire i_dff_fmem13_scanin;
wire i_dff_fmem13_scanout;
wire i_dff_fmem12_scanin;
wire i_dff_fmem12_scanout;
wire i_dff_fmem11_scanin;
wire i_dff_fmem11_scanout;
wire i_dff_fmem10_scanin;
wire i_dff_fmem10_scanout;
wire i_dff_fmem9_scanout;
wire i_dff_fmem8_scanout;
wire [9:0] fifo_rdata15_8;
wire i_dff_fmem7_scanout;
wire i_dff_fmem6_scanout;
wire i_dff_fmem5_scanout;
wire i_dff_fmem4_scanout;
wire i_dff_fmem3_scanout;
wire i_dff_fmem2_scanout;
wire i_dff_fmem1_scanout;
wire i_dff_fmem0_scanout;
wire [9:0] fifo_rdata7_0;
wire i_dff_reqreg_scanin;
wire i_dff_reqreg_scanout;
wire [8:0] input_req_qfullbar_a_;
wire [8:0] fq_input_req_a_;
wire fq_input_dira_stall_;
wire fq_input_dird_stall_;
wire [8:0] qual_atomic_d1_;
wire [8:0] set_qual_atomic;
wire [8:0] qual_atomic_d1;
wire [8:0] hold_qual_atomic;
wire i_dff_qual_atomic_d1_scanin;
wire i_dff_qual_atomic_d1_scanout;
assign pce_ov = tcu_pce_ov_out;
assign siclk = ccx_aclk_out;
assign soclk = ccx_bclk_out;
assign se = tcu_scan_en_out;
assign atom_q[8:0] = {src8_arb_atom_q, src7_arb_atom_q, src6_arb_atom_q,
src5_arb_atom_q, src4_arb_atom_q, src3_arb_atom_q,
src2_arb_atom_q, src1_arb_atom_q, src0_arb_atom_q};
assign req_q[8:0] = {src8_arb_req_q, src7_arb_req_q, src6_arb_req_q,
src5_arb_req_q, src4_arb_req_q, src3_arb_req_q, src2_arb_req_q,
src1_arb_req_q, src0_arb_req_q};
assign fifo_wdata_prebuf[9:0] = {dir_a, input_req_a[8:0]};
assign reqd[8:0] = {req[0], req[1], req[2], req[3], req[4], req[5],
assign {rd7_, rd6_, rd5_, rd4_, rd3_, rd2_, rd1_, rd0_} = {r1_, r2_,
r3_, r4_, r5_, r6_, r7_, r8_};
assign grant_des_[8:0] = {grant_dsc_[0], grant_dsc_[1], grant_dsc_[2],
grant_dsc_[3], grant_dsc_[4], grant_dsc_[5], grant_dsc_[6],
grant_dsc_[7], grant_dsc_[8]};
assign current_req_sel_a = req_pkt_empty_a_;
assign i_dff_atom_a_scanin = scan_in;
assign i_dff_req_a_scanin = i_dff_atom_a_scanout;
assign i_dff_fmem17_scanin = i_dff_req_a_scanout;
assign i_dff_fmem16_scanin = i_dff_fmem17_scanout;
assign i_dff_fmem15_scanin = i_dff_fmem16_scanout;
assign i_dff_fmem14_scanin = i_dff_fmem15_scanout;
assign i_dff_fmem13_scanin = i_dff_fmem14_scanout;
assign i_dff_fmem12_scanin = i_dff_fmem13_scanout;
assign i_dff_fmem11_scanin = i_dff_fmem12_scanout;
assign i_dff_fmem10_scanin = i_dff_fmem11_scanout;
assign i_dff_fmem9_scanin = i_dff_fmem10_scanout;
assign i_dff_fmem8_scanin = i_dff_fmem9_scanout;
assign i_dff_fmem7_scanin = i_dff_fmem8_scanout;
assign i_dff_fmem6_scanin = i_dff_fmem7_scanout;
assign i_dff_fmem5_scanin = i_dff_fmem6_scanout;
assign i_dff_fmem4_scanin = i_dff_fmem5_scanout;
assign i_dff_fmem3_scanin = i_dff_fmem4_scanout;
assign i_dff_fmem2_scanin = i_dff_fmem3_scanout;
assign i_dff_fmem1_scanin = i_dff_fmem2_scanout;
assign i_dff_fmem0_scanin = i_dff_fmem1_scanout;
assign i_dff_reqreg_scanin = i_dff_fmem0_scanout;
assign i_dff_qual_atomic_d1_scanin = i_dff_reqreg_scanout;
assign scan_out_prebuf = i_dff_qual_atomic_d1_scanout;
buff_macro__dbuff_16x__stack_none__width_4 i_buf_hfn(
.din ({tcu_pce_ov, tcu_scan_en,
tcu_scan_en_out, ccx_aclk_out, ccx_bclk_out}));
msff_macro__dmsff_16x__stack_10c__width_10 i_dff_atom_a(
.scan_in (i_dff_atom_a_scanin),
.scan_out (i_dff_atom_a_scanout),
.din ({direction_, atom_q[8:0]}),
.dout ({dir_a_, atom_int_a[8:0]}),
msff_macro__dmsff_16x__stack_10c__width_10 i_dff_req_a(
.scan_in (i_dff_req_a_scanin),
.scan_out (i_dff_req_a_scanout),
.din ({direction, req_q[8:0]}),
.dout ({dir_a, req_a[8:0]}),
nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_inreq_a(
.dout (input_req_a_[8:0]));
inv_macro__dinv_24x__stack_10c__width_10 i_inv_inreq_a(
.dout ({direction_, input_req_a[8:0]})
buff_macro__dbuff_32x__minbuff_1__stack_none__width_19 i_buf_fifo_wdata(
fifo_wdata_prebuf[9:0]}),
.dout ({atom_a[8:0], fifo_wdata[9:0]})
msff_macro__stack_10c__width_10 i_dff_fmem17(
.scan_in (i_dff_fmem17_scanin),
.scan_out (i_dff_fmem17_scanout),
.dout (fifo_rdata17[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem16(
.scan_in (i_dff_fmem16_scanin),
.scan_out (i_dff_fmem16_scanout),
.dout (fifo_rdata16[9:0]),
mux_macro__dbuff_8x__dmux_4x__mux_aope__ports_2__stack_10c__width_10
.din0 (fifo_rdata17[9:0]),
.din1 (fifo_rdata16[9:0]),
.dout (fifo_rdata17_16[9:0]));
msff_macro__stack_10c__width_10 i_dff_fmem15(
.scan_in (i_dff_fmem15_scanin),
.scan_out (i_dff_fmem15_scanout),
.dout (fifo_rdata15[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem14(
.scan_in (i_dff_fmem14_scanin),
.scan_out (i_dff_fmem14_scanout),
.dout (fifo_rdata14[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem13(
.scan_in (i_dff_fmem13_scanin),
.scan_out (i_dff_fmem13_scanout),
.dout (fifo_rdata13[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem12(
.scan_in (i_dff_fmem12_scanin),
.scan_out (i_dff_fmem12_scanout),
.dout (fifo_rdata12[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem11(
.scan_in (i_dff_fmem11_scanin),
.scan_out (i_dff_fmem11_scanout),
.dout (fifo_rdata11[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem10(
.scan_in (i_dff_fmem10_scanin),
.scan_out (i_dff_fmem10_scanout),
.dout (fifo_rdata10[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem9(
.scan_in (i_dff_fmem9_scanin),
.scan_out (i_dff_fmem9_scanout),
.dout (fifo_rdata9[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem8(
.scan_in (i_dff_fmem8_scanin),
.scan_out (i_dff_fmem8_scanout),
.dout (fifo_rdata8[9:0]),
mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10
.din0 (fifo_rdata8[9:0]),
.din1 (fifo_rdata9[9:0]),
.din2 (fifo_rdata10[9:0]),
.din3 (fifo_rdata11[9:0]),
.din4 (fifo_rdata12[9:0]),
.din5 (fifo_rdata13[9:0]),
.din6 (fifo_rdata14[9:0]),
.din7 (fifo_rdata15[9:0]),
.dout (fifo_rdata15_8[9:0]));
msff_macro__stack_10c__width_10 i_dff_fmem7(
.scan_in (i_dff_fmem7_scanin),
.scan_out (i_dff_fmem7_scanout),
.dout (fifo_rdata7[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem6(
.scan_in (i_dff_fmem6_scanin),
.scan_out (i_dff_fmem6_scanout),
.dout (fifo_rdata6[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem5(
.scan_in (i_dff_fmem5_scanin),
.scan_out (i_dff_fmem5_scanout),
.dout (fifo_rdata5[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem4(
.scan_in (i_dff_fmem4_scanin),
.scan_out (i_dff_fmem4_scanout),
.dout (fifo_rdata4[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem3(
.scan_in (i_dff_fmem3_scanin),
.scan_out (i_dff_fmem3_scanout),
.dout (fifo_rdata3[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem2(
.scan_in (i_dff_fmem2_scanin),
.scan_out (i_dff_fmem2_scanout),
.dout (fifo_rdata2[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem1(
.scan_in (i_dff_fmem1_scanin),
.scan_out (i_dff_fmem1_scanout),
.dout (fifo_rdata1[9:0]),
msff_macro__stack_10c__width_10 i_dff_fmem0(
.scan_in (i_dff_fmem0_scanin),
.scan_out (i_dff_fmem0_scanout),
.dout (fifo_rdata0[9:0]),
mux_macro__dbuff_8x__dmux_4x__mux_aodec__ports_8__stack_10c__width_10
.din0 (fifo_rdata0[9:0]),
.din1 (fifo_rdata1[9:0]),
.din2 (fifo_rdata2[9:0]),
.din3 (fifo_rdata3[9:0]),
.din4 (fifo_rdata4[9:0]),
.din5 (fifo_rdata5[9:0]),
.din6 (fifo_rdata6[9:0]),
.din7 (fifo_rdata7[9:0]),
.dout (fifo_rdata7_0[9:0]));
mux_macro__dmux_1x__mux_aodec__ports_4__stack_10c__width_10
.din0 (fifo_rdata7_0[9:0]),
.din1 (fifo_rdata15_8[9:0]),
.din2 (fifo_rdata17_16[9:0]),
.sel ({fifo_read_select[1:0]}),
.dout ({fifo_dir, fifo_req[8:0]}));
mux_macro__dmux_1x__mux_aonpe__ports_2__stack_10c__width_10 i_mux_reqmux
.din0 ({qual_dir, qual_req[8:0]}),
.din1 ({fifo_dir, fifo_req[8:0]}),
.sel0 (current_req_sel_a),
.dout ({fq_dir, fq_req[8:0]}));
msff_macro__stack_10c__width_10 i_dff_reqreg(
.scan_in (i_dff_reqreg_scanin),
.scan_out (i_dff_reqreg_scanout),
.din ({fq_dir, fq_req[8:0]}),
buff_macro__dbuff_8x__stack_10c__width_1 i_buf_fqdir(
nand_macro__dnand_4x__ports_3__stack_10c__width_10 i_nand3i_inmux(
.din0 ({dir_a, req_a[8:0]}),
.din1 ({1'b1, qfullbar_a[8:0]}),
.din2 ({10 {input_req_sel_a}}),
input_req_qfullbar_a_[8:0]}));
nand_macro__dnand_4x__ports_2__stack_10c__width_10 i_nand2i_inmux(
.din0 ({fq_dir_a, fq_req_a[8:0]}),
.din1 ({10 {input_req_sel_a_}}),
nand_macro__dnand_12x__ports_2__stack_10c__width_10 i_nand2o_inmux(
input_req_qfullbar_a_[8:0]}),
.dout ({dir, req[8:0]}));
nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_atomreq(
.din1 (input_req_a[8:0]),
.dout (atom_req_a_[8:0]));
inv_macro__dinv_2x__stack_10c__width_9 i_inv_atomreq(
.dout (atom_req_a[8:0]));
mux_macro__dmux_8x__mux_aope__ports_2__stack_10c__width_9 i_mux_atom(
nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_dira_inmux(
.dout (input_dira_stall_));
nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_fq_dira_inmux(
.din2 (input_req_sel_a_),
.dout (fq_input_dira_stall_));
nand_macro__dnand_12x__ports_2__stack_10c__width_1 i_nand2o_dira_inmux(
.din0 (input_dira_stall_),
.din1 (fq_input_dira_stall_),
inv_macro__dinv_4x__stack_10c__width_1 i_inv_dir(
nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_dird_inmux(
.dout (input_dird_stall_));
nand_macro__dnand_4x__ports_3__stack_10c__width_1 i_nand3_fq_dird_inmux(
.din2 (input_req_sel_a_),
.dout (fq_input_dird_stall_));
nand_macro__dnand_12x__ports_2__stack_10c__width_1 i_nand2o_dird_inmux(
.din0 (input_dird_stall_),
.din1 (fq_input_dird_stall_),
inv_macro__dinv_12x__stack_10c__width_9 i_ainv_1_w9(
.dout ({r8_, r7_, r6_, r5_, r4_, r3_,
and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 i_aand4_1_w2(
.dout ({ra_or_7654_, ra_or_3210_}));
and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 i_aand3_1_w4(
.din0 ({r4_, r4_, r4_, r0_}),
.din1 ({r5_, req[5], r5_, r1_}),
.din2 ({r6_, dira, r3_, r2_}),
.dout ({ra_or_654_, ra_d54x,
ra_or_543_, ra_or_210_}));
nor_macro__dnor_8x__ports_2__stack_10c__width_3 i_anor2_1_w3(
.din0 ({req[2], req[2], req[0]}),
.din1 ({req[3], req[1], req[1]}),
.dout ({ra_or_32_, ra_or_21_,
nand_macro__dnand_2x__ports_2__stack_10c__width_5 i_anand2_1_w5(
.din0 ({dira, dira, dira, dira,
.din1 ({req[8], req[7], req[6],
.dout ({ra_d8_, ra_d7_, ra_d6_,
nand_macro__dnand_8x__ports_2__stack_10c__width_1 i_anand2_2_w1(
.dout ({grant_asc_[0]}));
inv_macro__dinv_4x__stack_10c__width_5 i_ainv_2_w5(
.din ({ra_d8_, ra_d7_, ra_d6_,
.dout ({ra_d8, ra_d7, ra_d6, ra_d4,
nand_macro__dnand_8x__ports_3__stack_10c__width_8 i_anand3_2_w8(
.din0 ({ra_or_3210_, ra_or_3210_,
ra_or_210_, ra_or_10_, ra_or_10_, r0_, ra_or_10_, r0_}),
.din1 ({ra_or_7654_, ra_or_654_,
ra_or_543_, ra_or_32_, ra_or_32_, ra_or_21_, req[2], req[1]}),
.din2 ({ra_d8, ra_d7, ra_d6, ra_d54x,
ra_d4, ra_d3, dira, dira}),
.dout (grant_asc_[8:1]));
and_macro__dinv_12x__dnand_4x__ports_4__stack_10c__width_2 i_dand4_1_w2(
.dout ({rd_or_7654_, rd_or_3210_}));
and_macro__dinv_8x__dnand_2x__ports_3__stack_10c__width_4 i_dand3_1_w4(
.din0 ({rd4_, rd4_, rd4_, rd0_}),
.din1 ({rd5_, reqd[5], rd5_, rd1_}),
.din2 ({rd6_, dird, rd3_, rd2_}),
.dout ({rd_or_654_, rd_d54x,
rd_or_543_, rd_or_210_}));
nor_macro__dnor_8x__ports_2__stack_10c__width_3 i_dnor2_1_w3(
.din0 ({reqd[2], reqd[2], reqd[0]}),
.din1 ({reqd[3], reqd[1], reqd[1]}),
.dout ({rd_or_32_, rd_or_21_,
nand_macro__dnand_2x__ports_2__stack_10c__width_5 i_dnand2_1_w5(
.din0 ({dird, dird, dird, dird,
.din1 ({reqd[8], reqd[7], reqd[6],
.dout ({rd_d8_, rd_d7_, rd_d6_,
nand_macro__dnand_8x__ports_2__stack_10c__width_1 i_dnand2_2_w1(
.dout ({grant_dsc_[0]}));
inv_macro__dinv_4x__stack_10c__width_5 i_dinv_2_w5(
.din ({rd_d8_, rd_d7_, rd_d6_,
.dout ({rd_d8, rd_d7, rd_d6, rd_d4,
nand_macro__dnand_8x__ports_3__stack_10c__width_8 i_dnand3_2_w8(
.din0 ({rd_or_3210_, rd_or_3210_,
rd_or_210_, rd_or_10_, rd_or_10_, rd0_, rd_or_10_, rd0_}),
.din1 ({rd_or_7654_, rd_or_654_,
rd_or_543_, rd_or_32_, rd_or_32_, rd_or_21_, reqd[2], reqd[1]}),
.din2 ({rd_d8, rd_d7, rd_d6, rd_d54x,
rd_d4, rd_d3, dird, dird}),
.dout (grant_dsc_[8:1]));
nand_macro__dnand_32x__ports_2__stack_10c__width_9 i_nand_dirmux(
.dout (grant_int_a[8:0]));
buff_macro__dbuff_48x__stack_10c__width_9 i_buf_src_grant(
.dout ({arb_src8_grant_a,
arb_src7_grant_a, arb_src6_grant_a, arb_src5_grant_a,
arb_src4_grant_a, arb_src3_grant_a, arb_src2_grant_a,
arb_src1_grant_a, arb_src0_grant_a}));
buff_macro__dbuff_32x__stack_10c__width_9 i_buf_queue_grant(
.dout (arb_grant_a[8:0]));
buff_macro__dbuff_16x__minbuff_1__stack_10c__width_9 i_bufmin_grant(
inv_macro__dinv_8x__stack_10c__width_9 i_inv_grant_a_x(
nand_macro__dnand_1x__ports_3__stack_10c__width_9 i_nand_set_qualatom(
.din1 (grant_int_a[8:0]),
.din2 (qual_atomic_d1_[8:0]),
.dout (set_qual_atomic[8:0]));
nand_macro__dnand_1x__ports_2__stack_10c__width_9 i_nand_hold_qualatom(
.din1 (qual_atomic_d1[8:0]),
.dout (hold_qual_atomic[8:0]));
nand_macro__dnand_1x__ports_2__stack_10c__width_10 i_nand_qual_atomic(
.din1 ({1'b1, hold_qual_atomic[8:0]}),
msff_macro__dmsff_8x__stack_10c__stack_10c__width_10
.scan_in (i_dff_qual_atomic_d1_scanin),
.scan_out (i_dff_qual_atomic_d1_scanout),
inv_macro__dinv_2x__stack_10c__width_9 i_inv_qual_atomic_d1_x(
.din (qual_atomic_d1[8:0]),
.dout (qual_atomic_d1_[8:0]));
nand_macro__dnand_2x__ports_2__stack_10c__width_9 i_nand_req_nogrant(
.dout (req_nogrant_[8:0]));
nand_macro__dnand_4x__ports_3__stack_10c__width_9 i_nand_set_qualatom2(
.din1 (grant_int_a[8:0]),
.din2 (qual_atomic_d1_[8:0]),
.dout (atom_2pass_[8:0]));
nand_macro__dnand_8x__ports_2__stack_10c__width_9 i_nand_qual_req(
.din0 (req_nogrant_[8:0]),
.din1 (atom_2pass_[8:0]),
nor_macro__dnor_4x__ports_3__stack_10c__width_6 i_nor_rpe(
.din0 ({qual_req[8], qual_req[5],
qual_req[2], grant_int_a[8], grant_int_a[5], grant_int_a[2]}),
.din1 ({qual_req[7], qual_req[4],
qual_req[1], grant_int_a[7], grant_int_a[4], grant_int_a[1]}),
.din2 ({qual_req[6], qual_req[3],
qual_req[0], grant_int_a[6], grant_int_a[3], grant_int_a[0]}),
.dout ({qreq_8_6_, qreq_5_3_,
qreq_2_0_, drdy_8_6, drdy_5_3, drdy_2_0}));
nand_macro__dnand_8x__ports_3__stack_10c__width_2 i_nand_rpe(
.din0 ({qreq_8_6_, drdy_8_6}),
.din1 ({qreq_5_3_, drdy_5_3}),
.din2 ({qreq_2_0_, drdy_2_0}),
.dout ({req_pkt_empty_a_, data_rdy_a})
inv_macro__dinv_32x__stack_10c__width_1 i_inv_rpe(
.dout (req_pkt_empty_a));
buff_macro__dbuff_32x__stack_none__width_1 buff_drdy(
.dout (ccx_dest_data_rdy_a));
nand_macro__dnand_1x__ports_3__stack_10c__width_3 i_nand_atom(
atom_2pass_[5], atom_2pass_[2]}),
atom_2pass_[4], atom_2pass_[1]}),
atom_2pass_[3], atom_2pass_[0]}),
.dout ({atom_8_6, atom_5_3, atom_2_0})
nor_macro__dnor_4x__ports_3__stack_10c__width_1 i_nor_atom(
.dout (ccx_dest_atom_a_));
inv_macro__dinv_32x__stack_10c__width_1 i_inv_dest_atom(
.dout (ccx_dest_atom_a));
buff_macro__dbuff_8x__stack_none__width_1 buff_scanout(
module inv_macro__dinv_32x__stack_10c__width_1(din, dout);
module msff_macro__dmsff_8x__stack_10c__stack_10c__width_10(din, clk, en, se,
scan_in, siclk, soclk, pce_ov, stop, dout, scan_out);
.si ({scan_in, so[8:0]}),
.so ({so[8:0], scan_out}),
module nor_macro__dnor_4x__ports_3__stack_10c__width_1(din0, din1, din2, dout);
module inv_macro__dinv_32x__stack_10c__width_1(din, dout);