// Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.
// --------------------------------------------------------------------------------
// Tool Version: Vivado v.2018.3 (win64) Build 2405991 Thu Dec  6 23:38:27 MST 2018
// Date        : Sat Feb 16 16:48:37 2019
// Host        : DESKTOP-8QFGS52 running 64-bit major release  (build 9200)
// Command     : write_verilog -mode funcsim -nolib -force -file
//               C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/impl/func/xsim/alu_tb_func_impl.v
// Design      : RegFile
// Purpose     : This verilog netlist is a functional simulation representation of the design and should not be modified
//               or synthesized. This netlist cannot be used for SDF annotated simulation.
// Device      : xc7k160tifbg484-2L
// --------------------------------------------------------------------------------
`timescale 1 ps / 1 ps

(* ECO_CHECKSUM = "b4d7812f" *) 
(* NotValidForBitStream *)
module RegFile
   (clk,
    reset,
    write_index,
    op0_idx,
    op1_idx,
    write_data,
    op0,
    op1);
  input clk;
  input reset;
  input [1:0]write_index;
  input [1:0]op0_idx;
  input [1:0]op1_idx;
  input [8:0]write_data;
  output [8:0]op0;
  output [8:0]op1;

  wire clk;
  wire clk_IBUF;
  wire clk_IBUF_BUFG;
  wire [8:0]op0;
  wire [8:0]op0_OBUF;
  wire \op0_OBUF[8]_inst_i_10_n_0 ;
  wire \op0_OBUF[8]_inst_i_11_n_0 ;
  wire \op0_OBUF[8]_inst_i_12_n_0 ;
  wire \op0_OBUF[8]_inst_i_6_n_0 ;
  wire \op0_OBUF[8]_inst_i_7_n_0 ;
  wire \op0_OBUF[8]_inst_i_8_n_0 ;
  wire \op0_OBUF[8]_inst_i_9_n_0 ;
  wire [1:0]op0_idx;
  wire [1:0]op0_idx_IBUF;
  wire [8:0]op1;
  wire [8:0]op1_OBUF;
  wire [1:0]op1_idx;
  wire [1:0]op1_idx_IBUF;
  wire \r0/_n_0 ;
  wire [8:0]r0_out;
  wire [8:0]r1_out;
  wire [8:0]r2_out;
  wire [8:0]r3_out;
  wire reset;
  wire reset_IBUF;
  wire [8:0]write_data;
  wire [8:0]write_data_IBUF;
  wire [1:0]write_index;
  wire [1:0]write_index_IBUF;

  BUFG clk_IBUF_BUFG_inst
       (.I(clk_IBUF),
        .O(clk_IBUF_BUFG));
  IBUF clk_IBUF_inst
       (.I(clk),
        .O(clk_IBUF));
  mux_4_1 m0
       (.op0_OBUF(op0_OBUF),
        .op0_idx_IBUF(op0_idx_IBUF),
        .r0_out(r0_out),
        .r1_out(r1_out),
        .r2_out(r2_out),
        .r3_out(r3_out));
  mux_4_1_0 m1
       (.op1_OBUF(op1_OBUF),
        .op1_idx_IBUF(op1_idx_IBUF),
        .r0_out(r0_out),
        .r1_out(r1_out),
        .r2_out(r2_out),
        .r3_out(r3_out));
  OBUF \op0_OBUF[0]_inst 
       (.I(op0_OBUF[0]),
        .O(op0[0]));
  OBUF \op0_OBUF[1]_inst 
       (.I(op0_OBUF[1]),
        .O(op0[1]));
  OBUF \op0_OBUF[2]_inst 
       (.I(op0_OBUF[2]),
        .O(op0[2]));
  OBUF \op0_OBUF[3]_inst 
       (.I(op0_OBUF[3]),
        .O(op0[3]));
  OBUF \op0_OBUF[4]_inst 
       (.I(op0_OBUF[4]),
        .O(op0[4]));
  OBUF \op0_OBUF[5]_inst 
       (.I(op0_OBUF[5]),
        .O(op0[5]));
  OBUF \op0_OBUF[6]_inst 
       (.I(op0_OBUF[6]),
        .O(op0[6]));
  OBUF \op0_OBUF[7]_inst 
       (.I(op0_OBUF[7]),
        .O(op0[7]));
  OBUF \op0_OBUF[8]_inst 
       (.I(op0_OBUF[8]),
        .O(op0[8]));
  (* SOFT_HLUTNM = "soft_lutpair18" *) 
  LUT2 #(
    .INIT(4'h4)) 
    \op0_OBUF[8]_inst_i_10 
       (.I0(write_index_IBUF[0]),
        .I1(write_index_IBUF[1]),
        .O(\op0_OBUF[8]_inst_i_10_n_0 ));
  (* SOFT_HLUTNM = "soft_lutpair19" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[8]_inst_i_11 
       (.I0(write_index_IBUF[0]),
        .I1(write_index_IBUF[1]),
        .O(\op0_OBUF[8]_inst_i_11_n_0 ));
  (* SOFT_HLUTNM = "soft_lutpair19" *) 
  LUT2 #(
    .INIT(4'h4)) 
    \op0_OBUF[8]_inst_i_12 
       (.I0(write_index_IBUF[1]),
        .I1(write_index_IBUF[0]),
        .O(\op0_OBUF[8]_inst_i_12_n_0 ));
  FDSE #(
    .INIT(1'b1)) 
    \op0_OBUF[8]_inst_i_6 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(\op0_OBUF[8]_inst_i_10_n_0 ),
        .Q(\op0_OBUF[8]_inst_i_6_n_0 ),
        .S(reset_IBUF));
  FDSE #(
    .INIT(1'b1)) 
    \op0_OBUF[8]_inst_i_7 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(\r0/_n_0 ),
        .Q(\op0_OBUF[8]_inst_i_7_n_0 ),
        .S(reset_IBUF));
  FDSE #(
    .INIT(1'b1)) 
    \op0_OBUF[8]_inst_i_8 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(\op0_OBUF[8]_inst_i_11_n_0 ),
        .Q(\op0_OBUF[8]_inst_i_8_n_0 ),
        .S(reset_IBUF));
  FDSE #(
    .INIT(1'b1)) 
    \op0_OBUF[8]_inst_i_9 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(\op0_OBUF[8]_inst_i_12_n_0 ),
        .Q(\op0_OBUF[8]_inst_i_9_n_0 ),
        .S(reset_IBUF));
  IBUF \op0_idx_IBUF[0]_inst 
       (.I(op0_idx[0]),
        .O(op0_idx_IBUF[0]));
  IBUF \op0_idx_IBUF[1]_inst 
       (.I(op0_idx[1]),
        .O(op0_idx_IBUF[1]));
  OBUF \op1_OBUF[0]_inst 
       (.I(op1_OBUF[0]),
        .O(op1[0]));
  OBUF \op1_OBUF[1]_inst 
       (.I(op1_OBUF[1]),
        .O(op1[1]));
  OBUF \op1_OBUF[2]_inst 
       (.I(op1_OBUF[2]),
        .O(op1[2]));
  OBUF \op1_OBUF[3]_inst 
       (.I(op1_OBUF[3]),
        .O(op1[3]));
  OBUF \op1_OBUF[4]_inst 
       (.I(op1_OBUF[4]),
        .O(op1[4]));
  OBUF \op1_OBUF[5]_inst 
       (.I(op1_OBUF[5]),
        .O(op1[5]));
  OBUF \op1_OBUF[6]_inst 
       (.I(op1_OBUF[6]),
        .O(op1[6]));
  OBUF \op1_OBUF[7]_inst 
       (.I(op1_OBUF[7]),
        .O(op1[7]));
  OBUF \op1_OBUF[8]_inst 
       (.I(op1_OBUF[8]),
        .O(op1[8]));
  IBUF \op1_idx_IBUF[0]_inst 
       (.I(op1_idx[0]),
        .O(op1_idx_IBUF[0]));
  IBUF \op1_idx_IBUF[1]_inst 
       (.I(op1_idx[1]),
        .O(op1_idx_IBUF[1]));
  (* SOFT_HLUTNM = "soft_lutpair18" *) 
  LUT2 #(
    .INIT(4'h1)) 
    \r0/ 
       (.I0(write_index_IBUF[0]),
        .I1(write_index_IBUF[1]),
        .O(\r0/_n_0 ));
  register r3
       (.clk_IBUF_BUFG(clk_IBUF_BUFG),
        .\op0_OBUF[8]_inst_i_1 (\op0_OBUF[8]_inst_i_7_n_0 ),
        .\op0_OBUF[8]_inst_i_1_0 (\op0_OBUF[8]_inst_i_6_n_0 ),
        .\op0_OBUF[8]_inst_i_1_1 (\op0_OBUF[8]_inst_i_9_n_0 ),
        .\op0_OBUF[8]_inst_i_1_2 (\op0_OBUF[8]_inst_i_8_n_0 ),
        .r0_out(r0_out),
        .r1_out(r1_out),
        .r2_out(r2_out),
        .r3_out(r3_out),
        .reset_IBUF(reset_IBUF),
        .write_data_IBUF(write_data_IBUF));
  IBUF reset_IBUF_inst
       (.I(reset),
        .O(reset_IBUF));
  IBUF \write_data_IBUF[0]_inst 
       (.I(write_data[0]),
        .O(write_data_IBUF[0]));
  IBUF \write_data_IBUF[1]_inst 
       (.I(write_data[1]),
        .O(write_data_IBUF[1]));
  IBUF \write_data_IBUF[2]_inst 
       (.I(write_data[2]),
        .O(write_data_IBUF[2]));
  IBUF \write_data_IBUF[3]_inst 
       (.I(write_data[3]),
        .O(write_data_IBUF[3]));
  IBUF \write_data_IBUF[4]_inst 
       (.I(write_data[4]),
        .O(write_data_IBUF[4]));
  IBUF \write_data_IBUF[5]_inst 
       (.I(write_data[5]),
        .O(write_data_IBUF[5]));
  IBUF \write_data_IBUF[6]_inst 
       (.I(write_data[6]),
        .O(write_data_IBUF[6]));
  IBUF \write_data_IBUF[7]_inst 
       (.I(write_data[7]),
        .O(write_data_IBUF[7]));
  IBUF \write_data_IBUF[8]_inst 
       (.I(write_data[8]),
        .O(write_data_IBUF[8]));
  IBUF \write_index_IBUF[0]_inst 
       (.I(write_index[0]),
        .O(write_index_IBUF[0]));
  IBUF \write_index_IBUF[1]_inst 
       (.I(write_index[1]),
        .O(write_index_IBUF[1]));
endmodule

module mux_4_1
   (op0_OBUF,
    r1_out,
    r0_out,
    r3_out,
    op0_idx_IBUF,
    r2_out);
  output [8:0]op0_OBUF;
  input [8:0]r1_out;
  input [8:0]r0_out;
  input [8:0]r3_out;
  input [1:0]op0_idx_IBUF;
  input [8:0]r2_out;

  wire [8:0]op0_OBUF;
  wire [1:0]op0_idx_IBUF;
  wire [8:0]r0_out;
  wire [8:0]r1_out;
  wire [8:0]r2_out;
  wire [8:0]r3_out;

  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[0]_inst_i_1 
       (.I0(r1_out[0]),
        .I1(r0_out[0]),
        .I2(r3_out[0]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[0]),
        .O(op0_OBUF[0]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[1]_inst_i_1 
       (.I0(r1_out[1]),
        .I1(r0_out[1]),
        .I2(r3_out[1]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[1]),
        .O(op0_OBUF[1]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[2]_inst_i_1 
       (.I0(r1_out[2]),
        .I1(r0_out[2]),
        .I2(r3_out[2]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[2]),
        .O(op0_OBUF[2]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[3]_inst_i_1 
       (.I0(r1_out[3]),
        .I1(r0_out[3]),
        .I2(r3_out[3]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[3]),
        .O(op0_OBUF[3]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[4]_inst_i_1 
       (.I0(r1_out[4]),
        .I1(r0_out[4]),
        .I2(r3_out[4]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[4]),
        .O(op0_OBUF[4]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[5]_inst_i_1 
       (.I0(r1_out[5]),
        .I1(r0_out[5]),
        .I2(r3_out[5]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[5]),
        .O(op0_OBUF[5]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[6]_inst_i_1 
       (.I0(r1_out[6]),
        .I1(r0_out[6]),
        .I2(r3_out[6]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[6]),
        .O(op0_OBUF[6]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[7]_inst_i_1 
       (.I0(r1_out[7]),
        .I1(r0_out[7]),
        .I2(r3_out[7]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[7]),
        .O(op0_OBUF[7]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op0_OBUF[8]_inst_i_1 
       (.I0(r1_out[8]),
        .I1(r0_out[8]),
        .I2(r3_out[8]),
        .I3(op0_idx_IBUF[1]),
        .I4(op0_idx_IBUF[0]),
        .I5(r2_out[8]),
        .O(op0_OBUF[8]));
endmodule

(* ORIG_REF_NAME = "mux_4_1" *) 
module mux_4_1_0
   (op1_OBUF,
    r1_out,
    r0_out,
    r3_out,
    op1_idx_IBUF,
    r2_out);
  output [8:0]op1_OBUF;
  input [8:0]r1_out;
  input [8:0]r0_out;
  input [8:0]r3_out;
  input [1:0]op1_idx_IBUF;
  input [8:0]r2_out;

  wire [8:0]op1_OBUF;
  wire [1:0]op1_idx_IBUF;
  wire [8:0]r0_out;
  wire [8:0]r1_out;
  wire [8:0]r2_out;
  wire [8:0]r3_out;

  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[0]_inst_i_1 
       (.I0(r1_out[0]),
        .I1(r0_out[0]),
        .I2(r3_out[0]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[0]),
        .O(op1_OBUF[0]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[1]_inst_i_1 
       (.I0(r1_out[1]),
        .I1(r0_out[1]),
        .I2(r3_out[1]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[1]),
        .O(op1_OBUF[1]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[2]_inst_i_1 
       (.I0(r1_out[2]),
        .I1(r0_out[2]),
        .I2(r3_out[2]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[2]),
        .O(op1_OBUF[2]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[3]_inst_i_1 
       (.I0(r1_out[3]),
        .I1(r0_out[3]),
        .I2(r3_out[3]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[3]),
        .O(op1_OBUF[3]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[4]_inst_i_1 
       (.I0(r1_out[4]),
        .I1(r0_out[4]),
        .I2(r3_out[4]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[4]),
        .O(op1_OBUF[4]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[5]_inst_i_1 
       (.I0(r1_out[5]),
        .I1(r0_out[5]),
        .I2(r3_out[5]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[5]),
        .O(op1_OBUF[5]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[6]_inst_i_1 
       (.I0(r1_out[6]),
        .I1(r0_out[6]),
        .I2(r3_out[6]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[6]),
        .O(op1_OBUF[6]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[7]_inst_i_1 
       (.I0(r1_out[7]),
        .I1(r0_out[7]),
        .I2(r3_out[7]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[7]),
        .O(op1_OBUF[7]));
  LUT6 #(
    .INIT(64'hF0AAFFCCF0AA00CC)) 
    \op1_OBUF[8]_inst_i_1 
       (.I0(r1_out[8]),
        .I1(r0_out[8]),
        .I2(r3_out[8]),
        .I3(op1_idx_IBUF[1]),
        .I4(op1_idx_IBUF[0]),
        .I5(r2_out[8]),
        .O(op1_OBUF[8]));
endmodule

module register
   (r0_out,
    r1_out,
    r2_out,
    r3_out,
    reset_IBUF,
    write_data_IBUF,
    clk_IBUF_BUFG,
    \op0_OBUF[8]_inst_i_1 ,
    \op0_OBUF[8]_inst_i_1_0 ,
    \op0_OBUF[8]_inst_i_1_1 ,
    \op0_OBUF[8]_inst_i_1_2 );
  output [8:0]r0_out;
  output [8:0]r1_out;
  output [8:0]r2_out;
  output [8:0]r3_out;
  input reset_IBUF;
  input [8:0]write_data_IBUF;
  input clk_IBUF_BUFG;
  input \op0_OBUF[8]_inst_i_1 ;
  input \op0_OBUF[8]_inst_i_1_0 ;
  input \op0_OBUF[8]_inst_i_1_1 ;
  input \op0_OBUF[8]_inst_i_1_2 ;

  wire \Dout_tristate_oe_reg_n_0_[0] ;
  wire \Dout_tristate_oe_reg_n_0_[1] ;
  wire \Dout_tristate_oe_reg_n_0_[2] ;
  wire \Dout_tristate_oe_reg_n_0_[3] ;
  wire \Dout_tristate_oe_reg_n_0_[4] ;
  wire \Dout_tristate_oe_reg_n_0_[5] ;
  wire \Dout_tristate_oe_reg_n_0_[6] ;
  wire \Dout_tristate_oe_reg_n_0_[7] ;
  wire \Dout_tristate_oe_reg_n_0_[8] ;
  wire clk_IBUF_BUFG;
  wire \op0_OBUF[8]_inst_i_1 ;
  wire \op0_OBUF[8]_inst_i_1_0 ;
  wire \op0_OBUF[8]_inst_i_1_1 ;
  wire \op0_OBUF[8]_inst_i_1_2 ;
  wire [8:0]r0_out;
  wire [8:0]r1_out;
  wire [8:0]r2_out;
  wire [8:0]r3_out;
  wire reset_IBUF;
  wire [8:0]write_data_IBUF;

  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[0] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[0]),
        .Q(\Dout_tristate_oe_reg_n_0_[0] ),
        .R(reset_IBUF));
  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[1] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[1]),
        .Q(\Dout_tristate_oe_reg_n_0_[1] ),
        .R(reset_IBUF));
  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[2] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[2]),
        .Q(\Dout_tristate_oe_reg_n_0_[2] ),
        .R(reset_IBUF));
  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[3] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[3]),
        .Q(\Dout_tristate_oe_reg_n_0_[3] ),
        .R(reset_IBUF));
  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[4] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[4]),
        .Q(\Dout_tristate_oe_reg_n_0_[4] ),
        .R(reset_IBUF));
  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[5] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[5]),
        .Q(\Dout_tristate_oe_reg_n_0_[5] ),
        .R(reset_IBUF));
  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[6] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[6]),
        .Q(\Dout_tristate_oe_reg_n_0_[6] ),
        .R(reset_IBUF));
  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[7] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[7]),
        .Q(\Dout_tristate_oe_reg_n_0_[7] ),
        .R(reset_IBUF));
  FDRE #(
    .INIT(1'b0)) 
    \Dout_tristate_oe_reg[8] 
       (.C(clk_IBUF_BUFG),
        .CE(1'b1),
        .D(write_data_IBUF[8]),
        .Q(\Dout_tristate_oe_reg_n_0_[8] ),
        .R(reset_IBUF));
  (* SOFT_HLUTNM = "soft_lutpair0" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[0]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[0] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[0]));
  (* SOFT_HLUTNM = "soft_lutpair0" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[0]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[0] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[0]));
  (* SOFT_HLUTNM = "soft_lutpair9" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[0]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[0] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[0]));
  (* SOFT_HLUTNM = "soft_lutpair9" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[0]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[0] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[0]));
  (* SOFT_HLUTNM = "soft_lutpair1" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[1]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[1] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[1]));
  (* SOFT_HLUTNM = "soft_lutpair1" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[1]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[1] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[1]));
  (* SOFT_HLUTNM = "soft_lutpair10" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[1]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[1] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[1]));
  (* SOFT_HLUTNM = "soft_lutpair10" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[1]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[1] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[1]));
  (* SOFT_HLUTNM = "soft_lutpair2" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[2]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[2] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[2]));
  (* SOFT_HLUTNM = "soft_lutpair2" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[2]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[2] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[2]));
  (* SOFT_HLUTNM = "soft_lutpair11" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[2]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[2] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[2]));
  (* SOFT_HLUTNM = "soft_lutpair11" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[2]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[2] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[2]));
  (* SOFT_HLUTNM = "soft_lutpair3" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[3]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[3] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[3]));
  (* SOFT_HLUTNM = "soft_lutpair3" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[3]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[3] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[3]));
  (* SOFT_HLUTNM = "soft_lutpair12" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[3]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[3] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[3]));
  (* SOFT_HLUTNM = "soft_lutpair12" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[3]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[3] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[3]));
  (* SOFT_HLUTNM = "soft_lutpair4" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[4]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[4] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[4]));
  (* SOFT_HLUTNM = "soft_lutpair4" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[4]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[4] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[4]));
  (* SOFT_HLUTNM = "soft_lutpair13" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[4]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[4] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[4]));
  (* SOFT_HLUTNM = "soft_lutpair13" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[4]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[4] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[4]));
  (* SOFT_HLUTNM = "soft_lutpair5" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[5]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[5] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[5]));
  (* SOFT_HLUTNM = "soft_lutpair5" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[5]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[5] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[5]));
  (* SOFT_HLUTNM = "soft_lutpair14" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[5]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[5] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[5]));
  (* SOFT_HLUTNM = "soft_lutpair14" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[5]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[5] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[5]));
  (* SOFT_HLUTNM = "soft_lutpair6" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[6]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[6] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[6]));
  (* SOFT_HLUTNM = "soft_lutpair6" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[6]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[6] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[6]));
  (* SOFT_HLUTNM = "soft_lutpair15" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[6]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[6] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[6]));
  (* SOFT_HLUTNM = "soft_lutpair15" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[6]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[6] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[6]));
  (* SOFT_HLUTNM = "soft_lutpair7" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[7]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[7] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[7]));
  (* SOFT_HLUTNM = "soft_lutpair7" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[7]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[7] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[7]));
  (* SOFT_HLUTNM = "soft_lutpair16" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[7]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[7] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[7]));
  (* SOFT_HLUTNM = "soft_lutpair16" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[7]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[7] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[7]));
  (* SOFT_HLUTNM = "soft_lutpair8" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[8]_inst_i_2 
       (.I0(\Dout_tristate_oe_reg_n_0_[8] ),
        .I1(\op0_OBUF[8]_inst_i_1_0 ),
        .O(r1_out[8]));
  (* SOFT_HLUTNM = "soft_lutpair8" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[8]_inst_i_3 
       (.I0(\Dout_tristate_oe_reg_n_0_[8] ),
        .I1(\op0_OBUF[8]_inst_i_1 ),
        .O(r0_out[8]));
  (* SOFT_HLUTNM = "soft_lutpair17" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[8]_inst_i_4 
       (.I0(\Dout_tristate_oe_reg_n_0_[8] ),
        .I1(\op0_OBUF[8]_inst_i_1_2 ),
        .O(r3_out[8]));
  (* SOFT_HLUTNM = "soft_lutpair17" *) 
  LUT2 #(
    .INIT(4'h8)) 
    \op0_OBUF[8]_inst_i_5 
       (.I0(\Dout_tristate_oe_reg_n_0_[8] ),
        .I1(\op0_OBUF[8]_inst_i_1_1 ),
        .O(r2_out[8]));
endmodule
`ifndef GLBL
`define GLBL
`timescale  1 ps / 1 ps

