// Copyright 1986-2016 Xilinx, Inc. All Rights Reserved.
// --------------------------------------------------------------------------------
// Tool Version: Vivado v.2016.4 (win64) Build 1756540 Mon Jan 23 19:11:23 MST 2017
// Date        : Fri Oct 27 14:51:10 2017
// Host        : Juice-Laptop running 64-bit major release  (build 9200)
// Command     : write_verilog -force -mode funcsim
//               C:/RATCPU/Experiments/Experiment8-GeterDone/IPI-BD/RAT/ip/RAT_ControlUnit_0_0/RAT_ControlUnit_0_0_sim_netlist.v
// Design      : RAT_ControlUnit_0_0
// 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      : xc7a35tcpg236-1
// --------------------------------------------------------------------------------
`timescale 1 ps / 1 ps

(* CHECK_LICENSE_TYPE = "RAT_ControlUnit_0_0,ControlUnit,{}" *) (* downgradeipidentifiedwarnings = "yes" *) (* x_core_info = "ControlUnit,Vivado 2016.4" *) 
(* NotValidForBitStream *)
module RAT_ControlUnit_0_0
   (CLK,
    C,
    Z,
    INT,
    RST,
    OPCODE_HI_5,
    OPCODE_LO_2,
    PC_LD,
    PC_INC,
    PC_RESET,
    PC_MUX_SEL,
    SP_LD,
    SP_RESET,
    SP_INCR,
    SP_DECR,
    RF_WR,
    RF_WR_SEL,
    ALU_SEL,
    ALU_OPY_SEL,
    SCR_WR,
    SCR_ADDR_SEL,
    SCR_DATA_SEL,
    C_FLAG_SEL,
    C_FLAG_LD,
    C_FLAG_SET,
    C_FLAG_CLR,
    SHAD_C_LD,
    Z_FLAG_SEL,
    Z_FLAG_LD,
    Z_FLAG_SET,
    Z_FLAG_CLR,
    SHAD_Z_LD,
    I_FLAG_SET,
    I_FLAG_CLR,
    IO_OE);
  (* x_interface_info = "xilinx.com:signal:clock:1.0 CLK CLK" *) input CLK;
  input C;
  input Z;
  input INT;
  (* x_interface_info = "xilinx.com:signal:reset:1.0 RST RST" *) input RST;
  input [4:0]OPCODE_HI_5;
  input [1:0]OPCODE_LO_2;
  output PC_LD;
  output PC_INC;
  (* x_interface_info = "xilinx.com:signal:reset:1.0 PC_RESET RST" *) output PC_RESET;
  output [1:0]PC_MUX_SEL;
  output SP_LD;
  (* x_interface_info = "xilinx.com:signal:reset:1.0 SP_RESET RST" *) output SP_RESET;
  output SP_INCR;
  output SP_DECR;
  output RF_WR;
  output [1:0]RF_WR_SEL;
  output [3:0]ALU_SEL;
  output ALU_OPY_SEL;
  output SCR_WR;
  output [1:0]SCR_ADDR_SEL;
  output SCR_DATA_SEL;
  output C_FLAG_SEL;
  output C_FLAG_LD;
  output C_FLAG_SET;
  output C_FLAG_CLR;
  output SHAD_C_LD;
  output Z_FLAG_SEL;
  output Z_FLAG_LD;
  output Z_FLAG_SET;
  output Z_FLAG_CLR;
  output SHAD_Z_LD;
  output I_FLAG_SET;
  output I_FLAG_CLR;
  output IO_OE;

  wire \<const0> ;
  wire ALU_OPY_SEL;
  wire ALU_OPY_SEL_INST_0_i_1_n_0;
  wire [3:0]ALU_SEL;
  wire \ALU_SEL[0]_INST_0_i_1_n_0 ;
  wire \ALU_SEL[1]_INST_0_i_1_n_0 ;
  wire \ALU_SEL[1]_INST_0_i_2_n_0 ;
  wire \ALU_SEL[2]_INST_0_i_1_n_0 ;
  wire \ALU_SEL[2]_INST_0_i_2_n_0 ;
  wire \ALU_SEL[3]_INST_0_i_1_n_0 ;
  wire \ALU_SEL[3]_INST_0_i_2_n_0 ;
  wire C;
  wire CLK;
  wire C_FLAG_CLR;
  wire C_FLAG_CLR_INST_0_i_1_n_0;
  wire C_FLAG_LD;
  wire C_FLAG_LD_INST_0_i_1_n_0;
  wire C_FLAG_LD_INST_0_i_2_n_0;
  wire C_FLAG_SET;
  wire INT;
  wire IO_OE;
  wire IO_OE_INST_0_i_1_n_0;
  wire I_FLAG_CLR;
  wire I_FLAG_CLR_INST_0_i_1_n_0;
  wire I_FLAG_SET;
  wire I_FLAG_SET_INST_0_i_1_n_0;
  wire [4:0]OPCODE_HI_5;
  wire [1:0]OPCODE_LO_2;
  wire PC_INC;
  wire PC_LD;
  wire PC_LD_INST_0_i_1_n_0;
  wire PC_LD_INST_0_i_2_n_0;
  wire PC_LD_INST_0_i_3_n_0;
  wire PC_LD_INST_0_i_4_n_0;
  wire [1:0]PC_MUX_SEL;
  wire RF_WR;
  wire RF_WR_INST_0_i_2_n_0;
  wire [1:0]RF_WR_SEL;
  wire \RF_WR_SEL[0]_INST_0_i_1_n_0 ;
  wire \RF_WR_SEL[0]_INST_0_i_2_n_0 ;
  wire \RF_WR_SEL[1]_INST_0_i_1_n_0 ;
  wire RST;
  wire [1:0]SCR_ADDR_SEL;
  wire \SCR_ADDR_SEL[0]_INST_0_i_1_n_0 ;
  wire \SCR_ADDR_SEL[1]_INST_0_i_1_n_0 ;
  wire SCR_WR;
  wire SCR_WR_INST_0_i_1_n_0;
  wire SCR_WR_INST_0_i_2_n_0;
  wire SP_LD;
  wire SP_LD_INST_0_i_1_n_0;
  wire SP_LD_INST_0_i_2_n_0;
  wire SP_RESET;
  wire Z;
  wire Z_FLAG_LD;
  wire Z_FLAG_LD_INST_0_i_1_n_0;

  assign C_FLAG_SEL = \<const0> ;
  assign PC_RESET = SP_RESET;
  assign SCR_DATA_SEL = \<const0> ;
  assign SHAD_C_LD = \<const0> ;
  assign SHAD_Z_LD = \<const0> ;
  assign SP_DECR = \<const0> ;
  assign SP_INCR = PC_MUX_SEL[1];
  assign Z_FLAG_CLR = \<const0> ;
  assign Z_FLAG_SEL = \<const0> ;
  assign Z_FLAG_SET = \<const0> ;
  (* SOFT_HLUTNM = "soft_lutpair7" *) 
  LUT3 #(
    .INIT(8'h09)) 
    ALU_OPY_SEL_INST_0_i_1
       (.I0(OPCODE_HI_5[0]),
        .I1(OPCODE_HI_5[1]),
        .I2(OPCODE_HI_5[2]),
        .O(ALU_OPY_SEL_INST_0_i_1_n_0));
  LUT6 #(
    .INIT(64'h0000000000010101)) 
    \ALU_SEL[0]_INST_0_i_1 
       (.I0(OPCODE_LO_2[0]),
        .I1(OPCODE_HI_5[1]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_HI_5[0]),
        .I4(OPCODE_LO_2[1]),
        .I5(OPCODE_HI_5[4]),
        .O(\ALU_SEL[0]_INST_0_i_1_n_0 ));
  LUT6 #(
    .INIT(64'h00A000A000010004)) 
    \ALU_SEL[1]_INST_0_i_1 
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_HI_5[1]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_LO_2[1]),
        .I5(OPCODE_HI_5[0]),
        .O(\ALU_SEL[1]_INST_0_i_1_n_0 ));
  LUT6 #(
    .INIT(64'hA0A0A0A02C392D28)) 
    \ALU_SEL[1]_INST_0_i_2 
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_HI_5[0]),
        .I2(OPCODE_HI_5[1]),
        .I3(OPCODE_LO_2[1]),
        .I4(OPCODE_LO_2[0]),
        .I5(OPCODE_HI_5[2]),
        .O(\ALU_SEL[1]_INST_0_i_2_n_0 ));
  LUT6 #(
    .INIT(64'h0000883200008826)) 
    \ALU_SEL[2]_INST_0_i_1 
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_HI_5[0]),
        .I2(OPCODE_LO_2[0]),
        .I3(OPCODE_HI_5[1]),
        .I4(OPCODE_HI_5[2]),
        .I5(OPCODE_LO_2[1]),
        .O(\ALU_SEL[2]_INST_0_i_1_n_0 ));
  LUT6 #(
    .INIT(64'h0000222223232333)) 
    \ALU_SEL[2]_INST_0_i_2 
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_HI_5[2]),
        .I2(OPCODE_LO_2[1]),
        .I3(OPCODE_LO_2[0]),
        .I4(OPCODE_HI_5[1]),
        .I5(OPCODE_HI_5[0]),
        .O(\ALU_SEL[2]_INST_0_i_2_n_0 ));
  LUT6 #(
    .INIT(64'h00000000AA000155)) 
    \ALU_SEL[3]_INST_0_i_1 
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_LO_2[1]),
        .I3(OPCODE_HI_5[0]),
        .I4(OPCODE_HI_5[1]),
        .I5(OPCODE_HI_5[2]),
        .O(\ALU_SEL[3]_INST_0_i_1_n_0 ));
  LUT6 #(
    .INIT(64'h00A000A000040040)) 
    \ALU_SEL[3]_INST_0_i_2 
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_HI_5[1]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_LO_2[1]),
        .I5(OPCODE_HI_5[0]),
        .O(\ALU_SEL[3]_INST_0_i_2_n_0 ));
  LUT6 #(
    .INIT(64'h0000000000000010)) 
    C_FLAG_CLR_INST_0_i_1
       (.I0(OPCODE_HI_5[0]),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_HI_5[1]),
        .I4(OPCODE_LO_2[1]),
        .I5(OPCODE_HI_5[4]),
        .O(C_FLAG_CLR_INST_0_i_1_n_0));
  LUT6 #(
    .INIT(64'h00000000000001FF)) 
    C_FLAG_LD_INST_0_i_1
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_LO_2[1]),
        .I3(OPCODE_HI_5[0]),
        .I4(OPCODE_HI_5[1]),
        .I5(OPCODE_HI_5[2]),
        .O(C_FLAG_LD_INST_0_i_1_n_0));
  LUT6 #(
    .INIT(64'hAA22AA44AA23AA54)) 
    C_FLAG_LD_INST_0_i_2
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_HI_5[0]),
        .I2(OPCODE_LO_2[1]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_HI_5[1]),
        .I5(OPCODE_LO_2[0]),
        .O(C_FLAG_LD_INST_0_i_2_n_0));
  GND GND
       (.G(\<const0> ));
  (* SOFT_HLUTNM = "soft_lutpair7" *) 
  LUT2 #(
    .INIT(4'h2)) 
    IO_OE_INST_0_i_1
       (.I0(OPCODE_HI_5[1]),
        .I1(OPCODE_HI_5[2]),
        .O(IO_OE_INST_0_i_1_n_0));
  LUT6 #(
    .INIT(64'h0000000002000800)) 
    I_FLAG_CLR_INST_0_i_1
       (.I0(OPCODE_HI_5[0]),
        .I1(OPCODE_LO_2[1]),
        .I2(OPCODE_HI_5[1]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_LO_2[0]),
        .I5(OPCODE_HI_5[4]),
        .O(I_FLAG_CLR_INST_0_i_1_n_0));
  LUT6 #(
    .INIT(64'h0000000008000200)) 
    I_FLAG_SET_INST_0_i_1
       (.I0(OPCODE_HI_5[0]),
        .I1(OPCODE_LO_2[1]),
        .I2(OPCODE_HI_5[1]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_LO_2[0]),
        .I5(OPCODE_HI_5[4]),
        .O(I_FLAG_SET_INST_0_i_1_n_0));
  LUT6 #(
    .INIT(64'h0000000020200020)) 
    PC_LD_INST_0_i_1
       (.I0(OPCODE_LO_2[1]),
        .I1(OPCODE_HI_5[1]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_LO_2[0]),
        .I4(OPCODE_HI_5[0]),
        .I5(OPCODE_HI_5[4]),
        .O(PC_LD_INST_0_i_1_n_0));
  MUXF7 PC_LD_INST_0_i_2
       (.I0(PC_LD_INST_0_i_3_n_0),
        .I1(PC_LD_INST_0_i_4_n_0),
        .O(PC_LD_INST_0_i_2_n_0),
        .S(OPCODE_HI_5[0]));
  LUT5 #(
    .INIT(32'h00006F00)) 
    PC_LD_INST_0_i_3
       (.I0(Z),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_LO_2[1]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_HI_5[1]),
        .O(PC_LD_INST_0_i_3_n_0));
  LUT5 #(
    .INIT(32'h00000408)) 
    PC_LD_INST_0_i_4
       (.I0(OPCODE_LO_2[0]),
        .I1(OPCODE_HI_5[2]),
        .I2(OPCODE_HI_5[1]),
        .I3(C),
        .I4(OPCODE_LO_2[1]),
        .O(PC_LD_INST_0_i_4_n_0));
  LUT6 #(
    .INIT(64'hAAAAAAAA2332CDDD)) 
    RF_WR_INST_0_i_2
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_HI_5[0]),
        .I2(OPCODE_LO_2[1]),
        .I3(OPCODE_LO_2[0]),
        .I4(OPCODE_HI_5[1]),
        .I5(OPCODE_HI_5[2]),
        .O(RF_WR_INST_0_i_2_n_0));
  LUT6 #(
    .INIT(64'h000A000E00A000A0)) 
    \RF_WR_SEL[0]_INST_0_i_1 
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_LO_2[1]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_HI_5[1]),
        .I4(OPCODE_LO_2[0]),
        .I5(OPCODE_HI_5[0]),
        .O(\RF_WR_SEL[0]_INST_0_i_1_n_0 ));
  LUT6 #(
    .INIT(64'h0000000000100000)) 
    \RF_WR_SEL[0]_INST_0_i_2 
       (.I0(OPCODE_HI_5[0]),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_HI_5[1]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_LO_2[1]),
        .I5(OPCODE_HI_5[4]),
        .O(\RF_WR_SEL[0]_INST_0_i_2_n_0 ));
  LUT2 #(
    .INIT(4'h1)) 
    \RF_WR_SEL[1]_INST_0_i_1 
       (.I0(OPCODE_HI_5[1]),
        .I1(OPCODE_HI_5[2]),
        .O(\RF_WR_SEL[1]_INST_0_i_1_n_0 ));
  LUT6 #(
    .INIT(64'h0000EF040000AA00)) 
    \SCR_ADDR_SEL[0]_INST_0_i_1 
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_HI_5[0]),
        .I2(OPCODE_LO_2[0]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_HI_5[1]),
        .I5(OPCODE_LO_2[1]),
        .O(\SCR_ADDR_SEL[0]_INST_0_i_1_n_0 ));
  LUT6 #(
    .INIT(64'h0000000021220020)) 
    \SCR_ADDR_SEL[1]_INST_0_i_1 
       (.I0(OPCODE_LO_2[1]),
        .I1(OPCODE_HI_5[1]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_LO_2[0]),
        .I4(OPCODE_HI_5[0]),
        .I5(OPCODE_HI_5[4]),
        .O(\SCR_ADDR_SEL[1]_INST_0_i_1_n_0 ));
  LUT6 #(
    .INIT(64'h00A100A000000000)) 
    SCR_WR_INST_0_i_1
       (.I0(OPCODE_HI_5[4]),
        .I1(OPCODE_LO_2[1]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_HI_5[1]),
        .I4(OPCODE_LO_2[0]),
        .I5(OPCODE_HI_5[0]),
        .O(SCR_WR_INST_0_i_1_n_0));
  LUT6 #(
    .INIT(64'h0000000001400000)) 
    SCR_WR_INST_0_i_2
       (.I0(OPCODE_HI_5[0]),
        .I1(OPCODE_LO_2[1]),
        .I2(OPCODE_HI_5[1]),
        .I3(OPCODE_HI_5[2]),
        .I4(OPCODE_LO_2[0]),
        .I5(OPCODE_HI_5[4]),
        .O(SCR_WR_INST_0_i_2_n_0));
  LUT6 #(
    .INIT(64'h0000000031021004)) 
    SP_LD_INST_0_i_1
       (.I0(OPCODE_LO_2[0]),
        .I1(OPCODE_HI_5[1]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_LO_2[1]),
        .I4(OPCODE_HI_5[0]),
        .I5(OPCODE_HI_5[4]),
        .O(SP_LD_INST_0_i_1_n_0));
  LUT6 #(
    .INIT(64'h0000000000000040)) 
    SP_LD_INST_0_i_2
       (.I0(OPCODE_HI_5[0]),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_HI_5[1]),
        .I4(OPCODE_LO_2[1]),
        .I5(OPCODE_HI_5[4]),
        .O(SP_LD_INST_0_i_2_n_0));
  RAT_ControlUnit_0_0_ControlUnit U0
       (.ALU_OPY_SEL(ALU_OPY_SEL),
        .ALU_SEL(ALU_SEL),
        .CLK(CLK),
        .C_FLAG_CLR(C_FLAG_CLR),
        .C_FLAG_LD(C_FLAG_LD),
        .C_FLAG_SET(C_FLAG_SET),
        .INT(INT),
        .IO_OE(IO_OE),
        .I_FLAG_CLR(I_FLAG_CLR),
        .I_FLAG_SET(I_FLAG_SET),
        .OPCODE_HI_5(OPCODE_HI_5),
        .\OPCODE_HI_5[0]_0 (SCR_WR_INST_0_i_1_n_0),
        .\OPCODE_HI_5[0]_1 (\ALU_SEL[2]_INST_0_i_2_n_0 ),
        .\OPCODE_HI_5[0]_2 (\ALU_SEL[3]_INST_0_i_2_n_0 ),
        .\OPCODE_HI_5[0]_3 (\RF_WR_SEL[0]_INST_0_i_1_n_0 ),
        .\OPCODE_HI_5[2]_0 (\ALU_SEL[3]_INST_0_i_1_n_0 ),
        .\OPCODE_HI_5[2]_1 (RF_WR_INST_0_i_2_n_0),
        .\OPCODE_HI_5[2]_2 (IO_OE_INST_0_i_1_n_0),
        .\OPCODE_HI_5[2]_3 (ALU_OPY_SEL_INST_0_i_1_n_0),
        .\OPCODE_HI_5[2]_4 (C_FLAG_LD_INST_0_i_1_n_0),
        .\OPCODE_HI_5[2]_5 (\RF_WR_SEL[1]_INST_0_i_1_n_0 ),
        .\OPCODE_HI_5[4]_0 (SP_LD_INST_0_i_2_n_0),
        .\OPCODE_HI_5[4]_1 (\SCR_ADDR_SEL[1]_INST_0_i_1_n_0 ),
        .\OPCODE_HI_5[4]_2 (SP_LD_INST_0_i_1_n_0),
        .\OPCODE_HI_5[4]_3 (PC_LD_INST_0_i_1_n_0),
        .\OPCODE_HI_5[4]_4 (I_FLAG_SET_INST_0_i_1_n_0),
        .\OPCODE_HI_5[4]_5 (C_FLAG_CLR_INST_0_i_1_n_0),
        .\OPCODE_HI_5[4]_6 (SCR_WR_INST_0_i_2_n_0),
        .\OPCODE_HI_5[4]_7 (\ALU_SEL[0]_INST_0_i_1_n_0 ),
        .\OPCODE_HI_5[4]_8 (\RF_WR_SEL[0]_INST_0_i_2_n_0 ),
        .\OPCODE_HI_5[4]_9 (Z_FLAG_LD_INST_0_i_1_n_0),
        .OPCODE_HI_5_0__s_port_(\ALU_SEL[1]_INST_0_i_1_n_0 ),
        .OPCODE_HI_5_2__s_port_(\ALU_SEL[1]_INST_0_i_2_n_0 ),
        .\OPCODE_HI_5_4__s_port_] (I_FLAG_CLR_INST_0_i_1_n_0),
        .OPCODE_LO_2(OPCODE_LO_2[0]),
        .\OPCODE_LO_2[1] (\SCR_ADDR_SEL[0]_INST_0_i_1_n_0 ),
        .\OPCODE_LO_2[1]_0 (PC_LD_INST_0_i_2_n_0),
        .\OPCODE_LO_2[1]_1 (\ALU_SEL[2]_INST_0_i_1_n_0 ),
        .OPCODE_LO_2_0__s_port_(C_FLAG_LD_INST_0_i_2_n_0),
        .PC_INC(PC_INC),
        .PC_LD(PC_LD),
        .PC_MUX_SEL(PC_MUX_SEL),
        .RF_WR(RF_WR),
        .RF_WR_SEL(RF_WR_SEL),
        .RST(RST),
        .SCR_ADDR_SEL(SCR_ADDR_SEL),
        .SCR_WR(SCR_WR),
        .SP_LD(SP_LD),
        .SP_RESET(SP_RESET),
        .Z_FLAG_LD(Z_FLAG_LD));
  LUT6 #(
    .INIT(64'hFFFFFFFF05050515)) 
    Z_FLAG_LD_INST_0_i_1
       (.I0(OPCODE_HI_5[2]),
        .I1(OPCODE_LO_2[0]),
        .I2(OPCODE_HI_5[1]),
        .I3(OPCODE_LO_2[1]),
        .I4(OPCODE_HI_5[0]),
        .I5(OPCODE_HI_5[4]),
        .O(Z_FLAG_LD_INST_0_i_1_n_0));
endmodule

(* ORIG_REF_NAME = "ControlUnit" *) 
module RAT_ControlUnit_0_0_ControlUnit
   (I_FLAG_CLR,
    PC_MUX_SEL,
    ALU_SEL,
    SCR_ADDR_SEL,
    SP_LD,
    PC_LD,
    I_FLAG_SET,
    C_FLAG_CLR,
    PC_INC,
    SCR_WR,
    C_FLAG_SET,
    RF_WR,
    IO_OE,
    ALU_OPY_SEL,
    C_FLAG_LD,
    RF_WR_SEL,
    Z_FLAG_LD,
    SP_RESET,
    \OPCODE_HI_5_4__s_port_] ,
    OPCODE_HI_5,
    OPCODE_HI_5_0__s_port_,
    OPCODE_HI_5_2__s_port_,
    \OPCODE_LO_2[1] ,
    \OPCODE_HI_5[4]_0 ,
    \OPCODE_HI_5[4]_1 ,
    \OPCODE_HI_5[4]_2 ,
    \OPCODE_HI_5[4]_3 ,
    \OPCODE_LO_2[1]_0 ,
    \OPCODE_HI_5[4]_4 ,
    \OPCODE_HI_5[4]_5 ,
    INT,
    \OPCODE_HI_5[0]_0 ,
    \OPCODE_HI_5[4]_6 ,
    \OPCODE_HI_5[4]_7 ,
    OPCODE_LO_2,
    \OPCODE_LO_2[1]_1 ,
    \OPCODE_HI_5[0]_1 ,
    \OPCODE_HI_5[2]_0 ,
    \OPCODE_HI_5[0]_2 ,
    \OPCODE_HI_5[2]_1 ,
    \OPCODE_HI_5[2]_2 ,
    \OPCODE_HI_5[2]_3 ,
    \OPCODE_HI_5[2]_4 ,
    OPCODE_LO_2_0__s_port_,
    \OPCODE_HI_5[0]_3 ,
    \OPCODE_HI_5[4]_8 ,
    \OPCODE_HI_5[4]_9 ,
    \OPCODE_HI_5[2]_5 ,
    CLK,
    RST);
  output I_FLAG_CLR;
  output [1:0]PC_MUX_SEL;
  output [3:0]ALU_SEL;
  output [1:0]SCR_ADDR_SEL;
  output SP_LD;
  output PC_LD;
  output I_FLAG_SET;
  output C_FLAG_CLR;
  output PC_INC;
  output SCR_WR;
  output C_FLAG_SET;
  output RF_WR;
  output IO_OE;
  output ALU_OPY_SEL;
  output C_FLAG_LD;
  output [1:0]RF_WR_SEL;
  output Z_FLAG_LD;
  output SP_RESET;
  input \OPCODE_HI_5_4__s_port_] ;
  input [4:0]OPCODE_HI_5;
  input OPCODE_HI_5_0__s_port_;
  input OPCODE_HI_5_2__s_port_;
  input \OPCODE_LO_2[1] ;
  input \OPCODE_HI_5[4]_0 ;
  input \OPCODE_HI_5[4]_1 ;
  input \OPCODE_HI_5[4]_2 ;
  input \OPCODE_HI_5[4]_3 ;
  input \OPCODE_LO_2[1]_0 ;
  input \OPCODE_HI_5[4]_4 ;
  input \OPCODE_HI_5[4]_5 ;
  input INT;
  input \OPCODE_HI_5[0]_0 ;
  input \OPCODE_HI_5[4]_6 ;
  input \OPCODE_HI_5[4]_7 ;
  input [0:0]OPCODE_LO_2;
  input \OPCODE_LO_2[1]_1 ;
  input \OPCODE_HI_5[0]_1 ;
  input \OPCODE_HI_5[2]_0 ;
  input \OPCODE_HI_5[0]_2 ;
  input \OPCODE_HI_5[2]_1 ;
  input \OPCODE_HI_5[2]_2 ;
  input \OPCODE_HI_5[2]_3 ;
  input \OPCODE_HI_5[2]_4 ;
  input OPCODE_LO_2_0__s_port_;
  input \OPCODE_HI_5[0]_3 ;
  input \OPCODE_HI_5[4]_8 ;
  input \OPCODE_HI_5[4]_9 ;
  input \OPCODE_HI_5[2]_5 ;
  input CLK;
  input RST;

  wire ALU_OPY_SEL;
  wire [3:0]ALU_SEL;
  wire \ALU_SEL[0]_INST_0_i_2_n_0 ;
  wire CLK;
  wire C_FLAG_CLR;
  wire C_FLAG_LD;
  wire C_FLAG_SET;
  wire INT;
  wire IO_OE;
  wire I_FLAG_CLR;
  wire I_FLAG_SET;
  wire [1:1]NS;
  wire [4:0]OPCODE_HI_5;
  wire \OPCODE_HI_5[0]_0 ;
  wire \OPCODE_HI_5[0]_1 ;
  wire \OPCODE_HI_5[0]_2 ;
  wire \OPCODE_HI_5[0]_3 ;
  wire \OPCODE_HI_5[2]_0 ;
  wire \OPCODE_HI_5[2]_1 ;
  wire \OPCODE_HI_5[2]_2 ;
  wire \OPCODE_HI_5[2]_3 ;
  wire \OPCODE_HI_5[2]_4 ;
  wire \OPCODE_HI_5[2]_5 ;
  wire \OPCODE_HI_5[4]_0 ;
  wire \OPCODE_HI_5[4]_1 ;
  wire \OPCODE_HI_5[4]_2 ;
  wire \OPCODE_HI_5[4]_3 ;
  wire \OPCODE_HI_5[4]_4 ;
  wire \OPCODE_HI_5[4]_5 ;
  wire \OPCODE_HI_5[4]_6 ;
  wire \OPCODE_HI_5[4]_7 ;
  wire \OPCODE_HI_5[4]_8 ;
  wire \OPCODE_HI_5[4]_9 ;
  wire OPCODE_HI_5_0__s_net_1;
  wire OPCODE_HI_5_2__s_net_1;
  wire OPCODE_HI_5_4__s_net_1;
  wire [0:0]OPCODE_LO_2;
  wire \OPCODE_LO_2[1] ;
  wire \OPCODE_LO_2[1]_0 ;
  wire \OPCODE_LO_2[1]_1 ;
  wire OPCODE_LO_2_0__s_net_1;
  wire PC_INC;
  wire PC_LD;
  wire [1:0]PC_MUX_SEL;
  wire [1:0]PS;
  wire \PS[0]_i_1_n_0 ;
  wire RF_WR;
  wire RF_WR_INST_0_i_1_n_0;
  wire [1:0]RF_WR_SEL;
  wire RST;
  wire [1:0]SCR_ADDR_SEL;
  wire SCR_WR;
  wire SP_LD;
  wire SP_RESET;
  wire Z_FLAG_LD;

  assign OPCODE_HI_5_0__s_net_1 = OPCODE_HI_5_0__s_port_;
  assign OPCODE_HI_5_2__s_net_1 = OPCODE_HI_5_2__s_port_;
  assign OPCODE_HI_5_4__s_net_1 = \OPCODE_HI_5_4__s_port_] ;
  assign OPCODE_LO_2_0__s_net_1 = OPCODE_LO_2_0__s_port_;
  LUT5 #(
    .INIT(32'h0B000000)) 
    ALU_OPY_SEL_INST_0
       (.I0(\OPCODE_HI_5[2]_3 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(OPCODE_HI_5[4]),
        .I4(PS[1]),
        .O(ALU_OPY_SEL));
  (* SOFT_HLUTNM = "soft_lutpair4" *) 
  LUT5 #(
    .INIT(32'h4F400000)) 
    \ALU_SEL[0]_INST_0 
       (.I0(PS[0]),
        .I1(\OPCODE_HI_5[4]_7 ),
        .I2(OPCODE_HI_5[3]),
        .I3(\ALU_SEL[0]_INST_0_i_2_n_0 ),
        .I4(PS[1]),
        .O(ALU_SEL[0]));
  LUT6 #(
    .INIT(64'h00000000F00F0201)) 
    \ALU_SEL[0]_INST_0_i_2 
       (.I0(OPCODE_LO_2),
        .I1(OPCODE_HI_5[1]),
        .I2(OPCODE_HI_5[2]),
        .I3(OPCODE_HI_5[0]),
        .I4(OPCODE_HI_5[4]),
        .I5(PS[0]),
        .O(\ALU_SEL[0]_INST_0_i_2_n_0 ));
  (* SOFT_HLUTNM = "soft_lutpair2" *) 
  LUT5 #(
    .INIT(32'h0B080000)) 
    \ALU_SEL[1]_INST_0 
       (.I0(OPCODE_HI_5_0__s_net_1),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(OPCODE_HI_5_2__s_net_1),
        .I4(PS[1]),
        .O(ALU_SEL[1]));
  LUT5 #(
    .INIT(32'h0B080000)) 
    \ALU_SEL[2]_INST_0 
       (.I0(\OPCODE_LO_2[1]_1 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[0]_1 ),
        .I4(PS[1]),
        .O(ALU_SEL[2]));
  LUT5 #(
    .INIT(32'h0B080000)) 
    \ALU_SEL[3]_INST_0 
       (.I0(\OPCODE_HI_5[2]_0 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[0]_2 ),
        .I4(PS[1]),
        .O(ALU_SEL[3]));
  (* SOFT_HLUTNM = "soft_lutpair6" *) 
  LUT4 #(
    .INIT(16'h0800)) 
    C_FLAG_CLR_INST_0
       (.I0(PS[1]),
        .I1(\OPCODE_HI_5[4]_5 ),
        .I2(PS[0]),
        .I3(OPCODE_HI_5[3]),
        .O(C_FLAG_CLR));
  LUT5 #(
    .INIT(32'h0B080000)) 
    C_FLAG_LD_INST_0
       (.I0(\OPCODE_HI_5[2]_4 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(OPCODE_LO_2_0__s_net_1),
        .I4(PS[1]),
        .O(C_FLAG_LD));
  (* SOFT_HLUTNM = "soft_lutpair0" *) 
  LUT4 #(
    .INIT(16'h0800)) 
    C_FLAG_SET_INST_0
       (.I0(PS[1]),
        .I1(\OPCODE_HI_5[4]_0 ),
        .I2(PS[0]),
        .I3(OPCODE_HI_5[3]),
        .O(C_FLAG_SET));
  LUT6 #(
    .INIT(64'h0000008000000000)) 
    IO_OE_INST_0
       (.I0(PS[1]),
        .I1(OPCODE_HI_5[4]),
        .I2(\OPCODE_HI_5[2]_2 ),
        .I3(OPCODE_HI_5[0]),
        .I4(PS[0]),
        .I5(OPCODE_HI_5[3]),
        .O(IO_OE));
  (* SOFT_HLUTNM = "soft_lutpair5" *) 
  LUT4 #(
    .INIT(16'hF800)) 
    I_FLAG_CLR_INST_0
       (.I0(OPCODE_HI_5_4__s_net_1),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(PS[1]),
        .O(I_FLAG_CLR));
  (* SOFT_HLUTNM = "soft_lutpair6" *) 
  LUT4 #(
    .INIT(16'h0800)) 
    I_FLAG_SET_INST_0
       (.I0(PS[1]),
        .I1(\OPCODE_HI_5[4]_4 ),
        .I2(PS[0]),
        .I3(OPCODE_HI_5[3]),
        .O(I_FLAG_SET));
  (* SOFT_HLUTNM = "soft_lutpair2" *) 
  LUT2 #(
    .INIT(4'h2)) 
    PC_INC_INST_0
       (.I0(PS[0]),
        .I1(PS[1]),
        .O(PC_INC));
  LUT6 #(
    .INIT(64'hF8F8FBF800000000)) 
    PC_LD_INST_0
       (.I0(\OPCODE_HI_5[4]_3 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_LO_2[1]_0 ),
        .I4(OPCODE_HI_5[4]),
        .I5(PS[1]),
        .O(PC_LD));
  (* SOFT_HLUTNM = "soft_lutpair5" *) 
  LUT4 #(
    .INIT(16'h0800)) 
    \PC_MUX_SEL[0]_INST_0 
       (.I0(PS[1]),
        .I1(\OPCODE_HI_5[4]_3 ),
        .I2(PS[0]),
        .I3(OPCODE_HI_5[3]),
        .O(PC_MUX_SEL[0]));
  (* SOFT_HLUTNM = "soft_lutpair3" *) 
  LUT2 #(
    .INIT(4'hB)) 
    \PS[0]_i_1 
       (.I0(PS[1]),
        .I1(PS[0]),
        .O(\PS[0]_i_1_n_0 ));
  LUT3 #(
    .INIT(8'h2C)) 
    \PS[1]_i_1 
       (.I0(INT),
        .I1(PS[0]),
        .I2(PS[1]),
        .O(NS));
  FDCE \PS_reg[0] 
       (.C(CLK),
        .CE(1'b1),
        .CLR(RST),
        .D(\PS[0]_i_1_n_0 ),
        .Q(PS[0]));
  FDCE \PS_reg[1] 
       (.C(CLK),
        .CE(1'b1),
        .CLR(RST),
        .D(NS),
        .Q(PS[1]));
  LUT5 #(
    .INIT(32'h8B880000)) 
    RF_WR_INST_0
       (.I0(RF_WR_INST_0_i_1_n_0),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[2]_1 ),
        .I4(PS[1]),
        .O(RF_WR));
  LUT6 #(
    .INIT(64'h0000000052520111)) 
    RF_WR_INST_0_i_1
       (.I0(OPCODE_HI_5[2]),
        .I1(OPCODE_HI_5[1]),
        .I2(OPCODE_HI_5[0]),
        .I3(OPCODE_LO_2),
        .I4(OPCODE_HI_5[4]),
        .I5(PS[0]),
        .O(RF_WR_INST_0_i_1_n_0));
  LUT5 #(
    .INIT(32'h0B080000)) 
    \RF_WR_SEL[0]_INST_0 
       (.I0(\OPCODE_HI_5[0]_3 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[4]_8 ),
        .I4(PS[1]),
        .O(RF_WR_SEL[0]));
  LUT6 #(
    .INIT(64'h0000800000000000)) 
    \RF_WR_SEL[1]_INST_0 
       (.I0(PS[1]),
        .I1(OPCODE_HI_5[4]),
        .I2(\OPCODE_HI_5[2]_5 ),
        .I3(OPCODE_HI_5[0]),
        .I4(PS[0]),
        .I5(OPCODE_HI_5[3]),
        .O(RF_WR_SEL[1]));
  (* SOFT_HLUTNM = "soft_lutpair1" *) 
  LUT5 #(
    .INIT(32'hFBF80000)) 
    \SCR_ADDR_SEL[0]_INST_0 
       (.I0(\OPCODE_LO_2[1] ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[4]_0 ),
        .I4(PS[1]),
        .O(SCR_ADDR_SEL[0]));
  (* SOFT_HLUTNM = "soft_lutpair0" *) 
  LUT5 #(
    .INIT(32'hFBF80000)) 
    \SCR_ADDR_SEL[1]_INST_0 
       (.I0(\OPCODE_HI_5[4]_1 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[4]_0 ),
        .I4(PS[1]),
        .O(SCR_ADDR_SEL[1]));
  LUT5 #(
    .INIT(32'h0B080000)) 
    SCR_WR_INST_0
       (.I0(\OPCODE_HI_5[0]_0 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[4]_6 ),
        .I4(PS[1]),
        .O(SCR_WR));
  (* SOFT_HLUTNM = "soft_lutpair1" *) 
  LUT2 #(
    .INIT(4'h8)) 
    SP_INCR_INST_0
       (.I0(PS[0]),
        .I1(PS[1]),
        .O(PC_MUX_SEL[1]));
  (* SOFT_HLUTNM = "soft_lutpair3" *) 
  LUT5 #(
    .INIT(32'hFBF80000)) 
    SP_LD_INST_0
       (.I0(\OPCODE_HI_5[4]_2 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[4]_0 ),
        .I4(PS[1]),
        .O(SP_LD));
  (* SOFT_HLUTNM = "soft_lutpair4" *) 
  LUT2 #(
    .INIT(4'h1)) 
    SP_RESET_INST_0
       (.I0(PS[0]),
        .I1(PS[1]),
        .O(SP_RESET));
  LUT5 #(
    .INIT(32'h0B080000)) 
    Z_FLAG_LD_INST_0
       (.I0(\OPCODE_HI_5[2]_4 ),
        .I1(OPCODE_HI_5[3]),
        .I2(PS[0]),
        .I3(\OPCODE_HI_5[4]_9 ),
        .I4(PS[1]),
        .O(Z_FLAG_LD));
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 (weak1, weak0) GSR = GSR_int;
    assign (weak1, 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
