/* Machine-generated using Migen */ module top( inout clk_if, inout i2c_scl, inout i2c_sda, output fx2_sloe, output fx2_slrd, output fx2_slwr, output fx2_pktend, output [1:0] fx2_fifoadr, input [3:0] fx2_flag, inout [7:0] fx2_fd, inout [7:0] io, inout [7:0] io_1 ); wire por_clk; wire sys_clk; wire sys_rst; wire clk_buf; reg [10:0] reset_delay = 11'd2047; wire tstriple0_o0; wire tstriple0_oe0; wire tstriple0_i0; wire tstriple1_o0; wire tstriple1_oe0; wire tstriple1_i0; wire [6:0] i2c_slave_address; reg i2c_slave_start; wire i2c_slave_stop; wire i2c_slave_write; reg [7:0] i2c_slave_data_i = 8'd0; reg i2c_slave_ack_o; wire i2c_slave_read; wire [7:0] i2c_slave_data_o; wire i2c_slave_scl_i; reg i2c_slave_scl_o = 1'd1; wire i2c_slave_sda_i; reg i2c_slave_sda_o = 1'd1; wire i2c_slave_bus_sample; wire i2c_slave_bus_setup; wire i2c_slave_bus_start; wire i2c_slave_bus_stop; reg i2c_slave_scl_r = 1'd1; reg i2c_slave_sda_r = 1'd1; reg [2:0] i2c_slave_bitno = 3'd0; reg [7:0] i2c_slave_shreg_i = 8'd0; reg [7:0] i2c_slave_shreg_o = 8'd0; reg i2c_slave_signal_is_el0 = 1'd1; wire i2c_slave_fsm_is_el0; reg i2c_slave_signal_is_el1 = 1'd0; wire i2c_slave_fsm_is_el1; wire i2c_slave_fsm_is_el2; reg [7:0] registers_address = 8'd0; reg dummyfifo0_we; reg dummyfifo0_writable = 1'd0; reg [7:0] dummyfifo0_din; reg dummyfifo1_we; reg dummyfifo1_writable = 1'd0; reg [7:0] dummyfifo1_din; reg dummyfifo2_re; reg dummyfifo2_readable = 1'd0; reg [7:0] dummyfifo2_dout = 8'd0; reg dummyfifo3_re; reg dummyfifo3_readable = 1'd0; reg [7:0] dummyfifo3_dout = 8'd0; wire tstriple0_o1; wire tstriple0_oe1; wire tstriple0_i1; wire tstriple1_o1; wire tstriple1_oe1; wire tstriple1_i1; wire tstriple2_o0; wire tstriple2_oe0; wire tstriple2_i0; wire tstriple3_o0; wire tstriple3_oe0; wire tstriple3_i0; wire tstriple4_o0; wire tstriple4_oe0; wire tstriple4_i0; wire tstriple5_o0; wire tstriple5_oe0; wire tstriple5_i0; wire tstriple6_o0; wire tstriple6_oe0; wire tstriple6_i0; wire tstriple7_o0; wire tstriple7_oe0; wire tstriple7_i0; wire tstriple0_o2; wire tstriple0_oe2; wire tstriple0_i2; wire tstriple1_o2; wire tstriple1_oe2; wire tstriple1_i2; wire tstriple2_o1; wire tstriple2_oe1; wire tstriple2_i1; wire tstriple3_o1; wire tstriple3_oe1; wire tstriple3_i1; wire tstriple4_o1; wire tstriple4_oe1; wire tstriple4_i1; wire tstriple5_o1; wire tstriple5_oe1; wire tstriple5_i1; wire tstriple6_o1; wire tstriple6_oe1; wire tstriple6_i1; wire tstriple7_o1; wire tstriple7_oe1; wire tstriple7_i1; reg [7:0] reg0 = 8'd0; reg [7:0] reg1 = 8'd0; wire [7:0] reg2; reg ro_reg_dummy0 = 1'd0; reg [7:0] reg3 = 8'd0; reg [7:0] reg4 = 8'd0; wire [7:0] reg5; reg ro_reg_dummy1 = 1'd0; reg [2:0] i2cslave_state = 3'd0; reg [2:0] i2cslave_next_state; reg [2:0] i2c_slave_bitno_i2cslave_next_value; reg i2c_slave_bitno_i2cslave_next_value_ce; reg [7:0] i2c_slave_shreg_i_i2cslave_t_next_value; reg i2c_slave_shreg_i_i2cslave_t_next_value_ce; reg i2c_slave_sda_o_i2cslave_f_next_value0; reg i2c_slave_sda_o_i2cslave_f_next_value_ce0; reg [7:0] i2c_slave_shreg_o_i2cslave_f_next_value1; reg i2c_slave_shreg_o_i2cslave_f_next_value_ce1; reg [7:0] i2c_slave_data_i_i2cslave_f_next_value2; reg i2c_slave_data_i_i2cslave_f_next_value_ce2; reg latch_addr = 1'd0; reg [1:0] fx2arbiter_addr = 2'd0; wire [7:0] fx2arbiter_o; reg fx2arbiter_oe = 1'd0; wire [7:0] fx2arbiter_i; reg fx2arbiter_sloe = 1'd0; reg fx2arbiter_slrd; reg fx2arbiter_slwr; reg fx2arbiter_pend; wire [3:0] fx2arbiter_rdy; reg [1:0] fx2arbiter_naddr; reg [2:0] fx2arbiter_state = 3'd0; reg [2:0] fx2arbiter_next_state; reg [1:0] fx2arbiter_addr_fx2arbiter_next_value; reg fx2arbiter_addr_fx2arbiter_next_value_ce; reg fx2arbiter_sloe_fx2arbiter_t_next_value; reg fx2arbiter_sloe_fx2arbiter_t_next_value_ce; reg fx2arbiter_oe_fx2arbiter_f_next_value; reg fx2arbiter_oe_fx2arbiter_f_next_value_ce; reg [7:0] rhs_array_muxed0; wire [7:0] lhs_array_muxed; reg [7:0] rhs_array_muxed1; reg basiclowerer_array_muxed0; reg t_array_muxed0; reg rhs_array_muxed2; reg basiclowerer_array_muxed1; reg t_array_muxed1; reg basiclowerer_array_muxed2; reg t_array_muxed2; reg [7:0] array_muxed = 8'd0; reg multiregimpl0_regs0 = 1'd1; reg multiregimpl0_regs1 = 1'd1; reg multiregimpl1_regs0 = 1'd1; reg multiregimpl1_regs1 = 1'd1; // Adding a dummy event (using a dummy signal 'dummy_s') to get the simulator // to run the combinatorial process once at the beginning. // synthesis translate_off reg dummy_s; initial dummy_s <= 1'd0; // synthesis translate_on assign i2c_slave_address = 4'd8; assign sys_clk = por_clk; assign sys_rst = (reset_delay != 1'd0); assign i2c_slave_stop = i2c_slave_signal_is_el0; assign i2c_slave_write = i2c_slave_signal_is_el1; assign i2c_slave_read = i2c_slave_fsm_is_el2; assign tstriple0_o0 = 1'd0; assign tstriple0_oe0 = (~i2c_slave_scl_o); assign tstriple1_o0 = 1'd0; assign tstriple1_oe0 = (~i2c_slave_sda_o); assign i2c_slave_bus_sample = ((~i2c_slave_scl_r) & i2c_slave_scl_i); assign i2c_slave_bus_setup = (i2c_slave_scl_r & (~i2c_slave_scl_i)); assign i2c_slave_bus_start = ((i2c_slave_scl_i & i2c_slave_sda_r) & (~i2c_slave_sda_i)); assign i2c_slave_bus_stop = ((i2c_slave_scl_i & (~i2c_slave_sda_r)) & i2c_slave_sda_i); // synthesis translate_off reg dummy_d; // synthesis translate_on always @(*) begin i2c_slave_start <= 1'd0; i2cslave_next_state <= 3'd0; i2c_slave_bitno_i2cslave_next_value <= 3'd0; i2c_slave_bitno_i2cslave_next_value_ce <= 1'd0; i2c_slave_shreg_i_i2cslave_t_next_value <= 8'd0; i2c_slave_shreg_i_i2cslave_t_next_value_ce <= 1'd0; i2c_slave_sda_o_i2cslave_f_next_value0 <= 1'd0; i2c_slave_sda_o_i2cslave_f_next_value_ce0 <= 1'd0; i2c_slave_shreg_o_i2cslave_f_next_value1 <= 8'd0; i2c_slave_shreg_o_i2cslave_f_next_value_ce1 <= 1'd0; i2c_slave_data_i_i2cslave_f_next_value2 <= 8'd0; i2c_slave_data_i_i2cslave_f_next_value_ce2 <= 1'd0; i2cslave_next_state <= i2cslave_state; case (i2cslave_state) 1'd1: begin if (i2c_slave_bus_stop) begin i2cslave_next_state <= 1'd0; end else begin if (i2c_slave_bus_setup) begin i2c_slave_bitno_i2cslave_next_value <= 1'd0; i2c_slave_bitno_i2cslave_next_value_ce <= 1'd1; i2cslave_next_state <= 2'd2; end end end 2'd2: begin if (i2c_slave_bus_stop) begin i2cslave_next_state <= 1'd0; end else begin if (i2c_slave_bus_start) begin i2cslave_next_state <= 1'd1; end else begin if (i2c_slave_bus_sample) begin i2c_slave_shreg_i_i2cslave_t_next_value <= ((i2c_slave_shreg_i <<< 1'd1) | i2c_slave_sda_i); i2c_slave_shreg_i_i2cslave_t_next_value_ce <= 1'd1; end else begin if (i2c_slave_bus_setup) begin i2c_slave_bitno_i2cslave_next_value <= (i2c_slave_bitno + 1'd1); i2c_slave_bitno_i2cslave_next_value_ce <= 1'd1; if ((i2c_slave_bitno == 3'd7)) begin if ((i2c_slave_shreg_i[7:1] == i2c_slave_address)) begin i2c_slave_sda_o_i2cslave_f_next_value0 <= 1'd0; i2c_slave_sda_o_i2cslave_f_next_value_ce0 <= 1'd1; i2cslave_next_state <= 2'd3; end else begin i2cslave_next_state <= 1'd0; end end end end end end end 2'd3: begin if (i2c_slave_bus_stop) begin i2cslave_next_state <= 1'd0; end else begin if (i2c_slave_bus_start) begin i2cslave_next_state <= 1'd1; end else begin if (i2c_slave_bus_setup) begin if ((~i2c_slave_shreg_i[0])) begin i2c_slave_start <= 1'd1; i2c_slave_sda_o_i2cslave_f_next_value0 <= 1'd1; i2c_slave_sda_o_i2cslave_f_next_value_ce0 <= 1'd1; i2cslave_next_state <= 3'd4; end end else begin if (i2c_slave_bus_sample) begin if (i2c_slave_shreg_i[0]) begin i2c_slave_start <= 1'd1; i2cslave_next_state <= 3'd6; i2c_slave_shreg_o_i2cslave_f_next_value1 <= i2c_slave_data_o; i2c_slave_shreg_o_i2cslave_f_next_value_ce1 <= 1'd1; end end end end end end 3'd4: begin if (i2c_slave_bus_stop) begin i2cslave_next_state <= 1'd0; end else begin if (i2c_slave_bus_start) begin i2cslave_next_state <= 1'd1; end else begin if (i2c_slave_bus_sample) begin i2c_slave_shreg_i_i2cslave_t_next_value <= ((i2c_slave_shreg_i <<< 1'd1) | i2c_slave_sda_i); i2c_slave_shreg_i_i2cslave_t_next_value_ce <= 1'd1; end else begin if (i2c_slave_bus_setup) begin i2c_slave_bitno_i2cslave_next_value <= (i2c_slave_bitno + 1'd1); i2c_slave_bitno_i2cslave_next_value_ce <= 1'd1; if ((i2c_slave_bitno == 3'd7)) begin i2c_slave_data_i_i2cslave_f_next_value2 <= i2c_slave_shreg_i; i2c_slave_data_i_i2cslave_f_next_value_ce2 <= 1'd1; i2cslave_next_state <= 3'd5; end end end end end end 3'd5: begin if (i2c_slave_bus_stop) begin i2cslave_next_state <= 1'd0; end else begin if (i2c_slave_bus_start) begin i2cslave_next_state <= 1'd1; end else begin if (((~i2c_slave_scl_i) & i2c_slave_ack_o)) begin i2c_slave_sda_o_i2cslave_f_next_value0 <= 1'd0; i2c_slave_sda_o_i2cslave_f_next_value_ce0 <= 1'd1; end else begin if (i2c_slave_bus_setup) begin i2c_slave_sda_o_i2cslave_f_next_value0 <= 1'd1; i2c_slave_sda_o_i2cslave_f_next_value_ce0 <= 1'd1; i2cslave_next_state <= 3'd4; end end end end end 3'd6: begin if (i2c_slave_bus_stop) begin i2cslave_next_state <= 1'd0; end else begin if (i2c_slave_bus_start) begin i2cslave_next_state <= 1'd1; end else begin if (i2c_slave_bus_setup) begin i2c_slave_bitno_i2cslave_next_value <= (i2c_slave_bitno + 1'd1); i2c_slave_bitno_i2cslave_next_value_ce <= 1'd1; i2c_slave_sda_o_i2cslave_f_next_value0 <= i2c_slave_shreg_o[7]; i2c_slave_sda_o_i2cslave_f_next_value_ce0 <= 1'd1; i2c_slave_shreg_o_i2cslave_f_next_value1 <= (i2c_slave_shreg_o <<< 1'd1); i2c_slave_shreg_o_i2cslave_f_next_value_ce1 <= 1'd1; end else begin if (i2c_slave_bus_sample) begin if ((i2c_slave_bitno == 1'd0)) begin i2c_slave_sda_o_i2cslave_f_next_value0 <= 1'd1; i2c_slave_sda_o_i2cslave_f_next_value_ce0 <= 1'd1; i2cslave_next_state <= 3'd7; end end end end end end 3'd7: begin if (i2c_slave_bus_stop) begin i2cslave_next_state <= 1'd0; end else begin if (i2c_slave_bus_start) begin i2cslave_next_state <= 1'd1; end else begin if (i2c_slave_bus_sample) begin if ((~i2c_slave_sda_i)) begin i2cslave_next_state <= 3'd6; end else begin i2cslave_next_state <= 1'd0; end end end end end default: begin if (i2c_slave_bus_start) begin i2cslave_next_state <= 1'd1; end end endcase // synthesis translate_off dummy_d <= dummy_s; // synthesis translate_on end assign i2c_slave_fsm_is_el0 = ((~(i2cslave_state == 1'd0)) & (i2cslave_next_state == 1'd0)); assign i2c_slave_fsm_is_el1 = ((~(i2cslave_state == 3'd5)) & (i2cslave_next_state == 3'd5)); assign i2c_slave_fsm_is_el2 = ((~(i2cslave_state == 3'd6)) & (i2cslave_next_state == 3'd6)); assign i2c_slave_data_o = rhs_array_muxed0; // synthesis translate_off reg dummy_d_1; // synthesis translate_on always @(*) begin i2c_slave_ack_o <= 1'd0; if (i2c_slave_write) begin if ((latch_addr & (i2c_slave_data_i < 3'd6))) begin i2c_slave_ack_o <= 1'd1; end else begin if ((~latch_addr)) begin i2c_slave_ack_o <= 1'd1; end end end // synthesis translate_off dummy_d_1 <= dummy_s; // synthesis translate_on end assign fx2_fifoadr = fx2arbiter_addr; assign fx2arbiter_rdy = (fx2_flag & {dummyfifo3_readable, dummyfifo2_readable, dummyfifo1_writable, dummyfifo0_writable}); assign lhs_array_muxed = fx2arbiter_i; // synthesis translate_off reg dummy_d_2; // synthesis translate_on always @(*) begin dummyfifo0_din <= 8'd0; dummyfifo1_din <= 8'd0; case (fx2arbiter_addr[0]) 1'd0: begin dummyfifo0_din <= lhs_array_muxed; end default: begin dummyfifo1_din <= lhs_array_muxed; end endcase // synthesis translate_off dummy_d_2 <= dummy_s; // synthesis translate_on end assign fx2arbiter_o = rhs_array_muxed1; assign fx2_sloe = (~fx2arbiter_sloe); assign fx2_slrd = (~fx2arbiter_slrd); assign fx2_slwr = (~fx2arbiter_slwr); assign fx2_pktend = (~fx2arbiter_pend); // synthesis translate_off reg dummy_d_3; // synthesis translate_on always @(*) begin fx2arbiter_naddr <= 2'd0; case ({fx2arbiter_addr, fx2arbiter_rdy}) 1'd0: begin fx2arbiter_naddr <= 1'd1; end 1'd1: begin fx2arbiter_naddr <= 1'd0; end 2'd2: begin fx2arbiter_naddr <= 1'd1; end 2'd3: begin fx2arbiter_naddr <= 1'd0; end 3'd4: begin fx2arbiter_naddr <= 2'd2; end 3'd5: begin fx2arbiter_naddr <= 1'd0; end 3'd6: begin fx2arbiter_naddr <= 1'd1; end 3'd7: begin fx2arbiter_naddr <= 1'd0; end 4'd8: begin fx2arbiter_naddr <= 2'd3; end 4'd9: begin fx2arbiter_naddr <= 1'd0; end 4'd10: begin fx2arbiter_naddr <= 1'd1; end 4'd11: begin fx2arbiter_naddr <= 1'd0; end 4'd12: begin fx2arbiter_naddr <= 2'd2; end 4'd13: begin fx2arbiter_naddr <= 1'd0; end 4'd14: begin fx2arbiter_naddr <= 1'd1; end 4'd15: begin fx2arbiter_naddr <= 1'd0; end 5'd16: begin fx2arbiter_naddr <= 2'd2; end 5'd17: begin fx2arbiter_naddr <= 1'd0; end 5'd18: begin fx2arbiter_naddr <= 1'd1; end 5'd19: begin fx2arbiter_naddr <= 1'd1; end 5'd20: begin fx2arbiter_naddr <= 2'd2; end 5'd21: begin fx2arbiter_naddr <= 2'd2; end 5'd22: begin fx2arbiter_naddr <= 1'd1; end 5'd23: begin fx2arbiter_naddr <= 1'd1; end 5'd24: begin fx2arbiter_naddr <= 2'd3; end 5'd25: begin fx2arbiter_naddr <= 2'd3; end 5'd26: begin fx2arbiter_naddr <= 1'd1; end 5'd27: begin fx2arbiter_naddr <= 1'd1; end 5'd28: begin fx2arbiter_naddr <= 2'd2; end 5'd29: begin fx2arbiter_naddr <= 2'd2; end 5'd30: begin fx2arbiter_naddr <= 1'd1; end 5'd31: begin fx2arbiter_naddr <= 1'd1; end 6'd32: begin fx2arbiter_naddr <= 2'd3; end 6'd33: begin fx2arbiter_naddr <= 1'd0; end 6'd34: begin fx2arbiter_naddr <= 1'd1; end 6'd35: begin fx2arbiter_naddr <= 1'd0; end 6'd36: begin fx2arbiter_naddr <= 2'd2; end 6'd37: begin fx2arbiter_naddr <= 2'd2; end 6'd38: begin fx2arbiter_naddr <= 2'd2; end 6'd39: begin fx2arbiter_naddr <= 2'd2; end 6'd40: begin fx2arbiter_naddr <= 2'd3; end 6'd41: begin fx2arbiter_naddr <= 2'd3; end 6'd42: begin fx2arbiter_naddr <= 2'd3; end 6'd43: begin fx2arbiter_naddr <= 2'd3; end 6'd44: begin fx2arbiter_naddr <= 2'd2; end 6'd45: begin fx2arbiter_naddr <= 2'd2; end 6'd46: begin fx2arbiter_naddr <= 2'd2; end 6'd47: begin fx2arbiter_naddr <= 2'd2; end 6'd48: begin fx2arbiter_naddr <= 1'd0; end 6'd49: begin fx2arbiter_naddr <= 1'd0; end 6'd50: begin fx2arbiter_naddr <= 1'd1; end 6'd51: begin fx2arbiter_naddr <= 1'd0; end 6'd52: begin fx2arbiter_naddr <= 2'd2; end 6'd53: begin fx2arbiter_naddr <= 1'd0; end 6'd54: begin fx2arbiter_naddr <= 1'd1; end 6'd55: begin fx2arbiter_naddr <= 1'd0; end 6'd56: begin fx2arbiter_naddr <= 2'd3; end 6'd57: begin fx2arbiter_naddr <= 2'd3; end 6'd58: begin fx2arbiter_naddr <= 2'd3; end 6'd59: begin fx2arbiter_naddr <= 2'd3; end 6'd60: begin fx2arbiter_naddr <= 2'd3; end 6'd61: begin fx2arbiter_naddr <= 2'd3; end 6'd62: begin fx2arbiter_naddr <= 2'd3; end 6'd63: begin fx2arbiter_naddr <= 2'd3; end endcase // synthesis translate_off dummy_d_3 <= dummy_s; // synthesis translate_on end // synthesis translate_off reg dummy_d_4; // synthesis translate_on always @(*) begin dummyfifo0_we <= 1'd0; dummyfifo1_we <= 1'd0; dummyfifo2_re <= 1'd0; dummyfifo3_re <= 1'd0; fx2arbiter_slrd <= 1'd0; fx2arbiter_slwr <= 1'd0; fx2arbiter_pend <= 1'd0; fx2arbiter_next_state <= 3'd0; fx2arbiter_addr_fx2arbiter_next_value <= 2'd0; fx2arbiter_addr_fx2arbiter_next_value_ce <= 1'd0; fx2arbiter_sloe_fx2arbiter_t_next_value <= 1'd0; fx2arbiter_sloe_fx2arbiter_t_next_value_ce <= 1'd0; fx2arbiter_oe_fx2arbiter_f_next_value <= 1'd0; fx2arbiter_oe_fx2arbiter_f_next_value_ce <= 1'd0; t_array_muxed0 <= 1'd0; t_array_muxed1 <= 1'd0; t_array_muxed2 <= 1'd0; fx2arbiter_next_state <= fx2arbiter_state; case (fx2arbiter_state) 1'd1: begin if (fx2arbiter_addr[1]) begin fx2arbiter_sloe_fx2arbiter_t_next_value <= 1'd0; fx2arbiter_sloe_fx2arbiter_t_next_value_ce <= 1'd1; fx2arbiter_next_state <= 2'd2; end else begin fx2arbiter_oe_fx2arbiter_f_next_value <= 1'd0; fx2arbiter_oe_fx2arbiter_f_next_value_ce <= 1'd1; fx2arbiter_next_state <= 3'd5; end end 2'd2: begin fx2arbiter_oe_fx2arbiter_f_next_value <= 1'd1; fx2arbiter_oe_fx2arbiter_f_next_value_ce <= 1'd1; fx2arbiter_next_state <= 2'd3; end 2'd3: begin if (basiclowerer_array_muxed0) begin fx2arbiter_slwr <= 1'd1; t_array_muxed0 <= 1'd1; case (fx2arbiter_addr[0]) 1'd0: begin dummyfifo2_re <= t_array_muxed0; end default: begin dummyfifo3_re <= t_array_muxed0; end endcase if ((~(fx2_flag & (1'd1 <<< fx2arbiter_addr)))) begin fx2arbiter_next_state <= 3'd4; end end else begin fx2arbiter_pend <= (~rhs_array_muxed2); fx2arbiter_next_state <= 1'd0; end end 3'd4: begin if (basiclowerer_array_muxed1) begin fx2arbiter_slwr <= 1'd1; t_array_muxed1 <= 1'd1; case (fx2arbiter_addr[0]) 1'd0: begin dummyfifo2_re <= t_array_muxed1; end default: begin dummyfifo3_re <= t_array_muxed1; end endcase fx2arbiter_next_state <= 1'd0; end else begin if ((~basiclowerer_array_muxed2)) begin fx2arbiter_pend <= 1'd1; fx2arbiter_next_state <= 1'd0; end end end 3'd5: begin fx2arbiter_sloe_fx2arbiter_t_next_value <= 1'd1; fx2arbiter_sloe_fx2arbiter_t_next_value_ce <= 1'd1; fx2arbiter_next_state <= 3'd6; end 3'd6: begin if ((fx2arbiter_rdy & (1'd1 <<< fx2arbiter_addr))) begin fx2arbiter_slrd <= 1'd1; t_array_muxed2 <= 1'd1; case (fx2arbiter_addr[0]) 1'd0: begin dummyfifo0_we <= t_array_muxed2; end default: begin dummyfifo1_we <= t_array_muxed2; end endcase end else begin fx2arbiter_next_state <= 1'd0; end end default: begin fx2arbiter_addr_fx2arbiter_next_value <= fx2arbiter_naddr; fx2arbiter_addr_fx2arbiter_next_value_ce <= 1'd1; if (fx2arbiter_rdy) begin fx2arbiter_next_state <= 1'd1; end end endcase // synthesis translate_off dummy_d_4 <= dummy_s; // synthesis translate_on end assign {tstriple7_oe0, tstriple6_oe0, tstriple5_oe0, tstriple4_oe0, tstriple3_oe0, tstriple2_oe0, tstriple1_oe1, tstriple0_oe1} = reg0; assign {tstriple7_o0, tstriple6_o0, tstriple5_o0, tstriple4_o0, tstriple3_o0, tstriple2_o0, tstriple1_o1, tstriple0_o1} = reg1; assign reg2 = {tstriple7_i0, tstriple6_i0, tstriple5_i0, tstriple4_i0, tstriple3_i0, tstriple2_i0, tstriple1_i1, tstriple0_i1}; assign {tstriple7_oe1, tstriple6_oe1, tstriple5_oe1, tstriple4_oe1, tstriple3_oe1, tstriple2_oe1, tstriple1_oe2, tstriple0_oe2} = reg3; assign {tstriple7_o1, tstriple6_o1, tstriple5_o1, tstriple4_o1, tstriple3_o1, tstriple2_o1, tstriple1_o2, tstriple0_o2} = reg4; assign reg5 = {tstriple7_i1, tstriple6_i1, tstriple5_i1, tstriple4_i1, tstriple3_i1, tstriple2_i1, tstriple1_i2, tstriple0_i2}; // synthesis translate_off reg dummy_d_5; // synthesis translate_on always @(*) begin rhs_array_muxed0 <= 8'd0; case (registers_address) 1'd0: begin rhs_array_muxed0 <= reg0; end 1'd1: begin rhs_array_muxed0 <= reg1; end 2'd2: begin rhs_array_muxed0 <= reg2; end 2'd3: begin rhs_array_muxed0 <= reg3; end 3'd4: begin rhs_array_muxed0 <= reg4; end default: begin rhs_array_muxed0 <= reg5; end endcase // synthesis translate_off dummy_d_5 <= dummy_s; // synthesis translate_on end // synthesis translate_off reg dummy_d_6; // synthesis translate_on always @(*) begin rhs_array_muxed1 <= 8'd0; case (fx2arbiter_addr[0]) 1'd0: begin rhs_array_muxed1 <= dummyfifo2_dout; end default: begin rhs_array_muxed1 <= dummyfifo3_dout; end endcase // synthesis translate_off dummy_d_6 <= dummy_s; // synthesis translate_on end // synthesis translate_off reg dummy_d_7; // synthesis translate_on always @(*) begin basiclowerer_array_muxed0 <= 1'd0; case (fx2arbiter_addr[0]) 1'd0: begin basiclowerer_array_muxed0 <= dummyfifo2_readable; end default: begin basiclowerer_array_muxed0 <= dummyfifo3_readable; end endcase // synthesis translate_off dummy_d_7 <= dummy_s; // synthesis translate_on end // synthesis translate_off reg dummy_d_8; // synthesis translate_on always @(*) begin rhs_array_muxed2 <= 1'd0; case (fx2arbiter_addr[0]) 1'd0: begin rhs_array_muxed2 <= 1'd0; end default: begin rhs_array_muxed2 <= 1'd0; end endcase // synthesis translate_off dummy_d_8 <= dummy_s; // synthesis translate_on end // synthesis translate_off reg dummy_d_9; // synthesis translate_on always @(*) begin basiclowerer_array_muxed1 <= 1'd0; case (fx2arbiter_addr[0]) 1'd0: begin basiclowerer_array_muxed1 <= dummyfifo2_readable; end default: begin basiclowerer_array_muxed1 <= dummyfifo3_readable; end endcase // synthesis translate_off dummy_d_9 <= dummy_s; // synthesis translate_on end // synthesis translate_off reg dummy_d_10; // synthesis translate_on always @(*) begin basiclowerer_array_muxed2 <= 1'd0; case (fx2arbiter_addr[0]) 1'd0: begin basiclowerer_array_muxed2 <= 1'd0; end default: begin basiclowerer_array_muxed2 <= 1'd0; end endcase // synthesis translate_off dummy_d_10 <= dummy_s; // synthesis translate_on end assign i2c_slave_scl_i = multiregimpl0_regs1; assign i2c_slave_sda_i = multiregimpl1_regs1; always @(posedge por_clk) begin if ((reset_delay != 1'd0)) begin reset_delay <= (reset_delay - 1'd1); end end always @(posedge sys_clk) begin i2c_slave_scl_r <= i2c_slave_scl_i; i2c_slave_sda_r <= i2c_slave_sda_i; i2c_slave_signal_is_el0 <= i2c_slave_fsm_is_el0; i2c_slave_signal_is_el1 <= i2c_slave_fsm_is_el1; i2cslave_state <= i2cslave_next_state; if (i2c_slave_bitno_i2cslave_next_value_ce) begin i2c_slave_bitno <= i2c_slave_bitno_i2cslave_next_value; end if (i2c_slave_shreg_i_i2cslave_t_next_value_ce) begin i2c_slave_shreg_i <= i2c_slave_shreg_i_i2cslave_t_next_value; end if (i2c_slave_sda_o_i2cslave_f_next_value_ce0) begin i2c_slave_sda_o <= i2c_slave_sda_o_i2cslave_f_next_value0; end if (i2c_slave_shreg_o_i2cslave_f_next_value_ce1) begin i2c_slave_shreg_o <= i2c_slave_shreg_o_i2cslave_f_next_value1; end if (i2c_slave_data_i_i2cslave_f_next_value_ce2) begin i2c_slave_data_i <= i2c_slave_data_i_i2cslave_f_next_value2; end if (i2c_slave_start) begin latch_addr <= 1'd1; end if (i2c_slave_write) begin if (latch_addr) begin if ((i2c_slave_data_i < 3'd6)) begin latch_addr <= 1'd0; registers_address <= i2c_slave_data_i; end end else begin array_muxed = i2c_slave_data_i; case (registers_address) 1'd0: begin reg0 <= array_muxed; end 1'd1: begin reg1 <= array_muxed; end 2'd2: begin ro_reg_dummy0 <= array_muxed; end 2'd3: begin reg3 <= array_muxed; end 3'd4: begin reg4 <= array_muxed; end default: begin ro_reg_dummy1 <= array_muxed; end endcase end end fx2arbiter_state <= fx2arbiter_next_state; if (fx2arbiter_addr_fx2arbiter_next_value_ce) begin fx2arbiter_addr <= fx2arbiter_addr_fx2arbiter_next_value; end if (fx2arbiter_sloe_fx2arbiter_t_next_value_ce) begin fx2arbiter_sloe <= fx2arbiter_sloe_fx2arbiter_t_next_value; end if (fx2arbiter_oe_fx2arbiter_f_next_value_ce) begin fx2arbiter_oe <= fx2arbiter_oe_fx2arbiter_f_next_value; end if (sys_rst) begin i2c_slave_data_i <= 8'd0; i2c_slave_sda_o <= 1'd1; i2c_slave_scl_r <= 1'd1; i2c_slave_sda_r <= 1'd1; i2c_slave_bitno <= 3'd0; i2c_slave_shreg_i <= 8'd0; i2c_slave_shreg_o <= 8'd0; i2c_slave_signal_is_el0 <= 1'd1; i2c_slave_signal_is_el1 <= 1'd0; registers_address <= 8'd0; reg0 <= 8'd0; reg1 <= 8'd0; ro_reg_dummy0 <= 1'd0; reg3 <= 8'd0; reg4 <= 8'd0; ro_reg_dummy1 <= 1'd0; i2cslave_state <= 3'd0; latch_addr <= 1'd0; fx2arbiter_addr <= 2'd0; fx2arbiter_oe <= 1'd0; fx2arbiter_sloe <= 1'd0; fx2arbiter_state <= 3'd0; end multiregimpl0_regs0 <= tstriple0_i0; multiregimpl0_regs1 <= multiregimpl0_regs0; multiregimpl1_regs0 <= tstriple1_i0; multiregimpl1_regs1 <= multiregimpl1_regs0; end SB_IO #( .PIN_TYPE(6'd1) ) SB_IO ( .PACKAGE_PIN(clk_if), .D_IN_0(clk_buf) ); SB_GB SB_GB( .USER_SIGNAL_TO_GLOBAL_BUFFER(clk_buf), .GLOBAL_BUFFER_OUTPUT(por_clk) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_1 ( .D_OUT_0(tstriple0_o0), .OUTPUT_ENABLE(tstriple0_oe0), .PACKAGE_PIN(i2c_scl), .D_IN_0(tstriple0_i0) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_2 ( .D_OUT_0(tstriple1_o0), .OUTPUT_ENABLE(tstriple1_oe0), .PACKAGE_PIN(i2c_sda), .D_IN_0(tstriple1_i0) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_3 ( .D_OUT_0(tstriple0_o1), .OUTPUT_ENABLE(tstriple0_oe1), .PACKAGE_PIN(io[0][0]), .D_IN_0(tstriple0_i1) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_4 ( .D_OUT_0(tstriple1_o1), .OUTPUT_ENABLE(tstriple1_oe1), .PACKAGE_PIN(io[1][0]), .D_IN_0(tstriple1_i1) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_5 ( .D_OUT_0(tstriple2_o0), .OUTPUT_ENABLE(tstriple2_oe0), .PACKAGE_PIN(io[2][0]), .D_IN_0(tstriple2_i0) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_6 ( .D_OUT_0(tstriple3_o0), .OUTPUT_ENABLE(tstriple3_oe0), .PACKAGE_PIN(io[3][0]), .D_IN_0(tstriple3_i0) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_7 ( .D_OUT_0(tstriple4_o0), .OUTPUT_ENABLE(tstriple4_oe0), .PACKAGE_PIN(io[4][0]), .D_IN_0(tstriple4_i0) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_8 ( .D_OUT_0(tstriple5_o0), .OUTPUT_ENABLE(tstriple5_oe0), .PACKAGE_PIN(io[5][0]), .D_IN_0(tstriple5_i0) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_9 ( .D_OUT_0(tstriple6_o0), .OUTPUT_ENABLE(tstriple6_oe0), .PACKAGE_PIN(io[6][0]), .D_IN_0(tstriple6_i0) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_10 ( .D_OUT_0(tstriple7_o0), .OUTPUT_ENABLE(tstriple7_oe0), .PACKAGE_PIN(io[7][0]), .D_IN_0(tstriple7_i0) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_11 ( .D_OUT_0(tstriple0_o2), .OUTPUT_ENABLE(tstriple0_oe2), .PACKAGE_PIN(io_1[0][0]), .D_IN_0(tstriple0_i2) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_12 ( .D_OUT_0(tstriple1_o2), .OUTPUT_ENABLE(tstriple1_oe2), .PACKAGE_PIN(io_1[1][0]), .D_IN_0(tstriple1_i2) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_13 ( .D_OUT_0(tstriple2_o1), .OUTPUT_ENABLE(tstriple2_oe1), .PACKAGE_PIN(io_1[2][0]), .D_IN_0(tstriple2_i1) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_14 ( .D_OUT_0(tstriple3_o1), .OUTPUT_ENABLE(tstriple3_oe1), .PACKAGE_PIN(io_1[3][0]), .D_IN_0(tstriple3_i1) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_15 ( .D_OUT_0(tstriple4_o1), .OUTPUT_ENABLE(tstriple4_oe1), .PACKAGE_PIN(io_1[4][0]), .D_IN_0(tstriple4_i1) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_16 ( .D_OUT_0(tstriple5_o1), .OUTPUT_ENABLE(tstriple5_oe1), .PACKAGE_PIN(io_1[5][0]), .D_IN_0(tstriple5_i1) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_17 ( .D_OUT_0(tstriple6_o1), .OUTPUT_ENABLE(tstriple6_oe1), .PACKAGE_PIN(io_1[6][0]), .D_IN_0(tstriple6_i1) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_18 ( .D_OUT_0(tstriple7_o1), .OUTPUT_ENABLE(tstriple7_oe1), .PACKAGE_PIN(io_1[7][0]), .D_IN_0(tstriple7_i1) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_19 ( .D_OUT_0(fx2arbiter_o[0]), .OUTPUT_ENABLE(fx2arbiter_oe), .PACKAGE_PIN(fx2_fd[0]), .D_IN_0(fx2arbiter_i[0]) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_20 ( .D_OUT_0(fx2arbiter_o[1]), .OUTPUT_ENABLE(fx2arbiter_oe), .PACKAGE_PIN(fx2_fd[1]), .D_IN_0(fx2arbiter_i[1]) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_21 ( .D_OUT_0(fx2arbiter_o[2]), .OUTPUT_ENABLE(fx2arbiter_oe), .PACKAGE_PIN(fx2_fd[2]), .D_IN_0(fx2arbiter_i[2]) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_22 ( .D_OUT_0(fx2arbiter_o[3]), .OUTPUT_ENABLE(fx2arbiter_oe), .PACKAGE_PIN(fx2_fd[3]), .D_IN_0(fx2arbiter_i[3]) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_23 ( .D_OUT_0(fx2arbiter_o[4]), .OUTPUT_ENABLE(fx2arbiter_oe), .PACKAGE_PIN(fx2_fd[4]), .D_IN_0(fx2arbiter_i[4]) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_24 ( .D_OUT_0(fx2arbiter_o[5]), .OUTPUT_ENABLE(fx2arbiter_oe), .PACKAGE_PIN(fx2_fd[5]), .D_IN_0(fx2arbiter_i[5]) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_25 ( .D_OUT_0(fx2arbiter_o[6]), .OUTPUT_ENABLE(fx2arbiter_oe), .PACKAGE_PIN(fx2_fd[6]), .D_IN_0(fx2arbiter_i[6]) ); SB_IO #( .PIN_TYPE(6'd41) ) SB_IO_26 ( .D_OUT_0(fx2arbiter_o[7]), .OUTPUT_ENABLE(fx2arbiter_oe), .PACKAGE_PIN(fx2_fd[7]), .D_IN_0(fx2arbiter_i[7]) ); endmodule