module glbl ();

    parameter ROC_WIDTH = 100000;
    parameter TOC_WIDTH = 0;

//--------   STARTUP Globals --------------
    wire GSR;
    wire GTS;
    wire GWE;
    wire PRLD;
    tri1 p_up_tmp;
    tri (weak1, strong0) PLL_LOCKG = p_up_tmp;

    wire PROGB_GLBL;
    wire CCLKO_GLBL;
    wire FCSBO_GLBL;
    wire [3:0] DO_GLBL;
    wire [3:0] DI_GLBL;
   
    reg GSR_int;
    reg GTS_int;
    reg PRLD_int;

//--------   JTAG Globals --------------
    wire JTAG_TDO_GLBL;
    wire JTAG_TCK_GLBL;
    wire JTAG_TDI_GLBL;
    wire JTAG_TMS_GLBL;
    wire JTAG_TRST_GLBL;

    reg JTAG_CAPTURE_GLBL;
    reg JTAG_RESET_GLBL;
    reg JTAG_SHIFT_GLBL;
    reg JTAG_UPDATE_GLBL;
    reg JTAG_RUNTEST_GLBL;

    reg JTAG_SEL1_GLBL = 0;
    reg JTAG_SEL2_GLBL = 0 ;
    reg JTAG_SEL3_GLBL = 0;
    reg JTAG_SEL4_GLBL = 0;

    reg JTAG_USER_TDO1_GLBL = 1'bz;
    reg JTAG_USER_TDO2_GLBL = 1'bz;
    reg JTAG_USER_TDO3_GLBL = 1'bz;
    reg JTAG_USER_TDO4_GLBL = 1'bz;

    assign (strong1, weak0) GSR = GSR_int;
    assign (strong1, weak0) GTS = GTS_int;
    assign (weak1, weak0) PRLD = PRLD_int;

    initial begin
	GSR_int = 1'b1;
	PRLD_int = 1'b1;
	#(ROC_WIDTH)
	GSR_int = 1'b0;
	PRLD_int = 1'b0;
    end

    initial begin
	GTS_int = 1'b1;
	#(TOC_WIDTH)
	GTS_int = 1'b0;
    end

endmodule
`endif
