data/full_repos/permissive/524341347/verilog/rtl/Sky130BLFSR.v
data/verilator_xmls/979cc0dc-a178-423b-8f0b-313dfe6dba99.xml
module Sky130BLFSR(
  input        clock,
  input        reset,
  output [6:0] io_num_0,
  output [6:0] io_num_1,
  output [6:0] io_num_2,
  output [6:0] io_num_3,
  input        io_lock
);
  wire  lfsr_prng_clock;
  wire  lfsr_prng_reset;
  wire  lfsr_prng_io_increment;
  wire  lfsr_prng_io_out_0;
  wire  lfsr_prng_io_out_1;
  wire  lfsr_prng_io_out_2;
  wire  lfsr_prng_io_out_3;
  wire  lfsr_prng_io_out_4;
  wire  lfsr_prng_io_out_5;
  wire  lfsr_prng_io_out_6;
  wire  lfsr_prng_io_out_7;
  wire  lfsr_prng_io_out_8;
  wire  lfsr_prng_io_out_9;
  wire  lfsr_prng_io_out_10;
  wire  lfsr_prng_io_out_11;
  wire  lfsr_prng_io_out_12;
  wire  lfsr_prng_io_out_13;
  wire  lfsr_prng_io_out_14;
  wire  lfsr_prng_io_out_15;
  wire [7:0] lfsr_lo = {lfsr_prng_io_out_7,lfsr_prng_io_out_6,lfsr_prng_io_out_5,lfsr_prng_io_out_4,lfsr_prng_io_out_3,
    lfsr_prng_io_out_2,lfsr_prng_io_out_1,lfsr_prng_io_out_0};
  wire [15:0] lfsr = {lfsr_prng_io_out_15,lfsr_prng_io_out_14,lfsr_prng_io_out_13,lfsr_prng_io_out_12,
    lfsr_prng_io_out_11,lfsr_prng_io_out_10,lfsr_prng_io_out_9,lfsr_prng_io_out_8,lfsr_lo};
  wire  _io_num_0_T_1 = lfsr[3:0] == 4'h0;
  wire  _io_num_0_T_3 = lfsr[3:0] == 4'h1;
  wire  _io_num_0_T_5 = lfsr[3:0] == 4'h2;
  wire  _io_num_0_T_7 = lfsr[3:0] == 4'h3;
  wire  _io_num_0_T_9 = lfsr[3:0] == 4'h4;
  wire  _io_num_0_T_11 = lfsr[3:0] == 4'h5;
  wire  _io_num_0_T_13 = lfsr[3:0] == 4'h6;
  wire  _io_num_0_T_15 = lfsr[3:0] == 4'h7;
  wire  _io_num_0_T_19 = lfsr[3:0] == 4'h9;
  wire  _io_num_0_T_21 = lfsr[3:0] == 4'ha;
  wire  _io_num_0_T_23 = lfsr[3:0] == 4'hb;
  wire  _io_num_0_T_25 = lfsr[3:0] == 4'hc;
  wire  _io_num_0_T_27 = lfsr[3:0] == 4'hd;
  wire  _io_num_0_T_29 = lfsr[3:0] == 4'he;
  wire  _io_num_0_T_31 = lfsr[3:0] == 4'hf;
  wire [6:0] _io_num_0_T_32 = _io_num_0_T_1 ? 7'h40 : 7'h0;
  wire [6:0] _io_num_0_T_33 = _io_num_0_T_3 ? 7'h79 : 7'h0;
  wire [5:0] _io_num_0_T_34 = _io_num_0_T_5 ? 6'h24 : 6'h0;
  wire [5:0] _io_num_0_T_35 = _io_num_0_T_7 ? 6'h30 : 6'h0;
  wire [4:0] _io_num_0_T_36 = _io_num_0_T_9 ? 5'h19 : 5'h0;
  wire [4:0] _io_num_0_T_37 = _io_num_0_T_11 ? 5'h12 : 5'h0;
  wire [1:0] _io_num_0_T_38 = _io_num_0_T_13 ? 2'h2 : 2'h0;
  wire [6:0] _io_num_0_T_39 = _io_num_0_T_15 ? 7'h78 : 7'h0;
  wire [6:0] _io_num_0_T_41 = _io_num_0_T_19 ? 7'h6f : 7'h0;
  wire [3:0] _io_num_0_T_42 = _io_num_0_T_21 ? 4'h8 : 4'h0;
  wire [1:0] _io_num_0_T_43 = _io_num_0_T_23 ? 2'h3 : 2'h0;
  wire [6:0] _io_num_0_T_44 = _io_num_0_T_25 ? 7'h46 : 7'h0;
  wire [5:0] _io_num_0_T_45 = _io_num_0_T_27 ? 6'h21 : 6'h0;
  wire [2:0] _io_num_0_T_46 = _io_num_0_T_29 ? 3'h6 : 3'h0;
  wire [3:0] _io_num_0_T_47 = _io_num_0_T_31 ? 4'he : 4'h0;
  wire [6:0] _io_num_0_T_48 = _io_num_0_T_32 | _io_num_0_T_33;
  wire [6:0] _GEN_4 = {{1'd0}, _io_num_0_T_34};
  wire [6:0] _io_num_0_T_49 = _io_num_0_T_48 | _GEN_4;
  wire [6:0] _GEN_5 = {{1'd0}, _io_num_0_T_35};
  wire [6:0] _io_num_0_T_50 = _io_num_0_T_49 | _GEN_5;
  wire [6:0] _GEN_6 = {{2'd0}, _io_num_0_T_36};
  wire [6:0] _io_num_0_T_51 = _io_num_0_T_50 | _GEN_6;
  wire [6:0] _GEN_7 = {{2'd0}, _io_num_0_T_37};
  wire [6:0] _io_num_0_T_52 = _io_num_0_T_51 | _GEN_7;
  wire [6:0] _GEN_8 = {{5'd0}, _io_num_0_T_38};
  wire [6:0] _io_num_0_T_53 = _io_num_0_T_52 | _GEN_8;
  wire [6:0] _io_num_0_T_54 = _io_num_0_T_53 | _io_num_0_T_39;
  wire [6:0] _io_num_0_T_56 = _io_num_0_T_54 | _io_num_0_T_41;
  wire [6:0] _GEN_9 = {{3'd0}, _io_num_0_T_42};
  wire [6:0] _io_num_0_T_57 = _io_num_0_T_56 | _GEN_9;
  wire [6:0] _GEN_10 = {{5'd0}, _io_num_0_T_43};
  wire [6:0] _io_num_0_T_58 = _io_num_0_T_57 | _GEN_10;
  wire [6:0] _io_num_0_T_59 = _io_num_0_T_58 | _io_num_0_T_44;
  wire [6:0] _GEN_11 = {{1'd0}, _io_num_0_T_45};
  wire [6:0] _io_num_0_T_60 = _io_num_0_T_59 | _GEN_11;
  wire [6:0] _GEN_12 = {{4'd0}, _io_num_0_T_46};
  wire [6:0] _io_num_0_T_61 = _io_num_0_T_60 | _GEN_12;
  wire [6:0] _GEN_13 = {{3'd0}, _io_num_0_T_47};
  wire [6:0] _io_num_0_T_62 = _io_num_0_T_61 | _GEN_13;
  wire  _io_num_1_T_1 = lfsr[7:4] == 4'h0;
  wire  _io_num_1_T_3 = lfsr[7:4] == 4'h1;
  wire  _io_num_1_T_5 = lfsr[7:4] == 4'h2;
  wire  _io_num_1_T_7 = lfsr[7:4] == 4'h3;
  wire  _io_num_1_T_9 = lfsr[7:4] == 4'h4;
  wire  _io_num_1_T_11 = lfsr[7:4] == 4'h5;
  wire  _io_num_1_T_13 = lfsr[7:4] == 4'h6;
  wire  _io_num_1_T_15 = lfsr[7:4] == 4'h7;
  wire  _io_num_1_T_19 = lfsr[7:4] == 4'h9;
  wire  _io_num_1_T_21 = lfsr[7:4] == 4'ha;
  wire  _io_num_1_T_23 = lfsr[7:4] == 4'hb;
  wire  _io_num_1_T_25 = lfsr[7:4] == 4'hc;
  wire  _io_num_1_T_27 = lfsr[7:4] == 4'hd;
  wire  _io_num_1_T_29 = lfsr[7:4] == 4'he;
  wire  _io_num_1_T_31 = lfsr[7:4] == 4'hf;
  wire [6:0] _io_num_1_T_32 = _io_num_1_T_1 ? 7'h40 : 7'h0;
  wire [6:0] _io_num_1_T_33 = _io_num_1_T_3 ? 7'h79 : 7'h0;
  wire [5:0] _io_num_1_T_34 = _io_num_1_T_5 ? 6'h24 : 6'h0;
  wire [5:0] _io_num_1_T_35 = _io_num_1_T_7 ? 6'h30 : 6'h0;
  wire [4:0] _io_num_1_T_36 = _io_num_1_T_9 ? 5'h19 : 5'h0;
  wire [4:0] _io_num_1_T_37 = _io_num_1_T_11 ? 5'h12 : 5'h0;
  wire [1:0] _io_num_1_T_38 = _io_num_1_T_13 ? 2'h2 : 2'h0;
  wire [6:0] _io_num_1_T_39 = _io_num_1_T_15 ? 7'h78 : 7'h0;
  wire [6:0] _io_num_1_T_41 = _io_num_1_T_19 ? 7'h6f : 7'h0;
  wire [3:0] _io_num_1_T_42 = _io_num_1_T_21 ? 4'h8 : 4'h0;
  wire [1:0] _io_num_1_T_43 = _io_num_1_T_23 ? 2'h3 : 2'h0;
  wire [6:0] _io_num_1_T_44 = _io_num_1_T_25 ? 7'h46 : 7'h0;
  wire [5:0] _io_num_1_T_45 = _io_num_1_T_27 ? 6'h21 : 6'h0;
  wire [2:0] _io_num_1_T_46 = _io_num_1_T_29 ? 3'h6 : 3'h0;
  wire [3:0] _io_num_1_T_47 = _io_num_1_T_31 ? 4'he : 4'h0;
  wire [6:0] _io_num_1_T_48 = _io_num_1_T_32 | _io_num_1_T_33;
  wire [6:0] _GEN_14 = {{1'd0}, _io_num_1_T_34};
  wire [6:0] _io_num_1_T_49 = _io_num_1_T_48 | _GEN_14;
  wire [6:0] _GEN_15 = {{1'd0}, _io_num_1_T_35};
  wire [6:0] _io_num_1_T_50 = _io_num_1_T_49 | _GEN_15;
  wire [6:0] _GEN_16 = {{2'd0}, _io_num_1_T_36};
  wire [6:0] _io_num_1_T_51 = _io_num_1_T_50 | _GEN_16;
  wire [6:0] _GEN_17 = {{2'd0}, _io_num_1_T_37};
  wire [6:0] _io_num_1_T_52 = _io_num_1_T_51 | _GEN_17;
  wire [6:0] _GEN_18 = {{5'd0}, _io_num_1_T_38};
  wire [6:0] _io_num_1_T_53 = _io_num_1_T_52 | _GEN_18;
  wire [6:0] _io_num_1_T_54 = _io_num_1_T_53 | _io_num_1_T_39;
  wire [6:0] _io_num_1_T_56 = _io_num_1_T_54 | _io_num_1_T_41;
  wire [6:0] _GEN_19 = {{3'd0}, _io_num_1_T_42};
  wire [6:0] _io_num_1_T_57 = _io_num_1_T_56 | _GEN_19;
  wire [6:0] _GEN_20 = {{5'd0}, _io_num_1_T_43};
  wire [6:0] _io_num_1_T_58 = _io_num_1_T_57 | _GEN_20;
  wire [6:0] _io_num_1_T_59 = _io_num_1_T_58 | _io_num_1_T_44;
  wire [6:0] _GEN_21 = {{1'd0}, _io_num_1_T_45};
  wire [6:0] _io_num_1_T_60 = _io_num_1_T_59 | _GEN_21;
  wire [6:0] _GEN_22 = {{4'd0}, _io_num_1_T_46};
  wire [6:0] _io_num_1_T_61 = _io_num_1_T_60 | _GEN_22;
  wire [6:0] _GEN_23 = {{3'd0}, _io_num_1_T_47};
  wire [6:0] _io_num_1_T_62 = _io_num_1_T_61 | _GEN_23;
  wire  _io_num_2_T_1 = lfsr[11:8] == 4'h0;
  wire  _io_num_2_T_3 = lfsr[11:8] == 4'h1;
  wire  _io_num_2_T_5 = lfsr[11:8] == 4'h2;
  wire  _io_num_2_T_7 = lfsr[11:8] == 4'h3;
  wire  _io_num_2_T_9 = lfsr[11:8] == 4'h4;
  wire  _io_num_2_T_11 = lfsr[11:8] == 4'h5;
  wire  _io_num_2_T_13 = lfsr[11:8] == 4'h6;
  wire  _io_num_2_T_15 = lfsr[11:8] == 4'h7;
  wire  _io_num_2_T_19 = lfsr[11:8] == 4'h9;
  wire  _io_num_2_T_21 = lfsr[11:8] == 4'ha;
  wire  _io_num_2_T_23 = lfsr[11:8] == 4'hb;
  wire  _io_num_2_T_25 = lfsr[11:8] == 4'hc;
  wire  _io_num_2_T_27 = lfsr[11:8] == 4'hd;
  wire  _io_num_2_T_29 = lfsr[11:8] == 4'he;
  wire  _io_num_2_T_31 = lfsr[11:8] == 4'hf;
  wire [6:0] _io_num_2_T_32 = _io_num_2_T_1 ? 7'h40 : 7'h0;
  wire [6:0] _io_num_2_T_33 = _io_num_2_T_3 ? 7'h79 : 7'h0;
  wire [5:0] _io_num_2_T_34 = _io_num_2_T_5 ? 6'h24 : 6'h0;
  wire [5:0] _io_num_2_T_35 = _io_num_2_T_7 ? 6'h30 : 6'h0;
  wire [4:0] _io_num_2_T_36 = _io_num_2_T_9 ? 5'h19 : 5'h0;
  wire [4:0] _io_num_2_T_37 = _io_num_2_T_11 ? 5'h12 : 5'h0;
  wire [1:0] _io_num_2_T_38 = _io_num_2_T_13 ? 2'h2 : 2'h0;
  wire [6:0] _io_num_2_T_39 = _io_num_2_T_15 ? 7'h78 : 7'h0;
  wire [6:0] _io_num_2_T_41 = _io_num_2_T_19 ? 7'h6f : 7'h0;
  wire [3:0] _io_num_2_T_42 = _io_num_2_T_21 ? 4'h8 : 4'h0;
  wire [1:0] _io_num_2_T_43 = _io_num_2_T_23 ? 2'h3 : 2'h0;
  wire [6:0] _io_num_2_T_44 = _io_num_2_T_25 ? 7'h46 : 7'h0;
  wire [5:0] _io_num_2_T_45 = _io_num_2_T_27 ? 6'h21 : 6'h0;
  wire [2:0] _io_num_2_T_46 = _io_num_2_T_29 ? 3'h6 : 3'h0;
  wire [3:0] _io_num_2_T_47 = _io_num_2_T_31 ? 4'he : 4'h0;
  wire [6:0] _io_num_2_T_48 = _io_num_2_T_32 | _io_num_2_T_33;
  wire [6:0] _GEN_24 = {{1'd0}, _io_num_2_T_34};
  wire [6:0] _io_num_2_T_49 = _io_num_2_T_48 | _GEN_24;
  wire [6:0] _GEN_25 = {{1'd0}, _io_num_2_T_35};
  wire [6:0] _io_num_2_T_50 = _io_num_2_T_49 | _GEN_25;
  wire [6:0] _GEN_26 = {{2'd0}, _io_num_2_T_36};
  wire [6:0] _io_num_2_T_51 = _io_num_2_T_50 | _GEN_26;
  wire [6:0] _GEN_27 = {{2'd0}, _io_num_2_T_37};
  wire [6:0] _io_num_2_T_52 = _io_num_2_T_51 | _GEN_27;
  wire [6:0] _GEN_28 = {{5'd0}, _io_num_2_T_38};
  wire [6:0] _io_num_2_T_53 = _io_num_2_T_52 | _GEN_28;
  wire [6:0] _io_num_2_T_54 = _io_num_2_T_53 | _io_num_2_T_39;
  wire [6:0] _io_num_2_T_56 = _io_num_2_T_54 | _io_num_2_T_41;
  wire [6:0] _GEN_29 = {{3'd0}, _io_num_2_T_42};
  wire [6:0] _io_num_2_T_57 = _io_num_2_T_56 | _GEN_29;
  wire [6:0] _GEN_30 = {{5'd0}, _io_num_2_T_43};
  wire [6:0] _io_num_2_T_58 = _io_num_2_T_57 | _GEN_30;
  wire [6:0] _io_num_2_T_59 = _io_num_2_T_58 | _io_num_2_T_44;
  wire [6:0] _GEN_31 = {{1'd0}, _io_num_2_T_45};
  wire [6:0] _io_num_2_T_60 = _io_num_2_T_59 | _GEN_31;
  wire [6:0] _GEN_32 = {{4'd0}, _io_num_2_T_46};
  wire [6:0] _io_num_2_T_61 = _io_num_2_T_60 | _GEN_32;
  wire [6:0] _GEN_33 = {{3'd0}, _io_num_2_T_47};
  wire [6:0] _io_num_2_T_62 = _io_num_2_T_61 | _GEN_33;
  wire  _io_num_3_T_1 = lfsr[15:12] == 4'h0;
  wire  _io_num_3_T_3 = lfsr[15:12] == 4'h1;
  wire  _io_num_3_T_5 = lfsr[15:12] == 4'h2;
  wire  _io_num_3_T_7 = lfsr[15:12] == 4'h3;
  wire  _io_num_3_T_9 = lfsr[15:12] == 4'h4;
  wire  _io_num_3_T_11 = lfsr[15:12] == 4'h5;
  wire  _io_num_3_T_13 = lfsr[15:12] == 4'h6;
  wire  _io_num_3_T_15 = lfsr[15:12] == 4'h7;
  wire  _io_num_3_T_19 = lfsr[15:12] == 4'h9;
  wire  _io_num_3_T_21 = lfsr[15:12] == 4'ha;
  wire  _io_num_3_T_23 = lfsr[15:12] == 4'hb;
  wire  _io_num_3_T_25 = lfsr[15:12] == 4'hc;
  wire  _io_num_3_T_27 = lfsr[15:12] == 4'hd;
  wire  _io_num_3_T_29 = lfsr[15:12] == 4'he;
  wire  _io_num_3_T_31 = lfsr[15:12] == 4'hf;
  wire [6:0] _io_num_3_T_32 = _io_num_3_T_1 ? 7'h40 : 7'h0;
  wire [6:0] _io_num_3_T_33 = _io_num_3_T_3 ? 7'h79 : 7'h0;
  wire [5:0] _io_num_3_T_34 = _io_num_3_T_5 ? 6'h24 : 6'h0;
  wire [5:0] _io_num_3_T_35 = _io_num_3_T_7 ? 6'h30 : 6'h0;
  wire [4:0] _io_num_3_T_36 = _io_num_3_T_9 ? 5'h19 : 5'h0;
  wire [4:0] _io_num_3_T_37 = _io_num_3_T_11 ? 5'h12 : 5'h0;
  wire [1:0] _io_num_3_T_38 = _io_num_3_T_13 ? 2'h2 : 2'h0;
  wire [6:0] _io_num_3_T_39 = _io_num_3_T_15 ? 7'h78 : 7'h0;
  wire [6:0] _io_num_3_T_41 = _io_num_3_T_19 ? 7'h6f : 7'h0;
  wire [3:0] _io_num_3_T_42 = _io_num_3_T_21 ? 4'h8 : 4'h0;
  wire [1:0] _io_num_3_T_43 = _io_num_3_T_23 ? 2'h3 : 2'h0;
  wire [6:0] _io_num_3_T_44 = _io_num_3_T_25 ? 7'h46 : 7'h0;
  wire [5:0] _io_num_3_T_45 = _io_num_3_T_27 ? 6'h21 : 6'h0;
  wire [2:0] _io_num_3_T_46 = _io_num_3_T_29 ? 3'h6 : 3'h0;
  wire [3:0] _io_num_3_T_47 = _io_num_3_T_31 ? 4'he : 4'h0;
  wire [6:0] _io_num_3_T_48 = _io_num_3_T_32 | _io_num_3_T_33;
  wire [6:0] _GEN_34 = {{1'd0}, _io_num_3_T_34};
  wire [6:0] _io_num_3_T_49 = _io_num_3_T_48 | _GEN_34;
  wire [6:0] _GEN_35 = {{1'd0}, _io_num_3_T_35};
  wire [6:0] _io_num_3_T_50 = _io_num_3_T_49 | _GEN_35;
  wire [6:0] _GEN_36 = {{2'd0}, _io_num_3_T_36};
  wire [6:0] _io_num_3_T_51 = _io_num_3_T_50 | _GEN_36;
  wire [6:0] _GEN_37 = {{2'd0}, _io_num_3_T_37};
  wire [6:0] _io_num_3_T_52 = _io_num_3_T_51 | _GEN_37;
  wire [6:0] _GEN_38 = {{5'd0}, _io_num_3_T_38};
  wire [6:0] _io_num_3_T_53 = _io_num_3_T_52 | _GEN_38;
  wire [6:0] _io_num_3_T_54 = _io_num_3_T_53 | _io_num_3_T_39;
  wire [6:0] _io_num_3_T_56 = _io_num_3_T_54 | _io_num_3_T_41;
  wire [6:0] _GEN_39 = {{3'd0}, _io_num_3_T_42};
  wire [6:0] _io_num_3_T_57 = _io_num_3_T_56 | _GEN_39;
  wire [6:0] _GEN_40 = {{5'd0}, _io_num_3_T_43};
  wire [6:0] _io_num_3_T_58 = _io_num_3_T_57 | _GEN_40;
  wire [6:0] _io_num_3_T_59 = _io_num_3_T_58 | _io_num_3_T_44;
  wire [6:0] _GEN_41 = {{1'd0}, _io_num_3_T_45};
  wire [6:0] _io_num_3_T_60 = _io_num_3_T_59 | _GEN_41;
  wire [6:0] _GEN_42 = {{4'd0}, _io_num_3_T_46};
  wire [6:0] _io_num_3_T_61 = _io_num_3_T_60 | _GEN_42;
  wire [6:0] _GEN_43 = {{3'd0}, _io_num_3_T_47};
  wire [6:0] _io_num_3_T_62 = _io_num_3_T_61 | _GEN_43;
  MaxPeriodFibonacciLFSR lfsr_prng (
    .clock(lfsr_prng_clock),
    .reset(lfsr_prng_reset),
    .io_increment(lfsr_prng_io_increment),
    .io_out_0(lfsr_prng_io_out_0),
    .io_out_1(lfsr_prng_io_out_1),
    .io_out_2(lfsr_prng_io_out_2),
    .io_out_3(lfsr_prng_io_out_3),
    .io_out_4(lfsr_prng_io_out_4),
    .io_out_5(lfsr_prng_io_out_5),
    .io_out_6(lfsr_prng_io_out_6),
    .io_out_7(lfsr_prng_io_out_7),
    .io_out_8(lfsr_prng_io_out_8),
    .io_out_9(lfsr_prng_io_out_9),
    .io_out_10(lfsr_prng_io_out_10),
    .io_out_11(lfsr_prng_io_out_11),
    .io_out_12(lfsr_prng_io_out_12),
    .io_out_13(lfsr_prng_io_out_13),
    .io_out_14(lfsr_prng_io_out_14),
    .io_out_15(lfsr_prng_io_out_15)
  );
  assign io_num_0 = io_lock ? 7'h7f : _io_num_0_T_62;
  assign io_num_1 = io_lock ? 7'h7f : _io_num_1_T_62;
  assign io_num_2 = io_lock ? 7'h7f : _io_num_2_T_62;
  assign io_num_3 = io_lock ? 7'h7f : _io_num_3_T_62;
  assign lfsr_prng_clock = clock;
  assign lfsr_prng_reset = reset;
  assign lfsr_prng_io_increment = ~io_lock;
endmodule
module Sky130BLFSR(
  input        clock,
  input        reset,
  output [6:0] io_num_0,
  output [6:0] io_num_1,
  output [6:0] io_num_2,
  output [6:0] io_num_3,
  input        io_lock
);

  wire  lfsr_prng_clock;
  wire  lfsr_prng_reset;
  wire  lfsr_prng_io_increment;
  wire  lfsr_prng_io_out_0;
  wire  lfsr_prng_io_out_1;
  wire  lfsr_prng_io_out_2;
  wire  lfsr_prng_io_out_3;
  wire  lfsr_prng_io_out_4;
  wire  lfsr_prng_io_out_5;
  wire  lfsr_prng_io_out_6;
  wire  lfsr_prng_io_out_7;
  wire  lfsr_prng_io_out_8;
  wire  lfsr_prng_io_out_9;
  wire  lfsr_prng_io_out_10;
  wire  lfsr_prng_io_out_11;
  wire  lfsr_prng_io_out_12;
  wire  lfsr_prng_io_out_13;
  wire  lfsr_prng_io_out_14;
  wire  lfsr_prng_io_out_15;
  wire [7:0] lfsr_lo = {lfsr_prng_io_out_7,lfsr_prng_io_out_6,lfsr_prng_io_out_5,lfsr_prng_io_out_4,lfsr_prng_io_out_3,
    lfsr_prng_io_out_2,lfsr_prng_io_out_1,lfsr_prng_io_out_0};
  wire [15:0] lfsr = {lfsr_prng_io_out_15,lfsr_prng_io_out_14,lfsr_prng_io_out_13,lfsr_prng_io_out_12,
    lfsr_prng_io_out_11,lfsr_prng_io_out_10,lfsr_prng_io_out_9,lfsr_prng_io_out_8,lfsr_lo};
  wire  _io_num_0_T_1 = lfsr[3:0] == 4'h0;
  wire  _io_num_0_T_3 = lfsr[3:0] == 4'h1;
  wire  _io_num_0_T_5 = lfsr[3:0] == 4'h2;
  wire  _io_num_0_T_7 = lfsr[3:0] == 4'h3;
  wire  _io_num_0_T_9 = lfsr[3:0] == 4'h4;
  wire  _io_num_0_T_11 = lfsr[3:0] == 4'h5;
  wire  _io_num_0_T_13 = lfsr[3:0] == 4'h6;
  wire  _io_num_0_T_15 = lfsr[3:0] == 4'h7;
  wire  _io_num_0_T_19 = lfsr[3:0] == 4'h9;
  wire  _io_num_0_T_21 = lfsr[3:0] == 4'ha;
  wire  _io_num_0_T_23 = lfsr[3:0] == 4'hb;
  wire  _io_num_0_T_25 = lfsr[3:0] == 4'hc;
  wire  _io_num_0_T_27 = lfsr[3:0] == 4'hd;
  wire  _io_num_0_T_29 = lfsr[3:0] == 4'he;
  wire  _io_num_0_T_31 = lfsr[3:0] == 4'hf;
  wire [6:0] _io_num_0_T_32 = _io_num_0_T_1 ? 7'h40 : 7'h0;
  wire [6:0] _io_num_0_T_33 = _io_num_0_T_3 ? 7'h79 : 7'h0;
  wire [5:0] _io_num_0_T_34 = _io_num_0_T_5 ? 6'h24 : 6'h0;
  wire [5:0] _io_num_0_T_35 = _io_num_0_T_7 ? 6'h30 : 6'h0;
  wire [4:0] _io_num_0_T_36 = _io_num_0_T_9 ? 5'h19 : 5'h0;
  wire [4:0] _io_num_0_T_37 = _io_num_0_T_11 ? 5'h12 : 5'h0;
  wire [1:0] _io_num_0_T_38 = _io_num_0_T_13 ? 2'h2 : 2'h0;
  wire [6:0] _io_num_0_T_39 = _io_num_0_T_15 ? 7'h78 : 7'h0;
  wire [6:0] _io_num_0_T_41 = _io_num_0_T_19 ? 7'h6f : 7'h0;
  wire [3:0] _io_num_0_T_42 = _io_num_0_T_21 ? 4'h8 : 4'h0;
  wire [1:0] _io_num_0_T_43 = _io_num_0_T_23 ? 2'h3 : 2'h0;
  wire [6:0] _io_num_0_T_44 = _io_num_0_T_25 ? 7'h46 : 7'h0;
  wire [5:0] _io_num_0_T_45 = _io_num_0_T_27 ? 6'h21 : 6'h0;
  wire [2:0] _io_num_0_T_46 = _io_num_0_T_29 ? 3'h6 : 3'h0;
  wire [3:0] _io_num_0_T_47 = _io_num_0_T_31 ? 4'he : 4'h0;
  wire [6:0] _io_num_0_T_48 = _io_num_0_T_32 | _io_num_0_T_33;
  wire [6:0] _GEN_4 = {{1'd0}, _io_num_0_T_34};
  wire [6:0] _io_num_0_T_49 = _io_num_0_T_48 | _GEN_4;
  wire [6:0] _GEN_5 = {{1'd0}, _io_num_0_T_35};
  wire [6:0] _io_num_0_T_50 = _io_num_0_T_49 | _GEN_5;
  wire [6:0] _GEN_6 = {{2'd0}, _io_num_0_T_36};
  wire [6:0] _io_num_0_T_51 = _io_num_0_T_50 | _GEN_6;
  wire [6:0] _GEN_7 = {{2'd0}, _io_num_0_T_37};
  wire [6:0] _io_num_0_T_52 = _io_num_0_T_51 | _GEN_7;
  wire [6:0] _GEN_8 = {{5'd0}, _io_num_0_T_38};
  wire [6:0] _io_num_0_T_53 = _io_num_0_T_52 | _GEN_8;
  wire [6:0] _io_num_0_T_54 = _io_num_0_T_53 | _io_num_0_T_39;
  wire [6:0] _io_num_0_T_56 = _io_num_0_T_54 | _io_num_0_T_41;
  wire [6:0] _GEN_9 = {{3'd0}, _io_num_0_T_42};
  wire [6:0] _io_num_0_T_57 = _io_num_0_T_56 | _GEN_9;
  wire [6:0] _GEN_10 = {{5'd0}, _io_num_0_T_43};
  wire [6:0] _io_num_0_T_58 = _io_num_0_T_57 | _GEN_10;
  wire [6:0] _io_num_0_T_59 = _io_num_0_T_58 | _io_num_0_T_44;
  wire [6:0] _GEN_11 = {{1'd0}, _io_num_0_T_45};
  wire [6:0] _io_num_0_T_60 = _io_num_0_T_59 | _GEN_11;
  wire [6:0] _GEN_12 = {{4'd0}, _io_num_0_T_46};
  wire [6:0] _io_num_0_T_61 = _io_num_0_T_60 | _GEN_12;
  wire [6:0] _GEN_13 = {{3'd0}, _io_num_0_T_47};
  wire [6:0] _io_num_0_T_62 = _io_num_0_T_61 | _GEN_13;
  wire  _io_num_1_T_1 = lfsr[7:4] == 4'h0;
  wire  _io_num_1_T_3 = lfsr[7:4] == 4'h1;
  wire  _io_num_1_T_5 = lfsr[7:4] == 4'h2;
  wire  _io_num_1_T_7 = lfsr[7:4] == 4'h3;
  wire  _io_num_1_T_9 = lfsr[7:4] == 4'h4;
  wire  _io_num_1_T_11 = lfsr[7:4] == 4'h5;
  wire  _io_num_1_T_13 = lfsr[7:4] == 4'h6;
  wire  _io_num_1_T_15 = lfsr[7:4] == 4'h7;
  wire  _io_num_1_T_19 = lfsr[7:4] == 4'h9;
  wire  _io_num_1_T_21 = lfsr[7:4] == 4'ha;
  wire  _io_num_1_T_23 = lfsr[7:4] == 4'hb;
  wire  _io_num_1_T_25 = lfsr[7:4] == 4'hc;
  wire  _io_num_1_T_27 = lfsr[7:4] == 4'hd;
  wire  _io_num_1_T_29 = lfsr[7:4] == 4'he;
  wire  _io_num_1_T_31 = lfsr[7:4] == 4'hf;
  wire [6:0] _io_num_1_T_32 = _io_num_1_T_1 ? 7'h40 : 7'h0;
  wire [6:0] _io_num_1_T_33 = _io_num_1_T_3 ? 7'h79 : 7'h0;
  wire [5:0] _io_num_1_T_34 = _io_num_1_T_5 ? 6'h24 : 6'h0;
  wire [5:0] _io_num_1_T_35 = _io_num_1_T_7 ? 6'h30 : 6'h0;
  wire [4:0] _io_num_1_T_36 = _io_num_1_T_9 ? 5'h19 : 5'h0;
  wire [4:0] _io_num_1_T_37 = _io_num_1_T_11 ? 5'h12 : 5'h0;
  wire [1:0] _io_num_1_T_38 = _io_num_1_T_13 ? 2'h2 : 2'h0;
  wire [6:0] _io_num_1_T_39 = _io_num_1_T_15 ? 7'h78 : 7'h0;
  wire [6:0] _io_num_1_T_41 = _io_num_1_T_19 ? 7'h6f : 7'h0;
  wire [3:0] _io_num_1_T_42 = _io_num_1_T_21 ? 4'h8 : 4'h0;
  wire [1:0] _io_num_1_T_43 = _io_num_1_T_23 ? 2'h3 : 2'h0;
  wire [6:0] _io_num_1_T_44 = _io_num_1_T_25 ? 7'h46 : 7'h0;
  wire [5:0] _io_num_1_T_45 = _io_num_1_T_27 ? 6'h21 : 6'h0;
  wire [2:0] _io_num_1_T_46 = _io_num_1_T_29 ? 3'h6 : 3'h0;
  wire [3:0] _io_num_1_T_47 = _io_num_1_T_31 ? 4'he : 4'h0;
  wire [6:0] _io_num_1_T_48 = _io_num_1_T_32 | _io_num_1_T_33;
  wire [6:0] _GEN_14 = {{1'd0}, _io_num_1_T_34};
  wire [6:0] _io_num_1_T_49 = _io_num_1_T_48 | _GEN_14;
  wire [6:0] _GEN_15 = {{1'd0}, _io_num_1_T_35};
  wire [6:0] _io_num_1_T_50 = _io_num_1_T_49 | _GEN_15;
  wire [6:0] _GEN_16 = {{2'd0}, _io_num_1_T_36};
  wire [6:0] _io_num_1_T_51 = _io_num_1_T_50 | _GEN_16;
  wire [6:0] _GEN_17 = {{2'd0}, _io_num_1_T_37};
  wire [6:0] _io_num_1_T_52 = _io_num_1_T_51 | _GEN_17;
  wire [6:0] _GEN_18 = {{5'd0}, _io_num_1_T_38};
  wire [6:0] _io_num_1_T_53 = _io_num_1_T_52 | _GEN_18;
  wire [6:0] _io_num_1_T_54 = _io_num_1_T_53 | _io_num_1_T_39;
  wire [6:0] _io_num_1_T_56 = _io_num_1_T_54 | _io_num_1_T_41;
  wire [6:0] _GEN_19 = {{3'd0}, _io_num_1_T_42};
  wire [6:0] _io_num_1_T_57 = _io_num_1_T_56 | _GEN_19;
  wire [6:0] _GEN_20 = {{5'd0}, _io_num_1_T_43};
  wire [6:0] _io_num_1_T_58 = _io_num_1_T_57 | _GEN_20;
  wire [6:0] _io_num_1_T_59 = _io_num_1_T_58 | _io_num_1_T_44;
  wire [6:0] _GEN_21 = {{1'd0}, _io_num_1_T_45};
  wire [6:0] _io_num_1_T_60 = _io_num_1_T_59 | _GEN_21;
  wire [6:0] _GEN_22 = {{4'd0}, _io_num_1_T_46};
  wire [6:0] _io_num_1_T_61 = _io_num_1_T_60 | _GEN_22;
  wire [6:0] _GEN_23 = {{3'd0}, _io_num_1_T_47};
  wire [6:0] _io_num_1_T_62 = _io_num_1_T_61 | _GEN_23;
  wire  _io_num_2_T_1 = lfsr[11:8] == 4'h0;
  wire  _io_num_2_T_3 = lfsr[11:8] == 4'h1;
  wire  _io_num_2_T_5 = lfsr[11:8] == 4'h2;
  wire  _io_num_2_T_7 = lfsr[11:8] == 4'h3;
  wire  _io_num_2_T_9 = lfsr[11:8] == 4'h4;
  wire  _io_num_2_T_11 = lfsr[11:8] == 4'h5;
  wire  _io_num_2_T_13 = lfsr[11:8] == 4'h6;
  wire  _io_num_2_T_15 = lfsr[11:8] == 4'h7;
  wire  _io_num_2_T_19 = lfsr[11:8] == 4'h9;
  wire  _io_num_2_T_21 = lfsr[11:8] == 4'ha;
  wire  _io_num_2_T_23 = lfsr[11:8] == 4'hb;
  wire  _io_num_2_T_25 = lfsr[11:8] == 4'hc;
  wire  _io_num_2_T_27 = lfsr[11:8] == 4'hd;
  wire  _io_num_2_T_29 = lfsr[11:8] == 4'he;
  wire  _io_num_2_T_31 = lfsr[11:8] == 4'hf;
  wire [6:0] _io_num_2_T_32 = _io_num_2_T_1 ? 7'h40 : 7'h0;
  wire [6:0] _io_num_2_T_33 = _io_num_2_T_3 ? 7'h79 : 7'h0;
  wire [5:0] _io_num_2_T_34 = _io_num_2_T_5 ? 6'h24 : 6'h0;
  wire [5:0] _io_num_2_T_35 = _io_num_2_T_7 ? 6'h30 : 6'h0;
  wire [4:0] _io_num_2_T_36 = _io_num_2_T_9 ? 5'h19 : 5'h0;
  wire [4:0] _io_num_2_T_37 = _io_num_2_T_11 ? 5'h12 : 5'h0;
  wire [1:0] _io_num_2_T_38 = _io_num_2_T_13 ? 2'h2 : 2'h0;
  wire [6:0] _io_num_2_T_39 = _io_num_2_T_15 ? 7'h78 : 7'h0;
  wire [6:0] _io_num_2_T_41 = _io_num_2_T_19 ? 7'h6f : 7'h0;
  wire [3:0] _io_num_2_T_42 = _io_num_2_T_21 ? 4'h8 : 4'h0;
  wire [1:0] _io_num_2_T_43 = _io_num_2_T_23 ? 2'h3 : 2'h0;
  wire [6:0] _io_num_2_T_44 = _io_num_2_T_25 ? 7'h46 : 7'h0;
  wire [5:0] _io_num_2_T_45 = _io_num_2_T_27 ? 6'h21 : 6'h0;
  wire [2:0] _io_num_2_T_46 = _io_num_2_T_29 ? 3'h6 : 3'h0;
  wire [3:0] _io_num_2_T_47 = _io_num_2_T_31 ? 4'he : 4'h0;
  wire [6:0] _io_num_2_T_48 = _io_num_2_T_32 | _io_num_2_T_33;
  wire [6:0] _GEN_24 = {{1'd0}, _io_num_2_T_34};
  wire [6:0] _io_num_2_T_49 = _io_num_2_T_48 | _GEN_24;
  wire [6:0] _GEN_25 = {{1'd0}, _io_num_2_T_35};
  wire [6:0] _io_num_2_T_50 = _io_num_2_T_49 | _GEN_25;
  wire [6:0] _GEN_26 = {{2'd0}, _io_num_2_T_36};
  wire [6:0] _io_num_2_T_51 = _io_num_2_T_50 | _GEN_26;
  wire [6:0] _GEN_27 = {{2'd0}, _io_num_2_T_37};
  wire [6:0] _io_num_2_T_52 = _io_num_2_T_51 | _GEN_27;
  wire [6:0] _GEN_28 = {{5'd0}, _io_num_2_T_38};
  wire [6:0] _io_num_2_T_53 = _io_num_2_T_52 | _GEN_28;
  wire [6:0] _io_num_2_T_54 = _io_num_2_T_53 | _io_num_2_T_39;
  wire [6:0] _io_num_2_T_56 = _io_num_2_T_54 | _io_num_2_T_41;
  wire [6:0] _GEN_29 = {{3'd0}, _io_num_2_T_42};
  wire [6:0] _io_num_2_T_57 = _io_num_2_T_56 | _GEN_29;
  wire [6:0] _GEN_30 = {{5'd0}, _io_num_2_T_43};
  wire [6:0] _io_num_2_T_58 = _io_num_2_T_57 | _GEN_30;
  wire [6:0] _io_num_2_T_59 = _io_num_2_T_58 | _io_num_2_T_44;
  wire [6:0] _GEN_31 = {{1'd0}, _io_num_2_T_45};
  wire [6:0] _io_num_2_T_60 = _io_num_2_T_59 | _GEN_31;
  wire [6:0] _GEN_32 = {{4'd0}, _io_num_2_T_46};
  wire [6:0] _io_num_2_T_61 = _io_num_2_T_60 | _GEN_32;
  wire [6:0] _GEN_33 = {{3'd0}, _io_num_2_T_47};
  wire [6:0] _io_num_2_T_62 = _io_num_2_T_61 | _GEN_33;
  wire  _io_num_3_T_1 = lfsr[15:12] == 4'h0;
  wire  _io_num_3_T_3 = lfsr[15:12] == 4'h1;
  wire  _io_num_3_T_5 = lfsr[15:12] == 4'h2;
  wire  _io_num_3_T_7 = lfsr[15:12] == 4'h3;
  wire  _io_num_3_T_9 = lfsr[15:12] == 4'h4;
  wire  _io_num_3_T_11 = lfsr[15:12] == 4'h5;
  wire  _io_num_3_T_13 = lfsr[15:12] == 4'h6;
  wire  _io_num_3_T_15 = lfsr[15:12] == 4'h7;
  wire  _io_num_3_T_19 = lfsr[15:12] == 4'h9;
  wire  _io_num_3_T_21 = lfsr[15:12] == 4'ha;
  wire  _io_num_3_T_23 = lfsr[15:12] == 4'hb;
  wire  _io_num_3_T_25 = lfsr[15:12] == 4'hc;
  wire  _io_num_3_T_27 = lfsr[15:12] == 4'hd;
  wire  _io_num_3_T_29 = lfsr[15:12] == 4'he;
  wire  _io_num_3_T_31 = lfsr[15:12] == 4'hf;
  wire [6:0] _io_num_3_T_32 = _io_num_3_T_1 ? 7'h40 : 7'h0;
  wire [6:0] _io_num_3_T_33 = _io_num_3_T_3 ? 7'h79 : 7'h0;
  wire [5:0] _io_num_3_T_34 = _io_num_3_T_5 ? 6'h24 : 6'h0;
  wire [5:0] _io_num_3_T_35 = _io_num_3_T_7 ? 6'h30 : 6'h0;
  wire [4:0] _io_num_3_T_36 = _io_num_3_T_9 ? 5'h19 : 5'h0;
  wire [4:0] _io_num_3_T_37 = _io_num_3_T_11 ? 5'h12 : 5'h0;
  wire [1:0] _io_num_3_T_38 = _io_num_3_T_13 ? 2'h2 : 2'h0;
  wire [6:0] _io_num_3_T_39 = _io_num_3_T_15 ? 7'h78 : 7'h0;
  wire [6:0] _io_num_3_T_41 = _io_num_3_T_19 ? 7'h6f : 7'h0;
  wire [3:0] _io_num_3_T_42 = _io_num_3_T_21 ? 4'h8 : 4'h0;
  wire [1:0] _io_num_3_T_43 = _io_num_3_T_23 ? 2'h3 : 2'h0;
  wire [6:0] _io_num_3_T_44 = _io_num_3_T_25 ? 7'h46 : 7'h0;
  wire [5:0] _io_num_3_T_45 = _io_num_3_T_27 ? 6'h21 : 6'h0;
  wire [2:0] _io_num_3_T_46 = _io_num_3_T_29 ? 3'h6 : 3'h0;
  wire [3:0] _io_num_3_T_47 = _io_num_3_T_31 ? 4'he : 4'h0;
  wire [6:0] _io_num_3_T_48 = _io_num_3_T_32 | _io_num_3_T_33;
  wire [6:0] _GEN_34 = {{1'd0}, _io_num_3_T_34};
  wire [6:0] _io_num_3_T_49 = _io_num_3_T_48 | _GEN_34;
  wire [6:0] _GEN_35 = {{1'd0}, _io_num_3_T_35};
  wire [6:0] _io_num_3_T_50 = _io_num_3_T_49 | _GEN_35;
  wire [6:0] _GEN_36 = {{2'd0}, _io_num_3_T_36};
  wire [6:0] _io_num_3_T_51 = _io_num_3_T_50 | _GEN_36;
  wire [6:0] _GEN_37 = {{2'd0}, _io_num_3_T_37};
  wire [6:0] _io_num_3_T_52 = _io_num_3_T_51 | _GEN_37;
  wire [6:0] _GEN_38 = {{5'd0}, _io_num_3_T_38};
  wire [6:0] _io_num_3_T_53 = _io_num_3_T_52 | _GEN_38;
  wire [6:0] _io_num_3_T_54 = _io_num_3_T_53 | _io_num_3_T_39;
  wire [6:0] _io_num_3_T_56 = _io_num_3_T_54 | _io_num_3_T_41;
  wire [6:0] _GEN_39 = {{3'd0}, _io_num_3_T_42};
  wire [6:0] _io_num_3_T_57 = _io_num_3_T_56 | _GEN_39;
  wire [6:0] _GEN_40 = {{5'd0}, _io_num_3_T_43};
  wire [6:0] _io_num_3_T_58 = _io_num_3_T_57 | _GEN_40;
  wire [6:0] _io_num_3_T_59 = _io_num_3_T_58 | _io_num_3_T_44;
  wire [6:0] _GEN_41 = {{1'd0}, _io_num_3_T_45};
  wire [6:0] _io_num_3_T_60 = _io_num_3_T_59 | _GEN_41;
  wire [6:0] _GEN_42 = {{4'd0}, _io_num_3_T_46};
  wire [6:0] _io_num_3_T_61 = _io_num_3_T_60 | _GEN_42;
  wire [6:0] _GEN_43 = {{3'd0}, _io_num_3_T_47};
  wire [6:0] _io_num_3_T_62 = _io_num_3_T_61 | _GEN_43;
  MaxPeriodFibonacciLFSR lfsr_prng (
    .clock(lfsr_prng_clock),
    .reset(lfsr_prng_reset),
    .io_increment(lfsr_prng_io_increment),
    .io_out_0(lfsr_prng_io_out_0),
    .io_out_1(lfsr_prng_io_out_1),
    .io_out_2(lfsr_prng_io_out_2),
    .io_out_3(lfsr_prng_io_out_3),
    .io_out_4(lfsr_prng_io_out_4),
    .io_out_5(lfsr_prng_io_out_5),
    .io_out_6(lfsr_prng_io_out_6),
    .io_out_7(lfsr_prng_io_out_7),
    .io_out_8(lfsr_prng_io_out_8),
    .io_out_9(lfsr_prng_io_out_9),
    .io_out_10(lfsr_prng_io_out_10),
    .io_out_11(lfsr_prng_io_out_11),
    .io_out_12(lfsr_prng_io_out_12),
    .io_out_13(lfsr_prng_io_out_13),
    .io_out_14(lfsr_prng_io_out_14),
    .io_out_15(lfsr_prng_io_out_15)
  );
  assign io_num_0 = io_lock ? 7'h7f : _io_num_0_T_62;
  assign io_num_1 = io_lock ? 7'h7f : _io_num_1_T_62;
  assign io_num_2 = io_lock ? 7'h7f : _io_num_2_T_62;
  assign io_num_3 = io_lock ? 7'h7f : _io_num_3_T_62;
  assign lfsr_prng_clock = clock;
  assign lfsr_prng_reset = reset;
  assign lfsr_prng_io_increment = ~io_lock;
endmodule