blob: 5cb0ea521e0fb112be81cb0c9b120def2623a5a7 [file] [log] [blame]
/* 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