blob: 547d7888dd43aa0cb61b1ea2ef6a43edbfafc5df [file] [log] [blame]
// SPDX-FileCopyrightText: (c) 2022 Princeton University
// SPDX-License-Identifier: BSD-3-Clause
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// 3. Neither the name of the copyright holder nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Automatically generated by PRGA's RTL generator
module tile_clb (
`ifdef USE_POWER_PINS
inout vccd1, // User area 1 1.8V supply
inout vssd1, // User area 1 digital ground
`endif
output wire [11:0] cu_x0y0n_L1
, output wire [11:0] cu_x0y0s_L1
, input wire [11:0] bi_u1y0n_L1
, input wire [11:0] bi_u1y0s_L1
, input wire [0:0] clk
, input wire [0:0] prog_clk
, input wire [0:0] prog_rst
, input wire [0:0] prog_done
, input wire [0:0] prog_we
, input wire [0:0] prog_din
, output wire [0:0] prog_dout
, output wire [0:0] prog_we_o
);
wire [7:0] _i_blk__out;
wire [0:0] _i_blk__prog_dout;
wire [0:0] _i_blk__prog_we_o;
wire [11:0] _i_cbox_e0__cu_x0y0n_L1;
wire [11:0] _i_cbox_e0__cu_x0y0s_L1;
wire [0:0] _i_cbox_e0__prog_dout;
wire [0:0] _i_cbox_e0__prog_we_o;
wire [15:0] _i_cbox_w0__bp_x0y0i0_in;
wire [0:0] _i_cbox_w0__prog_dout;
wire [0:0] _i_cbox_w0__prog_we_o;
wire [0:0] _i_buf_prog_rst_l0__Q;
wire [0:0] _i_buf_prog_done_l0__Q;
wire [0:0] _i_buf_prog_rst_l1__Q;
wire [0:0] _i_buf_prog_done_l1__Q;
clb i_blk (
.clk(clk)
,.in(_i_cbox_w0__bp_x0y0i0_in)
,.out(_i_blk__out)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l1__Q)
,.prog_done(_i_buf_prog_done_l1__Q)
,.prog_we(prog_we)
,.prog_din(prog_din)
,.prog_dout(_i_blk__prog_dout)
,.prog_we_o(_i_blk__prog_we_o)
);
cbox_tile_clb_e0 i_cbox_e0 (
.bp_x0y0i0_out(_i_blk__out)
,.cu_x0y0n_L1(_i_cbox_e0__cu_x0y0n_L1)
,.cu_x0y0s_L1(_i_cbox_e0__cu_x0y0s_L1)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l1__Q)
,.prog_done(_i_buf_prog_done_l1__Q)
,.prog_we(_i_blk__prog_we_o)
,.prog_din(_i_blk__prog_dout)
,.prog_dout(_i_cbox_e0__prog_dout)
,.prog_we_o(_i_cbox_e0__prog_we_o)
);
cbox_tile_clb_w0 i_cbox_w0 (
.bp_x0y0i0_in(_i_cbox_w0__bp_x0y0i0_in)
,.bi_u1y0n_L1(bi_u1y0n_L1)
,.bi_u1y0s_L1(bi_u1y0s_L1)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l1__Q)
,.prog_done(_i_buf_prog_done_l1__Q)
,.prog_we(_i_cbox_e0__prog_we_o)
,.prog_din(_i_cbox_e0__prog_dout)
,.prog_dout(_i_cbox_w0__prog_dout)
,.prog_we_o(_i_cbox_w0__prog_we_o)
);
prga_simple_buf i_buf_prog_rst_l0 (
.C(prog_clk)
,.D(_i_buf_prog_rst_l1__Q)
,.Q(_i_buf_prog_rst_l0__Q)
);
prga_simple_bufr i_buf_prog_done_l0 (
.C(prog_clk)
,.R(_i_buf_prog_rst_l0__Q)
,.D(_i_buf_prog_done_l1__Q)
,.Q(_i_buf_prog_done_l0__Q)
);
prga_simple_buf i_buf_prog_rst_l1 (
.C(prog_clk)
,.D(prog_rst)
,.Q(_i_buf_prog_rst_l1__Q)
);
prga_simple_bufr i_buf_prog_done_l1 (
.C(prog_clk)
,.R(_i_buf_prog_rst_l0__Q)
,.D(prog_done)
,.Q(_i_buf_prog_done_l1__Q)
);
assign cu_x0y0n_L1 = _i_cbox_e0__cu_x0y0n_L1;
assign cu_x0y0s_L1 = _i_cbox_e0__cu_x0y0s_L1;
assign prog_dout = _i_cbox_w0__prog_dout;
assign prog_we_o = _i_cbox_w0__prog_we_o;
endmodule
// Automatically generated by PRGA's RTL generator
module clb (
input wire [0:0] clk
, input wire [15:0] in
, output wire [7:0] out
, input wire [0:0] prog_clk
, input wire [0:0] prog_rst
, input wire [0:0] prog_done
, input wire [0:0] prog_we
, input wire [0:0] prog_din
, output wire [0:0] prog_dout
, output wire [0:0] prog_we_o
);
wire [0:0] _cluster_i0__o;
wire [0:0] _cluster_i0__prog_dout;
wire [0:0] _cluster_i1__o;
wire [0:0] _cluster_i1__prog_dout;
wire [0:0] _cluster_i2__o;
wire [0:0] _cluster_i2__prog_dout;
wire [0:0] _cluster_i3__o;
wire [0:0] _cluster_i3__prog_dout;
wire [0:0] _cluster_i4__o;
wire [0:0] _cluster_i4__prog_dout;
wire [0:0] _cluster_i5__o;
wire [0:0] _cluster_i5__prog_dout;
wire [0:0] _cluster_i6__o;
wire [0:0] _cluster_i6__prog_dout;
wire [0:0] _cluster_i7__o;
wire [0:0] _cluster_i7__prog_dout;
wire [0:0] _i_sw_cluster_i0_i_0__o;
wire [0:0] _i_sw_cluster_i0_i_1__o;
wire [0:0] _i_sw_cluster_i0_i_2__o;
wire [0:0] _i_sw_cluster_i0_i_3__o;
wire [0:0] _i_sw_cluster_i1_i_0__o;
wire [0:0] _i_sw_cluster_i1_i_1__o;
wire [0:0] _i_sw_cluster_i1_i_2__o;
wire [0:0] _i_sw_cluster_i1_i_3__o;
wire [0:0] _i_sw_cluster_i2_i_0__o;
wire [0:0] _i_sw_cluster_i2_i_1__o;
wire [0:0] _i_sw_cluster_i2_i_2__o;
wire [0:0] _i_sw_cluster_i2_i_3__o;
wire [0:0] _i_sw_cluster_i3_i_0__o;
wire [0:0] _i_sw_cluster_i3_i_1__o;
wire [0:0] _i_sw_cluster_i3_i_2__o;
wire [0:0] _i_sw_cluster_i3_i_3__o;
wire [0:0] _i_sw_cluster_i4_i_0__o;
wire [0:0] _i_sw_cluster_i4_i_1__o;
wire [0:0] _i_sw_cluster_i4_i_2__o;
wire [0:0] _i_sw_cluster_i4_i_3__o;
wire [0:0] _i_sw_cluster_i5_i_0__o;
wire [0:0] _i_sw_cluster_i5_i_1__o;
wire [0:0] _i_sw_cluster_i5_i_2__o;
wire [0:0] _i_sw_cluster_i5_i_3__o;
wire [0:0] _i_sw_cluster_i6_i_0__o;
wire [0:0] _i_sw_cluster_i6_i_1__o;
wire [0:0] _i_sw_cluster_i6_i_2__o;
wire [0:0] _i_sw_cluster_i6_i_3__o;
wire [0:0] _i_sw_cluster_i7_i_0__o;
wire [0:0] _i_sw_cluster_i7_i_1__o;
wire [0:0] _i_sw_cluster_i7_i_2__o;
wire [0:0] _i_sw_cluster_i7_i_3__o;
wire [0:0] _i_buf_prog_rst_l0__Q;
wire [0:0] _i_buf_prog_done_l0__Q;
wire [0:0] _i_scanchain_head__prog_dout;
wire [0:0] _i_scanchain_head__prog_we_o;
wire [0:0] _i_prog_data_i_sw_cluster_i0_i_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i0_i_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i0_i_1__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i0_i_1__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i0_i_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i0_i_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i0_i_3__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i0_i_3__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i1_i_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i1_i_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i1_i_1__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i1_i_1__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i1_i_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i1_i_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i1_i_3__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i1_i_3__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i2_i_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i2_i_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i2_i_1__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i2_i_1__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i2_i_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i2_i_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i2_i_3__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i2_i_3__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i3_i_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i3_i_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i3_i_1__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i3_i_1__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i3_i_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i3_i_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i3_i_3__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i3_i_3__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i4_i_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i4_i_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i4_i_1__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i4_i_1__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i4_i_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i4_i_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i4_i_3__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i4_i_3__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i5_i_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i5_i_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i5_i_1__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i5_i_1__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i5_i_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i5_i_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i5_i_3__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i5_i_3__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i6_i_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i6_i_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i6_i_1__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i6_i_1__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i6_i_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i6_i_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i6_i_3__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i6_i_3__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i7_i_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i7_i_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i7_i_1__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i7_i_1__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i7_i_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i7_i_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cluster_i7_i_3__prog_dout;
wire [1:0] _i_prog_data_i_sw_cluster_i7_i_3__prog_data;
wire [0:0] _i_scanchain_tail__prog_dout;
wire [0:0] _i_scanchain_tail__prog_we_o;
slice cluster_i0 (
.clk(clk)
,.i({_i_sw_cluster_i0_i_3__o,
_i_sw_cluster_i0_i_2__o,
_i_sw_cluster_i0_i_1__o,
_i_sw_cluster_i0_i_0__o})
,.o(_cluster_i0__o)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_scanchain_head__prog_dout)
,.prog_dout(_cluster_i0__prog_dout)
);
slice cluster_i1 (
.clk(clk)
,.i({_i_sw_cluster_i1_i_3__o,
_i_sw_cluster_i1_i_2__o,
_i_sw_cluster_i1_i_1__o,
_i_sw_cluster_i1_i_0__o})
,.o(_cluster_i1__o)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_cluster_i0__prog_dout)
,.prog_dout(_cluster_i1__prog_dout)
);
slice cluster_i2 (
.clk(clk)
,.i({_i_sw_cluster_i2_i_3__o,
_i_sw_cluster_i2_i_2__o,
_i_sw_cluster_i2_i_1__o,
_i_sw_cluster_i2_i_0__o})
,.o(_cluster_i2__o)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_cluster_i1__prog_dout)
,.prog_dout(_cluster_i2__prog_dout)
);
slice cluster_i3 (
.clk(clk)
,.i({_i_sw_cluster_i3_i_3__o,
_i_sw_cluster_i3_i_2__o,
_i_sw_cluster_i3_i_1__o,
_i_sw_cluster_i3_i_0__o})
,.o(_cluster_i3__o)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_cluster_i2__prog_dout)
,.prog_dout(_cluster_i3__prog_dout)
);
slice cluster_i4 (
.clk(clk)
,.i({_i_sw_cluster_i4_i_3__o,
_i_sw_cluster_i4_i_2__o,
_i_sw_cluster_i4_i_1__o,
_i_sw_cluster_i4_i_0__o})
,.o(_cluster_i4__o)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_cluster_i3__prog_dout)
,.prog_dout(_cluster_i4__prog_dout)
);
slice cluster_i5 (
.clk(clk)
,.i({_i_sw_cluster_i5_i_3__o,
_i_sw_cluster_i5_i_2__o,
_i_sw_cluster_i5_i_1__o,
_i_sw_cluster_i5_i_0__o})
,.o(_cluster_i5__o)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_cluster_i4__prog_dout)
,.prog_dout(_cluster_i5__prog_dout)
);
slice cluster_i6 (
.clk(clk)
,.i({_i_sw_cluster_i6_i_3__o,
_i_sw_cluster_i6_i_2__o,
_i_sw_cluster_i6_i_1__o,
_i_sw_cluster_i6_i_0__o})
,.o(_cluster_i6__o)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_cluster_i5__prog_dout)
,.prog_dout(_cluster_i6__prog_dout)
);
slice cluster_i7 (
.clk(clk)
,.i({_i_sw_cluster_i7_i_3__o,
_i_sw_cluster_i7_i_2__o,
_i_sw_cluster_i7_i_1__o,
_i_sw_cluster_i7_i_0__o})
,.o(_cluster_i7__o)
,.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_cluster_i6__prog_dout)
,.prog_dout(_cluster_i7__prog_dout)
);
sw3 i_sw_cluster_i0_i_0 (
.i({_cluster_i0__o,
in[8],
in[0]})
,.o(_i_sw_cluster_i0_i_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i0_i_0__prog_data)
);
sw3 i_sw_cluster_i0_i_1 (
.i({_cluster_i2__o,
in[10],
in[2]})
,.o(_i_sw_cluster_i0_i_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i0_i_1__prog_data)
);
sw3 i_sw_cluster_i0_i_2 (
.i({_cluster_i4__o,
in[12],
in[4]})
,.o(_i_sw_cluster_i0_i_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i0_i_2__prog_data)
);
sw3 i_sw_cluster_i0_i_3 (
.i({_cluster_i6__o,
in[14],
in[6]})
,.o(_i_sw_cluster_i0_i_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i0_i_3__prog_data)
);
sw3 i_sw_cluster_i1_i_0 (
.i({_cluster_i1__o,
in[9],
in[1]})
,.o(_i_sw_cluster_i1_i_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i1_i_0__prog_data)
);
sw3 i_sw_cluster_i1_i_1 (
.i({_cluster_i4__o,
in[11],
in[3]})
,.o(_i_sw_cluster_i1_i_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i1_i_1__prog_data)
);
sw3 i_sw_cluster_i1_i_2 (
.i({_cluster_i5__o,
in[13],
in[5]})
,.o(_i_sw_cluster_i1_i_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i1_i_2__prog_data)
);
sw3 i_sw_cluster_i1_i_3 (
.i({_cluster_i7__o,
in[15],
in[8]})
,.o(_i_sw_cluster_i1_i_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i1_i_3__prog_data)
);
sw3 i_sw_cluster_i2_i_0 (
.i({_cluster_i0__o,
in[7],
in[0]})
,.o(_i_sw_cluster_i2_i_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i2_i_0__prog_data)
);
sw3 i_sw_cluster_i2_i_1 (
.i({_cluster_i2__o,
in[10],
in[2]})
,.o(_i_sw_cluster_i2_i_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i2_i_1__prog_data)
);
sw3 i_sw_cluster_i2_i_2 (
.i({_cluster_i3__o,
in[12],
in[4]})
,.o(_i_sw_cluster_i2_i_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i2_i_2__prog_data)
);
sw3 i_sw_cluster_i2_i_3 (
.i({_cluster_i4__o,
in[14],
in[6]})
,.o(_i_sw_cluster_i2_i_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i2_i_3__prog_data)
);
sw3 i_sw_cluster_i3_i_0 (
.i({_cluster_i0__o,
in[9],
in[1]})
,.o(_i_sw_cluster_i3_i_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i3_i_0__prog_data)
);
sw3 i_sw_cluster_i3_i_1 (
.i({_cluster_i1__o,
in[11],
in[3]})
,.o(_i_sw_cluster_i3_i_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i3_i_1__prog_data)
);
sw3 i_sw_cluster_i3_i_2 (
.i({_cluster_i5__o,
in[13],
in[5]})
,.o(_i_sw_cluster_i3_i_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i3_i_2__prog_data)
);
sw3 i_sw_cluster_i3_i_3 (
.i({_cluster_i6__o,
in[15],
in[8]})
,.o(_i_sw_cluster_i3_i_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i3_i_3__prog_data)
);
sw3 i_sw_cluster_i4_i_0 (
.i({_cluster_i2__o,
in[7],
in[0]})
,.o(_i_sw_cluster_i4_i_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i4_i_0__prog_data)
);
sw3 i_sw_cluster_i4_i_1 (
.i({_cluster_i3__o,
in[9],
in[2]})
,.o(_i_sw_cluster_i4_i_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i4_i_1__prog_data)
);
sw3 i_sw_cluster_i4_i_2 (
.i({_cluster_i4__o,
in[12],
in[4]})
,.o(_i_sw_cluster_i4_i_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i4_i_2__prog_data)
);
sw3 i_sw_cluster_i4_i_3 (
.i({_cluster_i6__o,
in[14],
in[6]})
,.o(_i_sw_cluster_i4_i_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i4_i_3__prog_data)
);
sw3 i_sw_cluster_i5_i_0 (
.i({_cluster_i2__o,
in[10],
in[3]})
,.o(_i_sw_cluster_i5_i_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i5_i_0__prog_data)
);
sw3 i_sw_cluster_i5_i_1 (
.i({_cluster_i4__o,
in[11],
in[5]})
,.o(_i_sw_cluster_i5_i_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i5_i_1__prog_data)
);
sw3 i_sw_cluster_i5_i_2 (
.i({_cluster_i6__o,
in[13],
in[6]})
,.o(_i_sw_cluster_i5_i_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i5_i_2__prog_data)
);
sw3 i_sw_cluster_i5_i_3 (
.i({_cluster_i7__o,
in[15],
in[8]})
,.o(_i_sw_cluster_i5_i_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i5_i_3__prog_data)
);
sw3 i_sw_cluster_i6_i_0 (
.i({_cluster_i1__o,
in[8],
in[0]})
,.o(_i_sw_cluster_i6_i_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i6_i_0__prog_data)
);
sw3 i_sw_cluster_i6_i_1 (
.i({_cluster_i4__o,
in[10],
in[1]})
,.o(_i_sw_cluster_i6_i_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i6_i_1__prog_data)
);
sw3 i_sw_cluster_i6_i_2 (
.i({_cluster_i5__o,
in[12],
in[5]})
,.o(_i_sw_cluster_i6_i_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i6_i_2__prog_data)
);
sw3 i_sw_cluster_i6_i_3 (
.i({_cluster_i7__o,
in[14],
in[7]})
,.o(_i_sw_cluster_i6_i_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i6_i_3__prog_data)
);
sw3 i_sw_cluster_i7_i_0 (
.i({_cluster_i0__o,
in[7],
in[0]})
,.o(_i_sw_cluster_i7_i_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i7_i_0__prog_data)
);
sw3 i_sw_cluster_i7_i_1 (
.i({_cluster_i1__o,
in[11],
in[2]})
,.o(_i_sw_cluster_i7_i_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i7_i_1__prog_data)
);
sw3 i_sw_cluster_i7_i_2 (
.i({_cluster_i2__o,
in[13],
in[4]})
,.o(_i_sw_cluster_i7_i_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i7_i_2__prog_data)
);
sw3 i_sw_cluster_i7_i_3 (
.i({_cluster_i3__o,
in[15],
in[5]})
,.o(_i_sw_cluster_i7_i_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cluster_i7_i_3__prog_data)
);
prga_simple_buf i_buf_prog_rst_l0 (
.C(prog_clk)
,.D(prog_rst)
,.Q(_i_buf_prog_rst_l0__Q)
);
prga_simple_bufr i_buf_prog_done_l0 (
.C(prog_clk)
,.R(_i_buf_prog_rst_l0__Q)
,.D(prog_done)
,.Q(_i_buf_prog_done_l0__Q)
);
scanchain_delim i_scanchain_head (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(prog_we)
,.prog_din(prog_din)
,.prog_dout(_i_scanchain_head__prog_dout)
,.prog_we_o(_i_scanchain_head__prog_we_o)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i0_i_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_cluster_i7__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i0_i_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i0_i_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i0_i_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i0_i_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i0_i_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i0_i_1__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i0_i_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i0_i_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i0_i_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i0_i_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i0_i_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i0_i_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i0_i_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i0_i_3__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i1_i_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i0_i_3__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i1_i_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i1_i_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i1_i_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i1_i_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i1_i_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i1_i_1__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i1_i_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i1_i_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i1_i_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i1_i_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i1_i_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i1_i_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i1_i_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i1_i_3__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i2_i_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i1_i_3__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i2_i_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i2_i_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i2_i_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i2_i_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i2_i_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i2_i_1__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i2_i_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i2_i_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i2_i_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i2_i_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i2_i_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i2_i_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i2_i_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i2_i_3__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i3_i_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i2_i_3__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i3_i_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i3_i_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i3_i_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i3_i_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i3_i_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i3_i_1__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i3_i_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i3_i_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i3_i_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i3_i_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i3_i_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i3_i_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i3_i_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i3_i_3__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i4_i_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i3_i_3__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i4_i_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i4_i_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i4_i_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i4_i_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i4_i_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i4_i_1__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i4_i_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i4_i_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i4_i_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i4_i_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i4_i_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i4_i_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i4_i_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i4_i_3__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i5_i_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i4_i_3__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i5_i_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i5_i_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i5_i_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i5_i_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i5_i_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i5_i_1__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i5_i_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i5_i_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i5_i_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i5_i_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i5_i_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i5_i_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i5_i_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i5_i_3__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i6_i_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i5_i_3__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i6_i_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i6_i_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i6_i_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i6_i_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i6_i_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i6_i_1__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i6_i_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i6_i_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i6_i_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i6_i_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i6_i_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i6_i_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i6_i_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i6_i_3__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i7_i_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i6_i_3__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i7_i_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i7_i_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i7_i_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i7_i_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i7_i_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i7_i_1__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i7_i_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i7_i_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i7_i_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i7_i_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cluster_i7_i_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i7_i_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cluster_i7_i_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_cluster_i7_i_3__prog_data)
);
scanchain_delim i_scanchain_tail (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cluster_i7_i_3__prog_dout)
,.prog_dout(_i_scanchain_tail__prog_dout)
,.prog_we_o(_i_scanchain_tail__prog_we_o)
);
assign out = {_cluster_i7__o,
_cluster_i6__o,
_cluster_i5__o,
_cluster_i4__o,
_cluster_i3__o,
_cluster_i2__o,
_cluster_i1__o,
_cluster_i0__o};
assign prog_dout = _i_scanchain_tail__prog_dout;
assign prog_we_o = _i_scanchain_tail__prog_we_o;
endmodule
// Automatically generated by PRGA's RTL generator
module cbox_tile_clb_e0 (
input wire [7:0] bp_x0y0i0_out
, output wire [11:0] cu_x0y0n_L1
, output wire [11:0] cu_x0y0s_L1
, input wire [0:0] prog_clk
, input wire [0:0] prog_rst
, input wire [0:0] prog_done
, input wire [0:0] prog_we
, input wire [0:0] prog_din
, output wire [0:0] prog_dout
, output wire [0:0] prog_we_o
);
wire [0:0] _i_sw_cu_x0y0n_L1_0__o;
wire [0:0] _i_sw_cu_x0y0n_L1_2__o;
wire [0:0] _i_sw_cu_x0y0n_L1_7__o;
wire [0:0] _i_sw_cu_x0y0n_L1_8__o;
wire [0:0] _i_sw_cu_x0y0s_L1_0__o;
wire [0:0] _i_sw_cu_x0y0s_L1_2__o;
wire [0:0] _i_sw_cu_x0y0s_L1_7__o;
wire [0:0] _i_sw_cu_x0y0s_L1_8__o;
wire [0:0] _i_buf_prog_rst_l0__Q;
wire [0:0] _i_buf_prog_done_l0__Q;
wire [0:0] _i_scanchain_head__prog_dout;
wire [0:0] _i_scanchain_head__prog_we_o;
wire [0:0] _i_prog_data_i_sw_cu_x0y0n_L1_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cu_x0y0n_L1_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cu_x0y0n_L1_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cu_x0y0n_L1_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cu_x0y0n_L1_7__prog_dout;
wire [1:0] _i_prog_data_i_sw_cu_x0y0n_L1_7__prog_data;
wire [0:0] _i_prog_data_i_sw_cu_x0y0n_L1_8__prog_dout;
wire [1:0] _i_prog_data_i_sw_cu_x0y0n_L1_8__prog_data;
wire [0:0] _i_prog_data_i_sw_cu_x0y0s_L1_0__prog_dout;
wire [1:0] _i_prog_data_i_sw_cu_x0y0s_L1_0__prog_data;
wire [0:0] _i_prog_data_i_sw_cu_x0y0s_L1_2__prog_dout;
wire [1:0] _i_prog_data_i_sw_cu_x0y0s_L1_2__prog_data;
wire [0:0] _i_prog_data_i_sw_cu_x0y0s_L1_7__prog_dout;
wire [1:0] _i_prog_data_i_sw_cu_x0y0s_L1_7__prog_data;
wire [0:0] _i_prog_data_i_sw_cu_x0y0s_L1_8__prog_dout;
wire [1:0] _i_prog_data_i_sw_cu_x0y0s_L1_8__prog_data;
wire [0:0] _i_scanchain_tail__prog_dout;
wire [0:0] _i_scanchain_tail__prog_we_o;
sw2 i_sw_cu_x0y0n_L1_0 (
.i({bp_x0y0i0_out[7],
bp_x0y0i0_out[0]})
,.o(_i_sw_cu_x0y0n_L1_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cu_x0y0n_L1_0__prog_data)
);
sw2 i_sw_cu_x0y0n_L1_2 (
.i({bp_x0y0i0_out[6],
bp_x0y0i0_out[2]})
,.o(_i_sw_cu_x0y0n_L1_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cu_x0y0n_L1_2__prog_data)
);
sw2 i_sw_cu_x0y0n_L1_7 (
.i(bp_x0y0i0_out[7:6])
,.o(_i_sw_cu_x0y0n_L1_7__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cu_x0y0n_L1_7__prog_data)
);
sw2 i_sw_cu_x0y0n_L1_8 (
.i(bp_x0y0i0_out[5:4])
,.o(_i_sw_cu_x0y0n_L1_8__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cu_x0y0n_L1_8__prog_data)
);
sw2 i_sw_cu_x0y0s_L1_0 (
.i({bp_x0y0i0_out[7],
bp_x0y0i0_out[0]})
,.o(_i_sw_cu_x0y0s_L1_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cu_x0y0s_L1_0__prog_data)
);
sw2 i_sw_cu_x0y0s_L1_2 (
.i({bp_x0y0i0_out[6],
bp_x0y0i0_out[2]})
,.o(_i_sw_cu_x0y0s_L1_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cu_x0y0s_L1_2__prog_data)
);
sw2 i_sw_cu_x0y0s_L1_7 (
.i(bp_x0y0i0_out[7:6])
,.o(_i_sw_cu_x0y0s_L1_7__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cu_x0y0s_L1_7__prog_data)
);
sw2 i_sw_cu_x0y0s_L1_8 (
.i(bp_x0y0i0_out[5:4])
,.o(_i_sw_cu_x0y0s_L1_8__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_cu_x0y0s_L1_8__prog_data)
);
prga_simple_buf i_buf_prog_rst_l0 (
.C(prog_clk)
,.D(prog_rst)
,.Q(_i_buf_prog_rst_l0__Q)
);
prga_simple_bufr i_buf_prog_done_l0 (
.C(prog_clk)
,.R(_i_buf_prog_rst_l0__Q)
,.D(prog_done)
,.Q(_i_buf_prog_done_l0__Q)
);
scanchain_delim i_scanchain_head (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(prog_we)
,.prog_din(prog_din)
,.prog_dout(_i_scanchain_head__prog_dout)
,.prog_we_o(_i_scanchain_head__prog_we_o)
);
scanchain_data_d2 i_prog_data_i_sw_cu_x0y0n_L1_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_scanchain_head__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cu_x0y0n_L1_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cu_x0y0n_L1_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cu_x0y0n_L1_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cu_x0y0n_L1_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cu_x0y0n_L1_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cu_x0y0n_L1_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cu_x0y0n_L1_7 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cu_x0y0n_L1_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cu_x0y0n_L1_7__prog_dout)
,.prog_data(_i_prog_data_i_sw_cu_x0y0n_L1_7__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cu_x0y0n_L1_8 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cu_x0y0n_L1_7__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cu_x0y0n_L1_8__prog_dout)
,.prog_data(_i_prog_data_i_sw_cu_x0y0n_L1_8__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cu_x0y0s_L1_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cu_x0y0n_L1_8__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cu_x0y0s_L1_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_cu_x0y0s_L1_0__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cu_x0y0s_L1_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cu_x0y0s_L1_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cu_x0y0s_L1_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_cu_x0y0s_L1_2__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cu_x0y0s_L1_7 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cu_x0y0s_L1_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cu_x0y0s_L1_7__prog_dout)
,.prog_data(_i_prog_data_i_sw_cu_x0y0s_L1_7__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_cu_x0y0s_L1_8 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cu_x0y0s_L1_7__prog_dout)
,.prog_dout(_i_prog_data_i_sw_cu_x0y0s_L1_8__prog_dout)
,.prog_data(_i_prog_data_i_sw_cu_x0y0s_L1_8__prog_data)
);
scanchain_delim i_scanchain_tail (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_cu_x0y0s_L1_8__prog_dout)
,.prog_dout(_i_scanchain_tail__prog_dout)
,.prog_we_o(_i_scanchain_tail__prog_we_o)
);
assign cu_x0y0n_L1 = {bp_x0y0i0_out[1],
bp_x0y0i0_out[3:2],
_i_sw_cu_x0y0n_L1_8__o,
_i_sw_cu_x0y0n_L1_7__o,
bp_x0y0i0_out[0],
bp_x0y0i0_out[3],
bp_x0y0i0_out[1],
bp_x0y0i0_out[4],
_i_sw_cu_x0y0n_L1_2__o,
bp_x0y0i0_out[5],
_i_sw_cu_x0y0n_L1_0__o};
assign cu_x0y0s_L1 = {bp_x0y0i0_out[1],
bp_x0y0i0_out[3:2],
_i_sw_cu_x0y0s_L1_8__o,
_i_sw_cu_x0y0s_L1_7__o,
bp_x0y0i0_out[0],
bp_x0y0i0_out[3],
bp_x0y0i0_out[1],
bp_x0y0i0_out[4],
_i_sw_cu_x0y0s_L1_2__o,
bp_x0y0i0_out[5],
_i_sw_cu_x0y0s_L1_0__o};
assign prog_dout = _i_scanchain_tail__prog_dout;
assign prog_we_o = _i_scanchain_tail__prog_we_o;
endmodule
// Automatically generated by PRGA's RTL generator
module cbox_tile_clb_w0 (
output wire [15:0] bp_x0y0i0_in
, input wire [11:0] bi_u1y0n_L1
, input wire [11:0] bi_u1y0s_L1
, input wire [0:0] prog_clk
, input wire [0:0] prog_rst
, input wire [0:0] prog_done
, input wire [0:0] prog_we
, input wire [0:0] prog_din
, output wire [0:0] prog_dout
, output wire [0:0] prog_we_o
);
wire [0:0] _i_sw_bp_x0y0i0_in_0__o;
wire [0:0] _i_sw_bp_x0y0i0_in_1__o;
wire [0:0] _i_sw_bp_x0y0i0_in_2__o;
wire [0:0] _i_sw_bp_x0y0i0_in_3__o;
wire [0:0] _i_sw_bp_x0y0i0_in_4__o;
wire [0:0] _i_sw_bp_x0y0i0_in_5__o;
wire [0:0] _i_sw_bp_x0y0i0_in_6__o;
wire [0:0] _i_sw_bp_x0y0i0_in_7__o;
wire [0:0] _i_sw_bp_x0y0i0_in_8__o;
wire [0:0] _i_sw_bp_x0y0i0_in_9__o;
wire [0:0] _i_sw_bp_x0y0i0_in_10__o;
wire [0:0] _i_sw_bp_x0y0i0_in_11__o;
wire [0:0] _i_sw_bp_x0y0i0_in_12__o;
wire [0:0] _i_sw_bp_x0y0i0_in_13__o;
wire [0:0] _i_sw_bp_x0y0i0_in_14__o;
wire [0:0] _i_sw_bp_x0y0i0_in_15__o;
wire [0:0] _i_buf_prog_rst_l0__Q;
wire [0:0] _i_buf_prog_done_l0__Q;
wire [0:0] _i_scanchain_head__prog_dout;
wire [0:0] _i_scanchain_head__prog_we_o;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_0__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_0__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_1__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_1__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_2__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_2__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_3__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_3__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_4__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_4__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_5__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_5__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_6__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_6__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_7__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_7__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_8__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_8__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_9__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_9__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_10__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_10__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_11__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_11__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_12__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_12__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_13__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_13__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_14__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_14__prog_data;
wire [0:0] _i_prog_data_i_sw_bp_x0y0i0_in_15__prog_dout;
wire [2:0] _i_prog_data_i_sw_bp_x0y0i0_in_15__prog_data;
wire [0:0] _i_scanchain_tail__prog_dout;
wire [0:0] _i_scanchain_tail__prog_we_o;
sw6 i_sw_bp_x0y0i0_in_0 (
.i({bi_u1y0s_L1[8],
bi_u1y0n_L1[8],
bi_u1y0s_L1[4],
bi_u1y0n_L1[4],
bi_u1y0s_L1[0],
bi_u1y0n_L1[0]})
,.o(_i_sw_bp_x0y0i0_in_0__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_0__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_1 (
.i({bi_u1y0s_L1[11],
bi_u1y0n_L1[11],
bi_u1y0s_L1[7],
bi_u1y0n_L1[7],
bi_u1y0s_L1[3],
bi_u1y0n_L1[3]})
,.o(_i_sw_bp_x0y0i0_in_1__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_1__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_2 (
.i({bi_u1y0s_L1[10],
bi_u1y0n_L1[10],
bi_u1y0s_L1[6],
bi_u1y0n_L1[6],
bi_u1y0s_L1[2],
bi_u1y0n_L1[2]})
,.o(_i_sw_bp_x0y0i0_in_2__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_2__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_3 (
.i({bi_u1y0s_L1[9],
bi_u1y0n_L1[9],
bi_u1y0s_L1[5],
bi_u1y0n_L1[5],
bi_u1y0s_L1[1],
bi_u1y0n_L1[1]})
,.o(_i_sw_bp_x0y0i0_in_3__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_3__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_4 (
.i({bi_u1y0s_L1[9],
bi_u1y0n_L1[9],
bi_u1y0s_L1[4],
bi_u1y0n_L1[4],
bi_u1y0s_L1[1],
bi_u1y0n_L1[1]})
,.o(_i_sw_bp_x0y0i0_in_4__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_4__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_5 (
.i({bi_u1y0s_L1[7],
bi_u1y0n_L1[7],
bi_u1y0s_L1[3],
bi_u1y0n_L1[3],
bi_u1y0s_L1[0],
bi_u1y0n_L1[0]})
,.o(_i_sw_bp_x0y0i0_in_5__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_5__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_6 (
.i({bi_u1y0s_L1[11],
bi_u1y0n_L1[11],
bi_u1y0s_L1[8],
bi_u1y0n_L1[8],
bi_u1y0s_L1[5],
bi_u1y0n_L1[5]})
,.o(_i_sw_bp_x0y0i0_in_6__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_6__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_7 (
.i({bi_u1y0s_L1[10],
bi_u1y0n_L1[10],
bi_u1y0s_L1[6],
bi_u1y0n_L1[6],
bi_u1y0s_L1[2],
bi_u1y0n_L1[2]})
,.o(_i_sw_bp_x0y0i0_in_7__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_7__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_8 (
.i({bi_u1y0s_L1[10],
bi_u1y0n_L1[10],
bi_u1y0s_L1[5],
bi_u1y0n_L1[5],
bi_u1y0s_L1[2],
bi_u1y0n_L1[2]})
,.o(_i_sw_bp_x0y0i0_in_8__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_8__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_9 (
.i({bi_u1y0s_L1[9],
bi_u1y0n_L1[9],
bi_u1y0s_L1[4],
bi_u1y0n_L1[4],
bi_u1y0s_L1[1],
bi_u1y0n_L1[1]})
,.o(_i_sw_bp_x0y0i0_in_9__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_9__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_10 (
.i({bi_u1y0s_L1[7],
bi_u1y0n_L1[7],
bi_u1y0s_L1[3],
bi_u1y0n_L1[3],
bi_u1y0s_L1[0],
bi_u1y0n_L1[0]})
,.o(_i_sw_bp_x0y0i0_in_10__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_10__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_11 (
.i({bi_u1y0s_L1[11],
bi_u1y0n_L1[11],
bi_u1y0s_L1[8],
bi_u1y0n_L1[8],
bi_u1y0s_L1[5],
bi_u1y0n_L1[5]})
,.o(_i_sw_bp_x0y0i0_in_11__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_11__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_12 (
.i({bi_u1y0s_L1[11],
bi_u1y0n_L1[11],
bi_u1y0s_L1[6],
bi_u1y0n_L1[6],
bi_u1y0s_L1[3],
bi_u1y0n_L1[3]})
,.o(_i_sw_bp_x0y0i0_in_12__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_12__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_13 (
.i({bi_u1y0s_L1[9],
bi_u1y0n_L1[9],
bi_u1y0s_L1[6],
bi_u1y0n_L1[6],
bi_u1y0s_L1[1],
bi_u1y0n_L1[1]})
,.o(_i_sw_bp_x0y0i0_in_13__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_13__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_14 (
.i({bi_u1y0s_L1[4],
bi_u1y0n_L1[4],
bi_u1y0s_L1[2],
bi_u1y0n_L1[2],
bi_u1y0s_L1[0],
bi_u1y0n_L1[0]})
,.o(_i_sw_bp_x0y0i0_in_14__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_14__prog_data)
);
sw6 i_sw_bp_x0y0i0_in_15 (
.i({bi_u1y0s_L1[10],
bi_u1y0n_L1[10],
bi_u1y0s_L1[8],
bi_u1y0n_L1[8],
bi_u1y0s_L1[7],
bi_u1y0n_L1[7]})
,.o(_i_sw_bp_x0y0i0_in_15__o)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_15__prog_data)
);
prga_simple_buf i_buf_prog_rst_l0 (
.C(prog_clk)
,.D(prog_rst)
,.Q(_i_buf_prog_rst_l0__Q)
);
prga_simple_bufr i_buf_prog_done_l0 (
.C(prog_clk)
,.R(_i_buf_prog_rst_l0__Q)
,.D(prog_done)
,.Q(_i_buf_prog_done_l0__Q)
);
scanchain_delim i_scanchain_head (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(prog_we)
,.prog_din(prog_din)
,.prog_dout(_i_scanchain_head__prog_dout)
,.prog_we_o(_i_scanchain_head__prog_we_o)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_0 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_scanchain_head__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_0__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_0__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_1 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_0__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_1__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_1__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_2 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_1__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_2__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_2__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_3 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_2__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_3__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_3__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_4 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_3__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_4__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_4__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_5 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_4__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_5__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_5__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_6 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_5__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_6__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_6__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_7 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_6__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_7__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_7__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_8 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_7__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_8__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_8__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_9 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_8__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_9__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_9__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_10 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_9__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_10__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_10__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_11 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_10__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_11__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_11__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_12 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_11__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_12__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_12__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_13 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_12__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_13__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_13__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_14 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_13__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_14__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_14__prog_data)
);
scanchain_data_d3 i_prog_data_i_sw_bp_x0y0i0_in_15 (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_14__prog_dout)
,.prog_dout(_i_prog_data_i_sw_bp_x0y0i0_in_15__prog_dout)
,.prog_data(_i_prog_data_i_sw_bp_x0y0i0_in_15__prog_data)
);
scanchain_delim i_scanchain_tail (
.prog_clk(prog_clk)
,.prog_rst(_i_buf_prog_rst_l0__Q)
,.prog_done(_i_buf_prog_done_l0__Q)
,.prog_we(_i_scanchain_head__prog_we_o)
,.prog_din(_i_prog_data_i_sw_bp_x0y0i0_in_15__prog_dout)
,.prog_dout(_i_scanchain_tail__prog_dout)
,.prog_we_o(_i_scanchain_tail__prog_we_o)
);
assign bp_x0y0i0_in = {_i_sw_bp_x0y0i0_in_15__o,
_i_sw_bp_x0y0i0_in_14__o,
_i_sw_bp_x0y0i0_in_13__o,
_i_sw_bp_x0y0i0_in_12__o,
_i_sw_bp_x0y0i0_in_11__o,
_i_sw_bp_x0y0i0_in_10__o,
_i_sw_bp_x0y0i0_in_9__o,
_i_sw_bp_x0y0i0_in_8__o,
_i_sw_bp_x0y0i0_in_7__o,
_i_sw_bp_x0y0i0_in_6__o,
_i_sw_bp_x0y0i0_in_5__o,
_i_sw_bp_x0y0i0_in_4__o,
_i_sw_bp_x0y0i0_in_3__o,
_i_sw_bp_x0y0i0_in_2__o,
_i_sw_bp_x0y0i0_in_1__o,
_i_sw_bp_x0y0i0_in_0__o};
assign prog_dout = _i_scanchain_tail__prog_dout;
assign prog_we_o = _i_scanchain_tail__prog_we_o;
endmodule
module slice (
input wire [0:0] clk
, input wire [3:0] i
, output wire [0:0] o
, input wire [0:0] prog_clk
, input wire [0:0] prog_rst
, input wire [0:0] prog_done
, input wire [0:0] prog_we
, input wire [0:0] prog_din
, output wire [0:0] prog_dout
);
wire [0:0] _lut__out;
wire [0:0] _ff__Q;
wire [0:0] _i_sw_o__o;
wire [0:0] _i_prog_data_lut__prog_dout;
wire [16:0] _i_prog_data_lut__prog_data;
wire [0:0] _i_prog_data_ff__prog_dout;
wire [0:0] _i_prog_data_ff__prog_data;
wire [0:0] _i_prog_data_i_sw_o__prog_dout;
wire [1:0] _i_prog_data_i_sw_o__prog_data;
lut4 lut (
.in(i)
,.out(_lut__out)
,.prog_done(prog_done)
,.prog_data(_i_prog_data_lut__prog_data)
);
flipflop ff (
.clk(clk)
,.D(_lut__out)
,.Q(_ff__Q)
,.prog_done(prog_done)
,.prog_data(_i_prog_data_ff__prog_data)
);
sw2 i_sw_o (
.i({_ff__Q,
_lut__out})
,.o(_i_sw_o__o)
,.prog_done(prog_done)
,.prog_data(_i_prog_data_i_sw_o__prog_data)
);
scanchain_data_d17 i_prog_data_lut (
.prog_clk(prog_clk)
,.prog_rst(prog_rst)
,.prog_done(prog_done)
,.prog_we(prog_we)
,.prog_din(prog_din)
,.prog_dout(_i_prog_data_lut__prog_dout)
,.prog_data(_i_prog_data_lut__prog_data)
);
scanchain_data_d1 i_prog_data_ff (
.prog_clk(prog_clk)
,.prog_rst(prog_rst)
,.prog_done(prog_done)
,.prog_we(prog_we)
,.prog_din(_i_prog_data_lut__prog_dout)
,.prog_dout(_i_prog_data_ff__prog_dout)
,.prog_data(_i_prog_data_ff__prog_data)
);
scanchain_data_d2 i_prog_data_i_sw_o (
.prog_clk(prog_clk)
,.prog_rst(prog_rst)
,.prog_done(prog_done)
,.prog_we(prog_we)
,.prog_din(_i_prog_data_ff__prog_dout)
,.prog_dout(_i_prog_data_i_sw_o__prog_dout)
,.prog_data(_i_prog_data_i_sw_o__prog_data)
);
assign o = _i_sw_o__o;
assign prog_dout = _i_prog_data_i_sw_o__prog_dout;
endmodule
module sw6 (
input wire [5:0] i
, output reg [0:0] o
, input wire [0:0] prog_done
, input wire [2:0] prog_data
);
always @* begin
if (~prog_done) begin
o = 1'b0;
end else begin
o = 1'b0; // if ``prog_data == 0`` or ``prog_data`` out of bound, output 0
case (prog_data)
3'd1: o = i[0];
3'd2: o = i[1];
3'd3: o = i[2];
3'd4: o = i[3];
3'd5: o = i[4];
3'd6: o = i[5];
endcase
end
end
endmodule// Automatically generated by PRGA's RTL generator
module lut4 (
input wire [3:0] in
, output reg [0:0] out
, input wire [0:0] prog_done
, input wire [16:0] prog_data
// prog_data[ 0 +: 15]: LUT content
// prog_data[16]: LUT enabled (not disabled)
);
localparam IDX_LUT_ENABLE = 16;
always @* begin
if (~prog_done || ~prog_data[IDX_LUT_ENABLE]) begin
out = 1'b0;
end else begin
case (in)
4'd0: out = prog_data[0];
4'd1: out = prog_data[1];
4'd2: out = prog_data[2];
4'd3: out = prog_data[3];
4'd4: out = prog_data[4];
4'd5: out = prog_data[5];
4'd6: out = prog_data[6];
4'd7: out = prog_data[7];
4'd8: out = prog_data[8];
4'd9: out = prog_data[9];
4'd10: out = prog_data[10];
4'd11: out = prog_data[11];
4'd12: out = prog_data[12];
4'd13: out = prog_data[13];
4'd14: out = prog_data[14];
4'd15: out = prog_data[15];
endcase
end
end
endmodule// Automatically generated by PRGA's RTL generator
module flipflop (
input wire [0:0] clk
, input wire [0:0] D
, output reg [0:0] Q
, input wire [0:0] prog_done // programming finished
, input wire [0:0] prog_data // mode: enabled (not disabled)
);
always @(posedge clk) begin
if (~prog_done || ~prog_data) begin
Q <= 1'b0;
end else begin
Q <= D;
end
end
endmodule// Automatically generated by PRGA's RTL generator
module scanchain_data_d17 (
input wire [0:0] prog_clk
, input wire [0:0] prog_rst
, input wire [0:0] prog_done
, input wire [0:0] prog_we
, input wire [1 - 1:0] prog_din
, output reg [17 - 1:0] prog_data
, output wire [1 - 1:0] prog_dout
);
localparam CHAIN_BITCOUNT = 17;
localparam CHAIN_WIDTH = 1;
wire [CHAIN_BITCOUNT + CHAIN_WIDTH - 1:0] prog_data_next;
assign prog_data_next = {prog_data, prog_din};
always @(posedge prog_clk) begin
if (prog_rst) begin
prog_data <= {CHAIN_BITCOUNT{1'b0}};
end else if (~prog_done && prog_we) begin
prog_data <= prog_data_next[0 +: CHAIN_BITCOUNT];
end
end
assign prog_dout = prog_data_next[CHAIN_BITCOUNT +: CHAIN_WIDTH];
endmodule// Automatically generated by PRGA's RTL generator